summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEgbert Eich <eich@freedesktop.org>2004-04-23 18:42:09 +0000
committerEgbert Eich <eich@freedesktop.org>2004-04-23 18:42:09 +0000
commitc6349f43193b74a3c09945f3093a871b0157ba47 (patch)
treeaea173c19da6fa57e24eb4633ff815feb7ae3fa0
parentc3c4ddc682950a01b80825021f3e2503ab01ea7f (diff)
Merging XORG-CURRENT into trunk
-rw-r--r--include/X11/ImUtil.h2
-rw-r--r--include/X11/XKBlib.h272
-rw-r--r--include/X11/Xcms.h182
-rw-r--r--include/X11/Xlib.h1051
-rw-r--r--include/X11/Xlibint.h483
-rw-r--r--include/X11/Xlocale.h13
-rw-r--r--include/X11/Xresource.h71
-rw-r--r--include/X11/Xutil.h231
-rw-r--r--man/AllPlanes.man122
-rw-r--r--man/BlackPixelOfScreen.man85
-rw-r--r--man/DisplayOfCCC.man33
-rw-r--r--man/ImageByteOrder.man43
-rw-r--r--man/IsCursorKey.man23
-rw-r--r--man/XAddConnectionWatch.man77
-rw-r--r--man/XAddHost.man147
-rw-r--r--man/XAllocClassHint.man27
-rw-r--r--man/XAllocColor.man93
-rw-r--r--man/XAllocIconSize.man28
-rw-r--r--man/XAllocSizeHints.man119
-rw-r--r--man/XAllocStandardColormap.man54
-rw-r--r--man/XAllocWMHints.man100
-rw-r--r--man/XAllowEvents.man14
-rw-r--r--man/XAnyEvent.man13
-rw-r--r--man/XButtonEvent.man83
-rw-r--r--man/XChangeKeyboardControl.man76
-rw-r--r--man/XChangeKeyboardMapping.man101
-rw-r--r--man/XChangePointerControl.man33
-rw-r--r--man/XChangeSaveSet.man29
-rw-r--r--man/XChangeWindowAttributes.man66
-rw-r--r--man/XCirculateEvent.man15
-rw-r--r--man/XCirculateRequestEvent.man15
-rw-r--r--man/XClearArea.man29
-rw-r--r--man/XClientMessageEvent.man13
-rw-r--r--man/XColormapEvent.man17
-rw-r--r--man/XConfigureEvent.man13
-rw-r--r--man/XConfigureRequestEvent.man15
-rw-r--r--man/XConfigureWindow.man83
-rw-r--r--man/XCopyArea.man47
-rw-r--r--man/XCreateColormap.man42
-rw-r--r--man/XCreateFontCursor.man52
-rw-r--r--man/XCreateFontSet.man29
-rw-r--r--man/XCreateGC.man228
-rw-r--r--man/XCreateIC.man21
-rw-r--r--man/XCreateOC.man33
-rw-r--r--man/XCreatePixmap.man25
-rw-r--r--man/XCreateRegion.man23
-rw-r--r--man/XCreateWindow.man118
-rw-r--r--man/XCreateWindowEvent.man25
-rw-r--r--man/XCrossingEvent.man35
-rw-r--r--man/XDefineCursor.man22
-rw-r--r--man/XDestroyWindow.man19
-rw-r--r--man/XDestroyWindowEvent.man13
-rw-r--r--man/XDrawArc.man41
-rw-r--r--man/XDrawImageString.man41
-rw-r--r--man/XDrawLine.man48
-rw-r--r--man/XDrawPoint.man33
-rw-r--r--man/XDrawRectangle.man34
-rw-r--r--man/XDrawString.man41
-rw-r--r--man/XDrawText.man57
-rw-r--r--man/XEmptyRegion.man36
-rw-r--r--man/XErrorEvent.man17
-rw-r--r--man/XExposeEvent.man15
-rw-r--r--man/XExtentsOfFontSet.man9
-rw-r--r--man/XFillRectangle.man91
-rw-r--r--man/XFilterEvent.man11
-rw-r--r--man/XFlush.man31
-rw-r--r--man/XFocusChangeEvent.man19
-rw-r--r--man/XFontSetExtents.man9
-rw-r--r--man/XFontsOfFontSet.man44
-rw-r--r--man/XFree.man10
-rw-r--r--man/XGetVisualInfo.man65
-rw-r--r--man/XGetWindowAttributes.man80
-rw-r--r--man/XGetWindowProperty.man93
-rw-r--r--man/XGrabButton.man44
-rw-r--r--man/XGrabKey.man36
-rw-r--r--man/XGrabKeyboard.man27
-rw-r--r--man/XGrabPointer.man48
-rw-r--r--man/XGrabServer.man15
-rw-r--r--man/XGraphicsExposeEvent.man31
-rw-r--r--man/XGravityEvent.man13
-rw-r--r--man/XIconifyWindow.man42
-rw-r--r--man/XIfEvent.man80
-rw-r--r--man/XInitImage.man91
-rw-r--r--man/XInitThreads.man19
-rw-r--r--man/XInstallColormap.man33
-rw-r--r--man/XInternAtom.man50
-rw-r--r--man/XIntersectRegion.man59
-rw-r--r--man/XKeymapEvent.man15
-rw-r--r--man/XListFonts.man49
-rw-r--r--man/XLoadFont.man102
-rw-r--r--man/XLookupKeysym.man54
-rw-r--r--man/XMapEvent.man31
-rw-r--r--man/XMapRequestEvent.man13
-rw-r--r--man/XMapWindow.man27
-rw-r--r--man/XNextEvent.man91
-rw-r--r--man/XNoOp.man8
-rw-r--r--man/XOpenDisplay.man15
-rw-r--r--man/XOpenIM.man82
-rw-r--r--man/XOpenOM.man55
-rw-r--r--man/XParseGeometry.man46
-rw-r--r--man/XPolygonRegion.man22
-rw-r--r--man/XPropertyEvent.man15
-rw-r--r--man/XPutBackEvent.man11
-rw-r--r--man/XPutImage.man77
-rw-r--r--man/XQueryBestSize.man48
-rw-r--r--man/XQueryColor.man63
-rw-r--r--man/XQueryPointer.man24
-rw-r--r--man/XQueryTree.man23
-rw-r--r--man/XRaiseWindow.man57
-rw-r--r--man/XReadBitmapFile.man88
-rw-r--r--man/XRecolorCursor.man36
-rw-r--r--man/XReparentEvent.man13
-rw-r--r--man/XReparentWindow.man16
-rw-r--r--man/XResizeRequestEvent.man13
-rw-r--r--man/XResourceManagerString.man15
-rw-r--r--man/XSaveContext.man44
-rw-r--r--man/XSelectInput.man14
-rw-r--r--man/XSelectionClearEvent.man13
-rw-r--r--man/XSelectionEvent.man15
-rw-r--r--man/XSelectionRequestEvent.man13
-rw-r--r--man/XSendEvent.man41
-rw-r--r--man/XSetArcMode.man36
-rw-r--r--man/XSetClipOrigin.man43
-rw-r--r--man/XSetCloseDownMode.man19
-rw-r--r--man/XSetCommand.man30
-rw-r--r--man/XSetErrorHandler.man52
-rw-r--r--man/XSetFillStyle.man25
-rw-r--r--man/XSetFont.man13
-rw-r--r--man/XSetFontPath.man29
-rw-r--r--man/XSetICFocus.man15
-rw-r--r--man/XSetICValues.man15
-rw-r--r--man/XSetInputFocus.man27
-rw-r--r--man/XSetLineAttributes.man36
-rw-r--r--man/XSetPointerMapping.man25
-rw-r--r--man/XSetScreenSaver.man53
-rw-r--r--man/XSetSelectionOwner.man41
-rw-r--r--man/XSetState.man65
-rw-r--r--man/XSetTextProperty.man31
-rw-r--r--man/XSetTile.man36
-rw-r--r--man/XSetTransientForHint.man25
-rw-r--r--man/XSetWMClientMachine.man25
-rw-r--r--man/XSetWMColormapWindows.man31
-rw-r--r--man/XSetWMIconName.man47
-rw-r--r--man/XSetWMName.man47
-rw-r--r--man/XSetWMProperties.man118
-rw-r--r--man/XSetWMProtocols.man33
-rw-r--r--man/XStoreBytes.man57
-rw-r--r--man/XStoreColors.man42
-rw-r--r--man/XStringListToTextProperty.man46
-rw-r--r--man/XStringToKeysym.man45
-rw-r--r--man/XSupportsLocale.man13
-rw-r--r--man/XSynchronize.man20
-rw-r--r--man/XTextExtents.man97
-rw-r--r--man/XTextWidth.man25
-rw-r--r--man/XTranslateCoordinates.man22
-rw-r--r--man/XUnmapEvent.man13
-rw-r--r--man/XUnmapWindow.man19
-rw-r--r--man/XVaCreateNestedList.man10
-rw-r--r--man/XVisibilityEvent.man15
-rw-r--r--man/XWarpPointer.man22
-rw-r--r--man/XcmsAllocColor.man41
-rw-r--r--man/XcmsCCCOfColormap.man23
-rw-r--r--man/XcmsCIELabQueryMaxC.man59
-rw-r--r--man/XcmsCIELuvQueryMaxC.man59
-rw-r--r--man/XcmsColor.man64
-rw-r--r--man/XcmsConvertColors.man19
-rw-r--r--man/XcmsCreateCCC.man33
-rw-r--r--man/XcmsDefaultCCC.man12
-rw-r--r--man/XcmsQueryBlack.man58
-rw-r--r--man/XcmsQueryColor.man54
-rw-r--r--man/XcmsSetWhitePoint.man22
-rw-r--r--man/XcmsStoreColor.man30
-rw-r--r--man/XcmsTekHVCQueryMaxC.man81
-rw-r--r--man/XmbDrawImageString.man67
-rw-r--r--man/XmbDrawString.man64
-rw-r--r--man/XmbDrawText.man91
-rw-r--r--man/XmbLookupString.man96
-rw-r--r--man/XmbResetIC.man43
-rw-r--r--man/XmbTextEscapement.man43
-rw-r--r--man/XmbTextExtents.man59
-rw-r--r--man/XmbTextListToTextProperty.man181
-rw-r--r--man/XmbTextPerCharExtents.man90
-rw-r--r--man/XrmEnumerateDatabase.man28
-rw-r--r--man/XrmGetFileDatabase.man51
-rw-r--r--man/XrmGetResource.man71
-rw-r--r--man/XrmInitialize.man51
-rw-r--r--man/XrmMergeDatabases.man29
-rw-r--r--man/XrmPutResource.man68
-rw-r--r--man/XrmUniqueQuark.man74
-rw-r--r--modules/im/ximcp/imCallbk.c187
-rw-r--r--modules/im/ximcp/imDefFlt.c117
-rw-r--r--modules/im/ximcp/imDefIc.c391
-rw-r--r--modules/im/ximcp/imDefIm.c392
-rw-r--r--modules/im/ximcp/imDefLkup.c506
-rw-r--r--modules/im/ximcp/imDispch.c21
-rw-r--r--modules/im/ximcp/imEvToWire.c19
-rw-r--r--modules/im/ximcp/imExten.c116
-rw-r--r--modules/im/ximcp/imImSw.c13
-rw-r--r--modules/im/ximcp/imInsClbk.c66
-rw-r--r--modules/im/ximcp/imInt.c32
-rw-r--r--modules/im/ximcp/imLcIc.c52
-rw-r--r--modules/im/ximcp/imLcIm.c191
-rw-r--r--modules/im/ximcp/imLcLkup.c232
-rw-r--r--modules/im/ximcp/imLcPrs.c244
-rw-r--r--modules/im/ximcp/imRm.c855
-rw-r--r--modules/im/ximcp/imRmAttr.c286
-rw-r--r--modules/im/ximcp/imThaiFlt.c491
-rw-r--r--modules/im/ximcp/imThaiIc.c57
-rw-r--r--modules/im/ximcp/imThaiIm.c106
-rw-r--r--modules/im/ximcp/imTrX.c105
-rw-r--r--modules/im/ximcp/imTrans.c75
-rw-r--r--modules/im/ximcp/imTransR.c58
-rw-r--r--modules/lc/Utf8/lcUTF8Load.c2
-rw-r--r--modules/lc/def/lcDefConv.c810
-rw-r--r--modules/lc/gen/lcGenConv.c1742
-rw-r--r--modules/lc/xlocale/lcEuc.c493
-rw-r--r--modules/lc/xlocale/lcJis.c375
-rw-r--r--modules/lc/xlocale/lcSjis.c475
-rw-r--r--modules/om/generic/omDefault.c294
-rw-r--r--modules/om/generic/omGeneric.c679
-rw-r--r--modules/om/generic/omImText.c51
-rw-r--r--modules/om/generic/omText.c126
-rw-r--r--modules/om/generic/omTextEsc.c96
-rw-r--r--modules/om/generic/omTextExt.c42
-rw-r--r--modules/om/generic/omTextPer.c67
-rw-r--r--modules/om/generic/omXChar.c139
-rw-r--r--nls/C/XLC_LOCALE.pre13
-rw-r--r--nls/armscii-8/Compose.pre2
-rw-r--r--nls/armscii-8/XLC_LOCALE.pre2
-rw-r--r--nls/compose.dir.pre434
-rw-r--r--nls/el_GR.UTF-8/Compose.pre2
-rw-r--r--nls/en_US.UTF-8/Compose.pre7783
-rw-r--r--nls/en_US.UTF-8/XLC_LOCALE.pre393
-rw-r--r--nls/georgian-academy/Compose.pre2
-rw-r--r--nls/georgian-academy/XLC_LOCALE.pre2
-rw-r--r--nls/georgian-ps/Compose.pre2
-rw-r--r--nls/georgian-ps/XLC_LOCALE.pre2
-rw-r--r--nls/ibm-cp1133/Compose.pre2
-rw-r--r--nls/ibm-cp1133/XLC_LOCALE.pre2
-rw-r--r--nls/iscii-dev/XLC_LOCALE.pre2
-rw-r--r--nls/isiri-3342/XLC_LOCALE.pre2
-rw-r--r--nls/iso8859-1/Compose.pre87
-rw-r--r--nls/iso8859-10/Compose.pre2
-rw-r--r--nls/iso8859-11/XI18N_OBJS2
-rw-r--r--nls/iso8859-11/XLC_LOCALE.pre2
-rw-r--r--nls/iso8859-13/Compose.pre2
-rw-r--r--nls/iso8859-13/XLC_LOCALE.pre2
-rw-r--r--nls/iso8859-14/Compose.pre2
-rw-r--r--nls/iso8859-14/XLC_LOCALE.pre2
-rw-r--r--nls/iso8859-15/Compose.pre2
-rw-r--r--nls/iso8859-15/XLC_LOCALE.pre2
-rw-r--r--nls/iso8859-2/Compose.pre154
-rw-r--r--nls/iso8859-3/Compose.pre2
-rw-r--r--nls/iso8859-4/Compose.pre2
-rw-r--r--nls/iso8859-5/Compose.pre2
-rw-r--r--nls/iso8859-6/Compose.pre2
-rw-r--r--nls/iso8859-7/Compose.pre2
-rw-r--r--nls/iso8859-8/Compose.pre2
-rw-r--r--nls/iso8859-9/Compose.pre2
-rw-r--r--nls/iso8859-9e/Compose.pre2
-rw-r--r--nls/iso8859-9e/XLC_LOCALE.pre2
-rw-r--r--nls/ja.JIS/Compose.pre2
-rw-r--r--nls/ja.JIS/XLC_LOCALE.pre6
-rw-r--r--nls/ja.SJIS/Compose.pre2
-rw-r--r--nls/ja.SJIS/XLC_LOCALE.pre6
-rw-r--r--nls/ja/Compose.pre2
-rw-r--r--nls/ja/XLC_LOCALE.pre6
-rw-r--r--nls/ja_JP.UTF-8/XI18N_OBJS2
-rw-r--r--nls/ja_JP.UTF-8/XLC_LOCALE.pre48
-rw-r--r--nls/ko/Compose.pre2
-rw-r--r--nls/ko/XLC_LOCALE.pre4
-rw-r--r--nls/ko_KR.UTF-8/XI18N_OBJS2
-rw-r--r--nls/ko_KR.UTF-8/XLC_LOCALE.pre50
-rw-r--r--nls/koi8-c/Compose.pre2
-rw-r--r--nls/koi8-c/XLC_LOCALE.pre2
-rw-r--r--nls/koi8-r/Compose.pre2
-rw-r--r--nls/koi8-r/XLC_LOCALE.pre28
-rw-r--r--nls/koi8-u/Compose.pre2
-rw-r--r--nls/koi8-u/XLC_LOCALE.pre2
-rw-r--r--nls/locale.alias.pre741
-rw-r--r--nls/locale.dir.pre507
-rw-r--r--nls/microsoft-cp1251/XLC_LOCALE.pre2
-rw-r--r--nls/microsoft-cp1255/XLC_LOCALE.pre2
-rw-r--r--nls/microsoft-cp1256/XLC_LOCALE.pre2
-rw-r--r--nls/mulelao-1/Compose.pre2
-rw-r--r--nls/mulelao-1/XLC_LOCALE.pre2
-rw-r--r--nls/nokhchi-1/XLC_LOCALE.pre2
-rw-r--r--nls/tatar-cyr/XLC_LOCALE.pre2
-rw-r--r--nls/th_TH.UTF-8/XI18N_OBJS2
-rw-r--r--nls/th_TH.UTF-8/XLC_LOCALE.pre2
-rw-r--r--nls/th_TH/XLC_LOCALE.pre2
-rw-r--r--nls/tscii-0/XLC_LOCALE.pre2
-rw-r--r--nls/vi_VN.tcvn/Compose.pre2
-rw-r--r--nls/vi_VN.tcvn/XLC_LOCALE.pre2
-rw-r--r--nls/vi_VN.viscii/Compose.pre2
-rw-r--r--nls/vi_VN.viscii/XLC_LOCALE.pre2
-rw-r--r--nls/zh_CN.UTF-8/XI18N_OBJS2
-rw-r--r--nls/zh_CN.UTF-8/XLC_LOCALE.pre171
-rw-r--r--nls/zh_CN.gbk/Compose.pre2
-rw-r--r--nls/zh_CN.gbk/XLC_LOCALE.pre2
-rw-r--r--nls/zh_CN/XI18N_OBJS2
-rw-r--r--nls/zh_CN/XLC_LOCALE.pre2
-rw-r--r--nls/zh_HK.big5/XLC_LOCALE.pre2
-rw-r--r--nls/zh_HK.big5hkscs/XLC_LOCALE.pre2
-rw-r--r--nls/zh_TW.UTF-8/XLC_LOCALE.pre48
-rw-r--r--nls/zh_TW.big5/Compose.pre2
-rw-r--r--nls/zh_TW.big5/XLC_LOCALE.pre2
-rw-r--r--nls/zh_TW/Compose.pre2
-rw-r--r--src/AllPlanes.c3
-rw-r--r--src/AllowEv.c2
-rw-r--r--src/AutoRep.c3
-rw-r--r--src/Backgnd.c2
-rw-r--r--src/BdrWidth.c2
-rw-r--r--src/Bell.c2
-rw-r--r--src/Border.c2
-rw-r--r--src/ChAccCon.c4
-rw-r--r--src/ChActPGb.c2
-rw-r--r--src/ChClMode.c2
-rw-r--r--src/ChCmap.c2
-rw-r--r--src/ChGC.c3
-rw-r--r--src/ChKeyCon.c2
-rw-r--r--src/ChPntCon.c2
-rw-r--r--src/ChProp.c13
-rw-r--r--src/ChSaveSet.c4
-rw-r--r--src/ChWAttrs.c3
-rw-r--r--src/ChWindow.c2
-rw-r--r--src/ChkIfEv.c3
-rw-r--r--src/ChkMaskEv.c10
-rw-r--r--src/ChkTypEv.c3
-rw-r--r--src/ChkTypWEv.c3
-rw-r--r--src/ChkWinEv.c10
-rw-r--r--src/CirWin.c2
-rw-r--r--src/CirWinDn.c2
-rw-r--r--src/CirWinUp.c2
-rw-r--r--src/ClDisplay.c11
-rw-r--r--src/Clear.c2
-rw-r--r--src/ClearArea.c2
-rw-r--r--src/Cmap.h2
-rw-r--r--src/ConfWind.c2
-rw-r--r--src/ConnDis.c185
-rw-r--r--src/Context.c15
-rw-r--r--src/ConvSel.c2
-rw-r--r--src/CopyArea.c2
-rw-r--r--src/CopyCmap.c7
-rw-r--r--src/CopyGC.c2
-rw-r--r--src/CopyPlane.c2
-rw-r--r--src/Cr.h2
-rw-r--r--src/CrBFData.c9
-rw-r--r--src/CrCmap.c3
-rw-r--r--src/CrCursor.c18
-rw-r--r--src/CrGC.c24
-rw-r--r--src/CrGlCur.c198
-rw-r--r--src/CrPixmap.c13
-rw-r--r--src/Cursor.c5
-rw-r--r--src/DefCursor.c2
-rw-r--r--src/DelProp.c2
-rw-r--r--src/DestSubs.c2
-rw-r--r--src/DestWind.c2
-rw-r--r--src/DisName.c11
-rw-r--r--src/DrArc.c2
-rw-r--r--src/DrArcs.c2
-rw-r--r--src/DrLine.c2
-rw-r--r--src/DrLines.c2
-rw-r--r--src/DrPoint.c2
-rw-r--r--src/DrPoints.c2
-rw-r--r--src/DrRect.c2
-rw-r--r--src/DrRects.c2
-rw-r--r--src/DrSegs.c2
-rw-r--r--src/ErrDes.c39
-rw-r--r--src/ErrHndlr.c24
-rw-r--r--src/EvToWire.c9
-rw-r--r--src/FSSaver.c4
-rw-r--r--src/FSWrap.c30
-rw-r--r--src/FillArc.c2
-rw-r--r--src/FillArcs.c2
-rw-r--r--src/FillPoly.c2
-rw-r--r--src/FillRct.c2
-rw-r--r--src/FillRcts.c2
-rw-r--r--src/FilterEv.c8
-rw-r--r--src/Flush.c2
-rw-r--r--src/Font.c544
-rw-r--r--src/FontInfo.c29
-rw-r--r--src/FontNames.c14
-rw-r--r--src/FreeCmap.c12
-rw-r--r--src/FreeCols.c2
-rw-r--r--src/FreeCurs.c2
-rw-r--r--src/FreeEData.c2
-rw-r--r--src/FreeGC.c2
-rw-r--r--src/FreePix.c2
-rw-r--r--src/GCMisc.c6
-rw-r--r--src/Geom.c16
-rw-r--r--src/GetAtomNm.c37
-rw-r--r--src/GetColor.c36
-rw-r--r--src/GetDflt.c49
-rw-r--r--src/GetFPath.c2
-rw-r--r--src/GetHints.c1
-rw-r--r--src/GetIFocus.c2
-rw-r--r--src/GetImage.c6
-rw-r--r--src/GetKCnt.c2
-rw-r--r--src/GetPCnt.c2
-rw-r--r--src/GetPntMap.c16
-rw-r--r--src/GetProp.c12
-rw-r--r--src/GetSSaver.c2
-rw-r--r--src/GetWAttrs.c13
-rw-r--r--src/GrButton.c2
-rw-r--r--src/GrKey.c2
-rw-r--r--src/GrServer.c2
-rw-r--r--src/Host.c135
-rw-r--r--src/IfEvent.c4
-rw-r--r--src/ImText.c12
-rw-r--r--src/ImText16.c12
-rw-r--r--src/ImUtil.c84
-rw-r--r--src/InitExt.c145
-rw-r--r--src/InsCmap.c2
-rw-r--r--src/IntAtom.c65
-rw-r--r--src/Key.h2
-rw-r--r--src/KeyBind.c547
-rw-r--r--src/KeysymStr.c53
-rw-r--r--src/KillCl.c2
-rw-r--r--src/LiHosts.c95
-rw-r--r--src/LiICmaps.c3
-rw-r--r--src/LiProps.c3
-rw-r--r--src/ListExt.c2
-rw-r--r--src/LoadFont.c14
-rw-r--r--src/LockDis.c17
-rw-r--r--src/LookupCol.c36
-rw-r--r--src/LowerWin.c2
-rw-r--r--src/Macros.c38
-rw-r--r--src/MapRaised.c2
-rw-r--r--src/MapSubs.c2
-rw-r--r--src/MapWindow.c2
-rw-r--r--src/MaskEvent.c12
-rw-r--r--src/Misc.c2
-rw-r--r--src/ModMap.c18
-rw-r--r--src/MoveWin.c2
-rw-r--r--src/NextEvent.c2
-rw-r--r--src/OCWrap.c34
-rw-r--r--src/OMWrap.c31
-rw-r--r--src/OpenDis.c166
-rw-r--r--src/ParseCmd.c22
-rw-r--r--src/ParseCol.c33
-rw-r--r--src/ParseGeom.c19
-rw-r--r--src/PeekEvent.c2
-rw-r--r--src/PeekIfEv.c4
-rw-r--r--src/PmapBgnd.c2
-rw-r--r--src/PmapBord.c2
-rw-r--r--src/PolyReg.c55
-rw-r--r--src/PolyTxt.c4
-rw-r--r--src/PolyTxt16.c4
-rw-r--r--src/PropAlloc.c3
-rw-r--r--src/PutBEvent.c2
-rw-r--r--src/PutImage.c253
-rw-r--r--src/QuColor.c2
-rw-r--r--src/QuColors.c2
-rw-r--r--src/QuExt.c13
-rw-r--r--src/QuKeybd.c2
-rw-r--r--src/QuTextE16.c14
-rw-r--r--src/QuTextExt.c14
-rw-r--r--src/QuTree.c3
-rw-r--r--src/Quarks.c45
-rw-r--r--src/RaiseWin.c2
-rw-r--r--src/RdBitF.c35
-rw-r--r--src/RecolorC.c2
-rw-r--r--src/ReconfWin.c2
-rw-r--r--src/Region.c340
-rw-r--r--src/RegstFlt.c48
-rw-r--r--src/RepWindow.c2
-rw-r--r--src/RestackWs.c2
-rw-r--r--src/RotProp.c2
-rw-r--r--src/SelInput.c2
-rw-r--r--src/SendEvent.c7
-rw-r--r--src/SetBack.c2
-rw-r--r--src/SetCRects.c17
-rw-r--r--src/SetClMask.c2
-rw-r--r--src/SetClOrig.c2
-rw-r--r--src/SetDashes.c11
-rw-r--r--src/SetFPath.c1
-rw-r--r--src/SetFont.c2
-rw-r--r--src/SetFore.c2
-rw-r--r--src/SetFunc.c2
-rw-r--r--src/SetHints.c22
-rw-r--r--src/SetIFocus.c2
-rw-r--r--src/SetLStyle.c2
-rw-r--r--src/SetLocale.c164
-rw-r--r--src/SetPMask.c2
-rw-r--r--src/SetPntMap.c12
-rw-r--r--src/SetSOwner.c2
-rw-r--r--src/SetSSaver.c2
-rw-r--r--src/SetState.c2
-rw-r--r--src/SetStip.c2
-rw-r--r--src/SetTSOrig.c2
-rw-r--r--src/SetTile.c2
-rw-r--r--src/StBytes.c19
-rw-r--r--src/StColor.c2
-rw-r--r--src/StColors.c2
-rw-r--r--src/StNColor.c12
-rw-r--r--src/StName.c17
-rw-r--r--src/StrKeysym.c51
-rw-r--r--src/Sync.c2
-rw-r--r--src/Synchro.c32
-rw-r--r--src/Text.c12
-rw-r--r--src/Text16.c16
-rw-r--r--src/TextExt.c31
-rw-r--r--src/TextExt16.c31
-rw-r--r--src/TextToStr.c3
-rw-r--r--src/UIThrStubs.c2
-rw-r--r--src/UndefCurs.c2
-rw-r--r--src/UngrabBut.c2
-rw-r--r--src/UngrabKbd.c2
-rw-r--r--src/UngrabKey.c2
-rw-r--r--src/UngrabPtr.c2
-rw-r--r--src/UngrabSvr.c2
-rw-r--r--src/UninsCmap.c2
-rw-r--r--src/UnldFont.c4
-rw-r--r--src/UnmapSubs.c2
-rw-r--r--src/UnmapWin.c2
-rw-r--r--src/WMGeom.c27
-rw-r--r--src/WMProps.c20
-rw-r--r--src/WarpPtr.c2
-rw-r--r--src/WinEvent.c12
-rw-r--r--src/Window.c13
-rw-r--r--src/WrBitF.c22
-rw-r--r--src/XErrorDB156
-rw-r--r--src/XKeysymDB148
-rw-r--r--src/Xintatom.h2
-rw-r--r--src/Xintconn.h9
-rw-r--r--src/XlibInt.c658
-rw-r--r--src/XomGeneric.h151
-rw-r--r--src/Xresinternal.h2
-rw-r--r--src/Xrm.c565
-rw-r--r--src/evtomask.c9
-rw-r--r--src/globals.c4
-rw-r--r--src/imConv.c951
-rw-r--r--src/locking.c108
-rw-r--r--src/locking.h27
-rw-r--r--src/os2Stubs.c2
-rw-r--r--src/udcInf.c16
-rw-r--r--src/util/makekeys.c17
-rw-r--r--src/xcms/AddDIC.c11
-rw-r--r--src/xcms/AddSF.c14
-rw-r--r--src/xcms/CCC.c4
-rw-r--r--src/xcms/Cv.h2
-rw-r--r--src/xcms/CvColW.c17
-rw-r--r--src/xcms/CvCols.c111
-rw-r--r--src/xcms/HVC.c37
-rw-r--r--src/xcms/HVCGcC.c9
-rw-r--r--src/xcms/HVCGcV.c10
-rw-r--r--src/xcms/HVCGcVC.c10
-rw-r--r--src/xcms/HVCMnV.c9
-rw-r--r--src/xcms/HVCMxC.c11
-rw-r--r--src/xcms/HVCMxV.c10
-rw-r--r--src/xcms/HVCMxVC.c24
-rw-r--r--src/xcms/HVCMxVs.c10
-rw-r--r--src/xcms/HVCWpAj.c8
-rw-r--r--src/xcms/IdOfPr.c9
-rw-r--r--src/xcms/LRGB.c534
-rw-r--r--src/xcms/Lab.c23
-rw-r--r--src/xcms/LabGcC.c2
-rw-r--r--src/xcms/LabGcL.c7
-rw-r--r--src/xcms/LabGcLC.c7
-rw-r--r--src/xcms/LabMnL.c7
-rw-r--r--src/xcms/LabMxC.c7
-rw-r--r--src/xcms/LabMxL.c7
-rw-r--r--src/xcms/LabMxLC.c23
-rw-r--r--src/xcms/LabWpAj.c4
-rw-r--r--src/xcms/Luv.c22
-rw-r--r--src/xcms/LuvGcC.c2
-rw-r--r--src/xcms/LuvGcL.c7
-rw-r--r--src/xcms/LuvGcLC.c7
-rw-r--r--src/xcms/LuvMnL.c7
-rw-r--r--src/xcms/LuvMxC.c6
-rw-r--r--src/xcms/LuvMxL.c7
-rw-r--r--src/xcms/LuvMxLC.c23
-rw-r--r--src/xcms/LuvWpAj.c8
-rw-r--r--src/xcms/PrOfId.c8
-rw-r--r--src/xcms/QuCol.c7
-rw-r--r--src/xcms/QuCols.c4
-rw-r--r--src/xcms/SetCCC.c15
-rw-r--r--src/xcms/SetGetCols.c181
-rw-r--r--src/xcms/StCol.c6
-rw-r--r--src/xcms/StCols.c2
-rw-r--r--src/xcms/UNDEFINED.c42
-rw-r--r--src/xcms/XRGB.c46
-rw-r--r--src/xcms/XYZ.c25
-rw-r--r--src/xcms/Xcms.txt24
-rw-r--r--src/xcms/Xcmsint.h36
-rw-r--r--src/xcms/cmsAllCol.c4
-rw-r--r--src/xcms/cmsAllNCol.c20
-rw-r--r--src/xcms/cmsCmap.c30
-rw-r--r--src/xcms/cmsColNm.c118
-rw-r--r--src/xcms/cmsGlobls.c73
-rw-r--r--src/xcms/cmsInt.c56
-rw-r--r--src/xcms/cmsLkCol.c24
-rw-r--r--src/xcms/cmsMath.c3
-rw-r--r--src/xcms/cmsProp.c26
-rw-r--r--src/xcms/cmsTrig.c70
-rw-r--r--src/xcms/uvY.c22
-rw-r--r--src/xcms/xyY.c22
-rw-r--r--src/xkb/XKB.c184
-rw-r--r--src/xkb/XKBAlloc.c91
-rw-r--r--src/xkb/XKBBell.c54
-rw-r--r--src/xkb/XKBBind.c259
-rw-r--r--src/xkb/XKBCompat.c31
-rw-r--r--src/xkb/XKBCtrls.c85
-rw-r--r--src/xkb/XKBCvt.c368
-rw-r--r--src/xkb/XKBExtDev.c149
-rw-r--r--src/xkb/XKBGAlloc.c364
-rw-r--r--src/xkb/XKBGeom.c120
-rw-r--r--src/xkb/XKBGetByName.c18
-rw-r--r--src/xkb/XKBGetMap.c169
-rw-r--r--src/xkb/XKBList.c27
-rw-r--r--src/xkb/XKBMAlloc.c91
-rw-r--r--src/xkb/XKBMisc.c114
-rw-r--r--src/xkb/XKBNames.c79
-rw-r--r--src/xkb/XKBRdBuf.c95
-rw-r--r--src/xkb/XKBSetGeom.c97
-rw-r--r--src/xkb/XKBSetMap.c126
-rw-r--r--src/xkb/XKBUse.c189
-rw-r--r--src/xkb/XKBleds.c82
-rw-r--r--src/xkb/XKBlibint.h71
-rw-r--r--src/xlibi18n/ICWrap.c137
-rw-r--r--src/xlibi18n/IMWrap.c36
-rw-r--r--src/xlibi18n/XDefaultIMIF.c116
-rw-r--r--src/xlibi18n/XDefaultOMIF.c260
-rw-r--r--src/xlibi18n/XimImSw.h7
-rw-r--r--src/xlibi18n/XimThai.h93
-rw-r--r--src/xlibi18n/XimTrInt.h9
-rw-r--r--src/xlibi18n/XimTrX.h3
-rw-r--r--src/xlibi18n/XimTrans.h36
-rw-r--r--src/xlibi18n/Ximint.h374
-rw-r--r--src/xlibi18n/XimintL.h18
-rw-r--r--src/xlibi18n/XimintP.h30
-rw-r--r--src/xlibi18n/XlcDL.c478
-rw-r--r--src/xlibi18n/XlcGeneric.h22
-rw-r--r--src/xlibi18n/XlcPubI.h223
-rw-r--r--src/xlibi18n/XlcPublic.h291
-rw-r--r--src/xlibi18n/XlcSL.c5
-rw-r--r--src/xlibi18n/Xlcint.h463
-rw-r--r--src/xlibi18n/imKStoUCS.c14
-rw-r--r--src/xlibi18n/lcCT.c1587
-rw-r--r--src/xlibi18n/lcCharSet.c169
-rw-r--r--src/xlibi18n/lcConv.c148
-rw-r--r--src/xlibi18n/lcDB.c604
-rw-r--r--src/xlibi18n/lcDynamic.c31
-rw-r--r--src/xlibi18n/lcFile.c403
-rw-r--r--src/xlibi18n/lcGeneric.c572
-rw-r--r--src/xlibi18n/lcInit.c129
-rw-r--r--src/xlibi18n/lcPrTxt.c135
-rw-r--r--src/xlibi18n/lcPubWrap.c22
-rw-r--r--src/xlibi18n/lcPublic.c92
-rw-r--r--src/xlibi18n/lcRM.c219
-rw-r--r--src/xlibi18n/lcStd.c160
-rw-r--r--src/xlibi18n/lcTxtPr.c84
-rw-r--r--src/xlibi18n/lcUTF8.c10
-rw-r--r--src/xlibi18n/lcUniConv/8bit_tab_to_h.c2
-rw-r--r--src/xlibi18n/lcUniConv/README4
-rw-r--r--src/xlibi18n/lcUniConv/armscii_8.h42
-rw-r--r--src/xlibi18n/lcUniConv/ascii.h2
-rw-r--r--src/xlibi18n/lcUniConv/big5.h4
-rw-r--r--src/xlibi18n/lcUniConv/big5_emacs.h2
-rw-r--r--src/xlibi18n/lcUniConv/cjk_tab_to_h.c2
-rw-r--r--src/xlibi18n/lcUniConv/cp1133.h2
-rw-r--r--src/xlibi18n/lcUniConv/cp1251.h2
-rw-r--r--src/xlibi18n/lcUniConv/cp1255.h2
-rw-r--r--src/xlibi18n/lcUniConv/cp1256.h2
-rw-r--r--src/xlibi18n/lcUniConv/gb2312.h4
-rw-r--r--src/xlibi18n/lcUniConv/georgian_academy.h2
-rw-r--r--src/xlibi18n/lcUniConv/georgian_ps.h2
-rw-r--r--src/xlibi18n/lcUniConv/iso8859_1.h2
-rw-r--r--src/xlibi18n/lcUniConv/iso8859_10.h2
-rw-r--r--src/xlibi18n/lcUniConv/iso8859_11.h2
-rw-r--r--src/xlibi18n/lcUniConv/iso8859_13.h2
-rw-r--r--src/xlibi18n/lcUniConv/iso8859_14.h2
-rw-r--r--src/xlibi18n/lcUniConv/iso8859_15.h2
-rw-r--r--src/xlibi18n/lcUniConv/iso8859_16.h8
-rw-r--r--src/xlibi18n/lcUniConv/iso8859_2.h2
-rw-r--r--src/xlibi18n/lcUniConv/iso8859_3.h2
-rw-r--r--src/xlibi18n/lcUniConv/iso8859_4.h2
-rw-r--r--src/xlibi18n/lcUniConv/iso8859_5.h2
-rw-r--r--src/xlibi18n/lcUniConv/iso8859_6.h2
-rw-r--r--src/xlibi18n/lcUniConv/iso8859_7.h2
-rw-r--r--src/xlibi18n/lcUniConv/iso8859_8.h2
-rw-r--r--src/xlibi18n/lcUniConv/iso8859_9.h2
-rw-r--r--src/xlibi18n/lcUniConv/iso8859_9e.h2
-rw-r--r--src/xlibi18n/lcUniConv/jisx0201.h2
-rw-r--r--src/xlibi18n/lcUniConv/jisx0208.h4
-rw-r--r--src/xlibi18n/lcUniConv/jisx0212.h4
-rw-r--r--src/xlibi18n/lcUniConv/koi8_c.h2
-rw-r--r--src/xlibi18n/lcUniConv/koi8_r.h2
-rw-r--r--src/xlibi18n/lcUniConv/koi8_u.h2
-rw-r--r--src/xlibi18n/lcUniConv/ksc5601.h4
-rw-r--r--src/xlibi18n/lcUniConv/mulelao.h2
-rw-r--r--src/xlibi18n/lcUniConv/tatar_cyr.h2
-rw-r--r--src/xlibi18n/lcUniConv/tcvn.h2
-rw-r--r--src/xlibi18n/lcUniConv/tis620.h2
-rw-r--r--src/xlibi18n/lcUniConv/ucs2be.h2
-rw-r--r--src/xlibi18n/lcUniConv/utf8.h2
-rw-r--r--src/xlibi18n/lcUniConv/viscii.h2
-rw-r--r--src/xlibi18n/lcUtil.c81
-rw-r--r--src/xlibi18n/lcWrap.c272
-rw-r--r--src/xlibi18n/mbWMProps.c30
-rw-r--r--src/xlibi18n/mbWrap.c78
-rw-r--r--src/xlibi18n/utf8WMProps.c17
-rw-r--r--src/xlibi18n/utf8Wrap.c71
-rw-r--r--src/xlibi18n/wcWrap.c78
705 files changed, 26150 insertions, 24745 deletions
diff --git a/include/X11/ImUtil.h b/include/X11/ImUtil.h
index 3a00e3c6..89f03811 100644
--- a/include/X11/ImUtil.h
+++ b/include/X11/ImUtil.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/ImUtil.h,v 1.3 2003/04/23 22:04:58 torrey Exp $ */
+/* $XFree86: xc/lib/X11/ImUtil.h,v 1.2 2003/04/15 22:10:07 herrb Exp $ */
#ifndef _IMUTIL_H_
#define _IMUTIL_H_
diff --git a/include/X11/XKBlib.h b/include/X11/XKBlib.h
index 0369c8c6..6a5dc8a7 100644
--- a/include/X11/XKBlib.h
+++ b/include/X11/XKBlib.h
@@ -24,6 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
+/* $XFree86: xc/lib/X11/XKBlib.h,v 3.5 2003/04/17 02:06:31 dawes Exp $ */
#ifndef _XKBLIB_H_
#define _XKBLIB_H_
@@ -294,86 +295,67 @@ typedef struct _XkbKbdDpyState XkbKbdDpyStateRec,*XkbKbdDpyStatePtr;
_XFUNCPROTOBEGIN
extern Bool XkbIgnoreExtension(
-#if NeedFunctionPrototypes
Bool /* ignore */
-#endif
);
extern Display *XkbOpenDisplay(
-#if NeedFunctionPrototypes
char * /* name */,
int * /* ev_rtrn */,
int * /* err_rtrn */,
int * /* major_rtrn */,
int * /* minor_rtrn */,
int * /* reason */
-#endif
);
extern Bool XkbQueryExtension(
-#if NeedFunctionPrototypes
Display * /* dpy */,
int * /* opcodeReturn */,
int * /* eventBaseReturn */,
int * /* errorBaseReturn */,
int * /* majorRtrn */,
int * /* minorRtrn */
-#endif
);
extern Bool XkbUseExtension(
-#if NeedFunctionPrototypes
Display * /* dpy */,
int * /* major_rtrn */,
int * /* minor_rtrn */
-#endif
);
extern Bool XkbLibraryVersion(
-#if NeedFunctionPrototypes
int * /* libMajorRtrn */,
int * /* libMinorRtrn */
-#endif
);
extern unsigned int XkbSetXlibControls(
-#if NeedFunctionPrototypes
Display* /* dpy */,
unsigned int /* affect */,
unsigned int /* values */
-#endif
);
extern unsigned int XkbGetXlibControls(
-#if NeedFunctionPrototypes
Display* /* dpy */
-#endif
);
+extern unsigned int XkbXlibControlsImplemented(void);
+
typedef Atom (*XkbInternAtomFunc)(
-#if NeedFunctionPrototypes
Display * /* dpy */,
_Xconst char * /* name */,
Bool /* only_if_exists */
-#endif
);
typedef char * (*XkbGetAtomNameFunc)(
-#if NeedFunctionPrototypes
Display * /* dpy */,
Atom /* atom */
-#endif
);
extern void XkbSetAtomFuncs(
-#if NeedFunctionPrototypes
XkbInternAtomFunc /* getAtom */,
XkbGetAtomNameFunc /* getName */
-#endif
);
extern KeySym XkbKeycodeToKeysym(
-#if NeedFunctionPrototypes
Display * /* dpy */,
#if NeedWidePrototypes
unsigned int /* kc */,
@@ -382,87 +364,69 @@ extern KeySym XkbKeycodeToKeysym(
#endif
int /* group */,
int /* level */
-#endif
);
extern unsigned int XkbKeysymToModifiers(
-#if NeedFunctionPrototypes
Display * /* dpy */,
KeySym /* ks */
-#endif
);
extern Bool XkbLookupKeySym(
-#if NeedFunctionPrototypes
Display * /* dpy */,
KeyCode /* keycode */,
unsigned int /* modifiers */,
unsigned int * /* modifiers_return */,
KeySym * /* keysym_return */
-#endif
);
extern int XkbLookupKeyBinding(
-#if NeedFunctionPrototypes
Display * /* dpy */,
KeySym /* sym_rtrn */,
unsigned int /* mods */,
char * /* buffer */,
int /* nbytes */,
int * /* extra_rtrn */
-#endif
);
extern Bool XkbTranslateKeyCode(
-#if NeedFunctionPrototypes
XkbDescPtr /* xkb */,
KeyCode /* keycode */,
unsigned int /* modifiers */,
unsigned int * /* modifiers_return */,
KeySym * /* keysym_return */
-#endif
);
extern int XkbTranslateKeySym(
-#if NeedFunctionPrototypes
Display * /* dpy */,
register KeySym * /* sym_return */,
unsigned int /* modifiers */,
char * /* buffer */,
int /* nbytes */,
int * /* extra_rtrn */
-#endif
);
extern Bool XkbSetAutoRepeatRate(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* deviceSpec */,
unsigned int /* delay */,
unsigned int /* interval */
-#endif
);
extern Bool XkbGetAutoRepeatRate(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* deviceSpec */,
unsigned int * /* delayRtrn */,
unsigned int * /* intervalRtrn */
-#endif
);
extern Bool XkbChangeEnabledControls(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* deviceSpec */,
unsigned int /* affect */,
unsigned int /* values */
-#endif
);
extern Bool XkbDeviceBell(
-#if NeedFunctionPrototypes
Display * /* dpy */,
Window /* win */,
int /* deviceSpec */,
@@ -470,21 +434,17 @@ extern Bool XkbDeviceBell(
int /* bellID */,
int /* percent */,
Atom /* name */
-#endif
);
extern Bool XkbForceDeviceBell(
-#if NeedFunctionPrototypes
Display * /* dpy */,
int /* deviceSpec */,
int /* bellClass */,
int /* bellID */,
int /* percent */
-#endif
);
extern Bool XkbDeviceBellEvent(
-#if NeedFunctionPrototypes
Display * /* dpy */,
Window /* win */,
int /* deviceSpec */,
@@ -492,101 +452,78 @@ extern Bool XkbDeviceBellEvent(
int /* bellID */,
int /* percent */,
Atom /* name */
-#endif
);
extern Bool XkbBell(
-#if NeedFunctionPrototypes
Display * /* dpy */,
Window /* win */,
int /* percent */,
Atom /* name */
-#endif
);
extern Bool XkbForceBell(
-#if NeedFunctionPrototypes
Display * /* dpy */,
int /* percent */
-#endif
);
extern Bool XkbBellEvent(
-#if NeedFunctionPrototypes
Display * /* dpy */,
Window /* win */,
int /* percent */,
Atom /* name */
-#endif
);
extern Bool XkbSelectEvents(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* deviceID */,
unsigned int /* affect */,
unsigned int /* values */
-#endif
);
extern Bool XkbSelectEventDetails(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* deviceID */,
unsigned int /* eventType */,
unsigned long /* affect */,
unsigned long /* details */
-#endif
);
extern void XkbNoteMapChanges(
-#if NeedFunctionPrototypes
XkbMapChangesPtr /* old */,
XkbMapNotifyEvent * /* new */,
unsigned int /* wanted */
-#endif
);
extern void XkbNoteNameChanges(
-#if NeedFunctionPrototypes
XkbNameChangesPtr /* old */,
XkbNamesNotifyEvent * /* new */,
unsigned int /* wanted */
-#endif
);
extern Status XkbGetIndicatorState(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* deviceSpec */,
unsigned int * /* pStateRtrn */
-#endif
);
extern Status XkbGetDeviceIndicatorState(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* deviceSpec */,
unsigned int /* ledClass */,
unsigned int /* ledID */,
unsigned int * /* pStateRtrn */
-#endif
);
extern Status XkbGetIndicatorMap(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned long /* which */,
XkbDescPtr /* desc */
-#endif
);
extern Bool XkbSetIndicatorMap(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned long /* which */,
XkbDescPtr /* desc */
-#endif
);
#define XkbNoteIndicatorMapChanges(o,n,w) \
@@ -599,18 +536,15 @@ extern Bool XkbSetIndicatorMap(
(XkbSetIndicatorMap((d),(c)->map_changes,x))
extern Bool XkbGetNamedIndicator(
-#if NeedFunctionPrototypes
Display * /* dpy */,
Atom /* name */,
int * /* pNdxRtrn */,
Bool * /* pStateRtrn */,
XkbIndicatorMapPtr /* pMapRtrn */,
Bool * /* pRealRtrn */
-#endif
);
extern Bool XkbGetNamedDeviceIndicator(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* deviceSpec */,
unsigned int /* ledClass */,
@@ -620,22 +554,18 @@ extern Bool XkbGetNamedDeviceIndicator(
Bool * /* pStateRtrn */,
XkbIndicatorMapPtr /* pMapRtrn */,
Bool * /* pRealRtrn */
-#endif
);
extern Bool XkbSetNamedIndicator(
-#if NeedFunctionPrototypes
Display * /* dpy */,
Atom /* name */,
Bool /* changeState */,
Bool /* state */,
Bool /* createNewMap */,
XkbIndicatorMapPtr /* pMap */
-#endif
);
extern Bool XkbSetNamedDeviceIndicator(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* deviceSpec */,
unsigned int /* ledClass */,
@@ -645,696 +575,548 @@ extern Bool XkbSetNamedDeviceIndicator(
Bool /* state */,
Bool /* createNewMap */,
XkbIndicatorMapPtr /* pMap */
-#endif
);
extern Bool XkbLockModifiers(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* deviceSpec */,
unsigned int /* affect */,
unsigned int /* values */
-#endif
);
extern Bool XkbLatchModifiers(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* deviceSpec */,
unsigned int /* affect */,
unsigned int /* values */
-#endif
);
extern Bool XkbLockGroup(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* deviceSpec */,
unsigned int /* group */
-#endif
);
extern Bool XkbLatchGroup(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* deviceSpec */,
unsigned int /* group */
-#endif
);
extern Bool XkbSetServerInternalMods(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* deviceSpec */,
unsigned int /* affectReal */,
unsigned int /* realValues */,
unsigned int /* affectVirtual */,
unsigned int /* virtualValues */
-#endif
);
extern Bool XkbSetIgnoreLockMods(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* deviceSpec */,
unsigned int /* affectReal */,
unsigned int /* realValues */,
unsigned int /* affectVirtual */,
unsigned int /* virtualValues */
-#endif
);
extern Bool XkbVirtualModsToReal(
-#if NeedFunctionPrototypes
XkbDescPtr /* xkb */,
unsigned int /* virtual_mask */,
unsigned int * /* mask_rtrn */
-#endif
);
extern Bool XkbComputeEffectiveMap(
-#if NeedFunctionPrototypes
XkbDescPtr /* xkb */,
XkbKeyTypePtr /* type */,
unsigned char * /* map_rtrn */
-#endif
);
extern Status XkbInitCanonicalKeyTypes(
-#if NeedFunctionPrototypes
XkbDescPtr /* xkb */,
unsigned int /* which */,
int /* keypadVMod */
-#endif
);
extern XkbDescPtr XkbAllocKeyboard(
-#if NeedFunctionPrototypes
void
-#endif
);
extern void XkbFreeKeyboard(
-#if NeedFunctionPrototypes
XkbDescPtr /* xkb */,
unsigned int /* which */,
Bool /* freeDesc */
-#endif
);
extern Status XkbAllocClientMap(
-#if NeedFunctionPrototypes
XkbDescPtr /* xkb */,
unsigned int /* which */,
unsigned int /* nTypes */
-#endif
);
extern Status XkbAllocServerMap(
-#if NeedFunctionPrototypes
XkbDescPtr /* xkb */,
unsigned int /* which */,
unsigned int /* nActions */
-#endif
);
extern void XkbFreeClientMap(
-#if NeedFunctionPrototypes
XkbDescPtr /* xkb */,
unsigned int /* what */,
Bool /* freeMap */
-#endif
);
extern void XkbFreeServerMap(
-#if NeedFunctionPrototypes
XkbDescPtr /* xkb */,
unsigned int /* what */,
Bool /* freeMap */
-#endif
);
extern XkbKeyTypePtr XkbAddKeyType(
-#if NeedFunctionPrototypes
XkbDescPtr /* xkb */,
Atom /* name */,
int /* map_count */,
Bool /* want_preserve */,
int /* num_lvls */
-#endif
);
extern Status XkbAllocIndicatorMaps(
-#if NeedFunctionPrototypes
XkbDescPtr /* xkb */
-#endif
);
extern void XkbFreeIndicatorMaps(
-#if NeedFunctionPrototypes
XkbDescPtr /* xkb */
-#endif
);
extern XkbDescPtr XkbGetMap(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* which */,
unsigned int /* deviceSpec */
-#endif
);
extern Status XkbGetUpdatedMap(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* which */,
XkbDescPtr /* desc */
-#endif
);
extern Status XkbGetMapChanges(
-#if NeedFunctionPrototypes
Display * /* dpy */,
XkbDescPtr /* xkb */,
XkbMapChangesPtr /* changes */
-#endif
);
extern Status XkbRefreshKeyboardMapping(
-#if NeedFunctionPrototypes
XkbMapNotifyEvent * /* event */
-#endif
);
extern Status XkbGetKeyTypes(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* first */,
unsigned int /* num */,
XkbDescPtr /* xkb */
-#endif
);
extern Status XkbGetKeySyms(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* first */,
unsigned int /* num */,
XkbDescPtr /* xkb */
-#endif
);
extern Status XkbGetKeyActions(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* first */,
unsigned int /* num */,
XkbDescPtr /* xkb */
-#endif
);
extern Status XkbGetKeyBehaviors(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* firstKey */,
unsigned int /* nKeys */,
XkbDescPtr /* desc */
-#endif
);
extern Status XkbGetVirtualMods(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* which */,
XkbDescPtr /* desc */
-#endif
);
extern Status XkbGetKeyExplicitComponents(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* firstKey */,
unsigned int /* nKeys */,
XkbDescPtr /* desc */
-#endif
);
extern Status XkbGetKeyModifierMap(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* firstKey */,
unsigned int /* nKeys */,
XkbDescPtr /* desc */
-#endif
+);
+
+extern Status XkbGetKeyVirtualModMap(
+ Display * /* dpy */,
+ unsigned int /* first */,
+ unsigned int /* num */,
+ XkbDescPtr /* xkb */
);
extern Status XkbAllocControls(
-#if NeedFunctionPrototypes
XkbDescPtr /* xkb */,
unsigned int /* which*/
-#endif
);
extern void XkbFreeControls(
-#if NeedFunctionPrototypes
XkbDescPtr /* xkb */,
unsigned int /* which */,
Bool /* freeMap */
-#endif
);
extern Status XkbGetControls(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned long /* which */,
XkbDescPtr /* desc */
-#endif
);
extern Bool XkbSetControls(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned long /* which */,
XkbDescPtr /* desc */
-#endif
);
extern void XkbNoteControlsChanges(
-#if NeedFunctionPrototypes
XkbControlsChangesPtr /* old */,
XkbControlsNotifyEvent * /* new */,
unsigned int /* wanted */
-#endif
);
#define XkbGetControlsChanges(d,x,c) XkbGetControls(d,(c)->changed_ctrls,x)
#define XkbChangeControls(d,x,c) XkbSetControls(d,(c)->changed_ctrls,x)
extern Status XkbAllocCompatMap(
-#if NeedFunctionPrototypes
XkbDescPtr /* xkb */,
unsigned int /* which */,
unsigned int /* nInterpret */
-#endif
);
extern void XkbFreeCompatMap(
-#if NeedFunctionPrototypes
XkbDescPtr /* xkb */,
unsigned int /* which */,
Bool /* freeMap */
-#endif
);
extern Status XkbGetCompatMap(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* which */,
XkbDescPtr /* xkb */
-#endif
);
extern Bool XkbSetCompatMap(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* which */,
XkbDescPtr /* xkb */,
Bool /* updateActions */
-#endif
);
extern XkbSymInterpretPtr XkbAddSymInterpret(
-#if NeedFunctionPrototypes
XkbDescPtr /* xkb */,
XkbSymInterpretPtr /* si */,
Bool /* updateMap */,
XkbChangesPtr /* changes */
-#endif
);
extern Status XkbAllocNames(
-#if NeedFunctionPrototypes
XkbDescPtr /* xkb */,
unsigned int /* which */,
int /* nTotalRG */,
int /* nTotalAliases */
-#endif
);
extern Status XkbGetNames(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* which */,
XkbDescPtr /* desc */
-#endif
);
extern Bool XkbSetNames(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* which */,
unsigned int /* firstType */,
unsigned int /* nTypes */,
XkbDescPtr /* desc */
-#endif
);
extern Bool XkbChangeNames(
-#if NeedFunctionPrototypes
Display * /* dpy */,
XkbDescPtr /* xkb */,
XkbNameChangesPtr /* changes */
-#endif
);
extern void XkbFreeNames(
-#if NeedFunctionPrototypes
XkbDescPtr /* xkb */,
unsigned int /* which */,
Bool /* freeMap */
-#endif
);
extern Status XkbGetState(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* deviceSpec */,
XkbStatePtr /* rtrnState */
-#endif
);
extern Bool XkbSetMap(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* which */,
XkbDescPtr /* desc */
-#endif
);
extern Bool XkbChangeMap(
-#if NeedFunctionPrototypes
Display* /* dpy */,
XkbDescPtr /* desc */,
XkbMapChangesPtr /* changes */
-#endif
);
extern Bool XkbSetDetectableAutoRepeat(
-#if NeedFunctionPrototypes
Display * /* dpy */,
Bool /* detectable */,
Bool * /* supported */
-#endif
);
extern Bool XkbGetDetectableAutoRepeat(
-#if NeedFunctionPrototypes
Display * /* dpy */,
Bool * /* supported */
-#endif
);
extern Bool XkbSetAutoResetControls(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* changes */,
unsigned int * /* auto_ctrls */,
unsigned int * /* auto_values */
-#endif
);
extern Bool XkbGetAutoResetControls(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int * /* auto_ctrls */,
unsigned int * /* auto_ctrl_values */
-#endif
);
extern Bool XkbSetPerClientControls(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* change */,
unsigned int * /* values */
-#endif
);
extern Bool XkbGetPerClientControls(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int * /* ctrls */
-#endif
);
extern Status XkbCopyKeyType(
-#if NeedFunctionPrototypes
XkbKeyTypePtr /* from */,
XkbKeyTypePtr /* into */
-#endif
);
extern Status XkbCopyKeyTypes(
-#if NeedFunctionPrototypes
XkbKeyTypePtr /* from */,
XkbKeyTypePtr /* into */,
int /* num_types */
-#endif
);
extern Status XkbResizeKeyType(
-#if NeedFunctionPrototypes
XkbDescPtr /* xkb */,
int /* type_ndx */,
int /* map_count */,
Bool /* want_preserve */,
int /* new_num_lvls */
-#endif
);
extern KeySym *XkbResizeKeySyms(
-#if NeedFunctionPrototypes
XkbDescPtr /* desc */,
int /* forKey */,
int /* symsNeeded */
-#endif
);
extern XkbAction *XkbResizeKeyActions(
-#if NeedFunctionPrototypes
XkbDescPtr /* desc */,
int /* forKey */,
int /* actsNeeded */
-#endif
);
extern Status XkbChangeTypesOfKey(
-#if NeedFunctionPrototypes
XkbDescPtr /* xkb */,
int /* key */,
int /* num_groups */,
unsigned int /* groups */,
int * /* newTypes */,
XkbMapChangesPtr /* pChanges */
-#endif
+);
+
+extern Status XkbChangeKeycodeRange(
+ XkbDescPtr /* xkb */,
+ int /* minKC */,
+ int /* maxKC */,
+ XkbChangesPtr /* changes */
);
/***====================================================================***/
extern XkbComponentListPtr XkbListComponents(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* deviceSpec */,
XkbComponentNamesPtr /* ptrns */,
int * /* max_inout */
-#endif
);
extern void XkbFreeComponentList(
-#if NeedFunctionPrototypes
XkbComponentListPtr /* list */
-#endif
);
extern XkbDescPtr XkbGetKeyboard(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* which */,
unsigned int /* deviceSpec */
-#endif
);
extern XkbDescPtr XkbGetKeyboardByName(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* deviceSpec */,
XkbComponentNamesPtr /* names */,
unsigned int /* want */,
unsigned int /* need */,
Bool /* load */
-#endif
);
/***====================================================================***/
extern int XkbKeyTypesForCoreSymbols( /* returns # of groups */
-#if NeedFunctionPrototypes
XkbDescPtr /* xkb */, /* keyboard device */
int /* map_width */, /* width of core KeySym array */
KeySym * /* core_syms */, /* always mapWidth symbols */
unsigned int /* protected */, /* explicit key types */
int * /* types_inout */, /* always four type indices */
KeySym * /* xkb_syms_rtrn */ /* must have enough space */
-#endif
);
extern Bool XkbApplyCompatMapToKey( /* False only on error */
-#if NeedFunctionPrototypes
XkbDescPtr /* xkb */, /* keymap to be edited */
KeyCode /* key */, /* key to be updated */
XkbChangesPtr /* changes */ /* resulting changes to map */
-#endif
);
extern Bool XkbUpdateMapFromCore( /* False only on error */
-#if NeedFunctionPrototypes
XkbDescPtr /* xkb */, /* XKB keyboard to be edited */
KeyCode /* first_key */, /* first changed key */
int /* num_keys */, /* number of changed keys */
int /* map_width */, /* width of core keymap */
KeySym * /* core_keysyms */, /* symbols from core keymap */
XkbChangesPtr /* changes */ /* resulting changes */
-#endif
);
/***====================================================================***/
extern XkbDeviceLedInfoPtr XkbAddDeviceLedInfo(
-#if NeedFunctionPrototypes
XkbDeviceInfoPtr /* devi */,
unsigned int /* ledClass */,
unsigned int /* ledId */
-#endif
);
extern Status XkbResizeDeviceButtonActions(
-#if NeedFunctionPrototypes
XkbDeviceInfoPtr /* devi */,
unsigned int /* newTotal */
-#endif
);
extern XkbDeviceInfoPtr XkbAllocDeviceInfo(
-#if NeedFunctionPrototypes
unsigned int /* deviceSpec */,
unsigned int /* nButtons */,
unsigned int /* szLeds */
-#endif
);
extern void XkbFreeDeviceInfo(
-#if NeedFunctionPrototypes
XkbDeviceInfoPtr /* devi */,
unsigned int /* which */,
Bool /* freeDevI */
-#endif
);
extern void XkbNoteDeviceChanges(
-#if NeedFunctionPrototypes
XkbDeviceChangesPtr /* old */,
XkbExtensionDeviceNotifyEvent * /* new */,
unsigned int /* wanted */
-#endif
);
extern XkbDeviceInfoPtr XkbGetDeviceInfo(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* which */,
unsigned int /* deviceSpec */,
unsigned int /* ledClass */,
unsigned int /* ledID */
-#endif
);
extern Status XkbGetDeviceInfoChanges(
-#if NeedFunctionPrototypes
Display * /* dpy */,
XkbDeviceInfoPtr /* devi */,
XkbDeviceChangesPtr /* changes */
-#endif
);
extern Status XkbGetDeviceButtonActions(
-#if NeedFunctionPrototypes
Display * /* dpy */,
XkbDeviceInfoPtr /* devi */,
Bool /* all */,
unsigned int /* first */,
unsigned int /* nBtns */
-#endif
);
extern Status XkbGetDeviceLedInfo(
-#if NeedFunctionPrototypes
Display * /* dpy */,
XkbDeviceInfoPtr /* devi */,
unsigned int /* ledClass (class, XIDflt, XIAll) */,
unsigned int /* ledId (id, XIDflt, XIAll) */,
unsigned int /* which (XkbXI_Indicator{Names,Map}Mask */
-#endif
);
extern Bool XkbSetDeviceInfo(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* which */,
XkbDeviceInfoPtr /* devi */
-#endif
);
extern Bool XkbChangeDeviceInfo(
-#if NeedFunctionPrototypes
Display* /* dpy */,
XkbDeviceInfoPtr /* desc */,
XkbDeviceChangesPtr /* changes */
-#endif
);
extern Bool XkbSetDeviceLedInfo(
-#if NeedFunctionPrototypes
Display * /* dpy */,
XkbDeviceInfoPtr /* devi */,
unsigned int /* ledClass */,
unsigned int /* ledID */,
unsigned int /* which */
-#endif
);
extern Bool XkbSetDeviceButtonActions(
-#if NeedFunctionPrototypes
Display * /* dpy */,
XkbDeviceInfoPtr /* devi */,
unsigned int /* first */,
unsigned int /* nBtns */
-#endif
);
/***====================================================================***/
extern char XkbToControl(
-#if NeedFunctionPrototypes
char /* c */
-#endif
);
/***====================================================================***/
extern Bool XkbSetDebuggingFlags(
-#if NeedFunctionPrototypes
Display * /* dpy */,
unsigned int /* mask */,
unsigned int /* flags */,
@@ -1343,7 +1125,25 @@ extern Bool XkbSetDebuggingFlags(
unsigned int /* ctrls */,
unsigned int * /* rtrn_flags */,
unsigned int * /* rtrn_ctrls */
-#endif
+);
+
+extern Bool XkbApplyVirtualModChanges(
+ XkbDescPtr /* xkb */,
+ unsigned int /* changed */,
+ XkbChangesPtr /* changes */
+);
+
+extern Bool XkbUpdateActionVirtualMods(
+ XkbDescPtr /* xkb */,
+ XkbAction * /* act */,
+ unsigned int /* changed */
+);
+
+extern void XkbUpdateKeyTypeVirtualMods(
+ XkbDescPtr /* xkb */,
+ XkbKeyTypePtr /* type */,
+ unsigned int /* changed */,
+ XkbChangesPtr /* changes */
);
_XFUNCPROTOEND
diff --git a/include/X11/Xcms.h b/include/X11/Xcms.h
index d9e9c3b4..779bc52f 100644
--- a/include/X11/Xcms.h
+++ b/include/X11/Xcms.h
@@ -27,6 +27,7 @@
* DESCRIPTION
* Public include file for X Color Management System
*/
+/* $XFree86: xc/lib/X11/Xcms.h,v 1.7 2003/11/03 03:46:26 dawes Exp $ */
#ifndef _XCMS_H_
#define _XCMS_H_
@@ -199,17 +200,14 @@ typedef struct _XcmsPerScrnInfo {
typedef struct _XcmsCCC *XcmsCCC;
typedef Status (*XcmsCompressionProc)( /* Gamut Compression Proc */
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColor* /* colors_in_out */,
unsigned int /* ncolors */,
unsigned int /* index */,
Bool* /* compression_flags_return */
-#endif
);
typedef Status (*XcmsWhiteAdjustProc)( /* White Point Adjust Proc */
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColor* /* initial_white_point*/,
XcmsColor* /* target_white_point*/,
@@ -217,7 +215,6 @@ typedef Status (*XcmsWhiteAdjustProc)( /* White Point Adjust Proc */
XcmsColor* /* colors_in_out */,
unsigned int /* ncolors */,
Bool* /* compression_flags_return */
-#endif
);
/*
@@ -238,31 +235,54 @@ typedef struct _XcmsCCC {
} XcmsCCCRec;
typedef Status (*XcmsScreenInitProc)( /* Screen Initialization Proc */
-#if NeedFunctionPrototypes
Display* /* dpy */,
int /* screen_number */,
XcmsPerScrnInfo* /* screen_info */
-#endif
);
typedef void (*XcmsScreenFreeProc)(
-#if NeedFunctionPrototypes
XPointer /* screenData */
-#endif
);
/*
* Function List Pointer -- pointer to an array of function pointers.
* The end of list is indicated by a NULL pointer.
*/
-typedef Status (*XcmsConversionProc)();
+/*
+ * XXX: The use of the XcmsConversionProc type is broken. The
+ * device-independent colour conversion code uses it as:
+
+typedef Status (*XcmsConversionProc)(XcmsCCC, XcmsColor *, XcmsColor *,
+ unsigned int);
+
+ * while the device-dependent code uses it as:
+
+typedef Status (*XcmsConversionProc)(XcmsCCC, XcmsColor *, unsigned int,
+ Bool *);
+
+ * Until this is reworked, it's probably best to leave it unprotoized.
+ * The code works regardless.
+ */
+typedef Status (*XcmsDDConversionProc)( /* using device-dependent version */
+ XcmsCCC /* ccc */,
+ XcmsColor* /* pcolors_in_out */,
+ unsigned int /* ncolors */,
+ Bool* /* pCompressed */
+ );
+
+typedef Status (*XcmsDIConversionProc)( /* using device-independent version */
+ XcmsCCC /* ccc */,
+ XcmsColor* /* white_point */,
+ XcmsColor* /* pcolors_in_out */,
+ unsigned int /* ncolors */
+ );
+
+typedef XcmsDIConversionProc XcmsConversionProc;
typedef XcmsConversionProc *XcmsFuncListPtr;
typedef int (*XcmsParseStringProc)( /* Color String Parsing Proc */
-#if NeedFunctionPrototypes
char* /* color_string */,
XcmsColor* /* color_return */
-#endif
);
/*
@@ -270,7 +290,7 @@ typedef int (*XcmsParseStringProc)( /* Color String Parsing Proc */
* or Device-Dependent)
*/
typedef struct _XcmsColorSpace {
- char *prefix; /* Prefix of string format. */
+ const char *prefix; /* Prefix of string format. */
XcmsColorFormat id; /* Format ID number. */
XcmsParseStringProc parseString;
/* String format parsing function */
@@ -317,120 +337,93 @@ typedef struct _XcmsFunctionSet {
_XFUNCPROTOBEGIN
extern Status XcmsAddColorSpace (
-#if NeedFunctionPrototypes
XcmsColorSpace* /* pColorSpace */
-#endif
);
extern Status XcmsAddFunctionSet (
-#if NeedFunctionPrototypes
XcmsFunctionSet* /* functionSet */
-#endif
);
extern Status XcmsAllocColor (
-#if NeedFunctionPrototypes
Display* /* dpy */,
Colormap /* colormap */,
XcmsColor* /* color_in_out */,
XcmsColorFormat /* result_format */
-#endif
);
extern Status XcmsAllocNamedColor (
-#if NeedFunctionPrototypes
Display* /* dpy */,
Colormap /* colormap */,
_Xconst char* /* color_string */,
XcmsColor* /* color_scrn_return */,
XcmsColor* /* color_exact_return */,
XcmsColorFormat /* result_format */
-#endif
);
extern XcmsCCC XcmsCCCOfColormap (
-#if NeedFunctionPrototypes
Display* /* dpy */,
Colormap /* colormap */
-#endif
);
extern Status XcmsCIELabClipab(
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColor* /* colors_in_out */,
unsigned int /* ncolors */,
unsigned int /* index */,
Bool* /* compression_flags_return */
-#endif
);
extern Status XcmsCIELabClipL(
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColor* /* colors_in_out */,
unsigned int /* ncolors */,
unsigned int /* index */,
Bool* /* compression_flags_return */
-#endif
);
extern Status XcmsCIELabClipLab(
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColor* /* colors_in_out */,
unsigned int /* ncolors */,
unsigned int /* index */,
Bool* /* compression_flags_return */
-#endif
);
extern Status XcmsCIELabQueryMaxC (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsFloat /* hue_angle */,
XcmsFloat /* L_star */,
XcmsColor* /* color_return */
-#endif
);
extern Status XcmsCIELabQueryMaxL (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsFloat /* hue_angle */,
XcmsFloat /* chroma */,
XcmsColor* /* color_return */
-#endif
);
extern Status XcmsCIELabQueryMaxLC (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsFloat /* hue_angle */,
XcmsColor* /* color_return */
-#endif
);
extern Status XcmsCIELabQueryMinL (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsFloat /* hue_angle */,
XcmsFloat /* chroma */,
XcmsColor* /* color_return */
-#endif
);
extern Status XcmsCIELabToCIEXYZ (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColor* /* white_point */,
XcmsColor* /* colors */,
unsigned int /* ncolors */
-#endif
);
extern Status XcmsCIELabWhiteShiftColors(
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColor* /* initial_white_point*/,
XcmsColor* /* target_white_point*/,
@@ -438,85 +431,67 @@ extern Status XcmsCIELabWhiteShiftColors(
XcmsColor* /* colors_in_out */,
unsigned int /* ncolors */,
Bool* /* compression_flags_return */
-#endif
);
extern Status XcmsCIELuvClipL(
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColor* /* colors_in_out */,
unsigned int /* ncolors */,
unsigned int /* index */,
Bool* /* compression_flags_return */
-#endif
);
extern Status XcmsCIELuvClipLuv(
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColor* /* colors_in_out */,
unsigned int /* ncolors */,
unsigned int /* index */,
Bool* /* compression_flags_return */
-#endif
);
extern Status XcmsCIELuvClipuv(
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColor* /* colors_in_out */,
unsigned int /* ncolors */,
unsigned int /* index */,
Bool* /* compression_flags_return */
-#endif
);
extern Status XcmsCIELuvQueryMaxC (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsFloat /* hue_angle */,
XcmsFloat /* L_star */,
XcmsColor* /* color_return */
-#endif
);
extern Status XcmsCIELuvQueryMaxL (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsFloat /* hue_angle */,
XcmsFloat /* chroma */,
XcmsColor* /* color_return */
-#endif
);
extern Status XcmsCIELuvQueryMaxLC (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsFloat /* hue_angle */,
XcmsColor* /* color_return */
-#endif
);
extern Status XcmsCIELuvQueryMinL (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsFloat /* hue_angle */,
XcmsFloat /* chroma */,
XcmsColor* /* color_return */
-#endif
);
extern Status XcmsCIELuvToCIEuvY (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColor* /* white_point */,
XcmsColor* /* colors */,
unsigned int /* ncolors */
-#endif
);
extern Status XcmsCIELuvWhiteShiftColors(
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColor* /* initial_white_point*/,
XcmsColor* /* target_white_point*/,
@@ -524,99 +499,77 @@ extern Status XcmsCIELuvWhiteShiftColors(
XcmsColor* /* colors_in_out */,
unsigned int /* ncolors */,
Bool* /* compression_flags_return */
-#endif
);
extern Status XcmsCIEXYZToCIELab (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColor* /* white_point */,
XcmsColor* /* colors */,
unsigned int /* ncolors */
-#endif
);
extern Status XcmsCIEXYZToCIEuvY (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColor* /* white_point */,
XcmsColor* /* colors */,
unsigned int /* ncolors */
-#endif
);
extern Status XcmsCIEXYZToCIExyY (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColor* /* white_point */,
XcmsColor* /* colors */,
unsigned int /* ncolors */
-#endif
);
extern Status XcmsCIEXYZToRGBi (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColor* /* colors */,
unsigned int /* ncolors */,
Bool* /* compression_flags_return */
-#endif
);
extern Status XcmsCIEuvYToCIELuv (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColor* /* white_point */,
XcmsColor* /* colors */,
unsigned int /* ncolors */
-#endif
);
extern Status XcmsCIEuvYToCIEXYZ (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColor* /* white_point */,
XcmsColor* /* colors */,
unsigned int /* ncolors */
-#endif
);
extern Status XcmsCIEuvYToTekHVC (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColor* /* white_point */,
XcmsColor* /* colors */,
unsigned int /* ncolors */
-#endif
);
extern Status XcmsCIExyYToCIEXYZ (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColor* /* white_point */,
XcmsColor* /* colors */,
unsigned int /* ncolors */
-#endif
);
extern XcmsColor *XcmsClientWhitePointOfCCC (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */
-#endif
);
extern Status XcmsConvertColors (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColor* /* colorArry_in_out */,
unsigned int /* nColors */,
XcmsColorFormat /* targetFormat */,
Bool* /* compArry_return */
-#endif
);
extern XcmsCCC XcmsCreateCCC (
-#if NeedFunctionPrototypes
Display* /* dpy */,
int /* screenNumber */,
Visual* /* visual */,
@@ -625,283 +578,215 @@ extern XcmsCCC XcmsCreateCCC (
XPointer /* gamutCompClientData */,
XcmsWhiteAdjustProc /* whitePtAdjProc */,
XPointer /* whitePtAdjClientData */
-#endif
);
extern XcmsCCC XcmsDefaultCCC (
-#if NeedFunctionPrototypes
Display* /* dpy */,
int /* screenNumber */
-#endif
);
extern Display *XcmsDisplayOfCCC (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */
-#endif
);
extern XcmsColorFormat XcmsFormatOfPrefix (
-#if NeedFunctionPrototypes
char* /* prefix */
-#endif
);
extern void XcmsFreeCCC (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */
-#endif
);
extern Status XcmsLookupColor (
-#if NeedFunctionPrototypes
Display* /* dpy */,
Colormap /* colormap */,
_Xconst char* /* color_string */,
XcmsColor* /* pColor_exact_in_out */,
XcmsColor* /* pColor_scrn_in_out */,
XcmsColorFormat /* result_format */
-#endif
);
extern char *XcmsPrefixOfFormat (
-#if NeedFunctionPrototypes
XcmsColorFormat /* id */
-#endif
);
extern Status XcmsQueryBlack (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColorFormat /* target_format */,
XcmsColor* /* color_return */
-#endif
);
extern Status XcmsQueryBlue (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColorFormat /* target_format */,
XcmsColor* /* color_return */
-#endif
);
extern Status XcmsQueryColor (
-#if NeedFunctionPrototypes
Display* /* dpy */,
Colormap /* colormap */,
XcmsColor* /* pColor_in_out */,
XcmsColorFormat /* result_format */
-#endif
);
extern Status XcmsQueryColors (
-#if NeedFunctionPrototypes
Display* /* dpy */,
Colormap /* colormap */,
XcmsColor* /* colorArry_in_out */,
unsigned int /* nColors */,
XcmsColorFormat /* result_format */
-#endif
);
extern Status XcmsQueryGreen (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColorFormat /* target_format */,
XcmsColor* /* color_return */
-#endif
);
extern Status XcmsQueryRed (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColorFormat /* target_format */,
XcmsColor* /* color_return */
-#endif
);
extern Status XcmsQueryWhite (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColorFormat /* target_format */,
XcmsColor* /* color_return */
-#endif
);
extern Status XcmsRGBiToCIEXYZ (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColor* /* colors */,
unsigned int /* ncolors */,
Bool* /* compression_flags_return */
-#endif
);
extern Status XcmsRGBiToRGB (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColor* /* colors */,
unsigned int /* ncolors */,
Bool* /* compression_flags_return */
-#endif
);
extern Status XcmsRGBToRGBi (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColor* /* colors */,
unsigned int /* ncolors */,
Bool* /* compression_flags_return */
-#endif
);
extern int XcmsScreenNumberOfCCC (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */
-#endif
);
extern XcmsColor *XcmsScreenWhitePointOfCCC (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */
-#endif
);
extern XcmsCCC XcmsSetCCCOfColormap(
-#if NeedFunctionPrototypes
Display* /* dpy */,
Colormap /* colormap */,
XcmsCCC /* ccc */
-#endif
);
extern XcmsCompressionProc XcmsSetCompressionProc (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsCompressionProc /* compression_proc */,
XPointer /* client_data */
-#endif
);
extern XcmsWhiteAdjustProc XcmsSetWhiteAdjustProc (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsWhiteAdjustProc /* white_adjust_proc */,
XPointer /* client_data */
-#endif
);
extern Status XcmsSetWhitePoint (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColor* /* color */
-#endif
);
extern Status XcmsStoreColor (
-#if NeedFunctionPrototypes
Display* /* dpy */,
Colormap /* colormap */,
XcmsColor* /* pColor_in */
-#endif
);
extern Status XcmsStoreColors (
-#if NeedFunctionPrototypes
Display* /* dpy */,
Colormap /* colormap */,
XcmsColor* /* colorArry_in */,
unsigned int /* nColors */,
Bool* /* compArry_return */
-#endif
);
extern Status XcmsTekHVCClipC(
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColor* /* colors_in_out */,
unsigned int /* ncolors */,
unsigned int /* index */,
Bool* /* compression_flags_return */
-#endif
);
extern Status XcmsTekHVCClipV(
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColor* /* colors_in_out */,
unsigned int /* ncolors */,
unsigned int /* index */,
Bool* /* compression_flags_return */
-#endif
);
extern Status XcmsTekHVCClipVC(
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColor* /* colors_in_out */,
unsigned int /* ncolors */,
unsigned int /* index */,
Bool* /* compression_flags_return */
-#endif
);
extern Status XcmsTekHVCQueryMaxC (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsFloat /* hue */,
XcmsFloat /* value */,
XcmsColor* /* color_return */
-#endif
);
extern Status XcmsTekHVCQueryMaxV (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsFloat /* hue */,
XcmsFloat /* chroma */,
XcmsColor* /* color_return */
-#endif
);
extern Status XcmsTekHVCQueryMaxVC (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsFloat /* hue */,
XcmsColor* /* color_return */
-#endif
);
extern Status XcmsTekHVCQueryMaxVSamples (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsFloat /* hue */,
XcmsColor* /* colors_return */,
unsigned int /* nsamples */
-#endif
);
extern Status XcmsTekHVCQueryMinV (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsFloat /* hue */,
XcmsFloat /* chroma */,
XcmsColor* /* color_return */
-#endif
);
extern Status XcmsTekHVCToCIEuvY (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColor* /* white_point */,
XcmsColor* /* colors */,
unsigned int /* ncolors */
-#endif
);
extern Status XcmsTekHVCWhiteShiftColors(
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */,
XcmsColor* /* initial_white_point*/,
XcmsColor* /* target_white_point*/,
@@ -909,13 +794,10 @@ extern Status XcmsTekHVCWhiteShiftColors(
XcmsColor* /* colors_in_out */,
unsigned int /* ncolors */,
Bool* /* compression_flags_return */
-#endif
);
extern Visual *XcmsVisualOfCCC (
-#if NeedFunctionPrototypes
XcmsCCC /* ccc */
-#endif
);
_XFUNCPROTOEND
diff --git a/include/X11/Xlib.h b/include/X11/Xlib.h
index 0cf9d86e..09059f69 100644
--- a/include/X11/Xlib.h
+++ b/include/X11/Xlib.h
@@ -1,3 +1,4 @@
+/* $XdotOrg: lib/X11/include/X11/Xlib.h,v 1.2 2004-04-23 18:43:24 eich Exp $ */
/* $Xorg: Xlib.h,v 1.6 2001/02/09 02:03:38 xorgcvs Exp $ */
/*
@@ -24,6 +25,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/Xlib.h,v 3.25 2003/11/17 22:20:10 dawes Exp $ */
/*
@@ -51,6 +53,10 @@ in this Software without prior written authorization from The Open Group.
#endif
#endif /* USG */
+#if defined(SCO325) || defined(__USLC__)
+#include <stdint.h>
+#endif
+
#include <X11/X.h>
/* applications should not depend on these two headers being included! */
@@ -59,16 +65,47 @@ in this Software without prior written authorization from The Open Group.
#ifndef X_WCHAR
#ifdef X_NOT_STDC_ENV
+#ifndef SCO324
+#ifndef ISC
#define X_WCHAR
#endif
#endif
+#endif
+#endif
#ifndef X_WCHAR
#include <stddef.h>
#else
+#ifdef __UNIXOS2__
+#include <stdlib.h>
+#else
/* replace this with #include or typedef appropriate for your system */
typedef unsigned long wchar_t;
#endif
+#endif
+
+#if defined(ISC) && defined(USE_XMBTOWC)
+#define wctomb(a,b) _Xwctomb(a,b)
+#define mblen(a,b) _Xmblen(a,b)
+#ifndef USE_XWCHAR_STRING
+#define mbtowc(a,b,c) _Xmbtowc(a,b,c)
+#endif
+#endif
+
+extern int
+_Xmblen(
+#ifdef ISC
+ char const *str,
+ size_t len
+#else
+ char *str,
+ int len
+#endif
+ );
+
+/* API mentioning "UTF8" or "utf8" is an XFree86 extension, introduced in
+ November 2000. Its presence is indicated through the following macro. */
+#define X_HAVE_UTF8_STRING 1
typedef char *XPointer;
@@ -145,7 +182,9 @@ typedef char *XPointer;
typedef struct _XExtData {
int number; /* number returned by XRegisterExtension */
struct _XExtData *next; /* next item on list of data for structure */
- int (*free_private)(); /* called to free private storage */
+ int (*free_private)( /* called to free private storage */
+ struct _XExtData *extension
+ );
XPointer private_data; /* data private to this extension. */
} XExtData;
@@ -340,6 +379,16 @@ typedef struct {
} XHostAddress;
/*
+ * Data structure for ServerFamilyInterpreted addresses in host routines
+ */
+typedef struct {
+ int typelength; /* length of type string, in bytes */
+ int valuelength; /* length of value string, in bytes */
+ char *type; /* pointer to where to find the type string */
+ char *value; /* pointer to where to find the address */
+} XServerInterpretedAddress;
+
+/*
* Data structure for "image" data, used by image manipulation routines.
*/
typedef struct _XImage {
@@ -359,20 +408,22 @@ typedef struct _XImage {
unsigned long blue_mask;
XPointer obdata; /* hook for the object routines to hang on */
struct funcs { /* image manipulation routines */
- struct _XImage *(*create_image)();
-#if NeedFunctionPrototypes
+ struct _XImage *(*create_image)(
+ struct _XDisplay* /* display */,
+ Visual* /* visual */,
+ unsigned int /* depth */,
+ int /* format */,
+ int /* offset */,
+ char* /* data */,
+ unsigned int /* width */,
+ unsigned int /* height */,
+ int /* bitmap_pad */,
+ int /* bytes_per_line */);
int (*destroy_image) (struct _XImage *);
unsigned long (*get_pixel) (struct _XImage *, int, int);
int (*put_pixel) (struct _XImage *, int, int, unsigned long);
struct _XImage *(*sub_image)(struct _XImage *, int, int, unsigned int, unsigned int);
int (*add_pixel) (struct _XImage *, long);
-#else
- int (*destroy_image)();
- unsigned long (*get_pixel)();
- int (*put_pixel)();
- struct _XImage *(*sub_image)();
- int (*add_pixel)();
-#endif
} f;
} XImage;
@@ -489,7 +540,9 @@ _XDisplay
XID private4;
XID private5;
int private6;
- XID (*resource_alloc)();/* allocator function */
+ XID (*resource_alloc)( /* allocator function */
+ struct _XDisplay*
+ );
int byte_order; /* screen byte order, LSBFirst, MSBFirst */
int bitmap_unit; /* padding and data requirements */
int bitmap_pad; /* padding requirements on bitmaps */
@@ -508,7 +561,9 @@ _XDisplay
XPointer private14;
unsigned max_request_size; /* maximum number 32 bit words in request*/
struct _XrmHashBucketRec *db;
- int (*private15)();
+ int (*private15)(
+ struct _XDisplay*
+ );
char *display_name; /* "host:display" string used on this connect*/
int default_screen; /* default screen for operations */
int nscreens; /* number of screens on this server*/
@@ -528,9 +583,7 @@ Display,
#endif
*_XPrivDisplay;
-#if NeedFunctionPrototypes /* prototypes require event type definitions */
#undef _XEVENT_
-#endif
#ifndef _XEVENT_
/*
* Definitions of specific events.
@@ -541,7 +594,7 @@ typedef struct {
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
Window window; /* "event" window it is reported relative to */
- Window root; /* root window that the event occured on */
+ Window root; /* root window that the event occurred on */
Window subwindow; /* child window */
Time time; /* milliseconds */
int x, y; /* pointer x, y coordinates in event window */
@@ -559,7 +612,7 @@ typedef struct {
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
Window window; /* "event" window it is reported relative to */
- Window root; /* root window that the event occured on */
+ Window root; /* root window that the event occurred on */
Window subwindow; /* child window */
Time time; /* milliseconds */
int x, y; /* pointer x, y coordinates in event window */
@@ -577,7 +630,7 @@ typedef struct {
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
Window window; /* "event" window reported relative to */
- Window root; /* root window that the event occured on */
+ Window root; /* root window that the event occurred on */
Window subwindow; /* child window */
Time time; /* milliseconds */
int x, y; /* pointer x, y coordinates in event window */
@@ -594,7 +647,7 @@ typedef struct {
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
Window window; /* "event" window reported relative to */
- Window root; /* root window that the event occured on */
+ Window root; /* root window that the event occurred on */
Window subwindow; /* child window */
Time time; /* milliseconds */
int x, y; /* pointer x, y coordinates in event window */
@@ -1037,7 +1090,9 @@ typedef struct {
XRectangle max_logical_extent;
} XFontSetExtents;
+/* unused:
typedef void (*XOMProc)();
+ */
typedef struct _XOM *XOM;
typedef struct _XOC *XOC, *XFontSet;
@@ -1091,11 +1146,27 @@ typedef struct {
char **font_name_list;
} XOMFontInfo;
-typedef void (*XIMProc)();
-
typedef struct _XIM *XIM;
typedef struct _XIC *XIC;
+typedef void (*XIMProc)(
+ XIM,
+ XPointer,
+ XPointer
+);
+
+typedef Bool (*XICProc)(
+ XIC,
+ XPointer,
+ XPointer
+);
+
+typedef void (*XIDProc)(
+ Display*,
+ XPointer,
+ XPointer
+);
+
typedef unsigned long XIMStyle;
typedef struct {
@@ -1163,17 +1234,18 @@ typedef struct {
#define XLookupKeySym 3
#define XLookupBoth 4
-#if NeedFunctionPrototypes
typedef void *XVaNestedList;
-#else
-typedef XPointer XVaNestedList;
-#endif
typedef struct {
XPointer client_data;
XIMProc callback;
} XIMCallback;
+typedef struct {
+ XPointer client_data;
+ XICProc callback;
+} XICCallback;
+
typedef unsigned long XIMFeedback;
#define XIMReverse 1L
@@ -1324,32 +1396,25 @@ _XFUNCPROTOBEGIN
extern int _Xdebug;
extern XFontStruct *XLoadQueryFont(
-#if NeedFunctionPrototypes
Display* /* display */,
_Xconst char* /* name */
-#endif
);
extern XFontStruct *XQueryFont(
-#if NeedFunctionPrototypes
Display* /* display */,
XID /* font_ID */
-#endif
);
extern XTimeCoord *XGetMotionEvents(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
Time /* start */,
Time /* stop */,
int* /* nevents_return */
-#endif
);
extern XModifierKeymap *XDeleteModifiermapEntry(
-#if NeedFunctionPrototypes
XModifierKeymap* /* modmap */,
#if NeedWidePrototypes
unsigned int /* keycode_entry */,
@@ -1357,17 +1422,13 @@ extern XModifierKeymap *XDeleteModifiermapEntry(
KeyCode /* keycode_entry */,
#endif
int /* modifier */
-#endif
);
extern XModifierKeymap *XGetModifierMapping(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern XModifierKeymap *XInsertModifiermapEntry(
-#if NeedFunctionPrototypes
XModifierKeymap* /* modmap */,
#if NeedWidePrototypes
unsigned int /* keycode_entry */,
@@ -1375,17 +1436,13 @@ extern XModifierKeymap *XInsertModifiermapEntry(
KeyCode /* keycode_entry */,
#endif
int /* modifier */
-#endif
);
extern XModifierKeymap *XNewModifiermap(
-#if NeedFunctionPrototypes
int /* max_keys_per_mod */
-#endif
);
extern XImage *XCreateImage(
-#if NeedFunctionPrototypes
Display* /* display */,
Visual* /* visual */,
unsigned int /* depth */,
@@ -1396,15 +1453,11 @@ extern XImage *XCreateImage(
unsigned int /* height */,
int /* bitmap_pad */,
int /* bytes_per_line */
-#endif
);
extern Status XInitImage(
-#if NeedFunctionPrototypes
XImage* /* image */
-#endif
);
extern XImage *XGetImage(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
int /* x */,
@@ -1413,10 +1466,8 @@ extern XImage *XGetImage(
unsigned int /* height */,
unsigned long /* plane_mask */,
int /* format */
-#endif
);
extern XImage *XGetSubImage(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
int /* x */,
@@ -1428,117 +1479,87 @@ extern XImage *XGetSubImage(
XImage* /* dest_image */,
int /* dest_x */,
int /* dest_y */
-#endif
);
/*
* X function declarations.
*/
extern Display *XOpenDisplay(
-#if NeedFunctionPrototypes
_Xconst char* /* display_name */
-#endif
);
extern void XrmInitialize(
-#if NeedFunctionPrototypes
void
-#endif
);
extern char *XFetchBytes(
-#if NeedFunctionPrototypes
Display* /* display */,
int* /* nbytes_return */
-#endif
);
extern char *XFetchBuffer(
-#if NeedFunctionPrototypes
Display* /* display */,
int* /* nbytes_return */,
int /* buffer */
-#endif
);
extern char *XGetAtomName(
-#if NeedFunctionPrototypes
Display* /* display */,
Atom /* atom */
-#endif
);
extern Status XGetAtomNames(
-#if NeedFunctionPrototypes
Display* /* dpy */,
Atom* /* atoms */,
int /* count */,
char** /* names_return */
-#endif
);
extern char *XGetDefault(
-#if NeedFunctionPrototypes
Display* /* display */,
_Xconst char* /* program */,
_Xconst char* /* option */
-#endif
);
extern char *XDisplayName(
-#if NeedFunctionPrototypes
_Xconst char* /* string */
-#endif
);
extern char *XKeysymToString(
-#if NeedFunctionPrototypes
KeySym /* keysym */
-#endif
);
extern int (*XSynchronize(
-#if NeedFunctionPrototypes
Display* /* display */,
Bool /* onoff */
-#endif
-))();
+))(
+ Display* /* display */
+);
extern int (*XSetAfterFunction(
-#if NeedFunctionPrototypes
Display* /* display */,
int (*) (
-#if NeedNestedPrototypes
Display* /* display */
-#endif
) /* procedure */
-#endif
-))();
+))(
+ Display* /* display */
+);
extern Atom XInternAtom(
-#if NeedFunctionPrototypes
Display* /* display */,
_Xconst char* /* atom_name */,
Bool /* only_if_exists */
-#endif
);
extern Status XInternAtoms(
-#if NeedFunctionPrototypes
Display* /* dpy */,
char** /* names */,
int /* count */,
Bool /* onlyIfExists */,
Atom* /* atoms_return */
-#endif
);
extern Colormap XCopyColormapAndFree(
-#if NeedFunctionPrototypes
Display* /* display */,
Colormap /* colormap */
-#endif
);
extern Colormap XCreateColormap(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
Visual* /* visual */,
int /* alloc */
-#endif
);
extern Cursor XCreatePixmapCursor(
-#if NeedFunctionPrototypes
Display* /* display */,
Pixmap /* source */,
Pixmap /* mask */,
@@ -1546,70 +1567,52 @@ extern Cursor XCreatePixmapCursor(
XColor* /* background_color */,
unsigned int /* x */,
unsigned int /* y */
-#endif
);
extern Cursor XCreateGlyphCursor(
-#if NeedFunctionPrototypes
Display* /* display */,
Font /* source_font */,
Font /* mask_font */,
unsigned int /* source_char */,
unsigned int /* mask_char */,
- XColor* /* foreground_color */,
- XColor* /* background_color */
-#endif
+ XColor _Xconst * /* foreground_color */,
+ XColor _Xconst * /* background_color */
);
extern Cursor XCreateFontCursor(
-#if NeedFunctionPrototypes
Display* /* display */,
unsigned int /* shape */
-#endif
);
extern Font XLoadFont(
-#if NeedFunctionPrototypes
Display* /* display */,
_Xconst char* /* name */
-#endif
);
extern GC XCreateGC(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
unsigned long /* valuemask */,
XGCValues* /* values */
-#endif
);
extern GContext XGContextFromGC(
-#if NeedFunctionPrototypes
GC /* gc */
-#endif
);
extern void XFlushGC(
-#if NeedFunctionPrototypes
Display* /* display */,
GC /* gc */
-#endif
);
extern Pixmap XCreatePixmap(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
unsigned int /* width */,
unsigned int /* height */,
unsigned int /* depth */
-#endif
);
extern Pixmap XCreateBitmapFromData(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
_Xconst char* /* data */,
unsigned int /* width */,
unsigned int /* height */
-#endif
);
extern Pixmap XCreatePixmapFromBitmapData(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
char* /* data */,
@@ -1618,10 +1621,8 @@ extern Pixmap XCreatePixmapFromBitmapData(
unsigned long /* fg */,
unsigned long /* bg */,
unsigned int /* depth */
-#endif
);
extern Window XCreateSimpleWindow(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* parent */,
int /* x */,
@@ -1631,16 +1632,12 @@ extern Window XCreateSimpleWindow(
unsigned int /* border_width */,
unsigned long /* border */,
unsigned long /* background */
-#endif
);
extern Window XGetSelectionOwner(
-#if NeedFunctionPrototypes
Display* /* display */,
Atom /* selection */
-#endif
);
extern Window XCreateWindow(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* parent */,
int /* x */,
@@ -1653,60 +1650,44 @@ extern Window XCreateWindow(
Visual* /* visual */,
unsigned long /* valuemask */,
XSetWindowAttributes* /* attributes */
-#endif
);
extern Colormap *XListInstalledColormaps(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
int* /* num_return */
-#endif
);
extern char **XListFonts(
-#if NeedFunctionPrototypes
Display* /* display */,
_Xconst char* /* pattern */,
int /* maxnames */,
int* /* actual_count_return */
-#endif
);
extern char **XListFontsWithInfo(
-#if NeedFunctionPrototypes
Display* /* display */,
_Xconst char* /* pattern */,
int /* maxnames */,
int* /* count_return */,
XFontStruct** /* info_return */
-#endif
);
extern char **XGetFontPath(
-#if NeedFunctionPrototypes
Display* /* display */,
int* /* npaths_return */
-#endif
);
extern char **XListExtensions(
-#if NeedFunctionPrototypes
Display* /* display */,
int* /* nextensions_return */
-#endif
);
extern Atom *XListProperties(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
int* /* num_prop_return */
-#endif
);
extern XHostAddress *XListHosts(
-#if NeedFunctionPrototypes
Display* /* display */,
int* /* nhosts_return */,
Bool* /* state_return */
-#endif
);
extern KeySym XKeycodeToKeysym(
-#if NeedFunctionPrototypes
Display* /* display */,
#if NeedWidePrototypes
unsigned int /* keycode */,
@@ -1714,16 +1695,12 @@ extern KeySym XKeycodeToKeysym(
KeyCode /* keycode */,
#endif
int /* index */
-#endif
);
extern KeySym XLookupKeysym(
-#if NeedFunctionPrototypes
XKeyEvent* /* key_event */,
int /* index */
-#endif
);
extern KeySym *XGetKeyboardMapping(
-#if NeedFunctionPrototypes
Display* /* display */,
#if NeedWidePrototypes
unsigned int /* first_keycode */,
@@ -1732,382 +1709,262 @@ extern KeySym *XGetKeyboardMapping(
#endif
int /* keycode_count */,
int* /* keysyms_per_keycode_return */
-#endif
);
extern KeySym XStringToKeysym(
-#if NeedFunctionPrototypes
_Xconst char* /* string */
-#endif
);
extern long XMaxRequestSize(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern long XExtendedMaxRequestSize(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern char *XResourceManagerString(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern char *XScreenResourceString(
-#if NeedFunctionPrototypes
Screen* /* screen */
-#endif
);
extern unsigned long XDisplayMotionBufferSize(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern VisualID XVisualIDFromVisual(
-#if NeedFunctionPrototypes
Visual* /* visual */
-#endif
);
/* multithread routines */
extern Status XInitThreads(
-#if NeedFunctionPrototypes
void
-#endif
);
extern void XLockDisplay(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern void XUnlockDisplay(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
/* routines for dealing with extensions */
extern XExtCodes *XInitExtension(
-#if NeedFunctionPrototypes
Display* /* display */,
_Xconst char* /* name */
-#endif
);
extern XExtCodes *XAddExtension(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern XExtData *XFindOnExtensionList(
-#if NeedFunctionPrototypes
XExtData** /* structure */,
int /* number */
-#endif
);
extern XExtData **XEHeadOfExtensionList(
-#if NeedFunctionPrototypes
XEDataObject /* object */
-#endif
);
/* these are routines for which there are also macros */
extern Window XRootWindow(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* screen_number */
-#endif
);
extern Window XDefaultRootWindow(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern Window XRootWindowOfScreen(
-#if NeedFunctionPrototypes
Screen* /* screen */
-#endif
);
extern Visual *XDefaultVisual(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* screen_number */
-#endif
);
extern Visual *XDefaultVisualOfScreen(
-#if NeedFunctionPrototypes
Screen* /* screen */
-#endif
);
extern GC XDefaultGC(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* screen_number */
-#endif
);
extern GC XDefaultGCOfScreen(
-#if NeedFunctionPrototypes
Screen* /* screen */
-#endif
);
extern unsigned long XBlackPixel(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* screen_number */
-#endif
);
extern unsigned long XWhitePixel(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* screen_number */
-#endif
);
extern unsigned long XAllPlanes(
-#if NeedFunctionPrototypes
void
-#endif
);
extern unsigned long XBlackPixelOfScreen(
-#if NeedFunctionPrototypes
Screen* /* screen */
-#endif
);
extern unsigned long XWhitePixelOfScreen(
-#if NeedFunctionPrototypes
Screen* /* screen */
-#endif
);
extern unsigned long XNextRequest(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern unsigned long XLastKnownRequestProcessed(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern char *XServerVendor(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern char *XDisplayString(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern Colormap XDefaultColormap(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* screen_number */
-#endif
);
extern Colormap XDefaultColormapOfScreen(
-#if NeedFunctionPrototypes
Screen* /* screen */
-#endif
);
extern Display *XDisplayOfScreen(
-#if NeedFunctionPrototypes
Screen* /* screen */
-#endif
);
extern Screen *XScreenOfDisplay(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* screen_number */
-#endif
);
extern Screen *XDefaultScreenOfDisplay(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern long XEventMaskOfScreen(
-#if NeedFunctionPrototypes
Screen* /* screen */
-#endif
);
extern int XScreenNumberOfScreen(
-#if NeedFunctionPrototypes
Screen* /* screen */
-#endif
);
typedef int (*XErrorHandler) ( /* WARNING, this type not in Xlib spec */
-#if NeedFunctionPrototypes
Display* /* display */,
XErrorEvent* /* error_event */
-#endif
);
extern XErrorHandler XSetErrorHandler (
-#if NeedFunctionPrototypes
XErrorHandler /* handler */
-#endif
);
typedef int (*XIOErrorHandler) ( /* WARNING, this type not in Xlib spec */
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern XIOErrorHandler XSetIOErrorHandler (
-#if NeedFunctionPrototypes
XIOErrorHandler /* handler */
-#endif
);
extern XPixmapFormatValues *XListPixmapFormats(
-#if NeedFunctionPrototypes
Display* /* display */,
int* /* count_return */
-#endif
);
extern int *XListDepths(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* screen_number */,
int* /* count_return */
-#endif
);
/* ICCCM routines for things that don't require special include files; */
/* other declarations are given in Xutil.h */
extern Status XReconfigureWMWindow(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
int /* screen_number */,
unsigned int /* mask */,
XWindowChanges* /* changes */
-#endif
);
extern Status XGetWMProtocols(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
Atom** /* protocols_return */,
int* /* count_return */
-#endif
);
extern Status XSetWMProtocols(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
Atom* /* protocols */,
int /* count */
-#endif
);
extern Status XIconifyWindow(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
int /* screen_number */
-#endif
);
extern Status XWithdrawWindow(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
int /* screen_number */
-#endif
);
extern Status XGetCommand(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
char*** /* argv_return */,
int* /* argc_return */
-#endif
);
extern Status XGetWMColormapWindows(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
Window** /* windows_return */,
int* /* count_return */
-#endif
);
extern Status XSetWMColormapWindows(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
Window* /* colormap_windows */,
int /* count */
-#endif
);
extern void XFreeStringList(
-#if NeedFunctionPrototypes
char** /* list */
-#endif
);
extern int XSetTransientForHint(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
Window /* prop_window */
-#endif
);
/* The following are given in alphabetical order */
extern int XActivateScreenSaver(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern int XAddHost(
-#if NeedFunctionPrototypes
Display* /* display */,
XHostAddress* /* host */
-#endif
);
extern int XAddHosts(
-#if NeedFunctionPrototypes
Display* /* display */,
XHostAddress* /* hosts */,
int /* num_hosts */
-#endif
);
extern int XAddToExtensionList(
-#if NeedFunctionPrototypes
struct _XExtData** /* structure */,
XExtData* /* ext_data */
-#endif
);
extern int XAddToSaveSet(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */
-#endif
);
extern Status XAllocColor(
-#if NeedFunctionPrototypes
Display* /* display */,
Colormap /* colormap */,
XColor* /* screen_in_out */
-#endif
);
extern Status XAllocColorCells(
-#if NeedFunctionPrototypes
Display* /* display */,
Colormap /* colormap */,
Bool /* contig */,
@@ -2115,11 +1972,9 @@ extern Status XAllocColorCells(
unsigned int /* nplanes */,
unsigned long* /* pixels_return */,
unsigned int /* npixels */
-#endif
);
extern Status XAllocColorPlanes(
-#if NeedFunctionPrototypes
Display* /* display */,
Colormap /* colormap */,
Bool /* contig */,
@@ -2131,119 +1986,89 @@ extern Status XAllocColorPlanes(
unsigned long* /* rmask_return */,
unsigned long* /* gmask_return */,
unsigned long* /* bmask_return */
-#endif
);
extern Status XAllocNamedColor(
-#if NeedFunctionPrototypes
Display* /* display */,
Colormap /* colormap */,
_Xconst char* /* color_name */,
XColor* /* screen_def_return */,
XColor* /* exact_def_return */
-#endif
);
extern int XAllowEvents(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* event_mode */,
Time /* time */
-#endif
);
extern int XAutoRepeatOff(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern int XAutoRepeatOn(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern int XBell(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* percent */
-#endif
);
extern int XBitmapBitOrder(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern int XBitmapPad(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern int XBitmapUnit(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern int XCellsOfScreen(
-#if NeedFunctionPrototypes
Screen* /* screen */
-#endif
);
extern int XChangeActivePointerGrab(
-#if NeedFunctionPrototypes
Display* /* display */,
unsigned int /* event_mask */,
Cursor /* cursor */,
Time /* time */
-#endif
);
extern int XChangeGC(
-#if NeedFunctionPrototypes
Display* /* display */,
GC /* gc */,
unsigned long /* valuemask */,
XGCValues* /* values */
-#endif
);
extern int XChangeKeyboardControl(
-#if NeedFunctionPrototypes
Display* /* display */,
unsigned long /* value_mask */,
XKeyboardControl* /* values */
-#endif
);
extern int XChangeKeyboardMapping(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* first_keycode */,
int /* keysyms_per_keycode */,
KeySym* /* keysyms */,
int /* num_codes */
-#endif
);
extern int XChangePointerControl(
-#if NeedFunctionPrototypes
Display* /* display */,
Bool /* do_accel */,
Bool /* do_threshold */,
int /* accel_numerator */,
int /* accel_denominator */,
int /* threshold */
-#endif
);
extern int XChangeProperty(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
Atom /* property */,
@@ -2252,99 +2077,75 @@ extern int XChangeProperty(
int /* mode */,
_Xconst unsigned char* /* data */,
int /* nelements */
-#endif
);
extern int XChangeSaveSet(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
int /* change_mode */
-#endif
);
extern int XChangeWindowAttributes(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
unsigned long /* valuemask */,
XSetWindowAttributes* /* attributes */
-#endif
);
extern Bool XCheckIfEvent(
-#if NeedFunctionPrototypes
Display* /* display */,
XEvent* /* event_return */,
Bool (*) (
-#if NeedNestedPrototypes
Display* /* display */,
XEvent* /* event */,
XPointer /* arg */
-#endif
) /* predicate */,
XPointer /* arg */
-#endif
);
extern Bool XCheckMaskEvent(
-#if NeedFunctionPrototypes
Display* /* display */,
long /* event_mask */,
XEvent* /* event_return */
-#endif
);
extern Bool XCheckTypedEvent(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* event_type */,
XEvent* /* event_return */
-#endif
);
extern Bool XCheckTypedWindowEvent(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
int /* event_type */,
XEvent* /* event_return */
-#endif
);
extern Bool XCheckWindowEvent(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
long /* event_mask */,
XEvent* /* event_return */
-#endif
);
extern int XCirculateSubwindows(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
int /* direction */
-#endif
);
extern int XCirculateSubwindowsDown(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */
-#endif
);
extern int XCirculateSubwindowsUp(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */
-#endif
);
extern int XClearArea(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
int /* x */,
@@ -2352,50 +2153,38 @@ extern int XClearArea(
unsigned int /* width */,
unsigned int /* height */,
Bool /* exposures */
-#endif
);
extern int XClearWindow(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */
-#endif
);
extern int XCloseDisplay(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern int XConfigureWindow(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
unsigned int /* value_mask */,
XWindowChanges* /* values */
-#endif
);
extern int XConnectionNumber(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern int XConvertSelection(
-#if NeedFunctionPrototypes
Display* /* display */,
Atom /* selection */,
Atom /* target */,
Atom /* property */,
Window /* requestor */,
Time /* time */
-#endif
);
extern int XCopyArea(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* src */,
Drawable /* dest */,
@@ -2406,20 +2195,16 @@ extern int XCopyArea(
unsigned int /* height */,
int /* dest_x */,
int /* dest_y */
-#endif
);
extern int XCopyGC(
-#if NeedFunctionPrototypes
Display* /* display */,
GC /* src */,
unsigned long /* valuemask */,
GC /* dest */
-#endif
);
extern int XCopyPlane(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* src */,
Drawable /* dest */,
@@ -2431,129 +2216,93 @@ extern int XCopyPlane(
int /* dest_x */,
int /* dest_y */,
unsigned long /* plane */
-#endif
);
extern int XDefaultDepth(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* screen_number */
-#endif
);
extern int XDefaultDepthOfScreen(
-#if NeedFunctionPrototypes
Screen* /* screen */
-#endif
);
extern int XDefaultScreen(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern int XDefineCursor(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
Cursor /* cursor */
-#endif
);
extern int XDeleteProperty(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
Atom /* property */
-#endif
);
extern int XDestroyWindow(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */
-#endif
);
extern int XDestroySubwindows(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */
-#endif
);
extern int XDoesBackingStore(
-#if NeedFunctionPrototypes
Screen* /* screen */
-#endif
);
extern Bool XDoesSaveUnders(
-#if NeedFunctionPrototypes
Screen* /* screen */
-#endif
);
extern int XDisableAccessControl(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern int XDisplayCells(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* screen_number */
-#endif
);
extern int XDisplayHeight(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* screen_number */
-#endif
);
extern int XDisplayHeightMM(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* screen_number */
-#endif
);
extern int XDisplayKeycodes(
-#if NeedFunctionPrototypes
Display* /* display */,
int* /* min_keycodes_return */,
int* /* max_keycodes_return */
-#endif
);
extern int XDisplayPlanes(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* screen_number */
-#endif
);
extern int XDisplayWidth(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* screen_number */
-#endif
);
extern int XDisplayWidthMM(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* screen_number */
-#endif
);
extern int XDrawArc(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
GC /* gc */,
@@ -2563,21 +2312,17 @@ extern int XDrawArc(
unsigned int /* height */,
int /* angle1 */,
int /* angle2 */
-#endif
);
extern int XDrawArcs(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
GC /* gc */,
XArc* /* arcs */,
int /* narcs */
-#endif
);
extern int XDrawImageString(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
GC /* gc */,
@@ -2585,11 +2330,9 @@ extern int XDrawImageString(
int /* y */,
_Xconst char* /* string */,
int /* length */
-#endif
);
extern int XDrawImageString16(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
GC /* gc */,
@@ -2597,11 +2340,9 @@ extern int XDrawImageString16(
int /* y */,
_Xconst XChar2b* /* string */,
int /* length */
-#endif
);
extern int XDrawLine(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
GC /* gc */,
@@ -2609,43 +2350,35 @@ extern int XDrawLine(
int /* y1 */,
int /* x2 */,
int /* y2 */
-#endif
);
extern int XDrawLines(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
GC /* gc */,
XPoint* /* points */,
int /* npoints */,
int /* mode */
-#endif
);
extern int XDrawPoint(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
GC /* gc */,
int /* x */,
int /* y */
-#endif
);
extern int XDrawPoints(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
GC /* gc */,
XPoint* /* points */,
int /* npoints */,
int /* mode */
-#endif
);
extern int XDrawRectangle(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
GC /* gc */,
@@ -2653,31 +2386,25 @@ extern int XDrawRectangle(
int /* y */,
unsigned int /* width */,
unsigned int /* height */
-#endif
);
extern int XDrawRectangles(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
GC /* gc */,
XRectangle* /* rectangles */,
int /* nrectangles */
-#endif
);
extern int XDrawSegments(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
GC /* gc */,
XSegment* /* segments */,
int /* nsegments */
-#endif
);
extern int XDrawString(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
GC /* gc */,
@@ -2685,11 +2412,9 @@ extern int XDrawString(
int /* y */,
_Xconst char* /* string */,
int /* length */
-#endif
);
extern int XDrawString16(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
GC /* gc */,
@@ -2697,11 +2422,9 @@ extern int XDrawString16(
int /* y */,
_Xconst XChar2b* /* string */,
int /* length */
-#endif
);
extern int XDrawText(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
GC /* gc */,
@@ -2709,11 +2432,9 @@ extern int XDrawText(
int /* y */,
XTextItem* /* items */,
int /* nitems */
-#endif
);
extern int XDrawText16(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
GC /* gc */,
@@ -2721,32 +2442,24 @@ extern int XDrawText16(
int /* y */,
XTextItem16* /* items */,
int /* nitems */
-#endif
);
extern int XEnableAccessControl(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern int XEventsQueued(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* mode */
-#endif
);
extern Status XFetchName(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
char** /* window_name_return */
-#endif
);
extern int XFillArc(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
GC /* gc */,
@@ -2756,21 +2469,17 @@ extern int XFillArc(
unsigned int /* height */,
int /* angle1 */,
int /* angle2 */
-#endif
);
extern int XFillArcs(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
GC /* gc */,
XArc* /* arcs */,
int /* narcs */
-#endif
);
extern int XFillPolygon(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
GC /* gc */,
@@ -2778,11 +2487,9 @@ extern int XFillPolygon(
int /* npoints */,
int /* shape */,
int /* mode */
-#endif
);
extern int XFillRectangle(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
GC /* gc */,
@@ -2790,117 +2497,85 @@ extern int XFillRectangle(
int /* y */,
unsigned int /* width */,
unsigned int /* height */
-#endif
);
extern int XFillRectangles(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
GC /* gc */,
XRectangle* /* rectangles */,
int /* nrectangles */
-#endif
);
extern int XFlush(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern int XForceScreenSaver(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* mode */
-#endif
);
extern int XFree(
-#if NeedFunctionPrototypes
void* /* data */
-#endif
);
extern int XFreeColormap(
-#if NeedFunctionPrototypes
Display* /* display */,
Colormap /* colormap */
-#endif
);
extern int XFreeColors(
-#if NeedFunctionPrototypes
Display* /* display */,
Colormap /* colormap */,
unsigned long* /* pixels */,
int /* npixels */,
unsigned long /* planes */
-#endif
);
extern int XFreeCursor(
-#if NeedFunctionPrototypes
Display* /* display */,
Cursor /* cursor */
-#endif
);
extern int XFreeExtensionList(
-#if NeedFunctionPrototypes
char** /* list */
-#endif
);
extern int XFreeFont(
-#if NeedFunctionPrototypes
Display* /* display */,
XFontStruct* /* font_struct */
-#endif
);
extern int XFreeFontInfo(
-#if NeedFunctionPrototypes
char** /* names */,
XFontStruct* /* free_info */,
int /* actual_count */
-#endif
);
extern int XFreeFontNames(
-#if NeedFunctionPrototypes
char** /* list */
-#endif
);
extern int XFreeFontPath(
-#if NeedFunctionPrototypes
char** /* list */
-#endif
);
extern int XFreeGC(
-#if NeedFunctionPrototypes
Display* /* display */,
GC /* gc */
-#endif
);
extern int XFreeModifiermap(
-#if NeedFunctionPrototypes
XModifierKeymap* /* modmap */
-#endif
);
extern int XFreePixmap(
-#if NeedFunctionPrototypes
Display* /* display */,
Pixmap /* pixmap */
-#endif
);
extern int XGeometry(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* screen */,
_Xconst char* /* position */,
@@ -2914,48 +2589,38 @@ extern int XGeometry(
int* /* y_return */,
int* /* width_return */,
int* /* height_return */
-#endif
);
extern int XGetErrorDatabaseText(
-#if NeedFunctionPrototypes
Display* /* display */,
_Xconst char* /* name */,
_Xconst char* /* message */,
_Xconst char* /* default_string */,
char* /* buffer_return */,
int /* length */
-#endif
);
extern int XGetErrorText(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* code */,
char* /* buffer_return */,
int /* length */
-#endif
);
extern Bool XGetFontProperty(
-#if NeedFunctionPrototypes
XFontStruct* /* font_struct */,
Atom /* atom */,
unsigned long* /* value_return */
-#endif
);
extern Status XGetGCValues(
-#if NeedFunctionPrototypes
Display* /* display */,
GC /* gc */,
unsigned long /* valuemask */,
XGCValues* /* values_return */
-#endif
);
extern Status XGetGeometry(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
Window* /* root_return */,
@@ -2965,69 +2630,53 @@ extern Status XGetGeometry(
unsigned int* /* height_return */,
unsigned int* /* border_width_return */,
unsigned int* /* depth_return */
-#endif
);
extern Status XGetIconName(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
char** /* icon_name_return */
-#endif
);
extern int XGetInputFocus(
-#if NeedFunctionPrototypes
Display* /* display */,
Window* /* focus_return */,
int* /* revert_to_return */
-#endif
);
extern int XGetKeyboardControl(
-#if NeedFunctionPrototypes
Display* /* display */,
XKeyboardState* /* values_return */
-#endif
);
extern int XGetPointerControl(
-#if NeedFunctionPrototypes
Display* /* display */,
int* /* accel_numerator_return */,
int* /* accel_denominator_return */,
int* /* threshold_return */
-#endif
);
extern int XGetPointerMapping(
-#if NeedFunctionPrototypes
Display* /* display */,
unsigned char* /* map_return */,
int /* nmap */
-#endif
);
extern int XGetScreenSaver(
-#if NeedFunctionPrototypes
Display* /* display */,
int* /* timeout_return */,
int* /* interval_return */,
int* /* prefer_blanking_return */,
int* /* allow_exposures_return */
-#endif
);
extern Status XGetTransientForHint(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
Window* /* prop_window_return */
-#endif
);
extern int XGetWindowProperty(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
Atom /* property */,
@@ -3040,19 +2689,15 @@ extern int XGetWindowProperty(
unsigned long* /* nitems_return */,
unsigned long* /* bytes_after_return */,
unsigned char** /* prop_return */
-#endif
);
extern Status XGetWindowAttributes(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
XWindowAttributes* /* window_attributes_return */
-#endif
);
extern int XGrabButton(
-#if NeedFunctionPrototypes
Display* /* display */,
unsigned int /* button */,
unsigned int /* modifiers */,
@@ -3063,11 +2708,9 @@ extern int XGrabButton(
int /* keyboard_mode */,
Window /* confine_to */,
Cursor /* cursor */
-#endif
);
extern int XGrabKey(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* keycode */,
unsigned int /* modifiers */,
@@ -3075,22 +2718,18 @@ extern int XGrabKey(
Bool /* owner_events */,
int /* pointer_mode */,
int /* keyboard_mode */
-#endif
);
extern int XGrabKeyboard(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* grab_window */,
Bool /* owner_events */,
int /* pointer_mode */,
int /* keyboard_mode */,
Time /* time */
-#endif
);
extern int XGrabPointer(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* grab_window */,
Bool /* owner_events */,
@@ -3100,236 +2739,171 @@ extern int XGrabPointer(
Window /* confine_to */,
Cursor /* cursor */,
Time /* time */
-#endif
);
extern int XGrabServer(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern int XHeightMMOfScreen(
-#if NeedFunctionPrototypes
Screen* /* screen */
-#endif
);
extern int XHeightOfScreen(
-#if NeedFunctionPrototypes
Screen* /* screen */
-#endif
);
extern int XIfEvent(
-#if NeedFunctionPrototypes
Display* /* display */,
XEvent* /* event_return */,
Bool (*) (
-#if NeedNestedPrototypes
Display* /* display */,
XEvent* /* event */,
XPointer /* arg */
-#endif
) /* predicate */,
XPointer /* arg */
-#endif
);
extern int XImageByteOrder(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern int XInstallColormap(
-#if NeedFunctionPrototypes
Display* /* display */,
Colormap /* colormap */
-#endif
);
extern KeyCode XKeysymToKeycode(
-#if NeedFunctionPrototypes
Display* /* display */,
KeySym /* keysym */
-#endif
);
extern int XKillClient(
-#if NeedFunctionPrototypes
Display* /* display */,
XID /* resource */
-#endif
);
extern Status XLookupColor(
-#if NeedFunctionPrototypes
Display* /* display */,
Colormap /* colormap */,
_Xconst char* /* color_name */,
XColor* /* exact_def_return */,
XColor* /* screen_def_return */
-#endif
);
extern int XLowerWindow(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */
-#endif
);
extern int XMapRaised(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */
-#endif
);
extern int XMapSubwindows(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */
-#endif
);
extern int XMapWindow(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */
-#endif
);
extern int XMaskEvent(
-#if NeedFunctionPrototypes
Display* /* display */,
long /* event_mask */,
XEvent* /* event_return */
-#endif
);
extern int XMaxCmapsOfScreen(
-#if NeedFunctionPrototypes
Screen* /* screen */
-#endif
);
extern int XMinCmapsOfScreen(
-#if NeedFunctionPrototypes
Screen* /* screen */
-#endif
);
extern int XMoveResizeWindow(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
int /* x */,
int /* y */,
unsigned int /* width */,
unsigned int /* height */
-#endif
);
extern int XMoveWindow(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
int /* x */,
int /* y */
-#endif
);
extern int XNextEvent(
-#if NeedFunctionPrototypes
Display* /* display */,
XEvent* /* event_return */
-#endif
);
extern int XNoOp(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern Status XParseColor(
-#if NeedFunctionPrototypes
Display* /* display */,
Colormap /* colormap */,
_Xconst char* /* spec */,
XColor* /* exact_def_return */
-#endif
);
extern int XParseGeometry(
-#if NeedFunctionPrototypes
_Xconst char* /* parsestring */,
int* /* x_return */,
int* /* y_return */,
unsigned int* /* width_return */,
unsigned int* /* height_return */
-#endif
);
extern int XPeekEvent(
-#if NeedFunctionPrototypes
Display* /* display */,
XEvent* /* event_return */
-#endif
);
extern int XPeekIfEvent(
-#if NeedFunctionPrototypes
Display* /* display */,
XEvent* /* event_return */,
Bool (*) (
-#if NeedNestedPrototypes
Display* /* display */,
XEvent* /* event */,
XPointer /* arg */
-#endif
) /* predicate */,
XPointer /* arg */
-#endif
);
extern int XPending(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern int XPlanesOfScreen(
-#if NeedFunctionPrototypes
Screen* /* screen */
-
-#endif
);
extern int XProtocolRevision(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern int XProtocolVersion(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern int XPutBackEvent(
-#if NeedFunctionPrototypes
Display* /* display */,
XEvent* /* event */
-#endif
);
extern int XPutImage(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
GC /* gc */,
@@ -3340,28 +2914,22 @@ extern int XPutImage(
int /* dest_y */,
unsigned int /* width */,
unsigned int /* height */
-#endif
);
extern int XQLength(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern Status XQueryBestCursor(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
unsigned int /* width */,
unsigned int /* height */,
unsigned int* /* width_return */,
unsigned int* /* height_return */
-#endif
);
extern Status XQueryBestSize(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* class */,
Drawable /* which_screen */,
@@ -3369,67 +2937,53 @@ extern Status XQueryBestSize(
unsigned int /* height */,
unsigned int* /* width_return */,
unsigned int* /* height_return */
-#endif
);
extern Status XQueryBestStipple(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* which_screen */,
unsigned int /* width */,
unsigned int /* height */,
unsigned int* /* width_return */,
unsigned int* /* height_return */
-#endif
);
extern Status XQueryBestTile(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* which_screen */,
unsigned int /* width */,
unsigned int /* height */,
unsigned int* /* width_return */,
unsigned int* /* height_return */
-#endif
);
extern int XQueryColor(
-#if NeedFunctionPrototypes
Display* /* display */,
Colormap /* colormap */,
XColor* /* def_in_out */
-#endif
);
extern int XQueryColors(
-#if NeedFunctionPrototypes
Display* /* display */,
Colormap /* colormap */,
XColor* /* defs_in_out */,
int /* ncolors */
-#endif
);
extern Bool XQueryExtension(
-#if NeedFunctionPrototypes
Display* /* display */,
_Xconst char* /* name */,
int* /* major_opcode_return */,
int* /* first_event_return */,
int* /* first_error_return */
-#endif
);
extern int XQueryKeymap(
-#if NeedFunctionPrototypes
Display* /* display */,
char [32] /* keys_return */
-#endif
);
extern Bool XQueryPointer(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
Window* /* root_return */,
@@ -3439,11 +2993,9 @@ extern Bool XQueryPointer(
int* /* win_x_return */,
int* /* win_y_return */,
unsigned int* /* mask_return */
-#endif
);
extern int XQueryTextExtents(
-#if NeedFunctionPrototypes
Display* /* display */,
XID /* font_ID */,
_Xconst char* /* string */,
@@ -3452,11 +3004,9 @@ extern int XQueryTextExtents(
int* /* font_ascent_return */,
int* /* font_descent_return */,
XCharStruct* /* overall_return */
-#endif
);
extern int XQueryTextExtents16(
-#if NeedFunctionPrototypes
Display* /* display */,
XID /* font_ID */,
_Xconst XChar2b* /* string */,
@@ -3465,29 +3015,23 @@ extern int XQueryTextExtents16(
int* /* font_ascent_return */,
int* /* font_descent_return */,
XCharStruct* /* overall_return */
-#endif
);
extern Status XQueryTree(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
Window* /* root_return */,
Window* /* parent_return */,
Window** /* children_return */,
unsigned int* /* nchildren_return */
-#endif
);
extern int XRaiseWindow(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */
-#endif
);
extern int XReadBitmapFile(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
_Xconst char* /* filename */,
@@ -3496,184 +3040,140 @@ extern int XReadBitmapFile(
Pixmap* /* bitmap_return */,
int* /* x_hot_return */,
int* /* y_hot_return */
-#endif
);
extern int XReadBitmapFileData(
-#if NeedFunctionPrototypes
_Xconst char* /* filename */,
unsigned int* /* width_return */,
unsigned int* /* height_return */,
unsigned char** /* data_return */,
int* /* x_hot_return */,
int* /* y_hot_return */
-#endif
);
extern int XRebindKeysym(
-#if NeedFunctionPrototypes
Display* /* display */,
KeySym /* keysym */,
KeySym* /* list */,
int /* mod_count */,
_Xconst unsigned char* /* string */,
int /* bytes_string */
-#endif
);
extern int XRecolorCursor(
-#if NeedFunctionPrototypes
Display* /* display */,
Cursor /* cursor */,
XColor* /* foreground_color */,
XColor* /* background_color */
-#endif
);
extern int XRefreshKeyboardMapping(
-#if NeedFunctionPrototypes
XMappingEvent* /* event_map */
-#endif
);
extern int XRemoveFromSaveSet(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */
-#endif
);
extern int XRemoveHost(
-#if NeedFunctionPrototypes
Display* /* display */,
XHostAddress* /* host */
-#endif
);
extern int XRemoveHosts(
-#if NeedFunctionPrototypes
Display* /* display */,
XHostAddress* /* hosts */,
int /* num_hosts */
-#endif
);
extern int XReparentWindow(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
Window /* parent */,
int /* x */,
int /* y */
-#endif
);
extern int XResetScreenSaver(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern int XResizeWindow(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
unsigned int /* width */,
unsigned int /* height */
-#endif
);
extern int XRestackWindows(
-#if NeedFunctionPrototypes
Display* /* display */,
Window* /* windows */,
int /* nwindows */
-#endif
);
extern int XRotateBuffers(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* rotate */
-#endif
);
extern int XRotateWindowProperties(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
Atom* /* properties */,
int /* num_prop */,
int /* npositions */
-#endif
);
extern int XScreenCount(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern int XSelectInput(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
long /* event_mask */
-#endif
);
extern Status XSendEvent(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
Bool /* propagate */,
long /* event_mask */,
XEvent* /* event_send */
-#endif
);
extern int XSetAccessControl(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* mode */
-#endif
);
extern int XSetArcMode(
-#if NeedFunctionPrototypes
Display* /* display */,
GC /* gc */,
int /* arc_mode */
-#endif
);
extern int XSetBackground(
-#if NeedFunctionPrototypes
Display* /* display */,
GC /* gc */,
unsigned long /* background */
-#endif
);
extern int XSetClipMask(
-#if NeedFunctionPrototypes
Display* /* display */,
GC /* gc */,
Pixmap /* pixmap */
-#endif
);
extern int XSetClipOrigin(
-#if NeedFunctionPrototypes
Display* /* display */,
GC /* gc */,
int /* clip_x_origin */,
int /* clip_y_origin */
-#endif
);
extern int XSetClipRectangles(
-#if NeedFunctionPrototypes
Display* /* display */,
GC /* gc */,
int /* clip_x_origin */,
@@ -3681,314 +3181,240 @@ extern int XSetClipRectangles(
XRectangle* /* rectangles */,
int /* n */,
int /* ordering */
-#endif
);
extern int XSetCloseDownMode(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* close_mode */
-#endif
);
extern int XSetCommand(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
char** /* argv */,
int /* argc */
-#endif
);
extern int XSetDashes(
-#if NeedFunctionPrototypes
Display* /* display */,
GC /* gc */,
int /* dash_offset */,
_Xconst char* /* dash_list */,
int /* n */
-#endif
);
extern int XSetFillRule(
-#if NeedFunctionPrototypes
Display* /* display */,
GC /* gc */,
int /* fill_rule */
-#endif
);
extern int XSetFillStyle(
-#if NeedFunctionPrototypes
Display* /* display */,
GC /* gc */,
int /* fill_style */
-#endif
);
extern int XSetFont(
-#if NeedFunctionPrototypes
Display* /* display */,
GC /* gc */,
Font /* font */
-#endif
);
extern int XSetFontPath(
-#if NeedFunctionPrototypes
Display* /* display */,
char** /* directories */,
int /* ndirs */
-#endif
);
extern int XSetForeground(
-#if NeedFunctionPrototypes
Display* /* display */,
GC /* gc */,
unsigned long /* foreground */
-#endif
);
extern int XSetFunction(
-#if NeedFunctionPrototypes
Display* /* display */,
GC /* gc */,
int /* function */
-#endif
);
extern int XSetGraphicsExposures(
-#if NeedFunctionPrototypes
Display* /* display */,
GC /* gc */,
Bool /* graphics_exposures */
-#endif
);
extern int XSetIconName(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
_Xconst char* /* icon_name */
-#endif
);
extern int XSetInputFocus(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* focus */,
int /* revert_to */,
Time /* time */
-#endif
);
extern int XSetLineAttributes(
-#if NeedFunctionPrototypes
Display* /* display */,
GC /* gc */,
unsigned int /* line_width */,
int /* line_style */,
int /* cap_style */,
int /* join_style */
-#endif
);
extern int XSetModifierMapping(
-#if NeedFunctionPrototypes
Display* /* display */,
XModifierKeymap* /* modmap */
-#endif
);
extern int XSetPlaneMask(
-#if NeedFunctionPrototypes
Display* /* display */,
GC /* gc */,
unsigned long /* plane_mask */
-#endif
);
extern int XSetPointerMapping(
-#if NeedFunctionPrototypes
Display* /* display */,
_Xconst unsigned char* /* map */,
int /* nmap */
-#endif
);
extern int XSetScreenSaver(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* timeout */,
int /* interval */,
int /* prefer_blanking */,
int /* allow_exposures */
-#endif
);
extern int XSetSelectionOwner(
-#if NeedFunctionPrototypes
Display* /* display */,
Atom /* selection */,
Window /* owner */,
Time /* time */
-#endif
);
extern int XSetState(
-#if NeedFunctionPrototypes
Display* /* display */,
GC /* gc */,
unsigned long /* foreground */,
unsigned long /* background */,
int /* function */,
unsigned long /* plane_mask */
-#endif
);
extern int XSetStipple(
-#if NeedFunctionPrototypes
Display* /* display */,
GC /* gc */,
Pixmap /* stipple */
-#endif
);
extern int XSetSubwindowMode(
-#if NeedFunctionPrototypes
Display* /* display */,
GC /* gc */,
int /* subwindow_mode */
-#endif
);
extern int XSetTSOrigin(
-#if NeedFunctionPrototypes
Display* /* display */,
GC /* gc */,
int /* ts_x_origin */,
int /* ts_y_origin */
-#endif
);
extern int XSetTile(
-#if NeedFunctionPrototypes
Display* /* display */,
GC /* gc */,
Pixmap /* tile */
-#endif
);
extern int XSetWindowBackground(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
unsigned long /* background_pixel */
-#endif
);
extern int XSetWindowBackgroundPixmap(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
Pixmap /* background_pixmap */
-#endif
);
extern int XSetWindowBorder(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
unsigned long /* border_pixel */
-#endif
);
extern int XSetWindowBorderPixmap(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
Pixmap /* border_pixmap */
-#endif
);
extern int XSetWindowBorderWidth(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
unsigned int /* width */
-#endif
);
extern int XSetWindowColormap(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
Colormap /* colormap */
-#endif
);
extern int XStoreBuffer(
-#if NeedFunctionPrototypes
Display* /* display */,
_Xconst char* /* bytes */,
int /* nbytes */,
int /* buffer */
-#endif
);
extern int XStoreBytes(
-#if NeedFunctionPrototypes
Display* /* display */,
_Xconst char* /* bytes */,
int /* nbytes */
-#endif
);
extern int XStoreColor(
-#if NeedFunctionPrototypes
Display* /* display */,
Colormap /* colormap */,
XColor* /* color */
-#endif
);
extern int XStoreColors(
-#if NeedFunctionPrototypes
Display* /* display */,
Colormap /* colormap */,
XColor* /* color */,
int /* ncolors */
-#endif
);
extern int XStoreName(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
_Xconst char* /* window_name */
-#endif
);
extern int XStoreNamedColor(
-#if NeedFunctionPrototypes
Display* /* display */,
Colormap /* colormap */,
_Xconst char* /* color */,
unsigned long /* pixel */,
int /* flags */
-#endif
);
extern int XSync(
-#if NeedFunctionPrototypes
Display* /* display */,
Bool /* discard */
-#endif
);
extern int XTextExtents(
-#if NeedFunctionPrototypes
XFontStruct* /* font_struct */,
_Xconst char* /* string */,
int /* nchars */,
@@ -3996,11 +3422,9 @@ extern int XTextExtents(
int* /* font_ascent_return */,
int* /* font_descent_return */,
XCharStruct* /* overall_return */
-#endif
);
extern int XTextExtents16(
-#if NeedFunctionPrototypes
XFontStruct* /* font_struct */,
_Xconst XChar2b* /* string */,
int /* nchars */,
@@ -4008,27 +3432,21 @@ extern int XTextExtents16(
int* /* font_ascent_return */,
int* /* font_descent_return */,
XCharStruct* /* overall_return */
-#endif
);
extern int XTextWidth(
-#if NeedFunctionPrototypes
XFontStruct* /* font_struct */,
_Xconst char* /* string */,
int /* count */
-#endif
);
extern int XTextWidth16(
-#if NeedFunctionPrototypes
XFontStruct* /* font_struct */,
_Xconst XChar2b* /* string */,
int /* count */
-#endif
);
extern Bool XTranslateCoordinates(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* src_w */,
Window /* dest_w */,
@@ -4037,90 +3455,66 @@ extern Bool XTranslateCoordinates(
int* /* dest_x_return */,
int* /* dest_y_return */,
Window* /* child_return */
-#endif
);
extern int XUndefineCursor(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */
-#endif
);
extern int XUngrabButton(
-#if NeedFunctionPrototypes
Display* /* display */,
unsigned int /* button */,
unsigned int /* modifiers */,
Window /* grab_window */
-#endif
);
extern int XUngrabKey(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* keycode */,
unsigned int /* modifiers */,
Window /* grab_window */
-#endif
);
extern int XUngrabKeyboard(
-#if NeedFunctionPrototypes
Display* /* display */,
Time /* time */
-#endif
);
extern int XUngrabPointer(
-#if NeedFunctionPrototypes
Display* /* display */,
Time /* time */
-#endif
);
extern int XUngrabServer(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern int XUninstallColormap(
-#if NeedFunctionPrototypes
Display* /* display */,
Colormap /* colormap */
-#endif
);
extern int XUnloadFont(
-#if NeedFunctionPrototypes
Display* /* display */,
Font /* font */
-#endif
);
extern int XUnmapSubwindows(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */
-#endif
);
extern int XUnmapWindow(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */
-#endif
);
extern int XVendorRelease(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
extern int XWarpPointer(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* src_w */,
Window /* dest_w */,
@@ -4130,32 +3524,24 @@ extern int XWarpPointer(
unsigned int /* src_height */,
int /* dest_x */,
int /* dest_y */
-#endif
);
extern int XWidthMMOfScreen(
-#if NeedFunctionPrototypes
Screen* /* screen */
-#endif
);
extern int XWidthOfScreen(
-#if NeedFunctionPrototypes
Screen* /* screen */
-#endif
);
extern int XWindowEvent(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
long /* event_mask */,
XEvent* /* event_return */
-#endif
);
extern int XWriteBitmapFile(
-#if NeedFunctionPrototypes
Display* /* display */,
_Xconst char* /* filename */,
Pixmap /* bitmap */,
@@ -4163,194 +3549,152 @@ extern int XWriteBitmapFile(
unsigned int /* height */,
int /* x_hot */,
int /* y_hot */
-#endif
);
-extern Bool XSupportsLocale(
-#if NeedFunctionPrototypes
- void
-#endif
-);
+extern Bool XSupportsLocale (void);
extern char *XSetLocaleModifiers(
-#if NeedFunctionPrototypes
- _Xconst char* /* modifier_list */
-#endif
+ const char* /* modifier_list */
);
extern XOM XOpenOM(
-#if NeedFunctionPrototypes
Display* /* display */,
struct _XrmHashBucketRec* /* rdb */,
_Xconst char* /* res_name */,
_Xconst char* /* res_class */
-#endif
);
extern Status XCloseOM(
-#if NeedFunctionPrototypes
XOM /* om */
-#endif
);
extern char *XSetOMValues(
-#if NeedVarargsPrototypes
XOM /* om */,
...
-#endif
);
extern char *XGetOMValues(
-#if NeedVarargsPrototypes
XOM /* om */,
...
-#endif
);
extern Display *XDisplayOfOM(
-#if NeedFunctionPrototypes
XOM /* om */
-#endif
);
extern char *XLocaleOfOM(
-#if NeedFunctionPrototypes
XOM /* om */
-#endif
);
extern XOC XCreateOC(
-#if NeedVarargsPrototypes
XOM /* om */,
...
-#endif
);
extern void XDestroyOC(
-#if NeedFunctionPrototypes
XOC /* oc */
-#endif
);
extern XOM XOMOfOC(
-#if NeedFunctionPrototypes
XOC /* oc */
-#endif
);
extern char *XSetOCValues(
-#if NeedVarargsPrototypes
XOC /* oc */,
...
-#endif
);
extern char *XGetOCValues(
-#if NeedVarargsPrototypes
XOC /* oc */,
...
-#endif
);
extern XFontSet XCreateFontSet(
-#if NeedFunctionPrototypes
Display* /* display */,
_Xconst char* /* base_font_name_list */,
char*** /* missing_charset_list */,
int* /* missing_charset_count */,
char** /* def_string */
-#endif
);
extern void XFreeFontSet(
-#if NeedFunctionPrototypes
Display* /* display */,
XFontSet /* font_set */
-#endif
);
extern int XFontsOfFontSet(
-#if NeedFunctionPrototypes
XFontSet /* font_set */,
XFontStruct*** /* font_struct_list */,
char*** /* font_name_list */
-#endif
);
extern char *XBaseFontNameListOfFontSet(
-#if NeedFunctionPrototypes
XFontSet /* font_set */
-#endif
);
extern char *XLocaleOfFontSet(
-#if NeedFunctionPrototypes
XFontSet /* font_set */
-#endif
);
extern Bool XContextDependentDrawing(
-#if NeedFunctionPrototypes
XFontSet /* font_set */
-#endif
);
extern Bool XDirectionalDependentDrawing(
-#if NeedFunctionPrototypes
XFontSet /* font_set */
-#endif
);
extern Bool XContextualDrawing(
-#if NeedFunctionPrototypes
XFontSet /* font_set */
-#endif
);
extern XFontSetExtents *XExtentsOfFontSet(
-#if NeedFunctionPrototypes
XFontSet /* font_set */
-#endif
);
extern int XmbTextEscapement(
-#if NeedFunctionPrototypes
XFontSet /* font_set */,
_Xconst char* /* text */,
int /* bytes_text */
-#endif
);
extern int XwcTextEscapement(
-#if NeedFunctionPrototypes
XFontSet /* font_set */,
_Xconst wchar_t* /* text */,
int /* num_wchars */
-#endif
+);
+
+extern int Xutf8TextEscapement(
+ XFontSet /* font_set */,
+ _Xconst char* /* text */,
+ int /* bytes_text */
);
extern int XmbTextExtents(
-#if NeedFunctionPrototypes
XFontSet /* font_set */,
_Xconst char* /* text */,
int /* bytes_text */,
XRectangle* /* overall_ink_return */,
XRectangle* /* overall_logical_return */
-#endif
);
extern int XwcTextExtents(
-#if NeedFunctionPrototypes
XFontSet /* font_set */,
_Xconst wchar_t* /* text */,
int /* num_wchars */,
XRectangle* /* overall_ink_return */,
XRectangle* /* overall_logical_return */
-#endif
+);
+
+extern int Xutf8TextExtents(
+ XFontSet /* font_set */,
+ _Xconst char* /* text */,
+ int /* bytes_text */,
+ XRectangle* /* overall_ink_return */,
+ XRectangle* /* overall_logical_return */
);
extern Status XmbTextPerCharExtents(
-#if NeedFunctionPrototypes
XFontSet /* font_set */,
_Xconst char* /* text */,
int /* bytes_text */,
@@ -4360,11 +3704,9 @@ extern Status XmbTextPerCharExtents(
int* /* num_chars */,
XRectangle* /* overall_ink_return */,
XRectangle* /* overall_logical_return */
-#endif
);
extern Status XwcTextPerCharExtents(
-#if NeedFunctionPrototypes
XFontSet /* font_set */,
_Xconst wchar_t* /* text */,
int /* num_wchars */,
@@ -4374,11 +3716,21 @@ extern Status XwcTextPerCharExtents(
int* /* num_chars */,
XRectangle* /* overall_ink_return */,
XRectangle* /* overall_logical_return */
-#endif
+);
+
+extern Status Xutf8TextPerCharExtents(
+ XFontSet /* font_set */,
+ _Xconst char* /* text */,
+ int /* bytes_text */,
+ XRectangle* /* ink_extents_buffer */,
+ XRectangle* /* logical_extents_buffer */,
+ int /* buffer_size */,
+ int* /* num_chars */,
+ XRectangle* /* overall_ink_return */,
+ XRectangle* /* overall_logical_return */
);
extern void XmbDrawText(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
GC /* gc */,
@@ -4386,11 +3738,9 @@ extern void XmbDrawText(
int /* y */,
XmbTextItem* /* text_items */,
int /* nitems */
-#endif
);
extern void XwcDrawText(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
GC /* gc */,
@@ -4398,11 +3748,19 @@ extern void XwcDrawText(
int /* y */,
XwcTextItem* /* text_items */,
int /* nitems */
-#endif
+);
+
+extern void Xutf8DrawText(
+ Display* /* display */,
+ Drawable /* d */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ XmbTextItem* /* text_items */,
+ int /* nitems */
);
extern void XmbDrawString(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
XFontSet /* font_set */,
@@ -4411,11 +3769,9 @@ extern void XmbDrawString(
int /* y */,
_Xconst char* /* text */,
int /* bytes_text */
-#endif
);
extern void XwcDrawString(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
XFontSet /* font_set */,
@@ -4424,11 +3780,20 @@ extern void XwcDrawString(
int /* y */,
_Xconst wchar_t* /* text */,
int /* num_wchars */
-#endif
+);
+
+extern void Xutf8DrawString(
+ Display* /* display */,
+ Drawable /* d */,
+ XFontSet /* font_set */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ _Xconst char* /* text */,
+ int /* bytes_text */
);
extern void XmbDrawImageString(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
XFontSet /* font_set */,
@@ -4437,11 +3802,9 @@ extern void XmbDrawImageString(
int /* y */,
_Xconst char* /* text */,
int /* bytes_text */
-#endif
);
extern void XwcDrawImageString(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* d */,
XFontSet /* font_set */,
@@ -4450,197 +3813,197 @@ extern void XwcDrawImageString(
int /* y */,
_Xconst wchar_t* /* text */,
int /* num_wchars */
-#endif
+);
+
+extern void Xutf8DrawImageString(
+ Display* /* display */,
+ Drawable /* d */,
+ XFontSet /* font_set */,
+ GC /* gc */,
+ int /* x */,
+ int /* y */,
+ _Xconst char* /* text */,
+ int /* bytes_text */
);
extern XIM XOpenIM(
-#if NeedFunctionPrototypes
Display* /* dpy */,
struct _XrmHashBucketRec* /* rdb */,
char* /* res_name */,
char* /* res_class */
-#endif
);
extern Status XCloseIM(
-#if NeedFunctionPrototypes
XIM /* im */
-#endif
);
extern char *XGetIMValues(
-#if NeedVarargsPrototypes
XIM /* im */, ...
-#endif
+);
+
+extern char *XSetIMValues(
+ XIM /* im */, ...
);
extern Display *XDisplayOfIM(
-#if NeedFunctionPrototypes
XIM /* im */
-#endif
);
extern char *XLocaleOfIM(
-#if NeedFunctionPrototypes
XIM /* im*/
-#endif
);
extern XIC XCreateIC(
-#if NeedVarargsPrototypes
XIM /* im */, ...
-#endif
);
extern void XDestroyIC(
-#if NeedFunctionPrototypes
XIC /* ic */
-#endif
);
extern void XSetICFocus(
-#if NeedFunctionPrototypes
XIC /* ic */
-#endif
);
extern void XUnsetICFocus(
-#if NeedFunctionPrototypes
XIC /* ic */
-#endif
);
extern wchar_t *XwcResetIC(
-#if NeedFunctionPrototypes
XIC /* ic */
-#endif
);
extern char *XmbResetIC(
-#if NeedFunctionPrototypes
XIC /* ic */
-#endif
+);
+
+extern char *Xutf8ResetIC(
+ XIC /* ic */
);
extern char *XSetICValues(
-#if NeedVarargsPrototypes
XIC /* ic */, ...
-#endif
);
extern char *XGetICValues(
-#if NeedVarargsPrototypes
XIC /* ic */, ...
-#endif
);
extern XIM XIMOfIC(
-#if NeedFunctionPrototypes
XIC /* ic */
-#endif
);
extern Bool XFilterEvent(
-#if NeedFunctionPrototypes
XEvent* /* event */,
Window /* window */
-#endif
);
extern int XmbLookupString(
-#if NeedFunctionPrototypes
XIC /* ic */,
XKeyPressedEvent* /* event */,
char* /* buffer_return */,
int /* bytes_buffer */,
KeySym* /* keysym_return */,
Status* /* status_return */
-#endif
);
extern int XwcLookupString(
-#if NeedFunctionPrototypes
XIC /* ic */,
XKeyPressedEvent* /* event */,
wchar_t* /* buffer_return */,
int /* wchars_buffer */,
KeySym* /* keysym_return */,
Status* /* status_return */
-#endif
+);
+
+extern int Xutf8LookupString(
+ XIC /* ic */,
+ XKeyPressedEvent* /* event */,
+ char* /* buffer_return */,
+ int /* bytes_buffer */,
+ KeySym* /* keysym_return */,
+ Status* /* status_return */
);
extern XVaNestedList XVaCreateNestedList(
-#if NeedVarargsPrototypes
int /*unused*/, ...
-#endif
);
/* internal connections for IMs */
extern Bool XRegisterIMInstantiateCallback(
-#if NeedFunctionPrototypes
Display* /* dpy */,
struct _XrmHashBucketRec* /* rdb */,
char* /* res_name */,
char* /* res_class */,
- XIMProc /* callback */,
- XPointer* /* client_data */
-#endif
+ XIDProc /* callback */,
+ XPointer /* client_data */
);
extern Bool XUnregisterIMInstantiateCallback(
-#if NeedFunctionPrototypes
Display* /* dpy */,
struct _XrmHashBucketRec* /* rdb */,
char* /* res_name */,
char* /* res_class */,
- XIMProc /* callback */,
- XPointer* /* client_data */
-#endif
+ XIDProc /* callback */,
+ XPointer /* client_data */
);
typedef void (*XConnectionWatchProc)(
-#if NeedFunctionPrototypes
Display* /* dpy */,
XPointer /* client_data */,
int /* fd */,
Bool /* opening */, /* open or close flag */
XPointer* /* watch_data */ /* open sets, close uses */
-#endif
);
extern Status XInternalConnectionNumbers(
-#if NeedFunctionPrototypes
Display* /* dpy */,
int** /* fd_return */,
int* /* count_return */
-#endif
);
extern void XProcessInternalConnection(
-#if NeedFunctionPrototypes
Display* /* dpy */,
int /* fd */
-#endif
);
extern Status XAddConnectionWatch(
-#if NeedFunctionPrototypes
Display* /* dpy */,
XConnectionWatchProc /* callback */,
XPointer /* client_data */
-#endif
);
extern void XRemoveConnectionWatch(
-#if NeedFunctionPrototypes
Display* /* dpy */,
XConnectionWatchProc /* callback */,
XPointer /* client_data */
+);
+
+extern void XSetAuthorization(
+ char * /* name */,
+ int /* namelen */,
+ char * /* data */,
+ int /* datalen */
+);
+
+extern int _Xmbtowc(
+ wchar_t * /* wstr */,
+#ifdef ISC
+ char const * /* str */,
+ size_t /* len */
+#else
+ char * /* str */,
+ int /* len */
#endif
);
+extern int _Xwctomb(
+ char * /* str */,
+ wchar_t /* wc */
+);
+
_XFUNCPROTOEND
#endif /* _XLIB_H_ */
diff --git a/include/X11/Xlibint.h b/include/X11/Xlibint.h
index 3f3826b6..c1966ada 100644
--- a/include/X11/Xlibint.h
+++ b/include/X11/Xlibint.h
@@ -27,6 +27,10 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
+/* $XFree86: xc/lib/X11/Xlibint.h,v 3.27 2003/05/27 22:26:26 tsi Exp $ */
+
+#ifndef _XLIBINT_H_
+#define _XLIBINT_H_ 1
/*
* Xlibint.h - Header definition and support file for the internal
@@ -36,10 +40,8 @@ from The Open Group.
* Warning, there be dragons here....
*/
-#ifndef _XLIBINT_H_
-#define _XLIBINT_H_
-
#include <X11/Xlib.h>
+#include <X11/Xproto.h> /* to declare xEvent */
#ifdef WIN32
#define _XFlush _XFlushIt
@@ -76,7 +78,9 @@ struct _XDisplay
XID resource_mask; /* resource ID mask bits */
XID resource_id; /* allocator current ID */
int resource_shift; /* allocator shift to correct bits */
- XID (*resource_alloc)(); /* allocator function */
+ XID (*resource_alloc)( /* allocator function */
+ struct _XDisplay*
+ );
int byte_order; /* screen byte order, LSBFirst, MSBFirst */
int bitmap_unit; /* padding and data requirements */
int bitmap_pad; /* padding requirements on bitmaps */
@@ -95,7 +99,9 @@ struct _XDisplay
char *bufmax; /* Output buffer maximum+1 address. */
unsigned max_request_size; /* maximum number 32 bit words in request*/
struct _XrmHashBucketRec *db;
- int (*synchandler)(); /* Synchronization handler */
+ int (*synchandler)( /* Synchronization handler */
+ struct _XDisplay*
+ );
char *display_name; /* "host:display" string used on this connect*/
int default_screen; /* default screen for operations */
int nscreens; /* number of screens on this server*/
@@ -120,14 +126,26 @@ struct _XDisplay
* list to find the right procedure for each event might be
* expensive if many extensions are being used.
*/
- Bool (*event_vec[128])(); /* vector for wire to event */
- Status (*wire_vec[128])(); /* vector for event to wire */
+ Bool (*event_vec[128])( /* vector for wire to event */
+ Display * /* dpy */,
+ XEvent * /* re */,
+ xEvent * /* event */
+ );
+ Status (*wire_vec[128])( /* vector for event to wire */
+ Display * /* dpy */,
+ XEvent * /* re */,
+ xEvent * /* event */
+ );
KeySym lock_meaning; /* for XLookupString */
struct _XLockInfo *lock; /* multi-thread state, display lock */
struct _XInternalAsync *async_handlers; /* for internal async */
unsigned long bigreq_size; /* max size of big requests */
struct _XLockPtrs *lock_fns; /* pointers to threads functions */
- void (*idlist_alloc)(); /* XID list allocator function */
+ void (*idlist_alloc)( /* XID list allocator function */
+ Display * /* dpy */,
+ XID * /* ids */,
+ int /* count */
+ );
/* things above this line should not move, for binary compatibility */
struct _XKeytrans *key_bindings; /* for XLookupString */
Font cursor_font; /* for XCreateFontCursor */
@@ -135,7 +153,11 @@ struct _XDisplay
unsigned int mode_switch; /* keyboard group modifiers */
unsigned int num_lock; /* keyboard numlock modifiers */
struct _XContextDB *context_db; /* context database */
- Bool (**error_vec)(); /* vector for wire to error */
+ Bool (**error_vec)( /* vector for wire to error */
+ Display * /* display */,
+ XErrorEvent * /* he */,
+ xError * /* we */
+ );
/*
* Xcms information
*/
@@ -154,7 +176,9 @@ struct _XDisplay
struct _XConnWatchInfo *conn_watchers; /* XAddConnectionWatch */
int watcher_count; /* number of conn_watchers */
XPointer filedes; /* struct pollfd cache for _XWaitForReadable */
- int (*savedsynchandler)(); /* user synchandler when Xlib usurps */
+ int (*savedsynchandler)( /* user synchandler when Xlib usurps */
+ Display * /* dpy */
+ );
XID resource_max; /* allocator max ID */
int xcmisc_opcode; /* major opcode for XC-MISC */
struct _XkbInfoRec *xkb_info; /* XKB info */
@@ -186,10 +210,8 @@ typedef struct _XSQEvent
#define NEED_REPLIES
#endif
-#if NeedFunctionPrototypes /* prototypes require event type definitions */
#define NEED_EVENTS
#define NEED_REPLIES
-#endif
#include <X11/Xproto.h>
#ifdef __sgi
#define _SGI_MP_SOURCE /* turn this on to get MP safe errno */
@@ -204,18 +226,12 @@ typedef struct _XSQEvent
#undef dirty
#endif
-#ifndef X_NOT_STDC_ENV
#include <stdlib.h>
#include <string.h>
-#else
-char *malloc(), *realloc(), *calloc();
-void exit();
-#ifdef SYSV
-#include <string.h>
-#else
-#include <strings.h>
-#endif
-#endif
+
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
/*
* The following definitions can be used for locking requests in multi-threaded
@@ -227,16 +243,27 @@ void exit();
* declarations for C Threads locking
*/
-#include <X11/Xfuncproto.h>
+typedef struct _LockInfoRec *LockInfoPtr;
+/* interfaces for locking.c */
struct _XLockPtrs {
/* used by all, including extensions; do not move */
- void (*lock_display)();
- void (*unlock_display)();
+ void (*lock_display)(
+ Display *dpy
+#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
+ , char *file
+ , int line
+#endif
+ );
+ void (*unlock_display)(
+ Display *dpy
+#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
+ , char *file
+ , int line
+#endif
+ );
};
-typedef struct _LockInfoRec *LockInfoPtr;
-
#if defined(WIN32) && !defined(_XLIBINT_)
#define _XCreateMutex_fn (*_XCreateMutex_fn_p)
#define _XFreeMutex_fn (*_XFreeMutex_fn_p)
@@ -247,32 +274,24 @@ typedef struct _LockInfoRec *LockInfoPtr;
/* in XlibInt.c */
extern void (*_XCreateMutex_fn)(
-#if NeedFunctionPrototypes
LockInfoPtr /* lock */
-#endif
);
extern void (*_XFreeMutex_fn)(
-#if NeedFunctionPrototypes
LockInfoPtr /* lock */
-#endif
);
extern void (*_XLockMutex_fn)(
-#if NeedFunctionPrototypes
LockInfoPtr /* lock */
#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
, char * /* file */
, int /* line */
#endif
-#endif
);
extern void (*_XUnlockMutex_fn)(
-#if NeedFunctionPrototypes
LockInfoPtr /* lock */
#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
, char * /* file */
, int /* line */
#endif
-#endif
);
extern LockInfoPtr _Xglobal_lock;
@@ -323,16 +342,11 @@ extern LockInfoPtr _Xglobal_lock;
#endif
-#ifndef NULL
-#define NULL 0
-#endif
+#include <stddef.h>
+
#define LOCKED 1
#define UNLOCKED 0
-#ifdef X_NOT_STDC_ENV
-extern int errno; /* Internal system error number. */
-#endif
-
#ifndef BUFSIZE
#define BUFSIZE 2048 /* X output buffer size. */
#endif
@@ -372,6 +386,7 @@ extern int errno; /* Internal system error number. */
#define XlibDisplayReadEvents (1L << 5) /* in _XReadEvents */
#define XlibDisplayReply (1L << 5) /* in _XReply */
#define XlibDisplayWriting (1L << 6) /* in _XFlushInt, _XSend */
+#define XlibDisplayDfltRMDB (1L << 7) /* mark if RM db from XGetDefault */
/*
* X Protocol packetizing macros.
@@ -407,7 +422,7 @@ extern int errno; /* Internal system error number. */
*
*/
-#if (defined(__STDC__) && !defined(UNIXCPP)) || defined(ANSICPP)
+#if !defined(UNIXCPP) || defined(ANSICPP)
#define GetReq(name, req) \
WORD64ALIGN\
if ((dpy->bufptr + SIZEOF(x##name##Req)) > dpy->bufmax)\
@@ -433,7 +448,7 @@ extern int errno; /* Internal system error number. */
/* GetReqExtra is the same as GetReq, but allocates "n" additional
bytes after the request. "n" must be a multiple of 4! */
-#if (defined(__STDC__) && !defined(UNIXCPP)) || defined(ANSICPP)
+#if !defined(UNIXCPP) || defined(ANSICPP)
#define GetReqExtra(name, n, req) \
WORD64ALIGN\
if ((dpy->bufptr + SIZEOF(x##name##Req) + n) > dpy->bufmax)\
@@ -462,7 +477,7 @@ extern int errno; /* Internal system error number. */
* "rid" is the name of the resource.
*/
-#if (defined(__STDC__) && !defined(UNIXCPP)) || defined(ANSICPP)
+#if !defined(UNIXCPP) || defined(ANSICPP)
#define GetResReq(name, rid, req) \
WORD64ALIGN\
if ((dpy->bufptr + SIZEOF(xResourceReq)) > dpy->bufmax)\
@@ -490,7 +505,7 @@ extern int errno; /* Internal system error number. */
* GetEmptyReq is for those requests that have no arguments
* at all.
*/
-#if (defined(__STDC__) && !defined(UNIXCPP)) || defined(ANSICPP)
+#if !defined(UNIXCPP) || defined(ANSICPP)
#define GetEmptyReq(name, req) \
WORD64ALIGN\
if ((dpy->bufptr + SIZEOF(xReq)) > dpy->bufmax)\
@@ -563,7 +578,7 @@ extern int errno; /* Internal system error number. */
#define SyncHandle() \
if (dpy->synchandler) (*dpy->synchandler)(dpy)
-extern void _XFlushGCCache();
+extern void _XFlushGCCache(Display *dpy, GC gc);
#define FlushGC(dpy, gc) \
if ((gc)->dirty) _XFlushGCCache((dpy), (gc))
/*
@@ -575,12 +590,13 @@ extern void _XFlushGCCache();
* "len" is the length of the data buffer.
*/
#ifndef DataRoutineIsProcedure
-#define Data(dpy, data, len) \
+#define Data(dpy, data, len) {\
if (dpy->bufptr + (len) <= dpy->bufmax) {\
memcpy(dpy->bufptr, data, (int)len);\
dpy->bufptr += ((len) + 3) & ~3;\
} else\
- _XSend(dpy, data, len)
+ _XSend(dpy, data, len);\
+ }
#endif /* DataRoutineIsProcedure */
@@ -602,6 +618,7 @@ extern void _XFlushGCCache();
if (dpy->bufptr + (n) > dpy->bufmax) \
_XFlush (dpy); \
ptr = (type) dpy->bufptr; \
+ (void)ptr; \
dpy->bufptr += (n);
#ifdef WORD64
@@ -613,6 +630,16 @@ extern void _XFlushGCCache();
#define _XRead16(dpy, data, len) _XRead((dpy), (char *)(data), (len))
#ifdef LONG64
#define Data32(dpy, data, len) _XData32(dpy, (long *)data, len)
+extern int _XData32(
+ Display *dpy,
+ register long *data,
+ unsigned len
+);
+extern void _XRead32(
+ Display *dpy,
+ register long *data,
+ long len
+);
#else
#define Data32(dpy, data, len) Data((dpy), (char *)(data), (len))
#define _XRead32(dpy, data, len) _XRead((dpy), (char *)(data), (len))
@@ -712,13 +739,11 @@ typedef struct _XInternalAsync {
* The handler returns True iff it handled this reply.
*/
Bool (*handler)(
-#if NeedNestedPrototypes
Display* /* dpy */,
xReply* /* rep */,
char* /* buf */,
int /* len */,
XPointer /* data */
-#endif
);
XPointer data;
} _XAsyncHandler;
@@ -733,7 +758,7 @@ typedef struct _XAsyncEState {
int error_count;
} _XAsyncErrorState;
-extern void _XDeqAsyncHandler();
+extern void _XDeqAsyncHandler(Display *dpy, _XAsyncHandler *handler);
#define DeqAsyncHandler(dpy,handler) { \
if (dpy->async_handlers == (handler)) \
dpy->async_handlers = (handler)->next; \
@@ -741,131 +766,180 @@ extern void _XDeqAsyncHandler();
_XDeqAsyncHandler(dpy, handler); \
}
+typedef void (*FreeFuncType) (
+ Display* /* display */
+);
+
+typedef int (*FreeModmapType) (
+ XModifierKeymap* /* modmap */
+);
+
/*
* This structure is private to the library.
*/
typedef struct _XFreeFuncs {
- void (*atoms)(); /* _XFreeAtomTable */
- int (*modifiermap)(); /* XFreeModifierMap */
- void (*key_bindings)(); /* _XFreeKeyBindings */
- void (*context_db)(); /* _XFreeContextDB */
- void (*defaultCCCs)(); /* _XcmsFreeDefaultCCCs */
- void (*clientCmaps)(); /* _XcmsFreeClientCmaps */
- void (*intensityMaps)(); /* _XcmsFreeIntensityMaps */
- void (*im_filters)(); /* _XFreeIMFilters */
- void (*xkb)(); /* _XkbFreeInfo */
+ FreeFuncType atoms; /* _XFreeAtomTable */
+ FreeModmapType modifiermap; /* XFreeModifierMap */
+ FreeFuncType key_bindings; /* _XFreeKeyBindings */
+ FreeFuncType context_db; /* _XFreeContextDB */
+ FreeFuncType defaultCCCs; /* _XcmsFreeDefaultCCCs */
+ FreeFuncType clientCmaps; /* _XcmsFreeClientCmaps */
+ FreeFuncType intensityMaps; /* _XcmsFreeIntensityMaps */
+ FreeFuncType im_filters; /* _XFreeIMFilters */
+ FreeFuncType xkb; /* _XkbFreeInfo */
} _XFreeFuncRec;
+/* types for InitExt.c */
+typedef int (*CreateGCType) (
+ Display* /* display */,
+ GC /* gc */,
+ XExtCodes* /* codes */
+);
+
+typedef int (*CopyGCType)(
+ Display* /* display */,
+ GC /* gc */,
+ XExtCodes* /* codes */
+);
+
+typedef int (*FlushGCType) (
+ Display* /* display */,
+ GC /* gc */,
+ XExtCodes* /* codes */
+);
+
+typedef int (*FreeGCType) (
+ Display* /* display */,
+ GC /* gc */,
+ XExtCodes* /* codes */
+);
+
+typedef int (*CreateFontType) (
+ Display* /* display */,
+ XFontStruct* /* fs */,
+ XExtCodes* /* codes */
+);
+
+typedef int (*FreeFontType) (
+ Display* /* display */,
+ XFontStruct* /* fs */,
+ XExtCodes* /* codes */
+);
+
+typedef int (*CloseDisplayType) (
+ Display* /* display */,
+ XExtCodes* /* codes */
+);
+
+typedef int (*ErrorType) (
+ Display* /* display */,
+ xError* /* err */,
+ XExtCodes* /* codes */,
+ int* /* ret_code */
+);
+
+typedef char* (*ErrorStringType) (
+ Display* /* display */,
+ int /* code */,
+ XExtCodes* /* codes */,
+ char* /* buffer */,
+ int /* nbytes */
+);
+
+typedef void (*PrintErrorType)(
+ Display* /* display */,
+ XErrorEvent* /* ev */,
+ void* /* fp */
+);
+
+typedef void (*BeforeFlushType)(
+ Display* /* display */,
+ XExtCodes* /* codes */,
+ _Xconst char* /* data */,
+ long /* len */
+);
+
/*
* This structure is private to the library.
*/
-typedef struct _XExten { /* private to extension mechanism */
- struct _XExten *next; /* next in list */
- XExtCodes codes; /* public information, all extension told */
- int (*create_GC)(); /* routine to call when GC created */
- int (*copy_GC)(); /* routine to call when GC copied */
- int (*flush_GC)(); /* routine to call when GC flushed */
- int (*free_GC)(); /* routine to call when GC freed */
- int (*create_Font)(); /* routine to call when Font created */
- int (*free_Font)(); /* routine to call when Font freed */
- int (*close_display)(); /* routine to call when connection closed */
- int (*error)(); /* who to call when an error occurs */
- char *(*error_string)(); /* routine to supply error string */
- char *name; /* name of this extension */
- void (*error_values)(); /* routine to supply error values */
- void (*before_flush)(); /* routine to call when sending data */
- struct _XExten *next_flush; /* next in list of those with flushes */
+typedef struct _XExten { /* private to extension mechanism */
+ struct _XExten *next; /* next in list */
+ XExtCodes codes; /* public information, all extension told */
+ CreateGCType create_GC; /* routine to call when GC created */
+ CopyGCType copy_GC; /* routine to call when GC copied */
+ FlushGCType flush_GC; /* routine to call when GC flushed */
+ FreeGCType free_GC; /* routine to call when GC freed */
+ CreateFontType create_Font; /* routine to call when Font created */
+ FreeFontType free_Font; /* routine to call when Font freed */
+ CloseDisplayType close_display; /* routine to call when connection closed */
+ ErrorType error; /* who to call when an error occurs */
+ ErrorStringType error_string; /* routine to supply error string */
+ char *name; /* name of this extension */
+ PrintErrorType error_values; /* routine to supply error values */
+ BeforeFlushType before_flush; /* routine to call when sending data */
+ struct _XExten *next_flush; /* next in list of those with flushes */
} _XExtension;
/* extension hooks */
-_XFUNCPROTOBEGIN
-
#ifdef DataRoutineIsProcedure
-extern void Data();
+extern void Data(Display *dpy, char *data, long len);
#endif
extern int _XError(
-#if NeedFunctionPrototypes
Display* /* dpy */,
xError* /* rep */
-#endif
);
extern int _XIOError(
-#if NeedFunctionPrototypes
Display* /* dpy */
-#endif
);
extern int (*_XIOErrorFunction)(
-#if NeedNestedPrototypes
Display* /* dpy */
-#endif
);
extern int (*_XErrorFunction)(
-#if NeedNestedPrototypes
Display* /* dpy */,
XErrorEvent* /* error_event */
-#endif
);
extern void _XEatData(
-#if NeedFunctionPrototypes
Display* /* dpy */,
unsigned long /* n */
-#endif
);
extern char *_XAllocScratch(
-#if NeedFunctionPrototypes
Display* /* dpy */,
unsigned long /* nbytes */
-#endif
);
extern char *_XAllocTemp(
-#if NeedFunctionPrototypes
Display* /* dpy */,
unsigned long /* nbytes */
-#endif
);
extern void _XFreeTemp(
-#if NeedFunctionPrototypes
Display* /* dpy */,
char* /* buf */,
unsigned long /* nbytes */
-#endif
);
extern Visual *_XVIDtoVisual(
-#if NeedFunctionPrototypes
Display* /* dpy */,
VisualID /* id */
-#endif
);
extern unsigned long _XSetLastRequestRead(
-#if NeedFunctionPrototypes
Display* /* dpy */,
xGenericReply* /* rep */
-#endif
);
extern int _XGetHostname(
-#if NeedFunctionPrototypes
char* /* buf */,
int /* maxlen */
-#endif
);
extern Screen *_XScreenOfWindow(
-#if NeedFunctionPrototypes
Display* /* dpy */,
Window /* w */
-#endif
);
extern Bool _XAsyncErrorHandler(
-#if NeedFunctionPrototypes
Display* /* dpy */,
xReply* /* rep */,
char* /* buf */,
int /* len */,
XPointer /* data */
-#endif
);
extern char *_XGetAsyncReply(
-#if NeedFunctionPrototypes
Display* /* dpy */,
char* /* replbuf */,
xReply* /* rep */,
@@ -873,347 +947,270 @@ extern char *_XGetAsyncReply(
int /* len */,
int /* extra */,
Bool /* discard */
-#endif
+);
+extern void _XGetAsyncData(
+ Display* /* dpy */,
+ char * /* data */,
+ char * /* buf */,
+ int /* len */,
+ int /* skip */,
+ int /* datalen */,
+ int /* discardtotal */
);
extern void _XFlush(
-#if NeedFunctionPrototypes
Display* /* dpy */
-#endif
);
extern int _XEventsQueued(
-#if NeedFunctionPrototypes
Display* /* dpy */,
int /* mode */
-#endif
);
extern void _XReadEvents(
-#if NeedFunctionPrototypes
Display* /* dpy */
-#endif
);
extern int _XRead(
-#if NeedFunctionPrototypes
Display* /* dpy */,
char* /* data */,
long /* size */
-#endif
);
extern void _XReadPad(
-#if NeedFunctionPrototypes
Display* /* dpy */,
char* /* data */,
long /* size */
-#endif
);
extern void _XSend(
-#if NeedFunctionPrototypes
Display* /* dpy */,
_Xconst char* /* data */,
long /* size */
-#endif
);
extern Status _XReply(
-#if NeedFunctionPrototypes
Display* /* dpy */,
xReply* /* rep */,
int /* extra */,
Bool /* discard */
-#endif
);
extern void _XEnq(
-#if NeedFunctionPrototypes
Display* /* dpy */,
xEvent* /* event */
-#endif
);
extern void _XDeq(
-#if NeedFunctionPrototypes
Display* /* dpy */,
_XQEvent* /* prev */,
_XQEvent* /* qelt */
-#endif
+);
+
+extern Bool _XUnknownWireEvent(
+ Display* /* dpy */,
+ XEvent* /* re */,
+ xEvent* /* event */
+);
+extern Status _XUnknownNativeEvent(
+ Display* /* dpy */,
+ XEvent* /* re */,
+ xEvent* /* event */
+);
+
+extern Bool _XWireToEvent(Display *dpy, XEvent *re, xEvent *event);
+extern Bool _XDefaultWireError(Display *display, XErrorEvent *he, xError *we);
+extern Bool _XPollfdCacheInit(Display *dpy);
+extern void _XPollfdCacheAdd(Display *dpy, int fd);
+extern void _XPollfdCacheDel(Display *dpy, int fd);
+extern XID _XAllocID(Display *dpy);
+extern void _XAllocIDs(Display *dpy, XID *ids, int count);
+
+extern int _XFreeExtData(
+ XExtData* /* extension */
);
extern int (*XESetCreateGC(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* extension */,
int (*) (
-#if NeedNestedPrototypes
Display* /* display */,
GC /* gc */,
XExtCodes* /* codes */
-#endif
) /* proc */
-#endif
))(
-#if NeedNestedPrototypes
Display*, GC, XExtCodes*
-#endif
);
extern int (*XESetCopyGC(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* extension */,
int (*) (
-#if NeedNestedPrototypes
Display* /* display */,
GC /* gc */,
XExtCodes* /* codes */
-#endif
) /* proc */
-#endif
))(
-#if NeedNestedPrototypes
Display*, GC, XExtCodes*
-#endif
);
extern int (*XESetFlushGC(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* extension */,
int (*) (
-#if NeedNestedPrototypes
Display* /* display */,
GC /* gc */,
XExtCodes* /* codes */
-#endif
) /* proc */
-#endif
))(
-#if NeedNestedPrototypes
Display*, GC, XExtCodes*
-#endif
);
extern int (*XESetFreeGC(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* extension */,
int (*) (
-#if NeedNestedPrototypes
Display* /* display */,
GC /* gc */,
XExtCodes* /* codes */
-#endif
) /* proc */
-#endif
))(
-#if NeedNestedPrototypes
Display*, GC, XExtCodes*
-#endif
);
extern int (*XESetCreateFont(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* extension */,
int (*) (
-#if NeedNestedPrototypes
Display* /* display */,
XFontStruct* /* fs */,
XExtCodes* /* codes */
-#endif
) /* proc */
-#endif
))(
-#if NeedNestedPrototypes
Display*, XFontStruct*, XExtCodes*
-#endif
);
extern int (*XESetFreeFont(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* extension */,
int (*) (
-#if NeedNestedPrototypes
Display* /* display */,
XFontStruct* /* fs */,
XExtCodes* /* codes */
-#endif
) /* proc */
-#endif
))(
-#if NeedNestedPrototypes
Display*, XFontStruct*, XExtCodes*
-#endif
);
extern int (*XESetCloseDisplay(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* extension */,
int (*) (
-#if NeedNestedPrototypes
Display* /* display */,
XExtCodes* /* codes */
-#endif
) /* proc */
-#endif
))(
-#if NeedNestedPrototypes
Display*, XExtCodes*
-#endif
);
extern int (*XESetError(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* extension */,
int (*) (
-#if NeedNestedPrototypes
Display* /* display */,
xError* /* err */,
XExtCodes* /* codes */,
int* /* ret_code */
-#endif
) /* proc */
-#endif
))(
-#if NeedNestedPrototypes
Display*, xError*, XExtCodes*, int*
-#endif
);
extern char* (*XESetErrorString(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* extension */,
char* (*) (
-#if NeedNestedPrototypes
Display* /* display */,
int /* code */,
XExtCodes* /* codes */,
char* /* buffer */,
int /* nbytes */
-#endif
) /* proc */
-#endif
))(
-#if NeedNestedPrototypes
Display*, int, XExtCodes*, char*, int
-#endif
);
extern void (*XESetPrintErrorValues (
-#if NeedFunctionPrototypes
Display* /* display */,
int /* extension */,
void (*)(
-#if NeedNestedPrototypes
Display* /* display */,
XErrorEvent* /* ev */,
void* /* fp */
-#endif
) /* proc */
-#endif
))(
-#if NeedNestedPrototypes
Display*, XErrorEvent*, void*
-#endif
);
extern Bool (*XESetWireToEvent(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* event_number */,
Bool (*) (
-#if NeedNestedPrototypes
Display* /* display */,
XEvent* /* re */,
xEvent* /* event */
-#endif
) /* proc */
-#endif
))(
-#if NeedNestedPrototypes
Display*, XEvent*, xEvent*
-#endif
);
extern Status (*XESetEventToWire(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* event_number */,
Status (*) (
-#if NeedNestedPrototypes
Display* /* display */,
XEvent* /* re */,
xEvent* /* event */
-#endif
) /* proc */
-#endif
))(
-#if NeedNestedPrototypes
Display*, XEvent*, xEvent*
-#endif
);
extern Bool (*XESetWireToError(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* error_number */,
Bool (*) (
-#if NeedNestedPrototypes
Display* /* display */,
XErrorEvent* /* he */,
xError* /* we */
-#endif
) /* proc */
-#endif
))(
-#if NeedNestedPrototypes
Display*, XErrorEvent*, xError*
-#endif
);
extern void (*XESetBeforeFlush(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* error_number */,
void (*) (
-#if NeedNestedPrototypes
Display* /* display */,
XExtCodes* /* codes */,
- char* /* data */,
+ _Xconst char* /* data */,
long /* len */
-#endif
) /* proc */
-#endif
))(
-#if NeedNestedPrototypes
- Display*, XExtCodes*, char*, long
-#endif
+ Display*, XExtCodes*, _Xconst char*, long
);
/* internal connections for IMs */
typedef void (*_XInternalConnectionProc)(
-#if NeedFunctionPrototypes
Display* /* dpy */,
int /* fd */,
XPointer /* call_data */
-#endif
);
extern Status _XRegisterInternalConnection(
-#if NeedFunctionPrototypes
Display* /* dpy */,
int /* fd */,
_XInternalConnectionProc /* callback */,
XPointer /* call_data */
-#endif
);
extern void _XUnregisterInternalConnection(
-#if NeedFunctionPrototypes
Display* /* dpy */,
int /* fd */
-#endif
);
/* Display structure has pointers to these */
@@ -1232,47 +1229,75 @@ struct _XConnWatchInfo { /* info from XAddConnectionWatch */
struct _XConnWatchInfo *next;
};
+#ifdef __UNIXOS2__
+extern char* __XOS2RedirRoot(
+ char*
+);
+#endif
+
extern int _XTextHeight(
-#if NeedFunctionPrototypes
XFontStruct* /* font_struct */,
_Xconst char* /* string */,
int /* count */
-#endif
);
extern int _XTextHeight16(
-#if NeedFunctionPrototypes
XFontStruct* /* font_struct */,
_Xconst XChar2b* /* string */,
int /* count */
-#endif
);
-#if defined(WIN32) || defined(__EMX__) /* || defined(OS2) */
+#if defined(WIN32)
+
extern int _XOpenFile(
-#if NeedFunctionPrototypes
_Xconst char* /* path */,
int /* flags */
-#endif
);
extern void* _XFopenFile(
-#if NeedFunctionPrototypes
_Xconst char* /* path */,
_Xconst char* /* mode */
-#endif
);
extern int _XAccessFile(
-#if NeedFunctionPrototypes
_Xconst char* /* path */
-#endif
);
#else
#define _XOpenFile(path,flags) open(path,flags)
#define _XFopenFile(path,mode) fopen(path,mode)
#endif
+/* EvToWire.c */
+extern Status _XEventToWire(Display *dpy, XEvent *re, xEvent *event);
+
+extern int _XF86LoadQueryLocaleFont(
+ Display* /* dpy */,
+ _Xconst char* /* name*/,
+ XFontStruct** /* xfp*/,
+ Font* /* fidp */
+);
+
+extern void _XProcessWindowAttributes (
+ register Display *dpy,
+ xChangeWindowAttributesReq *req,
+ register unsigned long valuemask,
+ register XSetWindowAttributes *attributes);
+
+extern int _XDefaultError(
+ Display *dpy,
+ XErrorEvent *event);
+
+extern int _XDefaultIOError(
+ Display *dpy);
+
+extern void _XSetClipRectangles (
+ register Display *dpy,
+ GC gc,
+ int clip_x_origin, int clip_y_origin,
+ XRectangle *rectangles,
+ int n,
+ int ordering);
+
_XFUNCPROTOEND
#endif /* _XLIBINT_H_ */
diff --git a/include/X11/Xlocale.h b/include/X11/Xlocale.h
index 77702b1b..61d2f7a8 100644
--- a/include/X11/Xlocale.h
+++ b/include/X11/Xlocale.h
@@ -26,6 +26,7 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
+/* $XFree86: xc/lib/X11/Xlocale.h,v 1.4 2001/12/14 19:54:09 dawes Exp $ */
#ifndef _XLOCALE_H_
#define _XLOCALE_H_
@@ -34,12 +35,6 @@ from The Open Group.
#include <X11/Xosdefs.h>
#ifndef X_LOCALE
-#ifdef X_NOT_STDC_ENV
-#define X_LOCALE
-#endif
-#endif
-
-#ifndef X_LOCALE
#include <locale.h>
#else
@@ -52,18 +47,14 @@ from The Open Group.
_XFUNCPROTOBEGIN
extern char *_Xsetlocale(
-#if NeedFunctionPrototypes
int /* category */,
_Xconst char* /* name */
-#endif
);
_XFUNCPROTOEND
#define setlocale _Xsetlocale
-#ifndef NULL
-#define NULL 0
-#endif
+#include <stddef.h>
#endif /* X_LOCALE */
diff --git a/include/X11/Xresource.h b/include/X11/Xresource.h
index b195bb51..ce121374 100644
--- a/include/X11/Xresource.h
+++ b/include/X11/Xresource.h
@@ -46,13 +46,14 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.
******************************************************************/
+/* $XFree86: xc/lib/X11/Xresource.h,v 3.8 2001/12/14 19:54:10 dawes Exp $ */
#ifndef _XRESOURCE_H_
#define _XRESOURCE_H_
-/* You must include <X11/Xlib.h> before including this file */
-
+#ifndef _XP_PRINT_SERVER_
#include <X11/Xlib.h>
+#endif
/****************************************************************
****************************************************************
@@ -73,9 +74,7 @@ _XFUNCPROTOBEGIN
****************************************************************/
extern char *Xpermalloc(
-#if NeedFunctionPrototypes
unsigned int /* size */
-#endif
);
/****************************************************************
@@ -84,7 +83,7 @@ extern char *Xpermalloc(
*
****************************************************************/
-typedef int XrmQuark, *XrmQuarkList;
+typedef int XrmQuark, *XrmQuarkList;
#define NULLQUARK ((XrmQuark) 0)
typedef char *XrmString;
@@ -92,28 +91,20 @@ typedef char *XrmString;
/* find quark for string, create new quark if none already exists */
extern XrmQuark XrmStringToQuark(
-#if NeedFunctionPrototypes
_Xconst char* /* string */
-#endif
);
extern XrmQuark XrmPermStringToQuark(
-#if NeedFunctionPrototypes
_Xconst char* /* string */
-#endif
);
/* find string for quark */
extern XrmString XrmQuarkToString(
-#if NeedFunctionPrototypes
XrmQuark /* quark */
-#endif
);
extern XrmQuark XrmUniqueQuark(
-#if NeedFunctionPrototypes
void
-#endif
);
#define XrmStringsEqual(a1, a2) (strcmp(a1, a2) == 0)
@@ -128,18 +119,14 @@ extern XrmQuark XrmUniqueQuark(
typedef enum {XrmBindTightly, XrmBindLoosely} XrmBinding, *XrmBindingList;
extern void XrmStringToQuarkList(
-#if NeedFunctionPrototypes
_Xconst char* /* string */,
XrmQuarkList /* quarks_return */
-#endif
);
extern void XrmStringToBindingQuarkList(
-#if NeedFunctionPrototypes
_Xconst char* /* string */,
XrmBindingList /* bindings_return */,
XrmQuarkList /* quarks_return */
-#endif
);
/****************************************************************
@@ -191,92 +178,72 @@ typedef struct _XrmHashBucketRec *XrmDatabase;
extern void XrmDestroyDatabase(
-#if NeedFunctionPrototypes
XrmDatabase /* database */
-#endif
);
extern void XrmQPutResource(
-#if NeedFunctionPrototypes
XrmDatabase* /* database */,
XrmBindingList /* bindings */,
XrmQuarkList /* quarks */,
XrmRepresentation /* type */,
XrmValue* /* value */
-#endif
);
extern void XrmPutResource(
-#if NeedFunctionPrototypes
XrmDatabase* /* database */,
_Xconst char* /* specifier */,
_Xconst char* /* type */,
XrmValue* /* value */
-#endif
);
extern void XrmQPutStringResource(
-#if NeedFunctionPrototypes
XrmDatabase* /* database */,
XrmBindingList /* bindings */,
XrmQuarkList /* quarks */,
_Xconst char* /* value */
-#endif
);
extern void XrmPutStringResource(
-#if NeedFunctionPrototypes
XrmDatabase* /* database */,
_Xconst char* /* specifier */,
_Xconst char* /* value */
-#endif
);
extern void XrmPutLineResource(
-#if NeedFunctionPrototypes
XrmDatabase* /* database */,
_Xconst char* /* line */
-#endif
);
extern Bool XrmQGetResource(
-#if NeedFunctionPrototypes
XrmDatabase /* database */,
XrmNameList /* quark_name */,
XrmClassList /* quark_class */,
XrmRepresentation* /* quark_type_return */,
XrmValue* /* value_return */
-#endif
);
extern Bool XrmGetResource(
-#if NeedFunctionPrototypes
XrmDatabase /* database */,
_Xconst char* /* str_name */,
_Xconst char* /* str_class */,
char** /* str_type_return */,
XrmValue* /* value_return */
-#endif
);
extern Bool XrmQGetSearchList(
-#if NeedFunctionPrototypes
XrmDatabase /* database */,
XrmNameList /* names */,
XrmClassList /* classes */,
XrmSearchList /* list_return */,
int /* list_length */
-#endif
);
extern Bool XrmQGetSearchResource(
-#if NeedFunctionPrototypes
XrmSearchList /* list */,
XrmName /* name */,
XrmClass /* class */,
XrmRepresentation* /* type_return */,
XrmValue* /* value_return */
-#endif
);
/****************************************************************
@@ -285,88 +252,70 @@ extern Bool XrmQGetSearchResource(
*
****************************************************************/
+#ifndef _XP_PRINT_SERVER_
+
extern void XrmSetDatabase(
-#if NeedFunctionPrototypes
Display* /* display */,
XrmDatabase /* database */
-#endif
);
extern XrmDatabase XrmGetDatabase(
-#if NeedFunctionPrototypes
Display* /* display */
-#endif
);
+#endif /* !_XP_PRINT_SERVER_ */
+
extern XrmDatabase XrmGetFileDatabase(
-#if NeedFunctionPrototypes
_Xconst char* /* filename */
-#endif
);
extern Status XrmCombineFileDatabase(
-#if NeedFunctionPrototypes
_Xconst char* /* filename */,
XrmDatabase* /* target */,
Bool /* override */
-#endif
);
extern XrmDatabase XrmGetStringDatabase(
-#if NeedFunctionPrototypes
_Xconst char* /* data */ /* null terminated string */
-#endif
);
extern void XrmPutFileDatabase(
-#if NeedFunctionPrototypes
XrmDatabase /* database */,
_Xconst char* /* filename */
-#endif
);
extern void XrmMergeDatabases(
-#if NeedFunctionPrototypes
XrmDatabase /* source_db */,
XrmDatabase* /* target_db */
-#endif
);
extern void XrmCombineDatabase(
-#if NeedFunctionPrototypes
XrmDatabase /* source_db */,
XrmDatabase* /* target_db */,
Bool /* override */
-#endif
);
#define XrmEnumAllLevels 0
#define XrmEnumOneLevel 1
extern Bool XrmEnumerateDatabase(
-#if NeedFunctionPrototypes
XrmDatabase /* db */,
XrmNameList /* name_prefix */,
XrmClassList /* class_prefix */,
int /* mode */,
Bool (*)(
-#if NeedNestedPrototypes
XrmDatabase* /* db */,
XrmBindingList /* bindings */,
XrmQuarkList /* quarks */,
XrmRepresentation* /* type */,
XrmValue* /* value */,
XPointer /* closure */
-#endif
) /* proc */,
XPointer /* closure */
-#endif
);
-extern char *XrmLocaleOfDatabase(
-#if NeedFunctionPrototypes
+extern const char *XrmLocaleOfDatabase(
XrmDatabase /* database */
-#endif
);
@@ -397,14 +346,12 @@ typedef struct {
extern void XrmParseCommand(
-#if NeedFunctionPrototypes
XrmDatabase* /* database */,
XrmOptionDescList /* table */,
int /* table_count */,
_Xconst char* /* name */,
int* /* argc_in_out */,
char** /* argv_in_out */
-#endif
);
_XFUNCPROTOEND
diff --git a/include/X11/Xutil.h b/include/X11/Xutil.h
index 17438e89..931cfd0f 100644
--- a/include/X11/Xutil.h
+++ b/include/X11/Xutil.h
@@ -46,6 +46,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.
******************************************************************/
+/* $XFree86: xc/lib/X11/Xutil.h,v 3.6 2003/04/13 19:22:20 dawes Exp $ */
#ifndef _XUTIL_H_
#define _XUTIL_H_
@@ -167,7 +168,9 @@ typedef enum {
XStringStyle, /* STRING */
XCompoundTextStyle, /* COMPOUND_TEXT */
XTextStyle, /* text in owner's encoding (current locale)*/
- XStdICCTextStyle /* STRING, else COMPOUND_TEXT */
+ XStdICCTextStyle, /* STRING, else COMPOUND_TEXT */
+ /* The following is an XFree86 extension, introduced in November 2000 */
+ XUTF8StringStyle /* UTF8_STRING */
} XICCEncodingStyle;
typedef struct {
@@ -181,6 +184,24 @@ typedef struct {
char *res_class;
} XClassHint;
+#ifdef XUTIL_DEFINE_FUNCTIONS
+extern int XDestroyImage(
+ XImage *ximage);
+extern unsigned long XGetPixel(
+ XImage *ximage,
+ int x, int y);
+extern int XPutPixel(
+ XImage *ximage,
+ int x, int y,
+ unsigned long pixel);
+extern XImage *XSubImage(
+ XImage *ximage,
+ int x, int y,
+ unsigned int width, unsigned int height);
+extern int XAddPixel(
+ XImage *ximage,
+ long value);
+#else
/*
* These macros are used to give some sugar to the image routines so that
* naive people are more comfortable with them.
@@ -195,6 +216,7 @@ typedef struct {
((*((ximage)->f.sub_image))((ximage), (x), (y), (width), (height)))
#define XAddPixel(ximage, value) \
((*((ximage)->f.add_pixel))((ximage), (value)))
+#endif
/*
* Compose sequence status structure, used in calling XLookupString.
@@ -227,6 +249,8 @@ typedef struct _XComposeStatus {
#define IsModifierKey(keysym) \
((((KeySym)(keysym) >= XK_Shift_L) && ((KeySym)(keysym) <= XK_Hyper_R)) \
+ || (((KeySym)(keysym) >= XK_ISO_Lock) && \
+ ((KeySym)(keysym) <= XK_ISO_Last_Group_Lock)) \
|| ((KeySym)(keysym) == XK_Mode_switch) \
|| ((KeySym)(keysym) == XK_Num_Lock))
/*
@@ -326,344 +350,257 @@ _XFUNCPROTOBEGIN
/* The following declarations are alphabetized. */
extern XClassHint *XAllocClassHint (
-#if NeedFunctionPrototypes
void
-#endif
);
extern XIconSize *XAllocIconSize (
-#if NeedFunctionPrototypes
void
-#endif
);
extern XSizeHints *XAllocSizeHints (
-#if NeedFunctionPrototypes
void
-#endif
);
extern XStandardColormap *XAllocStandardColormap (
-#if NeedFunctionPrototypes
void
-#endif
);
extern XWMHints *XAllocWMHints (
-#if NeedFunctionPrototypes
void
-#endif
);
extern int XClipBox(
-#if NeedFunctionPrototypes
Region /* r */,
XRectangle* /* rect_return */
-#endif
);
extern Region XCreateRegion(
-#if NeedFunctionPrototypes
void
-#endif
);
-extern char *XDefaultString(
-#if NeedFunctionPrototypes
- void
-#endif
-);
+extern const char *XDefaultString (void);
extern int XDeleteContext(
-#if NeedFunctionPrototypes
Display* /* display */,
XID /* rid */,
XContext /* context */
-#endif
);
extern int XDestroyRegion(
-#if NeedFunctionPrototypes
Region /* r */
-#endif
);
extern int XEmptyRegion(
-#if NeedFunctionPrototypes
Region /* r */
-#endif
);
extern int XEqualRegion(
-#if NeedFunctionPrototypes
Region /* r1 */,
Region /* r2 */
-#endif
);
extern int XFindContext(
-#if NeedFunctionPrototypes
Display* /* display */,
XID /* rid */,
XContext /* context */,
XPointer* /* data_return */
-#endif
);
extern Status XGetClassHint(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
XClassHint* /* class_hints_return */
-#endif
);
extern Status XGetIconSizes(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
XIconSize** /* size_list_return */,
int* /* count_return */
-#endif
);
extern Status XGetNormalHints(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
XSizeHints* /* hints_return */
-#endif
);
extern Status XGetRGBColormaps(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
XStandardColormap** /* stdcmap_return */,
int* /* count_return */,
Atom /* property */
-#endif
);
extern Status XGetSizeHints(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
XSizeHints* /* hints_return */,
Atom /* property */
-#endif
);
extern Status XGetStandardColormap(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
XStandardColormap* /* colormap_return */,
Atom /* property */
-#endif
);
extern Status XGetTextProperty(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* window */,
XTextProperty* /* text_prop_return */,
Atom /* property */
-#endif
);
extern XVisualInfo *XGetVisualInfo(
-#if NeedFunctionPrototypes
Display* /* display */,
long /* vinfo_mask */,
XVisualInfo* /* vinfo_template */,
int* /* nitems_return */
-#endif
);
extern Status XGetWMClientMachine(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
XTextProperty* /* text_prop_return */
-#endif
);
extern XWMHints *XGetWMHints(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */
-#endif
);
extern Status XGetWMIconName(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
XTextProperty* /* text_prop_return */
-#endif
);
extern Status XGetWMName(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
XTextProperty* /* text_prop_return */
-#endif
);
extern Status XGetWMNormalHints(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
XSizeHints* /* hints_return */,
long* /* supplied_return */
-#endif
);
extern Status XGetWMSizeHints(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
XSizeHints* /* hints_return */,
long* /* supplied_return */,
Atom /* property */
-#endif
);
extern Status XGetZoomHints(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
XSizeHints* /* zhints_return */
-#endif
);
extern int XIntersectRegion(
-#if NeedFunctionPrototypes
Region /* sra */,
Region /* srb */,
Region /* dr_return */
-#endif
);
extern void XConvertCase(
-#if NeedFunctionPrototypes
KeySym /* sym */,
KeySym* /* lower */,
KeySym* /* upper */
-#endif
);
extern int XLookupString(
-#if NeedFunctionPrototypes
XKeyEvent* /* event_struct */,
char* /* buffer_return */,
int /* bytes_buffer */,
KeySym* /* keysym_return */,
XComposeStatus* /* status_in_out */
-#endif
);
extern Status XMatchVisualInfo(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* screen */,
int /* depth */,
int /* class */,
XVisualInfo* /* vinfo_return */
-#endif
);
extern int XOffsetRegion(
-#if NeedFunctionPrototypes
Region /* r */,
int /* dx */,
int /* dy */
-#endif
);
extern Bool XPointInRegion(
-#if NeedFunctionPrototypes
Region /* r */,
int /* x */,
int /* y */
-#endif
);
extern Region XPolygonRegion(
-#if NeedFunctionPrototypes
XPoint* /* points */,
int /* n */,
int /* fill_rule */
-#endif
);
extern int XRectInRegion(
-#if NeedFunctionPrototypes
Region /* r */,
int /* x */,
int /* y */,
unsigned int /* width */,
unsigned int /* height */
-#endif
);
extern int XSaveContext(
-#if NeedFunctionPrototypes
Display* /* display */,
XID /* rid */,
XContext /* context */,
_Xconst char* /* data */
-#endif
);
extern int XSetClassHint(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
XClassHint* /* class_hints */
-#endif
);
extern int XSetIconSizes(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
XIconSize* /* size_list */,
int /* count */
-#endif
);
extern int XSetNormalHints(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
XSizeHints* /* hints */
-#endif
);
extern void XSetRGBColormaps(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
XStandardColormap* /* stdcmaps */,
int /* count */,
Atom /* property */
-#endif
);
extern int XSetSizeHints(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
XSizeHints* /* hints */,
Atom /* property */
-#endif
);
extern int XSetStandardProperties(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
_Xconst char* /* window_name */,
@@ -672,60 +609,46 @@ extern int XSetStandardProperties(
char** /* argv */,
int /* argc */,
XSizeHints* /* hints */
-#endif
);
extern void XSetTextProperty(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
XTextProperty* /* text_prop */,
Atom /* property */
-#endif
);
extern void XSetWMClientMachine(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
XTextProperty* /* text_prop */
-#endif
);
extern int XSetWMHints(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
XWMHints* /* wm_hints */
-#endif
);
extern void XSetWMIconName(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
XTextProperty* /* text_prop */
-#endif
);
extern void XSetWMName(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
XTextProperty* /* text_prop */
-#endif
);
extern void XSetWMNormalHints(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
XSizeHints* /* hints */
-#endif
);
extern void XSetWMProperties(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
XTextProperty* /* window_name */,
@@ -735,11 +658,9 @@ extern void XSetWMProperties(
XSizeHints* /* normal_hints */,
XWMHints* /* wm_hints */,
XClassHint* /* class_hints */
-#endif
);
extern void XmbSetWMProperties(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
_Xconst char* /* window_name */,
@@ -749,137 +670,132 @@ extern void XmbSetWMProperties(
XSizeHints* /* normal_hints */,
XWMHints* /* wm_hints */,
XClassHint* /* class_hints */
-#endif
+);
+
+extern void Xutf8SetWMProperties(
+ Display* /* display */,
+ Window /* w */,
+ _Xconst char* /* window_name */,
+ _Xconst char* /* icon_name */,
+ char** /* argv */,
+ int /* argc */,
+ XSizeHints* /* normal_hints */,
+ XWMHints* /* wm_hints */,
+ XClassHint* /* class_hints */
);
extern void XSetWMSizeHints(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
XSizeHints* /* hints */,
Atom /* property */
-#endif
);
extern int XSetRegion(
-#if NeedFunctionPrototypes
Display* /* display */,
GC /* gc */,
Region /* r */
-#endif
);
extern void XSetStandardColormap(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
XStandardColormap* /* colormap */,
Atom /* property */
-#endif
);
extern int XSetZoomHints(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* w */,
XSizeHints* /* zhints */
-#endif
);
extern int XShrinkRegion(
-#if NeedFunctionPrototypes
Region /* r */,
int /* dx */,
int /* dy */
-#endif
);
extern Status XStringListToTextProperty(
-#if NeedFunctionPrototypes
char** /* list */,
int /* count */,
XTextProperty* /* text_prop_return */
-#endif
);
extern int XSubtractRegion(
-#if NeedFunctionPrototypes
Region /* sra */,
Region /* srb */,
Region /* dr_return */
-#endif
);
extern int XmbTextListToTextProperty(
-#if NeedFunctionPrototypes
- Display* /* display */,
- char** /* list */,
- int /* count */,
- XICCEncodingStyle /* style */,
- XTextProperty* /* text_prop_return */
-#endif
+ Display* display,
+ char** list,
+ int count,
+ XICCEncodingStyle style,
+ XTextProperty* text_prop_return
);
extern int XwcTextListToTextProperty(
-#if NeedFunctionPrototypes
- Display* /* display */,
- wchar_t** /* list */,
- int /* count */,
- XICCEncodingStyle /* style */,
- XTextProperty* /* text_prop_return */
-#endif
+ Display* display,
+ wchar_t** list,
+ int count,
+ XICCEncodingStyle style,
+ XTextProperty* text_prop_return
+);
+
+extern int Xutf8TextListToTextProperty(
+ Display* display,
+ char** list,
+ int count,
+ XICCEncodingStyle style,
+ XTextProperty* text_prop_return
);
extern void XwcFreeStringList(
-#if NeedFunctionPrototypes
- wchar_t** /* list */
-#endif
+ wchar_t** list
);
extern Status XTextPropertyToStringList(
-#if NeedFunctionPrototypes
XTextProperty* /* text_prop */,
char*** /* list_return */,
int* /* count_return */
-#endif
);
extern int XmbTextPropertyToTextList(
-#if NeedFunctionPrototypes
- Display* /* display */,
- XTextProperty* /* text_prop */,
- char*** /* list_return */,
- int* /* count_return */
-#endif
+ Display* display,
+ const XTextProperty* text_prop,
+ char*** list_return,
+ int* count_return
);
extern int XwcTextPropertyToTextList(
-#if NeedFunctionPrototypes
- Display* /* display */,
- XTextProperty* /* text_prop */,
- wchar_t*** /* list_return */,
- int* /* count_return */
-#endif
+ Display* display,
+ const XTextProperty* text_prop,
+ wchar_t*** list_return,
+ int* count_return
+);
+
+extern int Xutf8TextPropertyToTextList(
+ Display* display,
+ const XTextProperty* text_prop,
+ char*** list_return,
+ int* count_return
);
extern int XUnionRectWithRegion(
-#if NeedFunctionPrototypes
XRectangle* /* rectangle */,
Region /* src_region */,
Region /* dest_region_return */
-#endif
);
extern int XUnionRegion(
-#if NeedFunctionPrototypes
Region /* sra */,
Region /* srb */,
Region /* dr_return */
-#endif
);
extern int XWMGeometry(
-#if NeedFunctionPrototypes
Display* /* display */,
int /* screen_number */,
_Xconst char* /* user_geometry */,
@@ -891,15 +807,12 @@ extern int XWMGeometry(
int* /* width_return */,
int* /* height_return */,
int* /* gravity_return */
-#endif
);
extern int XXorRegion(
-#if NeedFunctionPrototypes
Region /* sra */,
Region /* srb */,
Region /* dr_return */
-#endif
);
_XFUNCPROTOEND
diff --git a/man/AllPlanes.man b/man/AllPlanes.man
index 06e88a79..d5fbb6f2 100644
--- a/man/AllPlanes.man
+++ b/man/AllPlanes.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/AllPlanes.man,v 1.2 2001/01/27 18:19:56 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,71 +140,67 @@
.el .sp 10p
..
.ny0
-.TH AllPlanes 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH AllPlanes 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
AllPlanes, BlackPixel, WhitePixel, ConnectionNumber, DefaultColormap, DefaultDepth, XListDepths, DefaultGC, DefaultRootWindow, DefaultScreenOfDisplay, DefaultScreen, DefaultVisual, DisplayCells, DisplayPlanes, DisplayString, XMaxRequestSize, XExtendedMaxRequestSize, LastKnownRequestProcessed, NextRequest, ProtocolVersion, ProtocolRevision, QLength, RootWindow, ScreenCount, ScreenOfDisplay, ServerVendor, VendorRelease \- Display macros and functions
.SH SYNTAX
-AllPlanes
-.LP
-BlackPixel\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.LP
-WhitePixel\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.LP
-ConnectionNumber\^(\^\fIdisplay\fP\^)
-.LP
-DefaultColormap\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.LP
-DefaultDepth\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.LP
-int *XListDepths\^(\^\fIdisplay\fP, \fIscreen_number\fP, \fIcount_return\fP\^)
-.br
- Display *\fIdisplay\fP;
-.br
- int \fIscreen_number\fP;
-.br
- int *\fIcount_return\fP;
-.LP
-DefaultGC\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.LP
-DefaultRootWindow\^(\^\fIdisplay\fP\^)
-.LP
-DefaultScreenOfDisplay\^(\^\fIdisplay\fP\^)
-.LP
-DefaultScreen\^(\^\fIdisplay\fP\^)
-.LP
-DefaultVisual\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.LP
-DisplayCells\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.LP
-DisplayPlanes\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.LP
-DisplayString\^(\^\fIdisplay\fP\^)
-.LP
-long XMaxRequestSize(\^\fIdisplay\fP\^)
- Display *\fIdisplay\fP\^;
-.LP
-long XExtendedMaxRequestSize(\^\fIdisplay\fP\^)
- Display *\fIdisplay\fP\^;
-.LP
-LastKnownRequestProcessed\^(\^\fIdisplay\fP\^)
-.LP
-NextRequest\^(\^\fIdisplay\fP\^)
-.LP
-ProtocolVersion\^(\^\fIdisplay\fP\^)
-.LP
-ProtocolRevision\^(\^\fIdisplay\fP\^)
-.LP
-QLength\^(\^\fIdisplay\fP\^)
-.LP
-RootWindow\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.LP
-ScreenCount\^(\^\fIdisplay\fP\^)
-.LP
-ScreenOfDisplay\^(\^\fIdisplay\fP, \fIscreen_number\fP\^)
-.LP
-ServerVendor\^(\^\fIdisplay\fP\^)
-.LP
-VendorRelease\^(\^\fIdisplay\fP\^)
+unsigned long AllPlanes;
+.HP
+unsigned long BlackPixel\^(\^Display *\fIdisplay\fP\^, int \^\fIscreen_number\fP\^);
+.HP
+unsigned long WhitePixel\^(\^Display *\fIdisplay\fP\^, int \^\fIscreen_number\fP\^);
+.HP
+int ConnectionNumber\^(\^Display *\fIdisplay\fP\^);
+.HP
+Colormap DefaultColormap\^(\^Display *\fIdisplay\fP\^,
+\^int \fIscreen_number\fP\^);
+.HP
+int DefaultDepth\^(\^Display *\fIdisplay\fP\^, \^int \fIscreen_number\fP\^);
+.HP
+int *XListDepths\^(\^Display *\fIdisplay\fP, int \fIscreen_number\fP, int
+\fIcount_return\fP\^);
+.HP
+GC DefaultGC\^(\^Display *\fIdisplay\fP\^, \^int \fIscreen_number\fP\^);
+.HP
+Window DefaultRootWindow\^(\^Display *\fIdisplay\fP\^);
+.HP
+Screen *DefaultScreenOfDisplay\^(\^Display *\fIdisplay\fP\^);
+.HP
+int DefaultScreen\^(\^Display *\fIdisplay\fP\^);
+.HP
+Visual *DefaultVisual\^(\^Display *\fIdisplay\fP\^, \^int
+\fIscreen_number\fP\^);
+.HP
+int DisplayCells\^(\^Display *\fIdisplay\fP\^, \^int \fIscreen_number\fP\^);
+.HP
+int DisplayPlanes\^(\^Display *\fIdisplay\fP\^, \^int \fIscreen_number\fP\^);
+.HP
+char *DisplayString\^(\^Display *\fIdisplay\fP\^);
+.HP
+long XMaxRequestSize(\^Display *\fIdisplay\fP\^)
+.HP
+long XExtendedMaxRequestSize(\^Display *\fIdisplay\fP\^)
+.HP
+unsigned long LastKnownRequestProcessed\^(\^Display *\fIdisplay\fP\^);
+.HP
+unsigned long NextRequest\^(\^Display *\fIdisplay\fP\^);
+.HP
+int ProtocolVersion\^(\^Display *\fIdisplay\fP\^);
+.HP
+int ProtocolRevision\^(\^Display *\fIdisplay\fP\^);
+.HP
+int QLength\^(\^Display *\fIdisplay\fP\^);
+.HP
+Window RootWindow\^(\^Display *\fIdisplay\fP\^, \^int \fIscreen_number\fP\^);
+.HP
+int ScreenCount\^(\^Display *\fIdisplay\fP\^);
+.HP
+Screen *ScreenOfDisplay\^(\^Display *\fIdisplay\fP, int
+\fIscreen_number\fP\^);
+.HP
+char *ServerVendor\^(\^Display *\fIdisplay\fP\^)
+.HP
+int VendorRelease\^(\^Display *\fIdisplay\fP\^)
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/BlackPixelOfScreen.man b/man/BlackPixelOfScreen.man
index 4ce663ae..08c3cd55 100644
--- a/man/BlackPixelOfScreen.man
+++ b/man/BlackPixelOfScreen.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/BlkPScrn.man,v 1.2 2001/01/27 18:19:56 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,51 +140,50 @@
.el .sp 10p
..
.ny0
-.TH BlackPixelOfScreen 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH BlackPixelOfScreen 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
BlackPixelOfScreen, WhitePixelOfScreen, CellsOfScreen, DefaultColormapOfScreen, DefaultDepthOfScreen, DefaultGCOfScreen, DefaultVisualOfScreen, DoesBackingStore, DoesSaveUnders, DisplayOfScreen, XScreenNumberOfScreen, EventMaskOfScreen, HeightOfScreen, HeightMMOfScreen, MaxCmapsOfScreen, MinCmapsOfScreen, PlanesOfScreen, RootWindowOfScreen, WidthOfScreen, WidthMMOfScreen \- screen information functions and macros
.SH SYNTAX
-BlackPixelOfScreen\^(\^\fIscreen\fP\^)
-.LP
-WhitePixelOfScreen\^(\^\fIscreen\fP\^)
-.LP
-CellsOfScreen\^(\^\fIscreen\fP\^)
-.LP
-DefaultColormapOfScreen\^(\^\fIscreen\fP\^)
-.LP
-DefaultDepthOfScreen\^(\^\fIscreen\fP\^)
-.LP
-DefaultGCOfScreen\^(\^\fIscreen\fP\^)
-.LP
-DefaultVisualOfScreen\^(\^\fIscreen\fP\^)
-.LP
-DoesBackingStore\^(\^\fIscreen\fP\^)
-.LP
-DoesSaveUnders\^(\^\fIscreen\fP\^)
-.LP
-DisplayOfScreen\^(\^\fIscreen\fP\^)
-.LP
-int XScreenNumberOfScreen\^(\^\fIscreen\fP\^)
-.br
- Screen *\fIscreen\fP\^;
-.LP
-EventMaskOfScreen\^(\^\fIscreen\fP\^)
-.LP
-HeightOfScreen\^(\^\fIscreen\fP\^)
-.LP
-HeightMMOfScreen\^(\^\fIscreen\fP\^)
-.LP
-MaxCmapsOfScreen\^(\^\fIscreen\fP\^)
-.LP
-MinCmapsOfScreen\^(\^\fIscreen\fP\^)
-.LP
-PlanesOfScreen\^(\^\fIscreen\fP\^)
-.LP
-RootWindowOfScreen\^(\^\fIscreen\fP\^)
-.LP
-WidthOfScreen\^(\^\fIscreen\fP\^)
-.LP
-WidthMMOfScreen\^(\^\fIscreen\fP\^)
+.HP
+unsigned long BlackPixelOfScreen\^(\^Screen *\fIscreen\fP\^);
+.HP
+unsigned long WhitePixelOfScreen\^(\^Screen *\fIscreen\fP\^);
+.HP
+int CellsOfScreen\^(\^Screen *\fIscreen\fP\^);
+.HP
+Colormap DefaultColormapOfScreen\^(\^Screen *\fIscreen\fP\^);
+.HP
+int DefaultDepthOfScreen\^(\^Screen *\fIscreen\fP\^);
+.HP
+GC DefaultGCOfScreen\^(\^Screen *\fIscreen\fP\^);
+.HP
+Visual *DefaultVisualOfScreen\^(\^Screen *\fIscreen\fP\^);
+.HP
+int DoesBackingStore\^(\^Screen *\fIscreen\fP\^);
+.HP
+Bool DoesSaveUnders\^(\^Screen *\fIscreen\fP\^);
+.HP
+Display *DisplayOfScreen\^(\^Screen *\fIscreen\fP\^);
+.HP
+int XScreenNumberOfScreen\^(\^Screen *\fIscreen\fP\^);
+.HP
+long EventMaskOfScreen\^(\^Screen *\fIscreen\fP\^);
+.HP
+int HeightOfScreen\^(\^Screen *\fIscreen\fP\^);
+.HP
+int HeightMMOfScreen\^(\^Screen *\fIscreen\fP\^);
+.HP
+int MaxCmapsOfScreen\^(\^Screen *\fIscreen\fP\^);
+.HP
+int MinCmapsOfScreen\^(\^Screen *\fIscreen\fP\^);
+.HP
+int PlanesOfScreen\^(\^Screen *\fIscreen\fP\^);
+.HP
+Window RootWindowOfScreen\^(\^Screen *\fIscreen\fP\^);
+.HP
+int WidthOfScreen\^(\^Screen *\fIscreen\fP\^);
+.HP
+int WidthMMOfScreen\^(\^Screen *\fIscreen\fP\^);
.SH ARGUMENTS
.IP \fIscreen\fP 1i
Specifies the appropriate
diff --git a/man/DisplayOfCCC.man b/man/DisplayOfCCC.man
index 56af98b1..4fc6153b 100644
--- a/man/DisplayOfCCC.man
+++ b/man/DisplayOfCCC.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/Dis3C.man,v 1.2 2001/01/27 18:19:56 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,29 +140,20 @@
.el .sp 10p
..
.ny0
-.TH DisplayOfCCC 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH DisplayOfCCC 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
DisplayOfCCC, VisualOfCCC, ScreenNumberOfCCC, ScreenWhitePointOfCCC, ClientWhitePointOfCCC \- Color Conversion Context macros
.SH SYNTAX
-DisplayOfCCC\^(\^\fIccc\fP\^)
-.br
- XcmsCCC \fIccc\fP\^;
-.LP
-VisualOfCCC\^(\^\fIccc\fP\^)
-.br
- XcmsCCC \fIccc\fP\^;
-.LP
-ScreenNumberOfCCC\^(\^\fIccc\fP\^)
-.br
- XcmsCCC \fIccc\fP\^;
-.LP
-ScreenWhitePointOfCCC\^(\^\fIccc\fP\^)
-.br
- XcmsCCC \fIccc\fP\^;
-.LP
-ClientWhitePointOfCCC\^(\^\fIccc\fP\^)
-.br
- XcmsCCC \fIccc\fP\^;
+.HP
+Display *DisplayOfCCC\^(\^XcmsCCC \fIccc\fP\^);
+.HP
+Visual *VisualOfCCC\^(\^XcmsCCC \fIccc\fP\^);
+.HP
+int ScreenNumberOfCCC\^(\^XcmsCCC \fIccc\fP\^);
+.HP
+XcmsColor *ScreenWhitePointOfCCC\^(\^XcmsCCC \fIccc\fP\^);
+.HP
+XcmsColor *ClientWhitePointOfCCC\^(\^XcmsCCC \fIccc\fP\^);
.SH ARGUMENTS
.IP \fIccc\fP 1i
Specifies the CCC.
diff --git a/man/ImageByteOrder.man b/man/ImageByteOrder.man
index 769ac5a7..c54d639c 100644
--- a/man/ImageByteOrder.man
+++ b/man/ImageByteOrder.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/ImageOrd.man,v 1.2 2001/01/27 18:19:56 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,31 +140,28 @@
.el .sp 10p
..
.ny0
-.TH ImageByteOrder 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH ImageByteOrder 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
ImageByteOrder, BitmapBitOrder, BitmapPad, BitmapUnit, DisplayHeight, DisplayHeightMM, DisplayWidth, DisplayWidthMM, XListPixmapFormats, XPixmapFormatValues \- image format functions and macros
.SH SYNTAX
-XPixmapFormatValues *XListPixmapFormats\^(\^\fIdisplay\fP, \fIcount_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int *\fIcount_return\fP\^;
-.LP
-ImageByteOrder\^(\^\fIdisplay\fP\^)
-.LP
-BitmapBitOrder\^(\^\fIdisplay\fP\^)
-.LP
-BitmapPad\^(\^\fIdisplay\fP\^)
-.LP
-BitmapUnit\^(\^\fIdisplay\fP\^)
-.LP
-DisplayHeight\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.LP
-DisplayHeightMM\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.LP
-DisplayWidth\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
-.LP
-DisplayWidthMM\^(\^\fIdisplay\fP\^, \^\fIscreen_number\fP\^)
+.HP
+XPixmapFormatValues *XListPixmapFormats\^(\^Display *\fIdisplay\fP, int *\fIcount_return\fP\^);
+.HP
+int ImageByteOrder\^(\^Display *\fIdisplay\fP\^);
+.HP
+int BitmapBitOrder\^(\^Display *\fIdisplay\fP\^);
+.HP
+int BitmapPad\^(\^Display *\fIdisplay\fP\^);
+.HP
+int BitmapUnit\^(\^Display *\fIdisplay\fP\^);
+.HP
+int DisplayHeight\^(\^Display *\fIdisplay\fP\^, \^int \fIscreen_number\fP\^);
+.HP
+int DisplayHeightMM\^(\^Display *\fIdisplay\fP\^, \^int \fIscreen_number\fP\^);
+.HP
+int DisplayWidth\^(\^Display *\fIdisplay\fP\^, \^int \fIscreen_number\fP\^);
+.HP
+int DisplayWidthMM\^(\^Display *\fIdisplay\fP\^, \^int \fIscreen_number\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/IsCursorKey.man b/man/IsCursorKey.man
index c00cefb3..cd33be51 100644
--- a/man/IsCursorKey.man
+++ b/man/IsCursorKey.man
@@ -1,3 +1,4 @@
+.\" $XdotOrg: lib/X11/man/IsCursorKey.man,v 1.2 2004-04-23 18:42:09 eich Exp $
.\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X Consortium
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining
@@ -40,6 +41,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/IsCKey.man,v 1.2 2001/01/27 18:19:56 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,23 +141,23 @@
.el .sp 10p
..
.ny0
-.TH IsCursorKey 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH IsCursorKey 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
-IsCursorKey, IsFunctionKey, IsKeypadKey, IsMiscFunctionKey, IsModiferKey, IsPFKey, IsPrivateKeypadKey \- keysym classification macros
+IsCursorKey, IsFunctionKey, IsKeypadKey, IsMiscFunctionKey, IsModifierKey, IsPFKey, IsPrivateKeypadKey \- keysym classification macros
.SH SYNTAX
-IsCursorKey\^(\^\fIkeysym\fP\^)
+int IsCursorKey\^(\^KeySym \fIkeysym\fP\^);
.LP
-IsFunctionKey\^(\^\fIkeysym\fP\^)
+int IsFunctionKey\^(\^KeySym \fIkeysym\fP\^);
.LP
-IsKeypadKey\^(\^\fIkeysym\fP\^)
+int IsKeypadKey\^(\^KeySym \fIkeysym\fP\^);
.LP
-IsMiscFunctionKey\^(\^\fIkeysym\fP\^)
+int IsMiscFunctionKey\^(\^KeySym \fIkeysym\fP\^);
.LP
-IsModifierKey\^(\^\fIkeysym\fP\^)
+int IsModifierKey\^(\^KeySym \fIkeysym\fP\^);
.LP
-IsPFKey\^(\^\fIkeysym\fP\^)
+int IsPFKey\^(\^KeySym \fIkeysym\fP\^);
.LP
-IsPrivateKeypadKey\^(\^\fIkeysym\fP\^)
+int IsPrivateKeypadKey\^(\^KeySym \fIkeysym\fP\^);
.SH ARGUMENTS
.ds Fn tested
.IP \fIkeysym\fP 1i
@@ -185,7 +188,7 @@ macro returns
if the specified KeySym is a miscellaneous function key.
.LP
The
-.ZN IsModiferKey
+.ZN IsModifierKey
macro returns
.ZN True
if the specified KeySym is a modifier key.
diff --git a/man/XAddConnectionWatch.man b/man/XAddConnectionWatch.man
index 2d52a511..8fb06dcb 100644
--- a/man/XAddConnectionWatch.man
+++ b/man/XAddConnectionWatch.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XIntConn.man,v 1.3 2001/11/21 22:54:13 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,57 +140,25 @@
.el .sp 10p
..
.ny0
-.TH XAddConnectionWatch 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XAddConnectionWatch 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XAddConnectionWatch, XRemoveConnectionWatch, XProcessInternalConnection, XInternalConnectionNumbers \- handle Xlib internal connections
.SH SYNTAX
-typedef void (*XConnectionWatchProc)\^(\^\fIdisplay\fP, \fIclient_data\fP, \fIfd\fP, \fIopening\fP, \fIwatch_data\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XPointer \fIclient_data\fP\^;
-.br
- int \fIfd\fP\^;
-.br
- Bool \fIopening\fP\^;
-.br
- XPointer *\fIwatch_data\fP\^;
-.LP
-Status XAddConnectionWatch\^(\^\fIdisplay\fP, \fIprocedure\fP\^, \fIclient_data\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XWatchProc \fIprocedure\fP\^;
-.br
- XPointer \fIclient_data\fP\^;
-.LP
-Status XRemoveConnectionWatch\^(\^\fIdisplay\fP, \fIprocedure\fP\^, \fIclient_data\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XWatchProc \fIprocedure\fP\^;
-.br
- XPointer \fIclient_data\fP\^;
-.LP
-void XProcessInternalConnection\^(\^\fIdisplay\fP, \fIfd\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIfd\fP\^;
-.LP
-void XProcessInternalConnection\^(\^\fIdisplay\fP, \fIfd\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIfd\fP\^;
-.LP
-Status XInternalConnectionNumbers\^(\^\fIdisplay\fP, \fIfd_return\fP\^, \fIcount_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int **\fIfd_return\fP\^;
-.br
- int *\fIcount_return\fP\^;
+.HP
+typedef void (*XConnectionWatchProc)\^(\^Display *\fIdisplay\fP\^, XPointer
+\fIclient_data\fP\^, int \fIfd\fP\^, Bool \fIopening\fP\^, XPointer
+*\fIwatch_data\fP\^);
+.HP
+Status XAddConnectionWatch\^(\^Display *\fIdisplay\fP\^, XWatchProc
+\fIprocedure\fP\^, XPointer \fIclient_data\fP\^);
+.HP
+Status XRemoveConnectionWatch\^(\^Display *\fIdisplay\fP\^, XWatchProc
+\fIprocedure\fP\^, XPointer \fIclient_data\fP\^);
+.HP
+void XProcessInternalConnection\^(\^Display *\fIdisplay\fP\^, int \fIfd\fP\^);
+.HP
+Status XInternalConnectionNumbers\^(\^Display *\fIdisplay\fP\^, int
+**\fIfd_return\fP\^, int *\fIcount_return\fP\^);
.SH ARGUMENTS
.IP \fIclient_data\fP 1i
Specifies the additional client data.
@@ -255,17 +225,6 @@ has indicated that input is available; otherwise,
the effect is not defined.
.LP
The
-.ZN XProcessInternalConnection
-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,
-.ZN select
-or
-.ZN poll )
-has indicated that input is available; otherwise,
-the effect is not defined.
-.LP
-The
.ZN XInternalConnectionNumbers
function returns a list of the file descriptors for all internal
connections currently open for the specified display.
diff --git a/man/XAddHost.man b/man/XAddHost.man
index 0431632c..01c3335b 100644
--- a/man/XAddHost.man
+++ b/man/XAddHost.man
@@ -1,28 +1,34 @@
.\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X Consortium
+.\" Copyright \(co 2004 Sun Microsystems, Inc.
.\"
-.\" Permission is hereby granted, free of charge, to any person obtaining
-.\" a copy of this software and associated documentation files (the
+.\" 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, sublicense, 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 shall be included
-.\" in all copies or substantial portions of the Software.
-.\"
+.\" distribute, and/or sell copies of the Software, and to permit persons
+.\" to whom the Software is furnished to do so, provided that the above
+.\" copyright notice(s) and this permission notice appear in all copies of
+.\" the Software and that both the above copyright notice(s) and this
+.\" permission notice appear in supporting documentation.
+.\"
.\" 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 NONINFRINGEMENT.
-.\" IN NO EVENT SHALL THE X CONSORTIUM 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.
-.\"
-.\" Except as contained in this notice, the name of the X Consortium shall
-.\" not be used in advertising or otherwise to promote the sale, use or
-.\" other dealings in this Software without prior written authorization
-.\" from the X Consortium.
+.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+.\" OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+.\" HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+.\" INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+.\" FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+.\" NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+.\" WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.\" Except as contained in this notice, the name of a copyright holder
+.\" shall not be used in advertising or otherwise to promote the sale, use
+.\" or other dealings in this Software without prior written authorization
+.\" of the copyright holder.
+.\"
+.\" X Window System is a trademark of The Open Group.
.\"
.\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991 by
.\" Digital Equipment Corporation
@@ -40,6 +46,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XAddHost.man,v 1.3 2003/04/28 22:17:54 herrb Exp $
+.\" $XdotOrg: lib/X11/man/XAddHost.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,59 +147,28 @@
.el .sp 10p
..
.ny0
-.TH XAddHost 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XAddHost 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
-XAddHost, XAddHosts, XListHosts, XRemoveHost, XRemoveHosts, XSetAccessControl, XEnableAccessControl, XDisableAccessControl, XHostAddress \- control host access and host control structure
+XAddHost, XAddHosts, XListHosts, XRemoveHost, XRemoveHosts, XSetAccessControl, XEnableAccessControl, XDisableAccessControl, XHostAddress, XServerInterpretedAddress \- control host access and host control structure
.SH SYNTAX
-XAddHost\^(\^\fIdisplay\fP, \fIhost\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XHostAddress *\fIhost\fP\^;
-.LP
-XAddHosts\^(\^\fIdisplay\fP, \fIhosts\fP, \fInum_hosts\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XHostAddress *\fIhosts\fP\^;
-.br
- int \fInum_hosts\fP\^;
-.LP
-XHostAddress *XListHosts\^(\^\fIdisplay\fP, \fInhosts_return\fP, \fIstate_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int *\fInhosts_return\fP\^;
-.br
- Bool *\fIstate_return\fP\^;
-.LP
-XRemoveHost\^(\^\fIdisplay\fP, \fIhost\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XHostAddress *\fIhost\fP\^;
-.LP
-XRemoveHosts\^(\^\fIdisplay\fP, \fIhosts\fP, \fInum_hosts\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XHostAddress *\fIhosts\fP\^;
-.br
- int \fInum_hosts\fP\^;
-.LP
-XSetAccessControl\^(\^\fIdisplay\fP, \fImode\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fImode\fP\^;
-.LP
-XEnableAccessControl\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.LP
-XDisableAccessControl\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
+.HP
+int XAddHost\^(\^Display *\fIdisplay\fP, XHostAddress *\fIhost\fP\^);
+.HP
+int XAddHosts\^(\^Display *\fIdisplay\fP, XHostAddress *\fIhosts\fP,
+int \fInum_hosts\fP\^);
+.HP
+XHostAddress *XListHosts\^(\^Display *\fIdisplay\fP, int *\fInhosts_return\fP,
+Bool \fIstate_return\fP\^);
+.HP
+int XRemoveHost\^(\^Display *\fIdisplay\fP, XHostAddress *\fIhost\fP\^);
+.HP
+int XRemoveHosts\^(\^Display *\fIdisplay\fP, XHostAddress *\fIhosts\fP, int \fInum_hosts\fP\^);
+.HP
+int XSetAccessControl\^(\^Display *\fIdisplay\fP, int \fImode\fP\^);
+.HP
+int XEnableAccessControl\^(\^Display *\fIdisplay\fP\^);
+.HP
+int XDisableAccessControl\^(\^Display *\fIdisplay\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
@@ -327,20 +305,43 @@ structure contains:
.TA .5i 3i
.ta .5i 3i
typedef struct {
- int family; /* for example FamilyInternet */
- int length; /* length of address, in bytes */
- char *address; /* pointer to where to find the address */
+ int family; /\(** for example FamilyInternet */
+ int length; /\(** length of address, in bytes */
+ char *address; /\(** pointer to where to find the address */
} XHostAddress;
.De
.LP
The family member specifies which protocol address family to use
(for example, TCP/IP or DECnet) and can be
.ZN FamilyInternet ,
+.ZN FamilyInternet6 ,
+.ZN FamilyServerInterpreted ,
.ZN FamilyDECnet ,
or
.ZN FamilyChaos .
The length member specifies the length of the address in bytes.
The address member specifies a pointer to the address.
+.LP
+For the ServerInterpreted family, the length is ignored and the address
+member is a pointer to a
+.ZN XServerInterpretedAddress
+structure which contains:
+.LP
+.Ds 0
+.TA .5i 3i
+.ta .5i 3i
+typedef struct {
+ int typelength; /\(** length of type string, in bytes */
+ int valuelength; /\(** length of value string, in bytes */
+ char *type; /\(** pointer to where to find the type string */
+ char *value; /\(** pointer to where to find the address */
+} XServerInterpretedAddress;
+.De
+.LP
+The type and value members point to strings representing the type and value of
+the server interpreted entry. These strings may not be NULL-terminated so care
+should be used when accessing them. The typelength and valuelength members
+specify the length in byte of the type and value strings.
.SH DIAGNOSTICS
.TP 1i
.ZN BadAccess
diff --git a/man/XAllocClassHint.man b/man/XAllocClassHint.man
index b1a5ad1d..96998994 100644
--- a/man/XAllocClassHint.man
+++ b/man/XAllocClassHint.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XACHints.man,v 1.2 2001/01/27 18:19:56 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,27 +140,16 @@
.el .sp 10p
..
.ny0
-.TH XAllocClassHint 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XAllocClassHint 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XAllocClassHint, XSetClassHint, XGetClassHint, XClassHint \- allocate class hints structure and set or read a window's WM_CLASS property
.SH SYNTAX
-XClassHint *XAllocClassHint\^(\|)
-.LP
-XSetClassHint\^(\^\fIdisplay\fP, \fIw\fP, \fIclass_hints\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- XClassHint *\fIclass_hints\fP\^;
-.LP
-Status XGetClassHint\^(\^\fIdisplay\fP, \fIw\fP, \fIclass_hints_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP;
-.br
- XClassHint *\fIclass_hints_return\fP\^;
+.HP
+XClassHint *XAllocClassHint\^(void\^);
+.HP
+XSetClassHint\^(\^Display *\fIdisplay\fP, Window \fIw\fP, XClassHint *\fIclass_hints\fP\^);
+.HP
+Status XGetClassHint\^(\^Display *\fIdisplay\fP, Window \fIw\fP, XClassHint *\fIclass_hints_return\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XAllocColor.man b/man/XAllocColor.man
index 5f968467..57a3dd50 100644
--- a/man/XAllocColor.man
+++ b/man/XAllocColor.man
@@ -41,6 +41,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XAllColor.man,v 1.3 2001/02/09 03:47:45 tsi Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -140,78 +142,31 @@
..
.ny0
'\" e
-.TH XAllocColor 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XAllocColor 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XAllocColor, XAllocNamedColor, XAllocColorCells, XAllocColorPlanes, XFreeColors \- allocate and free colors
.SH SYNTAX
-Status XAllocColor\^(\^\fIdisplay\fP, \fIcolormap\fP\^, \fIscreen_in_out\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Colormap \fIcolormap\fP\^;
-.br
- XColor *\fIscreen_in_out\fP\^;
-.LP
-Status XAllocNamedColor\^(\^\fIdisplay\fP, \fIcolormap\fP\^, \
-\fIcolor_name\fP\^, \fIscreen_def_return\fP\^, \fIexact_def_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Colormap \fIcolormap\fP\^;
-.br
- char *\fIcolor_name\fP\^;
-.br
- XColor *\fIscreen_def_return\fP\^, *\fIexact_def_return\fP\^;
-.LP
-Status XAllocColorCells\^(\^\fIdisplay\fP, \fIcolormap\fP\^, \fIcontig\fP\^, \
-\fIplane_masks_return\fP\^, \fInplanes\fP\^,
-.br
- \fIpixels_return\fP\^, \fInpixels\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Colormap \fIcolormap\fP\^;
-.br
- Bool \fIcontig\fP\^;
-.br
- unsigned long \fIplane_masks_return\fP[\^]\^;
-.br
- unsigned int \fInplanes\fP\^;
-.br
- unsigned long \fIpixels_return\fP[\^]\^;
-.br
- unsigned int \fInpixels\fP\^;
-.LP
-Status XAllocColorPlanes\^(\^\fIdisplay\fP, \fIcolormap\fP\^, \fIcontig\fP\^, \fIpixels_return\fP\^, \fIncolors\fP\^, \fInreds\fP\^, \fIngreens\fP\^,
-.br
- \fInblues\fP\^, \fIrmask_return\fP\^, \fIgmask_return\fP\^, \fIbmask_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Colormap \fIcolormap\fP\^;
-.br
- Bool \fIcontig\fP\^;
-.br
- unsigned long \fIpixels_return\fP[\^]\^;
-.br
- int \fIncolors\fP\^;
-.br
- int \fInreds\fP\^, \fIngreens\fP\^, \fInblues\fP\^;
-.br
- unsigned long *\fIrmask_return\fP\^, *\fIgmask_return\fP\^, *\fIbmask_return\fP\^;
-.LP
-XFreeColors\^(\^\fIdisplay\fP, \fIcolormap\fP\^, \fIpixels\fP\^, \fInpixels\fP\^, \fIplanes\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Colormap \fIcolormap\fP\^;
-.br
- unsigned long \fIpixels\fP\^[\^];
-.br
- int \fInpixels\fP\^;
-.br
- unsigned long \fIplanes\fP\^;
-.SH ARGUMENTS
+.HP
+Status XAllocColor\^(\^Display *\fIdisplay\fP, Colormap \fIcolormap\fP\^,
+XColor *\fIscreen_in_out\fP\^);
+.HP
+Status XAllocNamedColor\^(\^Display *\fIdisplay\fP, Colormap \fIcolormap\fP\^,
+char *\fIcolor_name\fP\^, XColor *\fIscreen_def_return\fP\^, XColor
+*\fIexact_def_return\fP\^);
+.HP
+Status XAllocColorCells\^(\^Display *\fIdisplay\fP, Colormap \fIcolormap\fP\^,
+Bool \fIcontig\fP\^, unsigned long\fIplane_masks_return\fP[\^]\^, unsigned int
+\fInplanes\fP\^, unsigned long \fIpixels_return\fP[\^]\^, unsigned int
+\fInpixels\fP\^);
+.HP
+Status XAllocColorPlanes\^(\^Display *\fIdisplay\fP, Colormap
+\fIcolormap\fP\^, Bool \fIcontig\fP\^, unsigned long
+\fIpixels_return\fP[\^]\^, int \fIncolors\fP\^, int \fInreds\fP\^, int
+\fIngreens\fP\^, int \fInblues\fP\^, unsigned long *\fIrmask_return\fP\^,
+unsigned long *\fIgmask_return\fP\^, unsigned long *\fIbmask_return\fP\^);
+.HP
+int XFreeColors\^(\^Display *\fIdisplay\fP, Colormap \fIcolormap\fP\^, unsigned
+long \fIpixels\fP\^[\^], int \fInpixels\fP\^, unsigned long \fIplanes\fP\^);
.IP \fIcolor_name\fP 1i
Specifies the color name string (for example, red) whose color
definition structure you want returned.
diff --git a/man/XAllocIconSize.man b/man/XAllocIconSize.man
index 9d719601..466aa996 100644
--- a/man/XAllocIconSize.man
+++ b/man/XAllocIconSize.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XAIcSize.man,v 1.2 2001/01/27 18:19:56 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,31 +140,17 @@
.el .sp 10p
..
.ny0
-.TH XAllocIconSize 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XAllocIconSize 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XAllocIconSize, XSetIconSizes, XGetIconSizes, XIconSize \- allocate icon size structure and set or read a window's WM_ICON_SIZES property
.SH SYNTAX
-XIconSize *XAllocIconSize\^(\|)
+XIconSize *XAllocIconSize\^(void\^);
.LP
-XSetIconSizes\^(\^\fIdisplay\fP, \fIw\fP, \fIsize_list\fP, \fIcount\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- XIconSize *\fIsize_list\fP\^;
-.br
- int \fIcount\fP\^;
+int XSetIconSizes\^(\^Display *\fIdisplay\fP, Window \fIw\fP, XIconSize
+*\fIsize_list\fP, int \fIcount\fP\^);
.LP
-Status XGetIconSizes\^(\^\fIdisplay\fP, \fIw\fP, \fIsize_list_return\fP, \fIcount_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- XIconSize **\fIsize_list_return\fP\^;
-.br
- int *\fIcount_return\fP\^;
+Status XGetIconSizes\^(\^Display *\fIdisplay\fP, Window \fIw\fP, XIconSize
+**\fIsize_list_return\fP, int \fIcount_return\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XAllocSizeHints.man b/man/XAllocSizeHints.man
index 082a2f47..8fe14409 100644
--- a/man/XAllocSizeHints.man
+++ b/man/XAllocSizeHints.man
@@ -41,9 +41,12 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XASHints.man,v 1.5 2003/04/28 22:17:54 herrb Exp $
+.\" $XdotOrg: lib/X11/man/XAllocSizeHints.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
-.ds xL Xlib \- C Language X Interface
+.ds xL Xlib \- C Language X Interface, \fRO'Reilly and Associates,
.ds xC Inter-Client Communication Conventions Manual
.na
.de Ds
@@ -140,53 +143,23 @@
..
.ny0
'\" t
-.TH XAllocSizeHints 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XAllocSizeHints 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XAllocSizeHints, XSetWMNormalHints, XGetWMNormalHints, XSetWMSizeHints, XGetWMSizeHints, XSizeHints \- allocate size hints structure and set or read a window's WM_NORMAL_HINTS property
.SH SYNTAX
-XSizeHints *XAllocSizeHints\^(\|)
-.LP
-void XSetWMNormalHints\^(\^\fIdisplay\fP, \fIw\fP, \fIhints\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- XSizeHints *\fIhints\fP\^;
-.LP
-Status XGetWMNormalHints\^(\^\fIdisplay\fP, \fIw\fP, \fIhints_return\fP, \
-\fIsupplied_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- XSizeHints *\fIhints_return\fP\^;
-.br
- long *\fIsupplied_return\fP\^;
-.LP
-void XSetWMSizeHints\^(\^\fIdisplay\fP, \fIw\fP, \fIhints\fP, \fIproperty\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- XSizeHints *\fIhints\fP\^;
-.br
- Atom \fIproperty\fP\^;
-.LP
-Status XGetWMSizeHints\^(\^\fIdisplay\fP, \fIw\fP, \fIhints_return\fP, \
-\fIsupplied_return\fP, \fIproperty\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- XSizeHints *\fIhints_return\fP\^;
-.br
- long *\fIsupplied_return\fP\^;
-.br
- Atom \fIproperty\fP\^;
+.HP
+XSizeHints *XAllocSizeHints\^(void\^);
+.HP
+void XSetWMNormalHints\^(\^Display *\fIdisplay\fP, Window \fIw\fP, XSizeHints *\fIhints\fP\^);
+.HP
+Status XGetWMNormalHints\^(\^Display *\fIdisplay\fP, Window \fIw\fP,
+XSizeHints *\fIhints_return\fP, long *\fIsupplied_return\fP\^);
+.HP
+void XSetWMSizeHints\^(\^Display *\fIdisplay\fP, Window \fIw\fP, XSizeHints
+*\fIhints\fP, Atom \fIproperty\fP\^);
+.HP
+Status XGetWMSizeHints\^(\^Display *\fIdisplay\fP, Window \fIw\fP, XSizeHints
+*\fIhints_return\fP, long *\fIsupplied_return\fP, Atom \fIproperty\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
@@ -323,7 +296,7 @@ the supplied_return argument will contain the following bits:
.LP
.Ds
(USPosition|USSize|PPosition|PSize|PMinSize|
- PMaxSize|PResizeInc|PAspect)
+ PMaxSize|PResizeInc|PAspect);
.De
.LP
If the property is large enough to contain the base size
@@ -351,97 +324,97 @@ The
.ZN XSizeHints
structure contains:
.LP
-/* Size hints mask bits */
+/\(** Size hints mask bits */
.TS
lw(.5i) lw(1.1i) lw(1.5i) lw(3.1i).
T{
-#define
+\&#define
T} T{
.ZN USPosition
T} T{
(1L << 0)
T} T{
-/* user specified x, y */
+/\(** user specified x, y */
T}
T{
-#define
+\&#define
T} T{
.ZN USSize
T} T{
(1L << 1)
T} T{
-/* user specified width, height */
+/\(** user specified width, height */
T}
T{
-#define
+\&#define
T} T{
.ZN PPosition
T} T{
(1L << 2)
T} T{
-/* program specified position */
+/\(** program specified position */
T}
T{
-#define
+\&#define
T} T{
.ZN PSize
T} T{
(1L << 3)
T} T{
-/* program specified size */
+/\(** program specified size */
T}
T{
-#define
+\&#define
T} T{
.ZN PMinSize
T} T{
(1L << 4)
T} T{
-/* program specified minimum size */
+/\(** program specified minimum size */
T}
T{
-#define
+\&#define
T} T{
.ZN PMaxSize
T} T{
(1L << 5)
T} T{
-/* program specified maximum size */
+/\(** program specified maximum size */
T}
T{
-#define
+\&#define
T} T{
.ZN PResizeInc
T} T{
(1L << 6)
T} T{
-/* program specified resize increments */
+/\(** program specified resize increments */
T}
T{
-#define
+\&#define
T} T{
.ZN PAspect
T} T{
(1L << 7)
T} T{
-/* program specified min and max aspect ratios */
+/\(** program specified min and max aspect ratios */
T}
T{
-#define
+\&#define
T} T{
.ZN PBaseSize
T} T{
(1L << 8)
T}
T{
-#define
+\&#define
T} T{
.ZN PWinGravity
T} T{
(1L << 9)
T}
T{
-#define
+\&#define
T} T{
.ZN PAllHints
T} T{
@@ -457,22 +430,22 @@ T}
.Ds 0
.TA .5i 2.5i
.ta .5i 2.5i
-/* Values */
+/\(** Values */
typedef struct {
- long flags; /* marks which fields in this structure are defined */
- int x, y; /* Obsolete */
- int width, height; /* Obsolete */
+ long flags; /\(** marks which fields in this structure are defined */
+ int x, y; /\(** Obsolete */
+ int width, height; /\(** Obsolete */
int min_width, min_height;
int max_width, max_height;
int width_inc, height_inc;
struct {
- int x; /* numerator */
- int y; /* denominator */
+ int x; /\(** numerator */
+ int y; /\(** denominator */
} min_aspect, max_aspect;
int base_width, base_height;
int win_gravity;
- /* this structure may be extended in the future */
+ /\(** this structure may be extended in the future */
} XSizeHints;
.De
.LP
diff --git a/man/XAllocStandardColormap.man b/man/XAllocStandardColormap.man
index e7c2173a..01d7bb5d 100644
--- a/man/XAllocStandardColormap.man
+++ b/man/XAllocStandardColormap.man
@@ -41,6 +41,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XASCmap.man,v 1.5 2003/04/28 22:17:54 herrb Exp $
+.\" $XdotOrg: lib/X11/man/XAllocStandardColormap.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -140,37 +143,20 @@
..
.ny0
'\" t
-.TH XAllocStandardColormap 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XAllocStandardColormap 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XAllocStandardColormap, XSetRGBColormaps, XGetRGBColormaps, XStandardColormap \- allocate, set, or read a standard colormap structure
.SH SYNTAX
-XStandardColormap *XAllocStandardColormap\^(\|)
-.LP
-void XSetRGBColormaps\^(\^\fIdisplay\fP, \fIw\fP, \fIstd_colormap\fP, \
-\fIcount\fP, \fIproperty\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- XStandardColormap *\fIstd_colormap\fP\^;
-.br
- int \fIcount\fP\^;
-.br
- Atom \fIproperty\fP\^;
-.LP
-Status XGetRGBColormaps\^(\^\fIdisplay\fP, \fIw\fP, \fIstd_colormap_return\fP, \
-\fIcount_return\fP, \fIproperty\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- XStandardColormap **\fIstd_colormap_return\fP\^;
-.br
- int *\fIcount_return\fP\^;
-.br
- Atom \fIproperty\fP\^;
+.HP
+XStandardColormap *XAllocStandardColormap\^(void\^);
+.HP
+void XSetRGBColormaps\^(\^Display *\fIdisplay\fP, Window \fIw\fP,
+XStandardColormap *\fIstd_colormap\fP,
+int \fIcount\fP, Atom \fIproperty\fP\^);
+.HP
+Status XGetRGBColormaps\^(\^Display *\fIdisplay\fP, Window \fIw\fP,
+XStandardColormap **\fIstd_colormap_return\fP, int *\fIcount_return\fP,
+Atom \fIproperty\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
@@ -298,18 +284,18 @@ The
.ZN XStandardColormap
structure contains:
.LP
-/* Hints */
+/\(** Hints */
.TS
lw(.5i) lw(2i) lw(1i).
T{
-#define
+\&#define
T} T{
.ZN ReleaseByFreeingColormap
T} T{
-( (XID) 1L)
+( (XID) 1L);
T}
.TE
-/* Values */
+/\(** Values */
.IN "XStandardColormap" "" "@DEF@"
.Ds 0
.TA .5i 2.5i
@@ -344,7 +330,7 @@ green_max = 5, and blue_max = 5.
.LP
The red_mult, green_mult, and blue_mult members give the
scale factors used to compose a full pixel value.
-(See the discussion of the base_pixel members for further information.)
+(See the discussion of the base_pixel members for further information.);
For a 3/3/2 allocation, red_mult might be 32,
green_mult might be 4, and blue_mult might be 1.
For a 6-colors-each allocation, red_mult might be 36,
@@ -396,7 +382,7 @@ the cells held by this standard colormap are to be released
by freeing the colormap ID or by calling the
.ZN XKillClient
function on the indicated resource.
-(Note that this method is necessary for allocating out of an existing colormap.)
+(Note that this method is necessary for allocating out of an existing colormap.);
.LP
The properties containing the
.ZN XStandardColormap
diff --git a/man/XAllocWMHints.man b/man/XAllocWMHints.man
index 6331ada2..5710ba03 100644
--- a/man/XAllocWMHints.man
+++ b/man/XAllocWMHints.man
@@ -41,9 +41,13 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XAWMHints.man,v 1.4 2003/04/28 22:17:54 herrb Exp $
+.\" $XdotOrg: lib/X11/man/XAllocWMHints.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
-.ds xL Xlib \- C Language X Interface
+.ds xL Xlib \- C Language X Interface, \fRO'Reilly and Associates, Sebastopol,
+1991.
.ds xC Inter-Client Communication Conventions Manual
.na
.de Ds
@@ -140,26 +144,16 @@
..
.ny0
'\" t
-.TH XAllocWMHints 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XAllocWMHints 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XAllocWMHints, XSetWMHints, XGetWMHints, XWMHints \- allocate window manager hints structure and set or read a window's WM_HINTS property
.SH SYNTAX
-XWMHints *XAllocWMHints\^(\|)
-.LP
-XSetWMHints\^(\^\fIdisplay\fP, \fIw\fP, \fIwmhints\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- XWMHints *\fIwmhints\fP\^;
-
-.LP
-XWMHints *XGetWMHints\^(\^\fIdisplay\fP, \fIw\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
+.HP
+XWMHints *XAllocWMHints\^(void\^);
+.HP
+int XSetWMHints\^(\^Display *\fIdisplay\fP, Window \fIw\fP, XWMHints *\fIwmhints\fP\^);
+.HP
+XWMHints *XGetWMHints\^(\^Display *\fIdisplay\fP, Window \fIw\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
@@ -224,67 +218,67 @@ The
.ZN XWMHints
structure contains:
.LP
-/* Window manager hints mask bits */
+/\(** Window manager hints mask bits */
.TS
lw(.5i) lw(2.5i) lw(2.5i).
T{
-#define
+\&#define
T} T{
.ZN InputHint
T} T{
-(1L << 0)
+(1L << 0);
T}
T{
-#define
+\&#define
T} T{
.ZN StateHint
T} T{
-(1L << 1)
+(1L << 1);
T}
T{
-#define
+\&#define
T} T{
.ZN IconPixmapHint
T} T{
-(1L << 2)
+(1L << 2);
T}
T{
-#define
+\&#define
T} T{
.ZN IconWindowHint
T} T{
-(1L << 3)
+(1L << 3);
T}
T{
-#define
+\&#define
T} T{
.ZN IconPositionHint
T} T{
-(1L << 4)
+(1L << 4);
T}
T{
-#define
+\&#define
T} T{
.ZN IconMaskHint
T} T{
-(1L << 5)
+(1L << 5);
T}
T{
-#define
+\&#define
T} T{
.ZN WindowGroupHint
T} T{
-(1L << 6)
+(1L << 6);
T}
T{
-#define
+\&#define
T} T{
.ZN UrgencyHint
T} T{
-(1L << 8)
+(1L << 8);
T}
T{
-#define
+\&#define
T} T{
.ZN AllHints
T} T{
@@ -292,26 +286,26 @@ T} T{
.br
IconWindowHint|IconPositionHint|
.br
-IconMaskHint|WindowGroupHint)
+IconMaskHint|WindowGroupHint);
T}
.TE
.IN "XWMHints" "" "@DEF@"
.Ds 0
.TA .5i 2.5i
.ta .5i 2.5i
-/* Values */
+/\(** Values */
typedef struct {
- long flags; /* marks which fields in this structure are defined */
- Bool input; /* does this application rely on the window manager to
+ long flags; /\(** marks which fields in this structure are defined */
+ Bool input; /\(** does this application rely on the window manager to
get keyboard input? */
- int initial_state; /* see below */
- Pixmap icon_pixmap; /* pixmap to be used as icon */
- Window icon_window; /* window to be used as icon */
- int icon_x, icon_y; /* initial position of icon */
- Pixmap icon_mask; /* pixmap to be used as mask for icon_pixmap */
- XID window_group; /* id of related window group */
- /* this structure may be extended in the future */
+ int initial_state; /\(** see below */
+ Pixmap icon_pixmap; /\(** pixmap to be used as icon */
+ Window icon_window; /\(** window to be used as icon */
+ int icon_x, icon_y; /\(** initial position of icon */
+ Pixmap icon_mask; /\(** pixmap to be used as mask for icon_pixmap */
+ XID window_group; /\(** id of related window group */
+ /\(** this structure may be extended in the future */
} XWMHints;
.De
.LP
@@ -351,7 +345,7 @@ The definitions for the initial_state flag are:
.TS
lw(.5i) lw(2i) lw(.2i) lw(2.8i).
T{
-#define
+\&#define
T} T{
.ZN WithdrawnState
T} T{
@@ -359,22 +353,22 @@ T} T{
T} T{
T}
T{
-#define
+\&#define
T} T{
.ZN NormalState
T} T{
1
T} T{
-/* most applications start this way */
+/\(** most applications start this way */
T}
T{
-#define
+\&#define
T} T{
.ZN IconicState
T} T{
3
T} T{
-/* application wants to start as an icon */
+/\(** application wants to start as an icon */
T}
.TE
The icon_mask specifies which pixels of the icon_pixmap should be used as the
@@ -397,7 +391,7 @@ contents to be urgent, requiring the timely response of the user. The
window manager will make some effort to draw the user's attention to this
window while this flag is set. The client must provide some means by which the
user can cause the urgency flag to be cleared (either mitigating
-the condition that made the window urgent or merely shutting off the alarm)
+the condition that made the window urgent or merely shutting off the alarm);
or the window to be withdrawn.
.SH DIAGNOSTICS
.TP 1i
diff --git a/man/XAllowEvents.man b/man/XAllowEvents.man
index 545aaf33..0805afa9 100644
--- a/man/XAllowEvents.man
+++ b/man/XAllowEvents.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XAllEvnt.man,v 1.2 2001/01/27 18:19:56 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,17 +140,13 @@
.el .sp 10p
..
.ny0
-.TH XAllowEvents 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XAllowEvents 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XAllowEvents \- release queued events
.SH SYNTAX
-XAllowEvents\^(\^\fIdisplay\fP, \fIevent_mode\fP\^, \fItime\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIevent_mode\fP\^;
-.br
- Time \fItime\fP\^;
+.HP
+int XAllowEvents\^(\^Display *\fIdisplay\fP, int \fIevent_mode\fP\^,
+Time \fItime\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XAnyEvent.man b/man/XAnyEvent.man
index 5a6196e3..5f6fc037 100644
--- a/man/XAnyEvent.man
+++ b/man/XAnyEvent.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XAnyEvent.man,v 1.2 2001/01/27 18:19:56 dawes Exp $
+.\" $XdotOrg: lib/X11/man/XAnyEvent.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,7 +141,7 @@
.el .sp 10p
..
.ny0
-.TH XAnyEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XAnyEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XAnyEvent, XEvent \- generic X event structures
.SH STRUCTURES
@@ -150,9 +153,9 @@ have the following common members:
.ta .5i 3i
typedef struct {
int type;
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came from a SendEvent request */
+ Display *display; /\(** Display the event was read from */
Window window;
} XAnyEvent;
.De
@@ -183,7 +186,7 @@ structure is a union of the individual structures declared for each event type:
.TA .5i 3i
.ta .5i 3i
typedef union _XEvent {
- int type; /* must not be changed */
+ int type; /\(** must not be changed */
XAnyEvent xany;
XKeyEvent xkey;
XButtonEvent xbutton;
diff --git a/man/XButtonEvent.man b/man/XButtonEvent.man
index 062f3115..f84e95b8 100644
--- a/man/XButtonEvent.man
+++ b/man/XButtonEvent.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XButEvent.man,v 1.2 2001/01/27 18:19:56 dawes Exp $
+.\" $XdotOrg: lib/X11/man/XButtonEvent.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,7 +141,7 @@
.el .sp 10p
..
.ny0
-.TH XButtonEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XButtonEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XButtonEvent, XKeyEvent, XMotionEvent \- KeyPress, KeyRelease, ButtonPress, ButtonRelease, and MotionNotify event structures
.SH STRUCTURES
@@ -155,19 +158,19 @@ events contain:
.TA .5i 3i
.ta .5i 3i
typedef struct {
- int type; /* ButtonPress or ButtonRelease */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window; /* ``event'' window it is reported relative to */
- Window root; /* root window that the event occurred on */
- Window subwindow; /* child window */
- Time time; /* milliseconds */
- int x, y; /* pointer x, y coordinates in event window */
- int x_root, y_root; /* coordinates relative to root */
- unsigned int state; /* key or button mask */
- unsigned int button; /* detail */
- Bool same_screen; /* same screen flag */
+ int type; /\(** ButtonPress or ButtonRelease */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came from a SendEvent request */
+ Display *display; /\(** Display the event was read from */
+ Window window; /\(** ``event'' window it is reported relative to */
+ Window root; /\(** root window that the event occurred on */
+ Window subwindow; /\(** child window */
+ Time time; /\(** milliseconds */
+ int x, y; /\(** pointer x, y coordinates in event window */
+ int x_root, y_root; /\(** coordinates relative to root */
+ unsigned int state; /\(** key or button mask */
+ unsigned int button; /\(** detail */
+ Bool same_screen; /\(** same screen flag */
} XButtonEvent;
typedef XButtonEvent XButtonPressedEvent;
typedef XButtonEvent XButtonReleasedEvent;
@@ -177,19 +180,19 @@ typedef XButtonEvent XButtonReleasedEvent;
.TA .5i 3i
.ta .5i 3i
typedef struct {
- int type; /* KeyPress or KeyRelease */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window; /* ``event'' window it is reported relative to */
- Window root; /* root window that the event occurred on */
- Window subwindow; /* child window */
- Time time; /* milliseconds */
- int x, y; /* pointer x, y coordinates in event window */
- int x_root, y_root; /* coordinates relative to root */
- unsigned int state; /* key or button mask */
- unsigned int keycode; /* detail */
- Bool same_screen; /* same screen flag */
+ int type; /\(** KeyPress or KeyRelease */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came from a SendEvent request */
+ Display *display; /\(** Display the event was read from */
+ Window window; /\(** ``event'' window it is reported relative to */
+ Window root; /\(** root window that the event occurred on */
+ Window subwindow; /\(** child window */
+ Time time; /\(** milliseconds */
+ int x, y; /\(** pointer x, y coordinates in event window */
+ int x_root, y_root; /\(** coordinates relative to root */
+ unsigned int state; /\(** key or button mask */
+ unsigned int keycode; /\(** detail */
+ Bool same_screen; /\(** same screen flag */
} XKeyEvent;
typedef XKeyEvent XKeyPressedEvent;
typedef XKeyEvent XKeyReleasedEvent;
@@ -199,19 +202,19 @@ typedef XKeyEvent XKeyReleasedEvent;
.TA .5i 3i
.ta .5i 3i
typedef struct {
- int type; /* MotionNotify */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window; /* ``event'' window reported relative to */
- Window root; /* root window that the event occurred on */
- Window subwindow; /* child window */
- Time time; /* milliseconds */
- int x, y; /* pointer x, y coordinates in event window */
- int x_root, y_root; /* coordinates relative to root */
- unsigned int state; /* key or button mask */
- char is_hint; /* detail */
- Bool same_screen; /* same screen flag */
+ int type; /\(** MotionNotify */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came from a SendEvent request */
+ Display *display; /\(** Display the event was read from */
+ Window window; /\(** ``event'' window reported relative to */
+ Window root; /\(** root window that the event occurred on */
+ Window subwindow; /\(** child window */
+ Time time; /\(** milliseconds */
+ int x, y; /\(** pointer x, y coordinates in event window */
+ int x_root, y_root; /\(** coordinates relative to root */
+ unsigned int state; /\(** key or button mask */
+ char is_hint; /\(** detail */
+ Bool same_screen; /\(** same screen flag */
} XMotionEvent;
typedef XMotionEvent XPointerMovedEvent;
.De
diff --git a/man/XChangeKeyboardControl.man b/man/XChangeKeyboardControl.man
index c78cd78e..841a7ed3 100644
--- a/man/XChangeKeyboardControl.man
+++ b/man/XChangeKeyboardControl.man
@@ -41,6 +41,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XCKCntrl.man,v 1.4 2003/04/28 22:17:54 herrb Exp $
+.\" $XdotOrg: lib/X11/man/XChangeKeyboardControl.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -140,43 +143,24 @@
..
.ny0
'\" t
-.TH XChangeKeyboardControl 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XChangeKeyboardControl 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XChangeKeyboardControl, XGetKeyboardControl, XAutoRepeatOn, XAutoRepeatOff, XBell, XQueryKeymap, XKeyboardControl \- manipulate keyboard settings and keyboard control structure
.SH SYNTAX
-XChangeKeyboardControl\^(\^\fIdisplay\fP, \fIvalue_mask\fP\^, \fIvalues\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- unsigned long \fIvalue_mask\fP\^;
-.br
- XKeyboardControl *\fIvalues\fP\^;
-.LP
-XGetKeyboardControl\^(\^\fIdisplay\fP, \fIvalues_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XKeyboardState *\fIvalues_return\fP\^;
-.LP
-XAutoRepeatOn\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.LP
-XAutoRepeatOff\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.LP
-XBell\^(\^\fIdisplay\fP, \fIpercent\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIpercent\fP\^;
-.LP
-XQueryKeymap\^(\^\fIdisplay\fP, \fIkeys_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- char \fIkeys_return\fP[32]\^;
+.HP
+int XChangeKeyboardControl\^(\^Display *\fIdisplay\fP, unsigned long
+\fIvalue_mask\fP\^, XKeyBoardControl *\fIvalues\fP\^);
+.HP
+int XGetKeyboardControl\^(\^Display *\fIdisplay\fP, XKeyBoardState
+*\fIvalues_return\fP\^);
+.HP
+int XAutoRepeatOn\^(\^Display *\fIdisplay\fP\^);
+.HP
+int XAutoRepeatOff\^(\^Display *\fIdisplay\fP\^);
+.HP
+int XBell\^(\^Display *\fIdisplay\fP, int \fIpercent\fP\^);
+.HP
+int XQueryKeymap\^(\^Display *\fIdisplay\fP, char \fIkeys_return\fP[32]\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
@@ -267,60 +251,60 @@ The
structure contains:
.LP
.LP
-/* Mask bits for ChangeKeyboardControl */
+/\(** Mask bits for ChangeKeyboardControl */
.TS
lw(.5i) lw(2.5i) lw(.8i).
T{
-#define
+\&#define
T} T{
.ZN KBKeyClickPercent
T} T{
(1L<<0)
T}
T{
-#define
+\&#define
T} T{
.ZN KBBellPercent
T} T{
(1L<<1)
T}
T{
-#define
+\&#define
T} T{
.ZN KBBellPitch
T} T{
(1L<<2)
T}
T{
-#define
+\&#define
T} T{
.ZN KBBellDuration
T} T{
(1L<<3)
T}
T{
-#define
+\&#define
T} T{
.ZN KBLed
T} T{
(1L<<4)
T}
T{
-#define
+\&#define
T} T{
.ZN KBLedMode
T} T{
(1L<<5)
T}
T{
-#define
+\&#define
T} T{
.ZN KBKey
T} T{
(1L<<6)
T}
T{
-#define
+\&#define
T} T{
.ZN KBAutoRepeatMode
T} T{
@@ -331,7 +315,7 @@ T}
.Ds 0
.TA .5i 2.5i
.ta .5i 2.5i
-/* Values */
+/\(** Values */
typedef struct {
int key_click_percent;
@@ -339,9 +323,9 @@ typedef struct {
int bell_pitch;
int bell_duration;
int led;
- int led_mode; /* LedModeOn, LedModeOff */
+ int led_mode; /\(** LedModeOn, LedModeOff */
int key;
- int auto_repeat_mode; /* AutoRepeatModeOff, AutoRepeatModeOn,
+ int auto_repeat_mode; /\(** AutoRepeatModeOff, AutoRepeatModeOn,
AutoRepeatModeDefault */
} XKeyboardControl;
.De
diff --git a/man/XChangeKeyboardMapping.man b/man/XChangeKeyboardMapping.man
index 02f39054..3d140cc6 100644
--- a/man/XChangeKeyboardMapping.man
+++ b/man/XChangeKeyboardMapping.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XCKMping.man,v 1.4 2003/04/28 22:17:54 herrb Exp $
+.\" $XdotOrg: lib/X11/man/XChangeKeyboardMapping.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,77 +141,35 @@
.el .sp 10p
..
.ny0
-.TH XChangeKeyboardMapping 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XChangeKeyboardMapping 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XChangeKeyboardMapping, XGetKeyboardMapping, XDisplayKeycodes, XSetModifierMapping, XGetModifierMapping, XNewModifiermap, XInsertModifiermapEntry, XDeleteModifiermapEntry, XFreeModifierMap XModifierKeymap \- manipulate keyboard encoding and keyboard encoding structure
.SH SYNTAX
-XChangeKeyboardMapping(\^\fIdisplay\fP, \fIfirst_keycode\fP, \fIkeysyms_per_keycode\fP, \fIkeysyms\fP, \fInum_codes\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIfirst_keycode\fP\^;
-.br
- int \fIkeysyms_per_keycode\fP\^;
-.br
- KeySym *\fIkeysyms\fP\^;
-.br
- int \fInum_codes\fP\^;
-.LP
-KeySym *XGetKeyboardMapping(\^\fIdisplay\fP, \fIfirst_keycode\fP, \fIkeycode_count\fP,
-.br
- \fIkeysyms_per_keycode_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- KeyCode \fIfirst_keycode\fP\^;
-.br
- int \fIkeycode_count\fP\^;
-.br
- int *\fIkeysyms_per_keycode_return\fP\^;
-.LP
-XDisplayKeycodes\^(\^\fIdisplay\fP\^, \fImin_keycodes_return\fP\^, \
-\fImax_keycodes_return\fP\^)
-.br
- Display *\^\fIdisplay\fP\^;
-.br
- int *\^\fImin_keycodes_return\fP\^, *\^\fImax_keycodes_return\fP\^;
-.LP
-int XSetModifierMapping(\^\fIdisplay\fP, \fImodmap\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XModifierKeymap *\fImodmap\fP\^;
-.LP
-XModifierKeymap *XGetModifierMapping(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-
-.LP
-XModifierKeymap *XNewModifiermap(\^\fImax_keys_per_mod\fP\^)
-.br
- int \fImax_keys_per_mod\fP\^;
-.LP
-XModifierKeymap *XInsertModifiermapEntry\^(\^\fImodmap\fP, \
-\fIkeycode_entry\fP, \fImodifier\fP\^)
-.br
- XModifierKeymap *\fImodmap\fP\^;
-.br
- KeyCode \fIkeycode_entry\fP\^;
-.br
- int \fImodifier\fP\^;
-.LP
-XModifierKeymap *XDeleteModifiermapEntry\^(\^\fImodmap\fP, \
-\fIkeycode_entry\fP, \fImodifier\fP\^)
-.br
- XModifierKeymap *\fImodmap\fP\^;
-.br
- KeyCode \fIkeycode_entry\fP\^;
-.br
- int \fImodifier\fP\^;
-.LP
-XFreeModifiermap(\^\fImodmap\fP\^)
-.br
- XModifierKeymap *\fImodmap\fP;
+.HP
+int XChangeKeyboardMapping(\^Display *\fIdisplay\fP, int \fIfirst_keycode\fP,
+int \fIkeysyms_per_keycode\fP, KeySym *\fIkeysyms\fP, int \fInum_codes\fP\^);
+.HP
+KeySym *XGetKeyboardMapping(\^Display *\fIdisplay\fP, KeyCode
+\fIfirst_keycode\fP, int \fIkeycode_count\fP, int
+*\fIkeysyms_per_keycode_return\fP\^);
+.HP
+int XDisplayKeycodes\^(\^Display *\fIdisplay\fP\^, int
+*\fImin_keycodes_return\fP\^, int *\fImax_keycodes_return\fP\^);
+.HP
+int XSetModifierMapping(\^Display *\fIdisplay\fP, XModifierKeymap
+*\fImodmap\fP\^);
+.HP
+XModifierKeymap *XGetModifierMapping(\^Display *\fIdisplay\fP\^);
+.HP
+XModifierKeymap *XNewModifiermap(\^int \fImax_keys_per_mod\fP\^);
+.HP
+XModifierKeymap *XInsertModifiermapEntry\^(\^XModifierKeymap *\fImodmap\fP,
+KeyCode \fIkeycode_entry\fP, int \fImodifier\fP\^);
+.HP
+XModifierKeymap *XDeleteModifiermapEntry\^(\^XModifierKeymap *\fImodmap\fP,
+KeyCode \fIkeycode_entry\fP, int \fImodifier\fP\^);
+.HP
+int XFreeModifiermap(\^XModifierKeymap *\fImodmap\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
@@ -467,8 +428,8 @@ structure contains:
.TA .5i 2.5i
.ta .5i 2.5i
typedef struct {
- int max_keypermod; /* This server's max number of keys per modifier */
- KeyCode *modifiermap; /* An 8 by max_keypermod array of the modifiers */
+ int max_keypermod; /\(** This server's max number of keys per modifier */
+ KeyCode *modifiermap; /\(** An 8 by max_keypermod array of the modifiers */
} XModifierKeymap;
.De
.SH DIAGNOSTICS
diff --git a/man/XChangePointerControl.man b/man/XChangePointerControl.man
index edf0e95a..4002543f 100644
--- a/man/XChangePointerControl.man
+++ b/man/XChangePointerControl.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XCPCntrl.man,v 1.2 2001/01/27 18:19:57 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,31 +140,18 @@
.el .sp 10p
..
.ny0
-.TH XChangePointerControl 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XChangePointerControl 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XChangePointerControl, XGetPointerControl \- control pointer
.SH SYNTAX
-XChangePointerControl\^(\^\fIdisplay\fP, \fIdo_accel\fP\^, \fIdo_threshold\fP\^, \fIaccel_numerator\fP\^,
-.br
- \fIaccel_denominator\fP\^, \fIthreshold\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Bool \fIdo_accel\fP\^, \fIdo_threshold\fP\^;
-.br
- int \fIaccel_numerator\fP\^, \fIaccel_denominator\fP\^;
-.br
- int \fIthreshold\fP\^;
-.LP
-XGetPointerControl\^(\^\fIdisplay\fP, \fIaccel_numerator_return\fP\^, \fIaccel_denominator_return\fP\^,
-.br
- \fIthreshold_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int *\fIaccel_numerator_return\fP\^, *\fIaccel_denominator_return\fP\^;
-.br
- int *\fIthreshold_return\fP\^;
+.HP
+int XChangePointerControl\^(\^Display *\fIdisplay\fP\^, Bool \fIdo_accel\fP\^,
+Bool \fIdo_threshold\fP\^, int \fIaccel_numerator\fP\^, int
+\fIaccel_denominator\fP\^, int \fIthreshold\fP\^);
+.HP
+int XGetPointerControl\^(\^Display *\fIdisplay\fP\^, int
+*\fIaccel_numerator_return\fP\^, int *\fIaccel_denominator_return\fP\^, int
+*\fIthreshold_return\fP\^);
.SH ARGUMENTS
.IP \fIaccel_denominator\fP 1i
Specifies the denominator for the acceleration multiplier.
diff --git a/man/XChangeSaveSet.man b/man/XChangeSaveSet.man
index 511a4644..b6998905 100644
--- a/man/XChangeSaveSet.man
+++ b/man/XChangeSaveSet.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XCSSet.man,v 1.2 2001/01/27 18:19:57 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,29 +140,16 @@
.el .sp 10p
..
.ny0
-.TH XChangeSaveSet 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XChangeSaveSet 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XChangeSaveSet, XAddToSaveSet, XRemoveFromSaveSet \- change a client's save set
.SH SYNTAX
-XChangeSaveSet\^(\^\fIdisplay\fP, \fIw\fP\^, \fIchange_mode\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- int \fIchange_mode\fP\^;
-.LP
-XAddToSaveSet\^(\^\fIdisplay\fP, \fIw\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.LP
-XRemoveFromSaveSet\^(\^\fIdisplay\fP, \fIw\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
+.HP
+int XChangeSaveSet\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, int \fIchange_mode\fP\^);
+.HP
+int XAddToSaveSet\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^);
+.HP
+int XRemoveFromSaveSet\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^);
.SH ARGUMENTS
.IP \fIchange_mode\fP 1i
Specifies the mode.
diff --git a/man/XChangeWindowAttributes.man b/man/XChangeWindowAttributes.man
index 5e8da053..4e2a0af8 100644
--- a/man/XChangeWindowAttributes.man
+++ b/man/XChangeWindowAttributes.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XCWAttrib.man,v 1.2 2001/01/27 18:19:57 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,59 +140,23 @@
.el .sp 10p
..
.ny0
-.TH XChangeWindowAttributes 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XChangeWindowAttributes 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XChangeWindowAttributes, XSetWindowBackground, XSetWindowBackgroundPixmap, XSetWindowBorder, XSetWindowBorderPixmap, XSetWindowColormap \- change window attributes
.SH SYNTAX
-XChangeWindowAttributes\^(\^\fIdisplay\fP, \fIw\fP\^, \fIvaluemask\fP\^, \fIattributes\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- unsigned long \fIvaluemask\fP\^;
-.br
- XSetWindowAttributes *\fIattributes\fP\^;
-.LP
-XSetWindowBackground\^(\^\fIdisplay\fP, \fIw\fP\^, \fIbackground_pixel\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- unsigned long \fIbackground_pixel\fP\^;
-.LP
-XSetWindowBackgroundPixmap\^(\^\fIdisplay\fP, \fIw\fP\^, \fIbackground_pixmap\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- Pixmap \fIbackground_pixmap\fP\^;
-.LP
-XSetWindowBorder\^(\^\fIdisplay\fP, \fIw\fP\^, \fIborder_pixel\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- unsigned long \fIborder_pixel\fP\^;
-.LP
-XSetWindowBorderPixmap\^(\^\fIdisplay\fP, \fIw\fP\^, \fIborder_pixmap\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- Pixmap \fIborder_pixmap\fP\^;
-.LP
-XSetWindowColormap\^(\^\fIdisplay\fP, \fIw\fP\^, \fIcolormap\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- Colormap \fIcolormap\fP\^;
+.HP
+int XChangeWindowAttributes\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, unsigned long \fIvaluemask\fP\^, XSetWindowAttributes *\fIattributes\fP\^);
+.HP
+int XSetWindowBackground\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, unsigned long \fIbackground_pixel\fP\^);
+.HP
+int XSetWindowBackgroundPixmap\^(\^Display *\fIdisplay\fP\^, Window
+\fIw\fP\^, Pixmap \fIbackground_pixmap\fP\^);
+.HP
+int XSetWindowBorder\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, unsigned long \fIborder_pixel\fP\^);
+.HP
+int XSetWindowBorderPixmap\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, Pixmap \fIborder_pixmap\fP\^);
+.HP
+int XSetWindowColormap\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, Colormap \fIcolormap\fP\^);
.SH ARGUMENTS
.IP \fIattributes\fP 1i
Specifies the structure from which the values (as specified by the value mask)
diff --git a/man/XCirculateEvent.man b/man/XCirculateEvent.man
index 7f95a454..e936dce7 100644
--- a/man/XCirculateEvent.man
+++ b/man/XCirculateEvent.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XCirEvent.man,v 1.2 2001/01/27 18:19:57 dawes Exp $
+.\" $XdotOrg: lib/X11/man/XCirculateEvent.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,7 +141,7 @@
.el .sp 10p
..
.ny0
-.TH XCirculateEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XCirculateEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XCirculateEvent \- CirculateNotify event structure
.SH STRUCTURES
@@ -150,13 +153,13 @@ events contains:
.TA .5i 3i
.ta .5i 3i
typedef struct {
- int type; /* CirculateNotify */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
+ int type; /\(** CirculateNotify */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came from a SendEvent request */
+ Display *display; /\(** Display the event was read from */
Window event;
Window window;
- int place; /* PlaceOnTop, PlaceOnBottom */
+ int place; /\(** PlaceOnTop, PlaceOnBottom */
} XCirculateEvent;
.De
.LP
diff --git a/man/XCirculateRequestEvent.man b/man/XCirculateRequestEvent.man
index 0d94cbf2..fdcd28b2 100644
--- a/man/XCirculateRequestEvent.man
+++ b/man/XCirculateRequestEvent.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XCirREven.man,v 1.2 2001/01/27 18:19:57 dawes Exp $
+.\" $XdotOrg: lib/X11/man/XCirculateRequestEvent.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,7 +141,7 @@
.el .sp 10p
..
.ny0
-.TH XCirculateRequestEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XCirculateRequestEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XCirculateRequestEvent \- CirculateRequest event structure
.SH STRUCTURES
@@ -150,13 +153,13 @@ events contains:
.TA .5i 3i
.ta .5i 3i
typedef struct {
- int type; /* CirculateRequest */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
+ int type; /\(** CirculateRequest */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came from a SendEvent request */
+ Display *display; /\(** Display the event was read from */
Window parent;
Window window;
- int place; /* PlaceOnTop, PlaceOnBottom */
+ int place; /\(** PlaceOnTop, PlaceOnBottom */
} XCirculateRequestEvent;
.De
.LP
diff --git a/man/XClearArea.man b/man/XClearArea.man
index e7333610..0566e3d4 100644
--- a/man/XClearArea.man
+++ b/man/XClearArea.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XClrArea.man,v 1.3 2001/02/09 03:47:45 tsi Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,27 +140,16 @@
.el .sp 10p
..
.ny0
-.TH XClearArea 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XClearArea 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XClearArea, XClearWindow \- clear area or window
.SH SYNTAX
-XClearArea\^(\^\fIdisplay\fP, \fIw\fP\^, \fIx\fP\^, \fIy\fP\^, \fIwidth\fP\^, \fIheight\fP\^, \fIexposures\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- int \fIx\fP\^, \fIy\fP\^;
-.br
- unsigned int \fIwidth\fP\^, \fIheight\fP\^;
-.br
- Bool \fIexposures\fP\^;
-.LP
-XClearWindow\^(\^\fIdisplay\fP, \fIw\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
+.HP
+int XClearArea\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, int \fIx\fP\^,
+int \fIy\fP\^, unsigned \fIwidth\fP\^, unsigned \fIheight\fP\^,
+Bool \fIexposures\fP\^);
+.HP
+int XClearWindow\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
@@ -174,7 +165,7 @@ Specifies the window.
.ns
.IP \fIheight\fP 1i
Specify the width and height\*(Wh.
-.ds Xy , which are relative to the origin of the window \
+.ds Xy , which are relative to the origin of the window
and specify the upper-left corner of the rectangle
.IP \fIx\fP 1i
.br
diff --git a/man/XClientMessageEvent.man b/man/XClientMessageEvent.man
index 56f319a4..8fc47058 100644
--- a/man/XClientMessageEvent.man
+++ b/man/XClientMessageEvent.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XCMEvent.man,v 1.2 2001/01/27 18:19:56 dawes Exp $
+.\" $XdotOrg: lib/X11/man/XClientMessageEvent.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,7 +141,7 @@
.el .sp 10p
..
.ny0
-.TH XClientMessageEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XClientMessageEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XClientMessageEvent \- ClientMessage event structure
.SH STRUCTURES
@@ -150,10 +153,10 @@ events contains:
.TA .5i 1i 3i
.ta .5i 1i 3i
typedef struct {
- int type; /* ClientMessage */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
+ int type; /\(** ClientMessage */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came from a SendEvent request */
+ Display *display; /\(** Display the event was read from */
Window window;
Atom message_type;
int format;
diff --git a/man/XColormapEvent.man b/man/XColormapEvent.man
index 478e6c63..28c65eb8 100644
--- a/man/XColormapEvent.man
+++ b/man/XColormapEvent.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XCmpEvent.man,v 1.2 2001/01/27 18:19:57 dawes Exp $
+.\" $XdotOrg: lib/X11/man/XColormapEvent.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,7 +141,7 @@
.el .sp 10p
..
.ny0
-.TH XColormapEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XColormapEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XColormapEvent \- ColormapNotify event structure
.SH STRUCTURES
@@ -150,14 +153,14 @@ events contains:
.TA .5i 3i
.ta .5i 3i
typedef struct {
- int type; /* ColormapNotify */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
+ int type; /\(** ColormapNotify */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came from a SendEvent request */
+ Display *display; /\(** Display the event was read from */
Window window;
- Colormap colormap; /* colormap or None */
+ Colormap colormap; /\(** colormap or None */
Bool new;
- int state; /* ColormapInstalled, ColormapUninstalled */
+ int state; /\(** ColormapInstalled, ColormapUninstalled */
} XColormapEvent;
.De
.LP
diff --git a/man/XConfigureEvent.man b/man/XConfigureEvent.man
index a06fe210..b4124b02 100644
--- a/man/XConfigureEvent.man
+++ b/man/XConfigureEvent.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XConEvent.man,v 1.2 2001/01/27 18:19:57 dawes Exp $
+.\" $XdotOrg: lib/X11/man/XConfigureEvent.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,7 +141,7 @@
.el .sp 10p
..
.ny0
-.TH XConfigureEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XConfigureEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XConfigureEvent \- ConfigureNotify event structure
.SH STRUCTURES
@@ -150,10 +153,10 @@ events contains:
.TA .5i 3i
.ta .5i 3i
typedef struct {
- int type; /* ConfigureNotify */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
+ int type; /\(** ConfigureNotify */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came from a SendEvent request */
+ Display *display; /\(** Display the event was read from */
Window event;
Window window;
int x, y;
diff --git a/man/XConfigureRequestEvent.man b/man/XConfigureRequestEvent.man
index 128268ec..4b78ed6f 100644
--- a/man/XConfigureRequestEvent.man
+++ b/man/XConfigureRequestEvent.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XConREven.man,v 1.2 2001/01/27 18:19:57 dawes Exp $
+.\" $XdotOrg: lib/X11/man/XConfigureRequestEvent.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,7 +141,7 @@
.el .sp 10p
..
.ny0
-.TH XConfigureRequestEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XConfigureRequestEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XConfigureRequestEvent \- ConfigureRequest event structure
.SH STRUCTURES
@@ -150,17 +153,17 @@ events contains:
.TA .5i 3i
.ta .5i 3i
typedef struct {
- int type; /* ConfigureRequest */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
+ int type; /\(** ConfigureRequest */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came from a SendEvent request */
+ Display *display; /\(** Display the event was read from */
Window parent;
Window window;
int x, y;
int width, height;
int border_width;
Window above;
- int detail; /* Above, Below, TopIf, BottomIf, Opposite */
+ int detail; /\(** Above, Below, TopIf, BottomIf, Opposite */
unsigned long value_mask;
} XConfigureRequestEvent;
.De
diff --git a/man/XConfigureWindow.man b/man/XConfigureWindow.man
index d0aa0d68..4384917c 100644
--- a/man/XConfigureWindow.man
+++ b/man/XConfigureWindow.man
@@ -41,6 +41,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XConfWin.man,v 1.5 2003/04/28 22:17:54 herrb Exp $
+.\" $XdotOrg: lib/X11/man/XConfigureWindow.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -140,53 +143,23 @@
..
.ny0
'\" t
-.TH XConfigureWindow 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XConfigureWindow 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XConfigureWindow, XMoveWindow, XResizeWindow, XMoveResizeWindow, XSetWindowBorderWidth, XWindowChanges \- configure windows and window changes structure
.SH SYNTAX
-XConfigureWindow\^(\^\fIdisplay\fP, \fIw\fP\^, \fIvalue_mask\fP\^, \fIvalues\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- unsigned int \fIvalue_mask\fP\^;
-.br
- XWindowChanges *\fIvalues\fP\^;
-.LP
-XMoveWindow\^(\^\fIdisplay\fP, \fIw\fP\^, \fIx\fP\^, \fIy\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- int \fIx\fP\^, \fIy\fP\^;
-.LP
-XResizeWindow\^(\^\fIdisplay\fP, \fIw\fP\^, \fIwidth\fP\^, \fIheight\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- unsigned int \fIwidth\fP\^, \fIheight\fP\^;
-.LP
-XMoveResizeWindow\^(\^\fIdisplay\fP, \fIw\fP\^, \fIx\fP\^, \fIy\fP\^, \fIwidth\fP\^, \fIheight\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- int \fIx\fP\^, \fIy\fP\^;
-.br
- unsigned int \fIwidth\fP\^, \fIheight\fP\^;
-.LP
-XSetWindowBorderWidth\^(\^\fIdisplay\fP, \fIw\fP, \fIwidth\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- unsigned int \fIwidth\fP\^;
+.HP
+int XConfigureWindow\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, unsigned \fIvalue_mask\fP\^);
+.HP
+int XMoveWindow\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, int \fIx\fP\^, \fIy\fP\^);
+.HP
+int XResizeWindow\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, unsigned
+\fIwidth\fP\^, unsigned \fIheight\fP\^);
+.HP
+int XMoveResizeWindow\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, int
+\fIx\fP\^, int \fIy\fP\^, unsigned \fIwidth\fP\^, unsigned \fIheight\fP\^);
+.HP
+int XSetWindowBorderWidth\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^,
+unsigned \fIwidth\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
@@ -209,8 +182,8 @@ Specifies the width of the window border.
.ns
.IP \fIheight\fP 1i
Specify the width and height\*(Wh.
-.ds Xy , which define the new location of the top-left pixel \
-of the window's border or the window itself if it has no border \
+.ds Xy , which define the new location of the top-left pixel
+of the window's border or the window itself if it has no border
or define the new position of the window relative to its parent
.IP \fIx\fP 1i
.br
@@ -361,53 +334,53 @@ The
structure contains:
.LP
.LP
-/* Configure window value mask bits */
+/\(** Configure window value mask bits */
.TS
lw(.5i) lw(2.5i) lw(.8i).
T{
-#define
+\&#define
T} T{
.ZN CWX
T} T{
(1<<0)
T}
T{
-#define
+\&#define
T} T{
.ZN CWY
T} T{
(1<<1)
T}
T{
-#define
+\&#define
T} T{
.ZN CWWidth
T} T{
(1<<2)
T}
T{
-#define
+\&#define
T} T{
.ZN CWHeight
T} T{
(1<<3)
T}
T{
-#define
+\&#define
T} T{
.ZN CWBorderWidth
T} T{
(1<<4)
T}
T{
-#define
+\&#define
T} T{
.ZN CWSibling
T} T{
(1<<5)
T}
T{
-#define
+\&#define
T} T{
.ZN CWStackMode
T} T{
@@ -418,7 +391,7 @@ T}
.Ds 0
.TA .5i 3i
.ta .5i 3i
-/* Values */
+/\(** Values */
typedef struct {
int x, y;
diff --git a/man/XCopyArea.man b/man/XCopyArea.man
index 89554599..a6474930 100644
--- a/man/XCopyArea.man
+++ b/man/XCopyArea.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XCopyArea.man,v 1.3 2001/02/09 03:47:45 tsi Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,41 +140,22 @@
.el .sp 10p
..
.ny0
-.TH XCopyArea 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XCopyArea 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XCopyArea, XCopyPlane \- copy areas
.SH SYNTAX
-XCopyArea\^(\^\fIdisplay\fP, \fIsrc\fP\^, \fIdest\fP\^, \fIgc\fP\^, \fIsrc_x\fP\^, \fIsrc_y\fP\^, \fIwidth\fP\^, \fIheight\fP\^, \fIdest_x\fP\^, \fIdest_y\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fIsrc\fP\^, \fIdest\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- int \fIsrc_x\fP\^, \fIsrc_y\fP\^;
-.br
- unsigned int \fIwidth\fP\^, \fIheight\fP\^;
-.br
- int \fIdest_x\fP\^, \fIdest_y\fP\^;
-.LP
-XCopyPlane\^(\^\fIdisplay\fP, \fIsrc\fP\^, \fIdest\fP\^, \fIgc\fP\^, \fIsrc_x\fP\^, \fIsrc_y\fP\^, \fIwidth\fP\^, \fIheight\fP\^, \fIdest_x\fP\^, \fIdest_y\fP\^, \fIplane\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fIsrc\fP\^, \fIdest\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- int \fIsrc_x\fP\^, \fIsrc_y\fP\^;
-.br
- unsigned int \fIwidth\fP\^, \fIheight\fP\^;
-.br
- int \fIdest_x\fP\^, \fIdest_y\fP\^;
-.br
- unsigned long \fIplane\fP\^;
+.HP
+int XCopyArea\^(\^Display *\fIdisplay\fP\^, Drawable \fIsrc\fP\^, Drawable
+\fIdest\fP\^, GC \fIgc\fP\^, int \fIsrc_x\fP\^, int \fIsrc_y\fP\^, unsigned
+int \fIwidth\fP\^, unsigned \fIheight\fP\^, int \fIdest_x\fP\^, int
+\fIdest_y\fP\^);
+.HP
+int XCopyPlane\^(\^Display *\fIdisplay\fP\^, Drawable \fIsrc\fP\^, Drawable
+\fIdest\fP\^, GC \fIgc\fP\^, int \fIsrc_x\fP\^, int \fIsrc_y\fP\^, unsigned
+\fIwidth\fP\^, int \fIheight\fP\^, int \fIdest_x\fP\^, int \fIdest_y\fP\^,
+unsigned long \fIplane\fP\^);
.SH ARGUMENTS
-.ds Dx , which are relative to the origin of the destination rectangle \
+.ds Dx , which are relative to the origin of the destination rectangle
and specify its upper-left corner
.IP \fIdest_x\fP 1i
.br
@@ -198,7 +181,7 @@ Specify the source and destination rectangles to be combined.
Specify the x and y coordinates,
which are relative to the origin of the source rectangle
and specify its upper-left corner.
-.ds Wh , which are the dimensions of both the source \
+.ds Wh , which are the dimensions of both the source
and destination rectangles
.IP \fIwidth\fP 1i
.br
diff --git a/man/XCreateColormap.man b/man/XCreateColormap.man
index a9ef6eec..ef3ce01a 100644
--- a/man/XCreateColormap.man
+++ b/man/XCreateColormap.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XCreCmap.man,v 1.4 2003/04/28 22:17:54 herrb Exp $
+.\" $XdotOrg: lib/X11/man/XCreateColormap.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,31 +141,18 @@
.el .sp 10p
..
.ny0
-.TH XCreateColormap 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XCreateColormap 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XCreateColormap, XCopyColormapAndFree, XFreeColormap, XColor \- create, copy, or destroy colormaps and color structure
.SH SYNTAX
-Colormap XCreateColormap\^(\^\fIdisplay\fP, \fIw\fP\^, \fIvisual\fP\^, \fIalloc\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- Visual *\fIvisual\fP\^;
-.br
- int \fIalloc\fP\^;
-.LP
-Colormap XCopyColormapAndFree\^(\^\fIdisplay\fP, \fIcolormap\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Colormap \fIcolormap\fP\^;
-.LP
-XFreeColormap\^(\^\fIdisplay\fP, \fIcolormap\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Colormap \fIcolormap\fP\^;
+.HP
+Colormap XCreateColormap\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^,
+Visual *\fIvisual\fP\^, int \fIalloc\fP\^,);
+.HP
+Colormap XCopyColormapAndFree\^(\^Display *\fIdisplay\fP\^, Colormap
+\fIcolormap\fP\^);
+.HP
+int XFreeColormap\^(\^Display *\fIdisplay\fP\^, Colormap \fIcolormap\fP\^);
.SH ARGUMENTS
.IP \fIalloc\fP 1i
Specifies the colormap entries to be allocated.
@@ -323,9 +313,9 @@ structure contains:
.TA .5i 2.5i
.ta .5i 2.5i
typedef struct {
- unsigned long pixel; /* pixel value */
- unsigned short red, green, blue; /* rgb values */
- char flags; /* DoRed, DoGreen, DoBlue */
+ unsigned long pixel; /\(** pixel value */
+ unsigned short red, green, blue; /\(** rgb values */
+ char flags; /\(** DoRed, DoGreen, DoBlue */
char pad;
} XColor;
.De
@@ -371,7 +361,7 @@ alternatives can generate this error.
A value for a Window argument does not name a defined Window.
.SH "SEE ALSO"
XAllocColor(3X11),
-XChangeWindowAtrributes(3X11),
+XChangeWindowAttributes(3X11),
XCreateWindow(3X11),
XQueryColor(3X11),
XStoreColors(3X11)
diff --git a/man/XCreateFontCursor.man b/man/XCreateFontCursor.man
index 0fb62b1c..79830f84 100644
--- a/man/XCreateFontCursor.man
+++ b/man/XCreateFontCursor.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XCreFCur.man,v 1.3 2001/02/07 22:35:20 tsi Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,45 +140,23 @@
.el .sp 10p
..
.ny0
-.TH XCreateFontCursor 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XCreateFontCursor 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XCreateFontCursor, XCreatePixmapCursor, XCreateGlyphCursor \- create cursors
.SH SYNTAX
-#include <X11/cursorfont.h>
-.sp 6p
-Cursor XCreateFontCursor\^(\^\fIdisplay\fP, \fIshape\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- unsigned int \fIshape\fP\^;
-.LP
-Cursor XCreatePixmapCursor\^(\^\fIdisplay\fP, \fIsource\fP\^, \fImask\fP\^, \fIforeground_color\fP\^, \fIbackground_color\fP\^, \fIx\fP\^, \fIy\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Pixmap \fIsource\fP\^;
-.br
- Pixmap \fImask\fP\^;
-.br
- XColor *\fIforeground_color\fP\^;
-.br
- XColor *\fIbackground_color\fP\^;
-.br
- unsigned int \fIx\fP\^, \fIy\fP\^;
-.LP
-Cursor XCreateGlyphCursor\^(\^\fIdisplay\fP, \fIsource_font\fP\^, \fImask_font\fP\^, \fIsource_char\fP\^, \fImask_char\fP\^,
-.br
- \fIforeground_color\fP\^, \fIbackground_color\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Font \fIsource_font\fP\^, \fImask_font\fP\^;
-.br
- unsigned int \fIsource_char\fP\^, \fImask_char\fP\^;
-.br
- XColor *\fIforeground_color\fP\^;
-.br
- XColor *\fIbackground_color\fP\^;
+\&#include <X11/cursorfont.h>
+.HP
+Cursor XCreateFontCursor\^(\^Display *\fIdisplay\fP\^, unsigned int
+\fIshape\fP\^);
+.HP
+Cursor XCreatePixmapCursor\^(\^Display *\fIdisplay\fP\^, Pixmap
+\fIsource\fP\^, Pixmap \fImask\fP\^, XColor *\fIforeground_color\fP\^, XColor
+*\fIbackground_color\fP\^, unsigned int \fIx\fP\^, \fIy\fP\^);
+.HP
+Cursor XCreateGlyphCursor\^(\^Display *\fIdisplay\fP\^, Font
+\fIsource_font\fP\^, Font \fImask_font\fP\^, unsigned int \fIsource_char\fP\^,
+unsigned int \fImask_char\fP\^, XColor *\fIforeground_color\fP\^, XColor
+*\fIbackground_color\fP\^);
.SH ARGUMENTS
.IP \fIbackground_color\fP 1i
Specifies the RGB values for the background of the source.
diff --git a/man/XCreateFontSet.man b/man/XCreateFontSet.man
index 842c0e3a..023aed43 100644
--- a/man/XCreateFontSet.man
+++ b/man/XCreateFontSet.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XCreFSet.man,v 1.2 2001/01/27 18:19:57 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,29 +140,16 @@
.el .sp 10p
..
.ny0
-.TH XCreateFontSet 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XCreateFontSet 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XCreateFontSet, XFreeFontSet \- create and free an international text drawing font set
.SH SYNTAX
-XFontSet XCreateFontSet\^(\^\fIdisplay\fP\^, \fIbase_font_name_list\fP\^, \fImissing_charset_list_return\fP\^,
-.br
- \fImissing_charset_count_return\fP\^, \fIdef_string_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- char *\fIbase_font_name_list\fP\^;
-.br
- char ***\fImissing_charset_list_return\fP\^;
-.br
- int *\fImissing_charset_count_return\fP\^;
-.br
- char **\fIdef_string_return\fP\^;
-.LP
-void XFreeFontSet\^(\^\fIdisplay\fP\^, \fIfont_set\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XFontSet \fIfont_set\fP\^;
+.HP
+XFontSet XCreateFontSet\^(\^Display *\fIdisplay\fP\^, char
+*\fIbase_font_name_list\fP\^, char ***\fImissing_charset_list_return\fP\^, int
+*\fImissing_charset_count_return\fP\^, char **\fIdef_string_return\fP\^);
+.HP
+void XFreeFontSet\^(\^Display *\fIdisplay\fP\^, XFontSet \fIfont_set\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XCreateGC.man b/man/XCreateGC.man
index bcf83393..a48839fe 100644
--- a/man/XCreateGC.man
+++ b/man/XCreateGC.man
@@ -41,6 +41,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XCreGC.man,v 1.6 2003/04/28 22:17:54 herrb Exp $
+.\" $XdotOrg: lib/X11/man/XCreateGC.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -140,58 +143,26 @@
..
.ny0
'\" t
-.TH XCreateGC 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XCreateGC 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XCreateGC, XCopyGC, XChangeGC, XGetGCValues, XFreeGC, XGContextFromGC, XGCValues \- create or free graphics contexts and graphics context structure
.SH SYNTAX
-GC XCreateGC\^(\^\fIdisplay\fP, \fId\fP\^, \fIvaluemask\fP\^, \fIvalues\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- unsigned long \fIvaluemask\fP\^;
-.br
- XGCValues *\^\fIvalues\fP\^;
-.LP
-XCopyGC\^(\^\fIdisplay\fP, \fIsrc\fP\^, \fIvaluemask\fP\^, \fIdest\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- GC \fIsrc\fP\^, \fIdest\fP\^;
-.br
- unsigned long \fIvaluemask\fP\^;
-.LP
-XChangeGC\^(\^\fIdisplay\fP, \fIgc\fP\^, \fIvaluemask\fP\^, \fIvalues\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- unsigned long \fIvaluemask\fP\^;
-.br
- XGCValues *\^\fIvalues\fP\^;
-.LP
-Status XGetGCValues\^(\^\fIdisplay\fP, \fIgc\fP, \fIvaluemask\fP, \
-\fIvalues_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- unsigned long \fIvaluemask\fP\^;
-.br
- XGCValues *\fIvalues_return\fP\^;
-.LP
-XFreeGC\^(\^\fIdisplay\fP, \fIgc\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- GC \fIgc\fP\^;
-.LP
-GContext XGContextFromGC\^(\^\fIgc\fP\^)
-.br
- GC \fIgc\fP\^;
+.HP
+GC XCreateGC\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, unsigned long
+\fIvaluemask\fP\^, XGCValues *\^\fIvalues\fP\^);
+.HP
+int XCopyGC\^(\^Display *\fIdisplay\fP\^, GC \fIsrc\fP\^, GC \fIdest\fP\^,
+unsigned long \fIvaluemask\fP\^);
+.HP
+int XChangeGC\^(\^Display *\fIdisplay\fP\^, GC \fIgc\fP\^, unsigned long
+\fIvaluemask\fP\^, XGCValues *\^\fIvalues\fP\^);
+.HP
+Status XGetGCValues\^(\^Display *\fIdisplay\fP\^, GC \fIgc\fP\^, unsigned long
+\fIvaluemask\fP\^, XGCValues *\fIvalues_return\fP\^);
+.HP
+int XFreeGC\^(\^Display *\fIdisplay\fP\^, GC \fIgc\fP\^);
+.HP
+GContext XGContextFromGC\^(\^GC \fIgc\fP\^);
.SH ARGUMENTS
.IP \fId\fP 1i
Specifies the drawable.
@@ -340,143 +311,166 @@ The
structure contains:
.LP
.LP
-/* GC attribute value mask bits */
+/\(** GC attribute value mask bits */
.TS
lw(.5i) lw(2.5i) lw(.75i).
-#define\
- T{
+T{
+\&#define
+T} T{
.ZN GCFunction
T} T{
(1L<<0)
T}
-#define\
- T{
+T{
+\&#define
+T} T{
.ZN GCPlaneMask
T} T{
(1L<<1)
T}
-#define\
- T{
+T{
+\&#define
+T} T{
.ZN GCForeground
T} T{
(1L<<2)
T}
-#define\
- T{
+T{
+\&#define
+T} T{
.ZN GCBackground
T} T{
(1L<<3)
T}
-#define\
- T{
+T{
+\&#define
+T} T{
.ZN GCLineWidth
T} T{
(1L<<4)
T}
-#define\
- T{
+T{
+\&#define
+T} T{
.ZN GCLineStyle
T} T{
(1L<<5)
T}
-#define\
- T{
+T{
+\&#define
+T} T{
.ZN GCCapStyle
T} T{
(1L<<6)
T}
-#define\
- T{
+T{
+\&#define
+T} T{
.ZN GCJoinStyle
T} T{
(1L<<7)
T}
-#define\
- T{
+T{
+\&#define
+T} T{
.ZN GCFillStyle
T} T{
(1L<<8)
T}
-#define\
- T{
+T{
+\&#define
+T} T{
.ZN GCFillRule
T} T{
(1L<<9)
T}
-#define\
- T{
+T{
+\&#define
+T} T{
.ZN GCTile
T} T{
(1L<<10)
T}
-#define\
- T{
+T{
+\&#define
+T} T{
.ZN GCStipple
T} T{
(1L<<11)
T}
-#define\
- T{
+T{
+\&#define
+T} T{
.ZN GCTileStipXOrigin
T} T{
(1L<<12)
T}
-#define\
- T{
+T{
+\&#define
+T} T{
.ZN GCTileStipYOrigin
T} T{
(1L<<13)
T}
-#define\
- T{
+T{
+\&#define
+T} T{
.ZN GCFont
T} T{
(1L<<14)
T}
-#define\
- T{
+T{
+\&#define
+T} T{
.ZN GCSubwindowMode
T} T{
(1L<<15)
T}
-#define\
- T{
+T{
+\&#define
+T} T{
.ZN GCGraphicsExposures
T} T{
(1L<<16)
T}
-#define\
- T{
+T{
+\&#define
+T} T{
.ZN GCClipXOrigin
T} T{
(1L<<17)
T}
-#define\
- T{
+T{
+\&#define
+T} T{
.ZN GCClipYOrigin
T} T{
(1L<<18)
T}
-#define\
- T{
+T{
+\&#define
+T} T{
.ZN GCClipMask
T} T{
(1L<<19)
T}
-#define\
- T{
+T{
+\&#define
+T} T{
.ZN GCDashOffset
T} T{
(1L<<20)
T}
-#define\
- T{
+T{
+\&#define
+T} T{
.ZN GCDashList
T} T{
(1L<<21)
T}
-#define\
- T{
+T{
+\&#define
+T} T{
.ZN GCArcMode
T} T{
(1L<<22)
@@ -486,31 +480,31 @@ T}
.Ds 0
.TA .5i 3i
.ta .5i 3i
-/* Values */
+/\(** Values */
typedef struct {
- int function; /* logical operation */
- unsigned long plane_mask; /* plane mask */
- unsigned long foreground; /* foreground pixel */
- unsigned long background; /* background pixel */
- int line_width; /* line width (in pixels) */
- int line_style; /* LineSolid, LineOnOffDash, LineDoubleDash */
- int cap_style; /* CapNotLast, CapButt, CapRound, CapProjecting */
- int join_style; /* JoinMiter, JoinRound, JoinBevel */
- int fill_style; /* FillSolid, FillTiled, FillStippled FillOpaqueStippled*/
- int fill_rule; /* EvenOddRule, WindingRule */
- int arc_mode; /* ArcChord, ArcPieSlice */
- Pixmap tile; /* tile pixmap for tiling operations */
- Pixmap stipple; /* stipple 1 plane pixmap for stippling */
- int ts_x_origin; /* offset for tile or stipple operations */
+ int function; /\(** logical operation */
+ unsigned long plane_mask; /\(** plane mask */
+ unsigned long foreground; /\(** foreground pixel */
+ unsigned long background; /\(** background pixel */
+ int line_width; /\(** line width (in pixels) */
+ int line_style; /\(** LineSolid, LineOnOffDash, LineDoubleDash */
+ int cap_style; /\(** CapNotLast, CapButt, CapRound, CapProjecting */
+ int join_style; /\(** JoinMiter, JoinRound, JoinBevel */
+ int fill_style; /\(** FillSolid, FillTiled, FillStippled FillOpaqueStippled*/
+ int fill_rule; /\(** EvenOddRule, WindingRule */
+ int arc_mode; /\(** ArcChord, ArcPieSlice */
+ Pixmap tile; /\(** tile pixmap for tiling operations */
+ Pixmap stipple; /\(** stipple 1 plane pixmap for stippling */
+ int ts_x_origin; /\(** offset for tile or stipple operations */
int ts_y_origin;
- Font font; /* default text font for text operations */
- int subwindow_mode; /* ClipByChildren, IncludeInferiors */
- Bool graphics_exposures; /* boolean, should exposures be generated */
- int clip_x_origin; /* origin for clipping */
+ Font font; /\(** default text font for text operations */
+ int subwindow_mode; /\(** ClipByChildren, IncludeInferiors */
+ Bool graphics_exposures; /\(** boolean, should exposures be generated */
+ int clip_x_origin; /\(** origin for clipping */
int clip_y_origin;
- Pixmap clip_mask; /* bitmap clipping; other calls for rects */
- int dash_offset; /* patterned/dashed line information */
+ Pixmap clip_mask; /\(** bitmap clipping; other calls for rects */
+ int dash_offset; /\(** patterned/dashed line information */
char dashes;
} XGCValues;
.De
diff --git a/man/XCreateIC.man b/man/XCreateIC.man
index 27626f31..f4b7c7c7 100644
--- a/man/XCreateIC.man
+++ b/man/XCreateIC.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XCreIC.man,v 1.2 2001/01/27 18:19:57 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,21 +140,16 @@
.el .sp 10p
..
.ny0
-.TH XCreateIC 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XCreateIC 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XCreateIC, XDestroyIC, XIMOfIC \- create, destroy, and obtain the input method of an input context
.SH SYNTAX
-XIC XCreateIC\^(\^\fIim\fP\^, ...)
-.br
- XIM \fIim\fP\^;
-.LP
-void XDestroyIC\^(\^\fIic\fP\^)
-.br
- XIC \fIic\fP\^;
-.LP
-XIM XIMOfIC\^(\^\fIic\fP\^)
-.br
- XIC \fIic\fP\^;
+.HP
+XIC XCreateIC\^(\^XIM \fIim\fP\^, ...\^);
+.HP
+void XDestroyIC\^(\^XIC \fIic\fP\^);
+.HP
+XIM XIMOfIC\^(\^XIC \fIic\fP\^);
.SH ARGUMENTS
.IP \fIic\fP 1i
Specifies the input context.
diff --git a/man/XCreateOC.man b/man/XCreateOC.man
index 144ca548..5e4a6d8d 100644
--- a/man/XCreateOC.man
+++ b/man/XCreateOC.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XCreOC.man,v 1.2 2001/01/27 18:19:57 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,29 +140,20 @@
.el .sp 10p
..
.ny0
-.TH XCreateOC 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XCreateOC 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XCreateOC, XDestroyOC, XSetOCValues, XGetOCValues, XOMOfOC \- create output contexts
.SH SYNTAX
-XOC XCreateOC\^(\^\fIom\fP\^, ...)
-.br
- XOM \fIom\fP\^;
-.LP
-void XDestroyOC\^(\^\fIoc\fP\^)
-.br
- XOC \fIoc\fP\^;
-.LP
-char * XSetOCValues\^(\^\fIoc\fP\^, ...)
-.br
- XOC \fIoc\fP\^;
-.LP
-char * XGetOCValues\^(\^\fIoc\fP\^, ...)
-.br
- XOC \fIoc\fP\^;
-.LP
-XOM XOMOfOC\^(\^\fIoc\fP\^)
-.br
- XOC \fIoc\fP\^;
+.HP
+XOC XCreateOC\^(\^XOM \fIom\fP\^);
+.HP
+void XDestroyOC\^(\^XOC \fIoc\fP\^);
+.HP
+char * XSetOCValues\^(\^XOC \fIoc\fP\^, ...);
+.HP
+char * XGetOCValues\^(\^XOC \fIoc\fP\^, ...);
+.HP
+XOM XOMOfOC\^(\^XOC \fIoc\fP\^);
.SH ARGUMENTS
.IP \fIoc\fP 1i
Specifies the output context.
diff --git a/man/XCreatePixmap.man b/man/XCreatePixmap.man
index b2748461..d4bdd930 100644
--- a/man/XCreatePixmap.man
+++ b/man/XCreatePixmap.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XCrePmap.man,v 1.2 2001/01/27 18:19:57 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,25 +140,16 @@
.el .sp 10p
..
.ny0
-.TH XCreatePixmap 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XCreatePixmap 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XCreatePixmap, XFreePixmap \- create or destroy pixmaps
.SH SYNTAX
-Pixmap XCreatePixmap\^(\^\fIdisplay\fP, \fId\fP\^, \fIwidth\fP\^, \fIheight\fP\^, \fIdepth\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- unsigned int \fIwidth\fP\^, \fIheight\fP\^;
-.br
- unsigned int \fIdepth\fP\^;
-.LP
-XFreePixmap\^(\^\fIdisplay\fP, \fIpixmap\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Pixmap \fIpixmap\fP\^;
+.HP
+Pixmap XCreatePixmap\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^,
+unsigned int \fIwidth\fP\^, unsigned int \fIheight\fP\^, unsigned int
+\fIdepth\fP\^);
+.HP
+int XFreePixmap\^(\^Display *\fIdisplay\fP\^, Pixmap \fIpixmap\fP\^);
.SH ARGUMENTS
.IP \fId\fP 1i
Specifies which screen the pixmap is created on.
diff --git a/man/XCreateRegion.man b/man/XCreateRegion.man
index 70e8a0ff..d43cf2a1 100644
--- a/man/XCreateRegion.man
+++ b/man/XCreateRegion.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XCreReg.man,v 1.2 2001/01/27 18:19:57 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,23 +140,16 @@
.el .sp 10p
..
.ny0
-.TH XCreateRegion 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XCreateRegion 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XCreateRegion, XSetRegion, XDestroyRegion \- create or destroy regions
.SH SYNTAX
-Region XCreateRegion\^()
-.LP
-XSetRegion\^(\^\fIdisplay\fP, \fIgc\fP\^, \fIr\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- Region \fIr\fP\^;
-.LP
-XDestroyRegion\^(\^\fIr\fP\^)
-.br
- Region \fIr\fP\^;
+.HP
+Region XCreateRegion\^(void\^);
+.HP
+int XSetRegion\^(\^Display *\fIdisplay\fP\^, GC \fIgc\fP\^, Region \fIr\fP\^);
+.HP
+int XDestroyRegion\^(\^Region \fIr\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XCreateWindow.man b/man/XCreateWindow.man
index 9faaa355..f1e678ea 100644
--- a/man/XCreateWindow.man
+++ b/man/XCreateWindow.man
@@ -41,6 +41,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XCreWin.man,v 1.5 2003/04/28 22:17:54 herrb Exp $
+.\" $XdotOrg: lib/X11/man/XCreateWindow.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -140,51 +143,14 @@
..
.ny0
'\" t
-.TH XCreateWindow 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XCreateWindow 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XCreateWindow, XCreateSimpleWindow, XSetWindowAttributes \- create windows and window attributes structure
.SH SYNTAX
-Window XCreateWindow\^(\^\fIdisplay\fP, \fIparent\fP\^, \fIx\fP\^, \fIy\fP\^, \fIwidth\fP\^, \fIheight\fP\^, \fIborder_width\fP\^, \fIdepth\fP\^,
-.br
- \fIclass\fP\^, \fIvisual\fP\^, \fIvaluemask\fP\^, \fIattributes\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIparent\fP\^;
-.br
- int \fIx\fP\^, \fIy\fP\^;
-.br
- unsigned int \fIwidth\fP\^, \fIheight\fP\^;
-.br
- unsigned int \fIborder_width\fP\^;
-.br
- int \fIdepth\fP\^;
-.br
- unsigned int \fIclass\fP\^;
-.br
- Visual *\fIvisual\fP\^
-.br
- unsigned long \fIvaluemask\fP\^;
-.br
- XSetWindowAttributes *\fIattributes\fP\^;
-.LP
-Window XCreateSimpleWindow\^(\^\fIdisplay\fP, \fIparent\fP\^, \fIx\fP\^, \fIy\fP\^, \fIwidth\fP\^, \fIheight\fP\^, \fIborder_width\fP\^,
-.br
- \fIborder\fP\^, \fIbackground\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIparent\fP\^;
-.br
- int \fIx\fP\^, \fIy\fP\^;
-.br
- unsigned int \fIwidth\fP\^, \fIheight\fP\^;
-.br
- unsigned int \fIborder_width\fP\^;
-.br
- unsigned long \fIborder\fP\^;
-.br
- unsigned long \fIbackground\fP\^;
+.HP
+Window XCreateWindow\^(\^Display *\fIdisplay\fP\^, Window \fIparent\fP\^, int \fIx\fP\^, int \fIy\fP\^, unsigned int \fIwidth\fP\^, unsigned int \fIheight\fP\^, unsigned int \fIborder_width\fP\^, int \fIdepth\fP\^, unsigned int \fIclass\fP\^, Visual *\fIvisual\fP\^, unsigned long \fIvaluemask\fP\^, XSetWindowAttributes *\fIattributes\fP\^);
+.HP
+Window XCreateSimpleWindow\^(\^Display *\fIdisplay\fP\^, Window \fIparent\fP\^, int \fIx\fP\^, int \fIy\fP\^, unsigned int \fIwidth\fP\^, unsigned int \fIheight\fP\^, unsigned int \fIborder_width\fP\^, unsigned long \fIborder\fP\^, unsigned long \fIbackground\fP\^);
.SH ARGUMENTS
.IP \fIattributes\fP 1i
Specifies the structure from which the values (as specified by the value mask)
@@ -230,14 +196,14 @@ A visual of
.ZN CopyFromParent
means the visual type is taken from the
parent.
-.ds Wh , which are the created window's inside dimensions \
+.ds Wh , which are the created window's inside dimensions
and do not include the created window's borders
.IP \fIwidth\fP 1i
.br
.ns
.IP \fIheight\fP 1i
Specify the width and height\*(Wh.
-.ds Xy , which are the top-left outside corner of the window's \
+.ds Xy , which are the top-left outside corner of the window's
borders and are relative to the inside of the parent window's borders
.IP \fIx\fP 1i
.br
@@ -353,109 +319,109 @@ The
structure contains:
.LP
.LP
-/* Window attribute value mask bits */
+/\(** Window attribute value mask bits */
.TS
lw(.5i) lw(2.5i) lw(.8i).
T{
-#define
+\&#define
T} T{
.ZN CWBackPixmap
T} T{
(1L<<0)
T}
T{
-#define
+\&#define
T} T{
.ZN CWBackPixel
T} T{
(1L<<1)
T}
T{
-#define
+\&#define
T} T{
.ZN CWBorderPixmap
T} T{
(1L<<2)
T}
T{
-#define
+\&#define
T} T{
.ZN CWBorderPixel
T} T{
(1L<<3)
T}
T{
-#define
+\&#define
T} T{
.ZN CWBitGravity
T} T{
(1L<<4)
T}
T{
-#define
+\&#define
T} T{
.ZN CWWinGravity
T} T{
(1L<<5)
T}
T{
-#define
+\&#define
T} T{
.ZN CWBackingStore
T} T{
(1L<<6)
T}
T{
-#define
+\&#define
T} T{
.ZN CWBackingPlanes
T} T{
(1L<<7)
T}
T{
-#define
+\&#define
T} T{
.ZN CWBackingPixel
T} T{
(1L<<8)
T}
T{
-#define
+\&#define
T} T{
.ZN CWOverrideRedirect
T} T{
(1L<<9)
T}
T{
-#define
+\&#define
T} T{
.ZN CWSaveUnder
T} T{
(1L<<10)
T}
T{
-#define
+\&#define
T} T{
.ZN CWEventMask
T} T{
(1L<<11)
T}
T{
-#define
+\&#define
T} T{
.ZN CWDontPropagate
T} T{
(1L<<12)
T}
T{
-#define
+\&#define
T} T{
.ZN CWColormap
T} T{
(1L<<13)
T}
T{
-#define
+\&#define
T} T{
.ZN CWCursor
T} T{
@@ -466,24 +432,24 @@ T}
.Ds 0
.TA .5i 3i
.ta .5i 3i
-/* Values */
+/\(** Values */
typedef struct {
- Pixmap background_pixmap; /* background, None, or ParentRelative */
- unsigned long background_pixel; /* background pixel */
- Pixmap border_pixmap; /* border of the window or CopyFromParent */
- unsigned long border_pixel; /* border pixel value */
- int bit_gravity; /* one of bit gravity values */
- int win_gravity; /* one of the window gravity values */
- int backing_store; /* NotUseful, WhenMapped, Always */
- unsigned long backing_planes; /* planes to be preserved if possible */
- unsigned long backing_pixel; /* value to use in restoring planes */
- Bool save_under; /* should bits under be saved? (popups) */
- long event_mask; /* set of events that should be saved */
- long do_not_propagate_mask; /* set of events that should not propagate */
- Bool override_redirect; /* boolean value for override_redirect */
- Colormap colormap; /* color map to be associated with window */
- Cursor cursor; /* cursor to be displayed (or None) */
+ Pixmap background_pixmap; /\(** background, None, or ParentRelative */
+ unsigned long background_pixel; /\(** background pixel */
+ Pixmap border_pixmap; /\(** border of the window or CopyFromParent */
+ unsigned long border_pixel; /\(** border pixel value */
+ int bit_gravity; /\(** one of bit gravity values */
+ int win_gravity; /\(** one of the window gravity values */
+ int backing_store; /\(** NotUseful, WhenMapped, Always */
+ unsigned long backing_planes; /\(** planes to be preserved if possible */
+ unsigned long backing_pixel; /\(** value to use in restoring planes */
+ Bool save_under; /\(** should bits under be saved? (popups) */
+ long event_mask; /\(** set of events that should be saved */
+ long do_not_propagate_mask; /\(** set of events that should not propagate */
+ Bool override_redirect; /\(** boolean value for override_redirect */
+ Colormap colormap; /\(** color map to be associated with window */
+ Cursor cursor; /\(** cursor to be displayed (or None) */
} XSetWindowAttributes;
.De
.LP
diff --git a/man/XCreateWindowEvent.man b/man/XCreateWindowEvent.man
index 4eac91fe..fc950d89 100644
--- a/man/XCreateWindowEvent.man
+++ b/man/XCreateWindowEvent.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XCWEvent.man,v 1.2 2001/01/27 18:19:57 dawes Exp $
+.\" $XdotOrg: lib/X11/man/XCreateWindowEvent.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,7 +141,7 @@
.el .sp 10p
..
.ny0
-.TH XCreateWindowEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XCreateWindowEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XCreateWindowEvent \- CreateNotify event structure
.SH STRUCTURES
@@ -150,16 +153,16 @@ events contains:
.TA .5i 3i
.ta .5i 3i
typedef struct {
- int type; /* CreateNotify */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window parent; /* parent of the window */
- Window window; /* window id of window created */
- int x, y; /* window location */
- int width, height; /* size of window */
- int border_width; /* border width */
- Bool override_redirect; /* creation should be overridden */
+ int type; /\(** CreateNotify */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came from a SendEvent request */
+ Display *display; /\(** Display the event was read from */
+ Window parent; /\(** parent of the window */
+ Window window; /\(** window id of window created */
+ int x, y; /\(** window location */
+ int width, height; /\(** size of window */
+ int border_width; /\(** border width */
+ Bool override_redirect; /\(** creation should be overridden */
} XCreateWindowEvent;
.De
.LP
diff --git a/man/XCrossingEvent.man b/man/XCrossingEvent.man
index 5bf8d4fc..2cc15595 100644
--- a/man/XCrossingEvent.man
+++ b/man/XCrossingEvent.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XCroEvent.man,v 1.2 2001/01/27 18:19:57 dawes Exp $
+.\" $XdotOrg: lib/X11/man/XCrossingEvent.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,7 +141,7 @@
.el .sp 10p
..
.ny0
-.TH XCrossingEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XCrossingEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XCrossingEvent \- EnterNotify and LeaveNotify event structure
.SH STRUCTURES
@@ -152,25 +155,25 @@ events contains:
.TA .5i 3i
.ta .5i 3i
typedef struct {
- int type; /* EnterNotify or LeaveNotify */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window; /* ``event'' window reported relative to */
- Window root; /* root window that the event occurred on */
- Window subwindow; /* child window */
- Time time; /* milliseconds */
- int x, y; /* pointer x, y coordinates in event window */
- int x_root, y_root; /* coordinates relative to root */
- int mode; /* NotifyNormal, NotifyGrab, NotifyUngrab */
+ int type; /\(** EnterNotify or LeaveNotify */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came from a SendEvent request */
+ Display *display; /\(** Display the event was read from */
+ Window window; /\(** ``event'' window reported relative to */
+ Window root; /\(** root window that the event occurred on */
+ Window subwindow; /\(** child window */
+ Time time; /\(** milliseconds */
+ int x, y; /\(** pointer x, y coordinates in event window */
+ int x_root, y_root; /\(** coordinates relative to root */
+ int mode; /\(** NotifyNormal, NotifyGrab, NotifyUngrab */
int detail;
- /*
+ /\(**
* NotifyAncestor, NotifyVirtual, NotifyInferior,
* NotifyNonlinear,NotifyNonlinearVirtual
*/
- Bool same_screen; /* same screen flag */
- Bool focus; /* boolean focus */
- unsigned int state; /* key or button mask */
+ Bool same_screen; /\(** same screen flag */
+ Bool focus; /\(** boolean focus */
+ unsigned int state; /\(** key or button mask */
} XCrossingEvent;
typedef XCrossingEvent XEnterWindowEvent;
typedef XCrossingEvent XLeaveWindowEvent;
diff --git a/man/XDefineCursor.man b/man/XDefineCursor.man
index aacdeee8..46fa149f 100644
--- a/man/XDefineCursor.man
+++ b/man/XDefineCursor.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XDefCur.man,v 1.2 2001/01/27 18:19:58 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,23 +140,15 @@
.el .sp 10p
..
.ny0
-.TH XDefineCursor 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XDefineCursor 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XDefineCursor, XUndefineCursor \- define cursors
.SH SYNTAX
-XDefineCursor\^(\^\fIdisplay\fP, \fIw\fP\^, \fIcursor\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- Cursor \fIcursor\fP\^;
-.LP
-XUndefineCursor\^(\^\fIdisplay\fP, \fIw\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
+.HP
+int XDefineCursor\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, Cursor
+\fIcursor\fP\^);
+.HP
+int XUndefineCursor\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^);
.SH ARGUMENTS
.IP \fIcursor\fP 1i
Specifies the cursor that is to be displayed or
diff --git a/man/XDestroyWindow.man b/man/XDestroyWindow.man
index dd413bec..cdd47362 100644
--- a/man/XDestroyWindow.man
+++ b/man/XDestroyWindow.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XDesWin.man,v 1.2 2001/01/27 18:19:58 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,21 +140,14 @@
.el .sp 10p
..
.ny0
-.TH XDestroyWindow 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XDestroyWindow 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XDestroyWindow, XDestroySubwindows \- destroy windows
.SH SYNTAX
-XDestroyWindow\^(\^\fIdisplay\fP, \fIw\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.LP
-XDestroySubwindows\^(\^\fIdisplay\fP, \fIw\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
+.HP
+int XDestroyWindow\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^);
+.HP
+int XDestroySubwindows\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XDestroyWindowEvent.man b/man/XDestroyWindowEvent.man
index fabfe00f..2a1b0cd5 100644
--- a/man/XDestroyWindowEvent.man
+++ b/man/XDestroyWindowEvent.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XDWEvent.man,v 1.2 2001/01/27 18:19:58 dawes Exp $
+.\" $XdotOrg: lib/X11/man/XDestroyWindowEvent.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,7 +141,7 @@
.el .sp 10p
..
.ny0
-.TH XDestroyWindowEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XDestroyWindowEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XDestroyWindowEvent \- DestroyNotify event structure
.SH STRUCTURES
@@ -150,10 +153,10 @@ events contains:
.TA .5i 3i
.ta .5i 3i
typedef struct {
- int type; /* DestroyNotify */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
+ int type; /\(** DestroyNotify */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came from a SendEvent request */
+ Display *display; /\(** Display the event was read from */
Window event;
Window window;
} XDestroyWindowEvent;
diff --git a/man/XDrawArc.man b/man/XDrawArc.man
index 37236458..e636be0b 100644
--- a/man/XDrawArc.man
+++ b/man/XDrawArc.man
@@ -41,6 +41,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XDrArc.man,v 1.4 2003/04/28 22:17:54 herrb Exp $
+.\" $XdotOrg: lib/X11/man/XDrawArc.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -140,35 +143,17 @@
..
.ny0
'\" e
-.TH XDrawArc 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XDrawArc 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XDrawArc, XDrawArcs, XArc \- draw arcs and arc structure
.SH SYNTAX
-XDrawArc\^(\^\fIdisplay\fP, \fId\fP\^, \fIgc\fP\^, \fIx\fP\^, \fIy\fP\^, \fIwidth\fP\^, \fIheight\fP\^, \fIangle1\fP\^, \fIangle2\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- int \fIx\fP\^, \fIy\fP\^;
-.br
- unsigned int \fIwidth\fP\^, \fIheight\fP\^;
-.br
- int \fIangle1\fP\^, \fIangle2\fP\^;
-.LP
-XDrawArcs\^(\^\fIdisplay\fP, \fId\fP\^, \fIgc\fP\^, \fIarcs\fP\^, \fInarcs\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- XArc *\fIarcs\fP\^;
-.br
- int \fInarcs\fP\^;
+.HP
+int XDrawArc\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, GC \fIgc\fP\^,
+int \fIx\fP\^, int \fIy\fP\^, unsigned int \fIwidth\fP\^, unsigned int
+\fIheight\fP\^, int \fIangle1\fP\^, int \fIangle2\fP\^);
+.HP
+int XDrawArcs\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, GC \fIgc\fP\^,
+XArc *\fIarcs\fP\^, int \fInarcs\fP\^);
.SH ARGUMENTS
.IP \fIangle1\fP 1i
Specifies the start of the arc relative to the three-o'clock position
@@ -192,7 +177,7 @@ Specifies the number of arcs in the array.
.ns
.IP \fIheight\fP 1i
Specify the width and height\*(Wh.
-.ds Xy , which are relative to the origin of the drawable \
+.ds Xy , which are relative to the origin of the drawable
and specify the upper-left corner of the bounding rectangle
.IP \fIx\fP 1i
.br
@@ -316,7 +301,7 @@ structure contains:
typedef struct {
short x, y;
unsigned short width, height;
- short angle1, angle2; /* Degrees * 64 */
+ short angle1, angle2; /\(** Degrees * 64 */
} XArc;
.De
.LP
diff --git a/man/XDrawImageString.man b/man/XDrawImageString.man
index 2470f5b1..3e32b1e1 100644
--- a/man/XDrawImageString.man
+++ b/man/XDrawImageString.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XDrIStr.man,v 1.3 2001/02/09 03:47:45 tsi Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,37 +140,18 @@
.el .sp 10p
..
.ny0
-.TH XDrawImageString 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XDrawImageString 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XDrawImageString, XDrawImageString16 \- draw image text
.SH SYNTAX
-XDrawImageString\^(\^\fIdisplay\fP, \fId\fP\^, \fIgc\fP\^, \fIx\fP\^, \fIy\fP\^, \fIstring\fP\^, \fIlength\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- int \fIx\fP\^, \fIy\fP\^;
-.br
- char *\fIstring\fP\^;
-.br
- int \fIlength\fP\^;
-.LP
-XDrawImageString16\^(\^\fIdisplay\fP, \fId\fP\^, \fIgc\fP\^, \fIx\fP\^, \fIy\fP\^, \fIstring\fP\^, \fIlength\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- int \fIx\fP\^, \fIy\fP\^;
-.br
- XChar2b *\fIstring\fP\^;
-.br
- int \fIlength\fP\^;
+.HP
+int XDrawImageString\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, GC
+\fIgc\fP\^, int \fIx\fP\^, int \fIy\fP\^, char *\fIstring\fP\^, int
+\fIlength\fP\^);
+.HP
+int XDrawImageString16\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, GC
+\fIgc\fP\^, int \fIx\fP\^, int \fIy\fP\^, XChar2b *\fIstring\fP\^, int
+\fIlength\fP\^);
.SH ARGUMENTS
.IP \fId\fP 1i
Specifies the drawable.
@@ -180,7 +163,7 @@ Specifies the GC.
Specifies the number of characters in the string argument.
.IP \fIstring\fP 1i
Specifies the character string.
-.ds Xy , which are relative to the origin of the specified drawable \
+.ds Xy , which are relative to the origin of the specified drawable
and define the origin of the first character
.IP \fIx\fP 1i
.br
diff --git a/man/XDrawLine.man b/man/XDrawLine.man
index 637aa45d..7beba738 100644
--- a/man/XDrawLine.man
+++ b/man/XDrawLine.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XDrLine.man,v 1.2 2001/01/27 18:19:58 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,45 +140,19 @@
.el .sp 10p
..
.ny0
-.TH XDrawLine 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XDrawLine 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XDrawLine, XDrawLines, XDrawSegments, XSegment \- draw lines, polygons, and line structure
.SH SYNTAX
-XDrawLine\^(\^\fIdisplay\fP, \fId\fP\^, \fIgc\fP\^, \fIx1\fP\^, \fIy1\fP\^, \fIx2\fP\^, \fIy2\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- int \fIx1\fP\^, \fIy1\fP\^, \fIx2\fP\^, \fIy2\fP\^;
-.LP
-XDrawLines\^(\^\fIdisplay\fP, \fId\fP\^, \fIgc\fP\^, \fIpoints\fP\^, \fInpoints\fP\^, \fImode\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- XPoint *\fIpoints\fP\^;
-.br
- int \fInpoints\fP\^;
-.br
- int \fImode\fP\^;
-.LP
-XDrawSegments\^(\^\fIdisplay\fP, \fId\fP\^, \fIgc\fP\^, \fIsegments\fP\^, \fInsegments\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- XSegment *\fIsegments\fP\^;
-.br
- int \fInsegments\fP\^;
+.HP
+int XDrawLine\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, GC \fIgc\fP\^,
+int \fIx1\fP\^, int \fIy1\fP\^, int \fIx2\fP\^, int \fIy2\fP\^);
+.HP
+int XDrawLines\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, GC
+\fIgc\fP\^, XPoint *\fIpoints\fP\^, int \fInpoints\fP\^, int \fImode\fP\^);
+.HP
+int XDrawSegments\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, GC
+\fIgc\fP\^, XSegment *\fIsegments\fP\^, int \fInsegments\fP\^);
.SH ARGUMENTS
.IP \fId\fP 1i
Specifies the drawable.
diff --git a/man/XDrawPoint.man b/man/XDrawPoint.man
index f06b8657..dff55a54 100644
--- a/man/XDrawPoint.man
+++ b/man/XDrawPoint.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XDrPoint.man,v 1.2 2001/01/27 18:19:58 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,33 +140,16 @@
.el .sp 10p
..
.ny0
-.TH XDrawPoint 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XDrawPoint 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XDrawPoint, XDrawPoints, XPoint \- draw points and points structure
.SH SYNTAX
-XDrawPoint\^(\^\fIdisplay\fP, \fId\fP\^, \fIgc\fP\^, \fIx\fP\^, \fIy\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- int \fIx\fP\^, \fIy\fP\^;
-.LP
-XDrawPoints\^(\^\fIdisplay\fP, \fId\fP\^, \fIgc\fP\^, \fIpoints\fP\^, \fInpoints\fP\^, \fImode\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- XPoint *\fIpoints\fP\^;
-.br
- int \fInpoints\fP\^;
-.br
- int \fImode\fP\^;
+.HP
+int XDrawPoint\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, GC
+\fIgc\fP\^, int \fIx\fP\^, int \fIy\fP\^);
+.HP
+int XDrawPoints\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, GC
+\fIgc\fP\^, XPoint *\fIpoints\fP\^, int \fInpoints\fP\^, int \fImode\fP\^);
.SH ARGUMENTS
.IP \fId\fP 1i
Specifies the drawable.
diff --git a/man/XDrawRectangle.man b/man/XDrawRectangle.man
index a9417bcf..5a36f822 100644
--- a/man/XDrawRectangle.man
+++ b/man/XDrawRectangle.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XDrRect.man,v 1.2 2001/01/27 18:19:58 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,33 +140,17 @@
.el .sp 10p
..
.ny0
-.TH XDrawRectangle 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XDrawRectangle 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XDrawRectangle, XDrawRectangles, XRectangle \- draw rectangles and rectangles structure
.SH SYNTAX
-XDrawRectangle\^(\^\fIdisplay\fP, \fId\fP\^, \fIgc\fP\^, \fIx\fP\^, \fIy\fP\^, \fIwidth\fP\^, \fIheight\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- int \fIx\fP\^, \fIy\fP\^;
-.br
- unsigned int \fIwidth\fP\^, \fIheight\fP\^;
-.LP
-XDrawRectangles\^(\^\fIdisplay\fP, \fId\fP\^, \fIgc\fP\^, \fIrectangles\fP\^, \fInrectangles\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- XRectangle \fIrectangles\fP\^[\^]\^;
-.br
- int \fInrectangles\fP\^;
+.HP
+int XDrawRectangle\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, GC
+\fIgc\fP\^, int \fIx\fP\^, int \fIy\fP\^, unsigned int \fIwidth\fP\^, unsigned
+int \fIheight\fP\^);
+.HP
+int XDrawRectangles\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, GC
+\fIgc\fP\^, XRectangle \fIrectangles\fP\^[\^]\^, int \fInrectangles\fP\^);
.SH ARGUMENTS
.IP \fId\fP 1i
Specifies the drawable.
diff --git a/man/XDrawString.man b/man/XDrawString.man
index 564a87c7..2847e730 100644
--- a/man/XDrawString.man
+++ b/man/XDrawString.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XDrString.man,v 1.3 2001/02/09 03:47:45 tsi Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,37 +140,18 @@
.el .sp 10p
..
.ny0
-.TH XDrawString 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XDrawString 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XDrawString, XDrawString16 \- draw text characters
.SH SYNTAX
-XDrawString\^(\^\fIdisplay\fP, \fId\fP\^, \fIgc\fP\^, \fIx\fP\^, \fIy\fP\^, \fIstring\fP\^, \fIlength\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- int \fIx\fP\^, \fIy\fP\^;
-.br
- char *\fIstring\fP\^;
-.br
- int \fIlength\fP\^;
-.LP
-XDrawString16\^(\^\fIdisplay\fP, \fId\fP\^, \fIgc\fP\^, \fIx\fP\^, \fIy\fP\^, \fIstring\fP\^, \fIlength\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- int \fIx\fP\^, \fIy\fP\^;
-.br
- XChar2b *\fIstring\fP\^;
-.br
- int \fIlength\fP\^;
+.HP
+int XDrawString\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, GC
+\fIgc\fP\^, int \fIx\fP\^, int \fIy\fP\^, char *\fIstring\fP\^, int
+\fIlength\fP\^);
+.HP
+int XDrawString16\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, GC
+\fIgc\fP\^, int \fIx\fP\^, int \fIy\fP\^, XChar2b *\fIstring\fP\^, int
+\fIlength\fP\^);
.SH ARGUMENTS
.IP \fId\fP 1i
Specifies the drawable.
@@ -180,7 +163,7 @@ Specifies the GC.
Specifies the number of characters in the string argument.
.IP \fIstring\fP 1i
Specifies the character string.
-.ds Xy , which are relative to the origin of the specified drawable \
+.ds Xy , which are relative to the origin of the specified drawable
and define the origin of the first character
.IP \fIx\fP 1i
.br
diff --git a/man/XDrawText.man b/man/XDrawText.man
index 4363d909..d202a061 100644
--- a/man/XDrawText.man
+++ b/man/XDrawText.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XDrText.man,v 1.4 2003/04/28 22:17:54 herrb Exp $
+.\" $XdotOrg: lib/X11/man/XDrawText.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,37 +141,17 @@
.el .sp 10p
..
.ny0
-.TH XDrawText 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XDrawText 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XDrawText, XDrawText16, XTextItem, XTextItem16 \- draw polytext text and text drawing structures
.SH SYNTAX
-XDrawText\^(\^\fIdisplay\fP, \fId\fP\^, \fIgc\fP\^, \fIx\fP\^, \fIy\fP\^, \fIitems\fP\^, \fInitems\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- int \fIx\fP\^, \fIy\fP\^;
-.br
- XTextItem *\fIitems\fP\^;
-.br
- int \fInitems\fP\^;
-.LP
-XDrawText16\^(\^\fIdisplay\fP, \fId\fP\^, \fIgc\fP\^, \fIx\fP\^, \fIy\fP\^, \fIitems\fP\^, \fInitems\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- int \fIx\fP\^, \fIy\fP\^;
-.br
- XTextItem16 *\fIitems\fP\^;
-.br
- int \fInitems\fP\^;
+.HP
+int XDrawText\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, GC \fIgc\fP\^,
+int \fIx\fP\^, int \fIy\fP\^, XTextItem *\fIitems\fP\^, int \fInitems\fP\^);
+.HP
+int XDrawText16\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, GC
+\fIgc\fP\^, int \fIx\fP\^, int \fIy\fP\^, XTextItem16 *\fIitems\fP\^, int
+\fInitems\fP\^);
.SH ARGUMENTS
.IP \fId\fP 1i
Specifies the drawable.
@@ -180,7 +163,7 @@ Specifies the GC.
Specifies an array of text items.
.IP \fInitems\fP 1i
Specifies the number of text items in the array.
-.ds Xy , which are relative to the origin of the specified drawable \
+.ds Xy , which are relative to the origin of the specified drawable
and define the origin of the first character
.IP \fIx\fP 1i
.br
@@ -245,10 +228,10 @@ structures contain:
.TA .5i 3i
.ta .5i 3i
typedef struct {
- char *chars; /* pointer to string */
- int nchars; /* number of characters */
- int delta; /* delta between strings */
- Font font; /* Font to print it in, None don't change */
+ char *chars; /\(** pointer to string */
+ int nchars; /\(** number of characters */
+ int delta; /\(** delta between strings */
+ Font font; /\(** Font to print it in, None don't change */
} XTextItem;
.De
.LP
@@ -256,10 +239,10 @@ typedef struct {
.TA .5i 3i
.ta .5i 3i
typedef struct {
- XChar2b *chars; /* pointer to two-byte characters */
- int nchars; /* number of characters */
- int delta; /* delta between strings */
- Font font; /* font to print it in, None don't change */
+ XChar2b *chars; /\(** pointer to two-byte characters */
+ int nchars; /\(** number of characters */
+ int delta; /\(** delta between strings */
+ Font font; /\(** font to print it in, None don't change */
} XTextItem16;
.De
.LP
diff --git a/man/XEmptyRegion.man b/man/XEmptyRegion.man
index d7afd204..204744ba 100644
--- a/man/XEmptyRegion.man
+++ b/man/XEmptyRegion.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XERegion.man,v 1.3 2001/02/09 03:47:45 tsi Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,31 +140,19 @@
.el .sp 10p
..
.ny0
-.TH XEmptyRegion 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XEmptyRegion 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XEmptyRegion, XEqualRegion, XPointInRegion, XRectInRegion \- determine if regions are empty or equal
.SH SYNTAX
-Bool XEmptyRegion\^(\^\fIr\fP\^)
-.br
- Region \fIr\fP\^;
-.LP
-Bool XEqualRegion\^(\^\fIr1\fP\^, \fIr2\fP\^)
-.br
- Region \fIr1\fP\^, \fIr2\fP\^;
-.LP
-Bool XPointInRegion\^(\^\fIr\fP\^, \fIx\fP\^, \fIy\fP\^)
-.br
- Region \fIr\fP\^;
-.br
- int \fIx\fP\^, \fIy\fP\^;
-.LP
-int XRectInRegion\^(\^\fIr\fP\^, \fIx\fP\^, \fIy\fP\^, \fIwidth\fP\^, \fIheight\fP\^)
-.br
- Region \fIr\fP\^;
-.br
- int \fIx\fP\^, \fIy\fP\^;
-.br
- unsigned int \fIwidth\fP\^, \fIheight\fP\^;
+.HP
+Bool XEmptyRegion\^(\^Region \fIr\fP\^);
+.HP
+Bool XEqualRegion\^(\^Region \fIr1\fP\^, Region \fIr2\fP\^);
+.HP
+Bool XPointInRegion\^(\^Region \fIr\fP\^, int \fIx\fP\^, int \fIy\fP\^);
+.HP
+int XRectInRegion\^(\^Region \fIr\fP\^, int \fIx\fP\^, int \fIy\fP\^, unsigned
+int \fIwidth\fP\^, unsigned int \fIheight\fP\^);
.SH ARGUMENTS
.IP \fIr\fP 1i
Specifies the region.
@@ -177,7 +167,7 @@ Specify the two regions.
.ns
.IP \fIheight\fP 1i
Specify the width and height\*(Wh.
-.ds Xy , which define the point \
+.ds Xy , which define the point
or the coordinates of the upper-left corner of the rectangle
.IP \fIx\fP 1i
.br
diff --git a/man/XErrorEvent.man b/man/XErrorEvent.man
index e9ee1603..b4d7dfa1 100644
--- a/man/XErrorEvent.man
+++ b/man/XErrorEvent.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XErrEvent.man,v 1.2 2001/01/27 18:19:58 dawes Exp $
+.\" $XdotOrg: lib/X11/man/XErrorEvent.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,7 +141,7 @@
.el .sp 10p
..
.ny0
-.TH XErrorEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XErrorEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XErrorEvent \- X error event structure
.SH STRUCTURES
@@ -151,12 +154,12 @@ structure contains:
.ta .5i 2.5i
typedef struct {
int type;
- Display *display; /* Display the event was read from */
- unsigned long serial; /* serial number of failed request */
- unsigned char error_code; /* error code of failed request */
- unsigned char request_code; /* Major op-code of failed request */
- unsigned char minor_code; /* Minor op-code of failed request */
- XID resourceid; /* resource id */
+ Display *display; /\(** Display the event was read from */
+ unsigned long serial; /\(** serial number of failed request */
+ unsigned char error_code; /\(** error code of failed request */
+ unsigned char request_code; /\(** Major op-code of failed request */
+ unsigned char minor_code; /\(** Minor op-code of failed request */
+ XID resourceid; /\(** resource id */
} XErrorEvent;
.De
.LP
diff --git a/man/XExposeEvent.man b/man/XExposeEvent.man
index 29523deb..18da9052 100644
--- a/man/XExposeEvent.man
+++ b/man/XExposeEvent.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XExpEvent.man,v 1.2 2001/01/27 18:19:58 dawes Exp $
+.\" $XdotOrg: lib/X11/man/XExposeEvent.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,7 +141,7 @@
.el .sp 10p
..
.ny0
-.TH XExposeEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XExposeEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XExposeEvent \- Expose event structure
.SH STRUCTURES
@@ -150,14 +153,14 @@ events contains:
.TA .5i 3i
.ta .5i 3i
typedef struct {
- int type; /* Expose */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
+ int type; /\(** Expose */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came from a SendEvent request */
+ Display *display; /\(** Display the event was read from */
Window window;
int x, y;
int width, height;
- int count; /* if nonzero, at least this many more */
+ int count; /\(** if nonzero, at least this many more */
} XExposeEvent;
.De
.LP
diff --git a/man/XExtentsOfFontSet.man b/man/XExtentsOfFontSet.man
index 7fec44c9..ed5fbff0 100644
--- a/man/XExtentsOfFontSet.man
+++ b/man/XExtentsOfFontSet.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XEofFSet.man,v 1.2 2001/01/27 18:19:58 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,13 +140,12 @@
.el .sp 10p
..
.ny0
-.TH XExtentsOfFontSet 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XExtentsOfFontSet 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XExtentsOfFontSet \- obtain the maximum extents structure for a font set
.SH SYNTAX
-XFontSetExtents *XExtentsOfFontSet\^(\^\fIfont_set\fP\^)
-.br
- XFontSet \fIfont_set\fP\^;
+.HP
+XFontSetExtents *XExtentsOfFontSet\^(\^XFontSet \fIfont_set\fP\^);
.SH ARGUMENTS
.IP \fIfont_set\fP 1i
Specifies the font set.
diff --git a/man/XFillRectangle.man b/man/XFillRectangle.man
index f05ae5a6..5aecd0c8 100644
--- a/man/XFillRectangle.man
+++ b/man/XFillRectangle.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XFillRect.man,v 1.3 2001/02/09 03:47:45 tsi Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,75 +140,28 @@
.el .sp 10p
..
.ny0
-.TH XFillRectangle 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XFillRectangle 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XFillRectangle, XFillRectangles, XFillPolygon, XFillArc, XFillArcs \- fill rectangles, polygons, or arcs
.SH SYNTAX
-XFillRectangle\^(\^\fIdisplay\fP, \fId\fP\^, \fIgc\fP\^, \fIx\fP\^, \fIy\fP\^, \fIwidth\fP\^, \fIheight\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- int \fIx\fP\^, \fIy\fP\^;
-.br
- unsigned int \fIwidth\fP\^, \fIheight\fP\^;
-.LP
-XFillRectangles\^(\^\fIdisplay\fP, \fId\fP\^, \fIgc\fP\^, \fIrectangles\fP\^, \fInrectangles\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- XRectangle *\fIrectangles\fP\^;
-.br
- int \fInrectangles\fP\^;
-.LP
-XFillPolygon\^(\^\fIdisplay\fP, \fId\fP\^, \fIgc\fP\^, \fIpoints\fP\^, \fInpoints\fP\^, \fIshape\fP\^, \fImode\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- XPoint *\fIpoints\fP\^;
-.br
- int \fInpoints\fP\^;
-.br
- int \fIshape\fP\^;
-.br
- int \fImode\fP\^;
-.LP
-XFillArc\^(\^\fIdisplay\fP, \fId\fP\^, \fIgc\fP\^, \fIx\fP\^, \fIy\fP\^, \fIwidth\fP\^, \fIheight\fP\^, \fIangle1\fP\^, \fIangle2\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- int \fIx\fP\^, \fIy\fP\^;
-.br
- unsigned int \fIwidth\fP\^, \fIheight\fP\^;
-.br
- int \fIangle1\fP\^, \fIangle2\fP\^;
-.LP
-XFillArcs\^(\^\fIdisplay\fP, \fId\fP\^, \fIgc\fP\^, \fIarcs\fP\^, \fInarcs\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- XArc *\fIarcs\fP\^;
-.br
- int \fInarcs\fP\^;
+.HP
+int XFillRectangle\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, GC
+\fIgc\fP\^, int \fIx\fP\^, int \fIy\fP\^, unsigned int \fIwidth\fP\^, unsigned
+int \fIheight\fP\^);
+.HP
+int XFillRectangles\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, GC
+\fIgc\fP\^, XRectangle *\fIrectangles\fP\^, int \fInrectangles\fP\^);
+.HP
+int XFillPolygon\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, GC
+\fIgc\fP\^, XPoint *\fIpoints\fP\^, int \fInpoints\fP\^, int \fIshape\fP\^,
+int \fImode\fP\^);
+.HP
+int XFillArc\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, GC \fIgc\fP\^,
+int \fIx\fP\^, int \fIy\fP\^, unsigned int \fIwidth\fP\^, unsigned int
+\fIheight\fP\^, int \fIangle1\fP\^, int \fIangle2\fP\^);
+.HP
+int XFillArcs\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, GC \fIgc\fP\^,
+XArc *\fIarcs\fP\^, int \fInarcs\fP\^);
.SH ARGUMENTS
.IP \fIangle1\fP 1i
Specifies the start of the arc relative to the three-o'clock position
@@ -245,14 +200,14 @@ You can pass
.ZN Convex ,
or
.ZN Nonconvex .
-.ds Wh , which are the dimensions of the rectangle to be filled \
+.ds Wh , which are the dimensions of the rectangle to be filled
or the major and minor axes of the arc
.IP \fIwidth\fP 1i
.br
.ns
.IP \fIheight\fP 1i
Specify the width and height\*(Wh.
-.ds Xy , which are relative to the origin of the drawable \
+.ds Xy , which are relative to the origin of the drawable
and specify the upper-left corner of the rectangle
.IP \fIx\fP 1i
.br
diff --git a/man/XFilterEvent.man b/man/XFilterEvent.man
index b915de33..bda0a0d5 100644
--- a/man/XFilterEvent.man
+++ b/man/XFilterEvent.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XFEvent.man,v 1.2 2001/01/27 18:19:59 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,15 +140,12 @@
.el .sp 10p
..
.ny0
-.TH XFilterEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XFilterEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XFilterEvent \- filter X events for an input method
.SH SYNTAX
-Bool XFilterEvent\^(\^\fIevent\fP\^, \fIw\fP\^)
-.br
- XEvent *\fIevent\fP\^;
-.br
- Window \fIw\fP\^;
+.HP
+Bool XFilterEvent\^(\^XEvent *\fIevent\fP\^, Window \fIw\fP\^);
.SH ARGUMENTS
.ds Ev event to filter
.IP \fIevent\fP 1i
diff --git a/man/XFlush.man b/man/XFlush.man
index f8d9bcaa..dd2b9b40 100644
--- a/man/XFlush.man
+++ b/man/XFlush.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XFlush.man,v 1.2 2001/01/27 18:19:59 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,29 +140,18 @@
.el .sp 10p
..
.ny0
-.TH XFlush 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XFlush 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XFlush, XSync, XEventsQueued, XPending \- handle output buffer or event queue
.SH SYNTAX
-XFlush\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.LP
-XSync\^(\^\fIdisplay\fP, \fIdiscard\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Bool \fIdiscard\fP\^;
-.LP
-int XEventsQueued\^(\^\fIdisplay\fP, \fImode\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fImode\fP\^;
-.LP
-int XPending\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
+.HP
+int XFlush\^(\^Display *\fIdisplay\fP\^);
+.HP
+int XSync\^(\^Display *\fIdisplay\fP\^, Bool \fIdiscard\fP\^);
+.HP
+int XEventsQueued\^(\^Display *\fIdisplay\fP\^, int \fImode\fP\^);
+.HP
+int XPending\^(\^Display *\fIdisplay\fP\^);
.SH ARGUMENTS
.IP \fIdiscard\fP 1i
Specifies a Boolean value that indicates whether
diff --git a/man/XFocusChangeEvent.man b/man/XFocusChangeEvent.man
index ee35f5fc..dd0955be 100644
--- a/man/XFocusChangeEvent.man
+++ b/man/XFocusChangeEvent.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XFCEvent.man,v 1.2 2001/01/27 18:19:59 dawes Exp $
+.\" $XdotOrg: lib/X11/man/XFocusChangeEvent.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,7 +141,7 @@
.el .sp 10p
..
.ny0
-.TH XFocusChangeEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XFocusChangeEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XFocusChangeEvent \- FocusIn and FocusOut event structure
.SH STRUCTURES
@@ -152,14 +155,14 @@ events contains:
.TA .5i 3i
.ta .5i 3i
typedef struct {
- int type; /* FocusIn or FocusOut */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window; /* window of event */
- int mode; /* NotifyNormal, NotifyGrab, NotifyUngrab */
+ int type; /\(** FocusIn or FocusOut */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came from a SendEvent request */
+ Display *display; /\(** Display the event was read from */
+ Window window; /\(** window of event */
+ int mode; /\(** NotifyNormal, NotifyGrab, NotifyUngrab */
int detail;
- /*
+ /\(**
* NotifyAncestor, NotifyVirtual, NotifyInferior,
* NotifyNonlinear,NotifyNonlinearVirtual, NotifyPointer,
* NotifyPointerRoot, NotifyDetailNone
diff --git a/man/XFontSetExtents.man b/man/XFontSetExtents.man
index 8237b444..da8ebd5b 100644
--- a/man/XFontSetExtents.man
+++ b/man/XFontSetExtents.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XFSExt.man,v 1.2 2001/01/27 18:19:59 dawes Exp $
+.\" $XdotOrg: lib/X11/man/XFontSetExtents.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,7 +141,7 @@
.el .sp 10p
..
.ny0
-.TH XFontSetExtents 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XFontSetExtents 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XFontSetExtents \- XFontSetExtents structure
.SH STRUCTURES
@@ -150,8 +153,8 @@ structure contains:
.TA .5i 3i
.ta .5i 3i
typedef struct {
- XRectangle max_ink_extent; /* over all drawable characters */
- XRectangle max_logical_extent; /* over all drawable characters */
+ XRectangle max_ink_extent; /\(** over all drawable characters */
+ XRectangle max_logical_extent; /\(** over all drawable characters */
} XFontSetExtents;
.De
.LP
diff --git a/man/XFontsOfFontSet.man b/man/XFontsOfFontSet.man
index 3ed12222..360c52c1 100644
--- a/man/XFontsOfFontSet.man
+++ b/man/XFontsOfFontSet.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XFofFSet.man,v 1.2 2001/01/27 18:19:59 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,37 +140,23 @@
.el .sp 10p
..
.ny0
-.TH XFontsOfFontSet 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XFontsOfFontSet 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XFontsOfFontSet, XBaseFontNameListOfFontSet, XLocaleOfFontSet, XContextDependentDrawing, XContextualDrawing, XDirectionalDependentDrawing \- obtain fontset information
.SH SYNTAX
-int XFontsOfFontSet\^(\^\fIfont_set\fP\^, \fIfont_struct_list_return\fP\^, \fIfont_name_list_return\fP\^)
-.br
- XFontSet \fIfont_set\fP\^;
-.br
- XFontStruct ***\fIfont_struct_list_return\fP\^;
-.br
- char ***\fIfont_name_list_return\fP\^;
-.LP
-char *XBaseFontNameListOfFontSet\^(\^\fIfont_set\fP\^)
-.br
- XFontSet \fIfont_set\fP\^;
-.LP
-char *XLocaleOfFontSet\^(\^\fIfont_set\fP\^)
-.br
- XFontSet \fIfont_set\fP\^;
-.LP
-Bool XContextDependentDrawing\^(\^\fIfont_set\fP\^)
-.br
- XFontSet \fIfont_set\fP\^;
-.LP
-Bool XContextualDrawing\^(\^\fIfont_set\fP\^)
-.br
- XFontSet \fIfont_set\fP\^;
-.LP
-Bool XDirectionalDependentDrawing\^(\^\fIfont_set\fP\^)
-.br
- XFontSet \fIfont_set\fP\^;
+.HP
+int XFontsOfFontSet\^(\^XFontSet \fIfont_set\fP\^, XFontStruct
+***\fIfont_struct_list_return\fP\^, char ***\fIfont_name_list_return\fP\^);
+.HP
+char *XBaseFontNameListOfFontSet\^(\^XFontSet \fIfont_set\fP\^);
+.HP
+char *XLocaleOfFontSet\^(\^XFontSet \fIfont_set\fP\^);
+.HP
+Bool XContextDependentDrawing\^(\^XFontSet \fIfont_set\fP\^);
+.HP
+Bool XContextualDrawing\^(\^XFontSet \fIfont_set\fP\^);
+.HP
+Bool XDirectionalDependentDrawing\^(\^XFontSet \fIfont_set\fP\^);
.SH ARGUMENTS
.IP \fIfont_set\fP 1i
Specifies the font set.
diff --git a/man/XFree.man b/man/XFree.man
index 9e76a995..34c8c8b3 100644
--- a/man/XFree.man
+++ b/man/XFree.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XFree.man,v 1.2 2001/01/27 18:19:59 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,16 +140,14 @@
.el .sp 10p
..
.ny0
-.TH XFree 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XFree 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XFree \- free client data
.SH SYNTAX
-XFree\^(\^\fIdata\fP\^)
-.br
- void *\fIdata\fP\^;
+int XFree\^(\^void *\fIdata\fP\^);
.SH ARGUMENTS
.IP \fIdata\fP 1i
-Specifies the data that is to be freed.
+Specifies the data that are to be freed.
.SH DESCRIPTION
The
.ZN XFree
diff --git a/man/XGetVisualInfo.man b/man/XGetVisualInfo.man
index f92825a7..5df1f8f1 100644
--- a/man/XGetVisualInfo.man
+++ b/man/XGetVisualInfo.man
@@ -41,6 +41,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XGetVInfo.man,v 1.4 2003/04/28 22:17:55 herrb Exp $
+.\" $XdotOrg: lib/X11/man/XGetVisualInfo.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -140,35 +143,19 @@
..
.ny0
'\" t
-.TH XGetVisualInfo 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XGetVisualInfo 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XGetVisualInfo, XMatchVisualInfo, XVisualIDFromVisual, XVisualInfo \- obtain visual information and visual structure
.SH SYNTAX
-XVisualInfo *XGetVisualInfo\^(\^\fIdisplay\fP, \fIvinfo_mask\fP, \fIvinfo_template\fP, \fInitems_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- long \fIvinfo_mask\fP\^;
-.br
- XVisualInfo *\fIvinfo_template\fP\^;
-.br
- int *\fInitems_return\fP\^;
-.LP
-Status XMatchVisualInfo\^(\^\fIdisplay\fP, \fIscreen\fP, \fIdepth\fP, \fIclass\fP, \fIvinfo_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIscreen\fP\^;
-.br
- int \fIdepth\fP\^;
-.br
- int \fIclass\fP\^;
-.br
- XVisualInfo *\fIvinfo_return\fP\^;
-.LP
-VisualID XVisualIDFromVisual\^(\^\fIvisual\fP\^)
-.br
- Visual *\^\fIvisual\fP\^;
+.HP
+XVisualInfo *XGetVisualInfo\^(\^Display *\fIdisplay\fP\^, long
+\fIvinfo_mask\fP\^, XVisualInfo *\fIvinfo_template\fP\^, int
+*\fInitems_return\fP\^);
+.HP
+Status XMatchVisualInfo\^(\^Display *\fIdisplay\fP\^, int \fIscreen\fP\^, int
+\fIdepth\fP\^, int \fIclass\fP\^, XVisualInfo *\fIvinfo_return\fP\^);
+.HP
+VisualID XVisualIDFromVisual\^(\^Visual *\^\fIvisual\fP\^);
.SH ARGUMENTS
.IP \fIclass\fP 1i
Specifies the class of the screen.
@@ -222,81 +209,81 @@ The
structure contains:
.LP
.LP
-/* Visual information mask bits */
+/\(** Visual information mask bits */
.TS
lw(.5i) lw(2.5i) lw(.8i).
T{
-#define
+\&#define
T} T{
.ZN VisualNoMask
T} T{
0x0
T}
T{
-#define
+\&#define
T} T{
.ZN VisualIDMask
T} T{
0x1
T}
T{
-#define
+\&#define
T} T{
.ZN VisualScreenMask
T} T{
0x2
T}
T{
-#define
+\&#define
T} T{
.ZN VisualDepthMask
T} T{
0x4
T}
T{
-#define
+\&#define
T} T{
.ZN VisualClassMask
T} T{
0x8
T}
T{
-#define
+\&#define
T} T{
.ZN VisualRedMaskMask
T} T{
0x10
T}
T{
-#define
+\&#define
T} T{
.ZN VisualGreenMaskMask
T} T{
0x20
T}
T{
-#define
+\&#define
T} T{
.ZN VisualBlueMaskMask
T} T{
0x40
T}
T{
-#define
+\&#define
T} T{
.ZN VisualColormapSizeMask
T} T{
0x80
T}
T{
-#define
+\&#define
T} T{
.ZN VisualBitsPerRGBMask
T} T{
0x100
T}
T{
-#define
+\&#define
T} T{
.ZN VisualAllMask
T} T{
@@ -307,7 +294,7 @@ T}
.Ds 0
.TA .5i 3i
.ta .5i 3i
-/* Values */
+/\(** Values */
typedef struct {
Visual *visual;
diff --git a/man/XGetWindowAttributes.man b/man/XGetWindowAttributes.man
index 10d34caf..a2c5eaf0 100644
--- a/man/XGetWindowAttributes.man
+++ b/man/XGetWindowAttributes.man
@@ -41,6 +41,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XGetWAttr.man,v 1.3 2003/04/28 22:17:55 herrb Exp $
+.\" $XdotOrg: lib/X11/man/XGetWindowAttributes.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -140,35 +143,18 @@
..
.ny0
'\" t
-.TH XGetWindowAttributes 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XGetWindowAttributes 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XGetWindowAttributes, XGetGeometry, XWindowAttributes \- get current window attribute or geometry and current window attributes structure
.SH SYNTAX
-Status XGetWindowAttributes\^(\^\fIdisplay\fP, \fIw\fP\^, \fIwindow_attributes_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- XWindowAttributes *\fIwindow_attributes_return\fP\^;
-.LP
-Status XGetGeometry\^(\^\fIdisplay\fP, \fId\fP\^, \^\fIroot_return\fP\^, \fIx_return\fP\^, \fIy_return\fP\^, \fIwidth_return\fP\^,
-.br
- \fIheight_return\fP\^, \fIborder_width_return\fP\^, \fIdepth_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- Window *\fIroot_return\fP\^;
-.br
- int *\fIx_return\fP\^, *\fIy_return\fP\^;
-.br
- unsigned int *\fIwidth_return\fP\^, *\fIheight_return\fP\^;
-.br
- unsigned int *\fIborder_width_return\fP\^;
-.br
- unsigned int *\fIdepth_return\fP\^;
+.HP
+Status XGetWindowAttributes\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^,
+XWindowAttributes *\fIwindow_attributes_return\fP\^);
+.HP
+Status XGetGeometry\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, Window
+*\fIroot_return\fP\^, int *\fIx_return\fP\^, int *\fIy_return\fP\^, unsigned
+int *\fIwidth_return\fP\^, unsigned int *\fIheight_return\fP\^, unsigned int
+*\fIborder_width_return\fP\^, unsigned int *\fIdepth_return\fP\^);
.SH ARGUMENTS
.IP \fIborder_width_return\fP 1i
Returns the border width in pixels.
@@ -233,27 +219,27 @@ structure contains:
.TA .5i 3i
.ta .5i 3i
typedef struct {
- int x, y; /* location of window */
- int width, height; /* width and height of window */
- int border_width; /* border width of window */
- int depth; /* depth of window */
- Visual *visual; /* the associated visual structure */
- Window root; /* root of screen containing window */
- int class; /* InputOutput, InputOnly*/
- int bit_gravity; /* one of the bit gravity values */
- int win_gravity; /* one of the window gravity values */
- int backing_store; /* NotUseful, WhenMapped, Always */
- unsigned long backing_planes; /* planes to be preserved if possible */
- unsigned long backing_pixel; /* value to be used when restoring planes */
- Bool save_under; /* boolean, should bits under be saved? */
- Colormap colormap; /* color map to be associated with window */
- Bool map_installed; /* boolean, is color map currently installed*/
- int map_state; /* IsUnmapped, IsUnviewable, IsViewable */
- long all_event_masks; /* set of events all people have interest in*/
- long your_event_mask; /* my event mask */
- long do_not_propagate_mask; /* set of events that should not propagate */
- Bool override_redirect; /* boolean value for override-redirect */
- Screen *screen; /* back pointer to correct screen */
+ int x, y; /\(** location of window */
+ int width, height; /\(** width and height of window */
+ int border_width; /\(** border width of window */
+ int depth; /\(** depth of window */
+ Visual *visual; /\(** the associated visual structure */
+ Window root; /\(** root of screen containing window */
+ int class; /\(** InputOutput, InputOnly*/
+ int bit_gravity; /\(** one of the bit gravity values */
+ int win_gravity; /\(** one of the window gravity values */
+ int backing_store; /\(** NotUseful, WhenMapped, Always */
+ unsigned long backing_planes; /\(** planes to be preserved if possible */
+ unsigned long backing_pixel; /\(** value to be used when restoring planes */
+ Bool save_under; /\(** boolean, should bits under be saved? */
+ Colormap colormap; /\(** color map to be associated with window */
+ Bool map_installed; /\(** boolean, is color map currently installed*/
+ int map_state; /\(** IsUnmapped, IsUnviewable, IsViewable */
+ long all_event_masks; /\(** set of events all people have interest in*/
+ long your_event_mask; /\(** my event mask */
+ long do_not_propagate_mask; /\(** set of events that should not propagate */
+ Bool override_redirect; /\(** boolean value for override-redirect */
+ Screen *screen; /\(** back pointer to correct screen */
} XWindowAttributes;
.De
.LP
diff --git a/man/XGetWindowProperty.man b/man/XGetWindowProperty.man
index 1926216e..8ef0841b 100644
--- a/man/XGetWindowProperty.man
+++ b/man/XGetWindowProperty.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XGetWProp.man,v 1.2 2001/01/27 18:19:59 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,81 +140,28 @@
.el .sp 10p
..
.ny0
-.TH XGetWindowProperty 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XGetWindowProperty 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XGetWindowProperty, XListProperties, XChangeProperty, XRotateWindowProperties, XDeleteProperty \- obtain and change window properties
.SH SYNTAX
-int XGetWindowProperty\^(\^\fIdisplay\fP, \fIw\fP\^, \fIproperty\fP\^, \fIlong_offset\fP\^, \fIlong_length\fP\^, \fIdelete\fP\^, \fIreq_type\fP\^,
-.br
- \fIactual_type_return\fP\^, \fIactual_format_return\fP\^, \fInitems_return\fP\^, \fIbytes_after_return\fP\^,
-.br
- \fIprop_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- Atom \fIproperty\fP\^;
-.br
- long \fIlong_offset\fP\^, \fIlong_length\fP\^;
-.br
- Bool \fIdelete\fP\^;
-.br
- Atom \fIreq_type\fP\^;
-.br
- Atom *\fIactual_type_return\fP\^;
-.br
- int *\fIactual_format_return\fP\^;
-.br
- unsigned long *\fInitems_return\fP\^;
-.br
- unsigned long *\fIbytes_after_return\fP\^;
-.br
- unsigned char **\fIprop_return\fP\^;
-.LP
-Atom *XListProperties\^(\^\fIdisplay\fP, \fIw\fP\^, \fInum_prop_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- int *\fInum_prop_return\fP\^;
-.LP
-XChangeProperty\^(\^\fIdisplay\fP, \fIw\fP\^, \fIproperty\fP\^, \fItype\fP\^, \fIformat\fP\^, \fImode\fP\^, \fIdata\fP\^, \fInelements\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- Atom \fIproperty\fP\^, \fItype\fP\^;
-.br
- int \fIformat\fP\^;
-.br
- int \fImode\fP\^;
-.br
- unsigned char *\fIdata\fP\^;
-.br
- int \fInelements\fP\^;
-.LP
-XRotateWindowProperties\^(\^\fIdisplay\fP, \fIw\fP, \fIproperties\fP, \fInum_prop\fP, \fInpositions\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- Atom \fIproperties\fP\^[]\^;
-.br
- int \fInum_prop\fP\^;
-.br
- int \fInpositions\fP\^;
-.LP
-XDeleteProperty\^(\^\fIdisplay\fP, \fIw\fP\^, \fIproperty\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- Atom \fIproperty\fP\^;
+.HP
+int XGetWindowProperty\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, Atom
+\fIproperty\fP\^, long \fIlong_offset\fP\^, long \fIlong_length\fP\^, Bool
+\fIdelete\fP\^, Atom \fIreq_type\fP\^, Atom *\fIactual_type_return\fP\^, int
+*\fIactual_format_return\fP\^, unsigned long *\fInitems_return\fP\^, unsigned
+long *\fIbytes_after_return\fP\^, unsigned char **\fIprop_return\fP\^);
+.HP
+Atom *XListProperties\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, int
+*\fInum_prop_return\fP\^);
+int XChangeProperty\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, Atom
+\fIproperty\fP\^, Atom \fItype\fP\^, int \fIformat\fP\^, int \fImode\fP\^,
+unsigned char *\fIdata\fP\^, int \fInelements\fP\^);
+.HP
+int XRotateWindowProperties\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^,
+Atom \fIproperties\fP\^[]\^, int \fInum_prop\fP\^, int \fInpositions\fP\^);
+.HP
+int XDeleteProperty\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, Atom
+\fIproperty\fP\^);
.SH ARGUMENTS
.IP \fIactual_format_return\fP 1i
Returns the actual format of the property.
diff --git a/man/XGrabButton.man b/man/XGrabButton.man
index ce1cb120..4fe4649c 100644
--- a/man/XGrabButton.man
+++ b/man/XGrabButton.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XGrButton.man,v 1.2 2001/01/27 18:19:59 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,41 +140,19 @@
.el .sp 10p
..
.ny0
-.TH XGrabButton 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XGrabButton 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XGrabButton, XUngrabButton \- grab pointer buttons
.SH SYNTAX
-XGrabButton\^(\^\fIdisplay\fP, \fIbutton\fP\^, \fImodifiers\fP\^, \fIgrab_window\fP\^, \fIowner_events\fP\^, \fIevent_mask\fP\^,
-.br
- \fIpointer_mode\fP\^, \fIkeyboard_mode\fP\^, \fIconfine_to\fP\^, \fIcursor\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- unsigned int \fIbutton\fP\^;
-.br
- unsigned int \fImodifiers\fP\^;
-.br
- Window \fIgrab_window\fP\^;
-.br
- Bool \fIowner_events\fP\^;
-.br
- unsigned int \fIevent_mask\fP\^;
-.br
- int \fIpointer_mode\fP\^, \fIkeyboard_mode\fP\^;
-.br
- Window \fIconfine_to\fP\^;
-.br
- Cursor \fIcursor\fP\^;
-.LP
-XUngrabButton\^(\^\fIdisplay\fP, \fIbutton\fP\^, \fImodifiers\fP\^, \fIgrab_window\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- unsigned int \fIbutton\fP\^;
-.br
- unsigned int \fImodifiers\fP\^;
-.br
- Window \fIgrab_window\fP\^;
+.HP
+int XGrabButton\^(\^Display *\fIdisplay\fP\^, unsigned int \fIbutton\fP\^,
+unsigned int \fImodifiers\fP\^, Window \fIgrab_window\fP\^, Bool
+\fIowner_events\fP\^, unsigned int \fIevent_mask\fP\^, int
+\fIpointer_mode\fP\^, \fIkeyboard_mode\fP\^, Window \fIconfine_to\fP\^, Cursor
+\fIcursor\fP\^);
+.HP
+int XUngrabButton\^(\^Display *\fIdisplay\fP\^, unsigned int \fIbutton\fP\^,
+unsigned int \fImodifiers\fP\^, Window \fIgrab_window\fP\^);
.SH ARGUMENTS
.ds Bu grabbed or released
.IP \fIbutton\fP 1i
diff --git a/man/XGrabKey.man b/man/XGrabKey.man
index f9b3f6a5..fef62f4a 100644
--- a/man/XGrabKey.man
+++ b/man/XGrabKey.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XGrKey.man,v 1.2 2001/01/27 18:19:59 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,35 +140,17 @@
.el .sp 10p
..
.ny0
-.TH XGrabKey 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XGrabKey 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XGrabKey, XUngrabKey \- grab keyboard keys
.SH SYNTAX
-XGrabKey\^(\^\fIdisplay\fP, \fIkeycode\fP\^, \fImodifiers\fP\^, \fIgrab_window\fP\^, \fIowner_events\fP\^, \fIpointer_mode\fP\^,
-.br
- \fIkeyboard_mode\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIkeycode\fP\^;
-.br
- unsigned int \fImodifiers\fP\^;
-.br
- Window \fIgrab_window\fP\^;
-.br
- Bool \fIowner_events\fP\^;
-.br
- int \fIpointer_mode\fP\^, \fIkeyboard_mode\fP\^;
-.LP
-XUngrabKey\^(\^\fIdisplay\fP, \fIkeycode\fP\^, \fImodifiers\fP\^, \fIgrab_window\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIkeycode\fP\^;
-.br
- unsigned int \fImodifiers\fP\^;
-.br
- Window \fIgrab_window\fP\^;
+.HP
+int XGrabKey\^(\^Display *\fIdisplay\fP\^, int \fIkeycode\fP\^, unsigned int
+\fImodifiers\fP\^, Window \fIgrab_window\fP\^, Bool \fIowner_events\fP\^, int
+\fIpointer_mode\fP\^, int \fIkeyboard_mode\fP\^);
+.HP
+int XUngrabKey\^(\^Display *\fIdisplay\fP\^, int \fIkeycode\fP\^, unsigned int
+\fImodifiers\fP\^, Window \fIgrab_window\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XGrabKeyboard.man b/man/XGrabKeyboard.man
index c7694e92..340e11e0 100644
--- a/man/XGrabKeyboard.man
+++ b/man/XGrabKeyboard.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XGrKeybrd.man,v 1.2 2001/01/27 18:20:00 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,27 +140,16 @@
.el .sp 10p
..
.ny0
-.TH XGrabKeyboard 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XGrabKeyboard 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XGrabKeyboard, XUngrabKeyboard \- grab the keyboard
.SH SYNTAX
-int XGrabKeyboard\^(\^\fIdisplay\fP, \fIgrab_window\fP\^, \fIowner_events\fP\^, \fIpointer_mode\fP\^, \fIkeyboard_mode\fP\^, \fItime\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIgrab_window\fP\^;
-.br
- Bool \fIowner_events\fP\^;
-.br
- int \fIpointer_mode\fP\^, \fIkeyboard_mode\fP\^;
-.br
- Time \fItime\fP\^;
-.LP
-XUngrabKeyboard\^(\^\fIdisplay\fP, \fItime\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Time \fItime\fP\^;
+.HP
+int XGrabKeyboard\^(\^Display *\fIdisplay\fP\^, Window \fIgrab_window\fP\^,
+Bool \fIowner_events\fP\^, int \fIpointer_mode\fP\^, int
+\fIkeyboard_mode\fP\^, Time \fItime\fP\^);
+.HP
+int XUngrabKeyboard\^(\^Display *\fIdisplay\fP\^, Time \fItime\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XGrabPointer.man b/man/XGrabPointer.man
index 4a6e58dd..c4756a1f 100644
--- a/man/XGrabPointer.man
+++ b/man/XGrabPointer.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XGrPntr.man,v 1.2 2001/01/27 18:20:00 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,44 +140,20 @@
.el .sp 10p
..
.ny0
-.TH XGrabPointer 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XGrabPointer 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XGrabPointer, XUngrabPointer, XChangeActivePointerGrab \- grab the pointer
.SH SYNTAX
-int XGrabPointer\^(\^\fIdisplay\fP, \fIgrab_window\fP\^, \fIowner_events\fP\^, \fIevent_mask\fP\^, \fIpointer_mode\fP\^,
- \fIkeyboard_mode\fP\^, \fIconfine_to\fP\^, \fIcursor\fP\^, \fItime\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIgrab_window\fP\^;
-.br
- Bool \fIowner_events\fP\^;
-.br
- unsigned int \fIevent_mask\fP\^;
-.br
- int \fIpointer_mode\fP\^, \fIkeyboard_mode\fP\^;
-.br
- Window \fIconfine_to\fP\^;
-.br
- Cursor \fIcursor\fP\^;
-.br
- Time \fItime\fP\^;
-.LP
-XUngrabPointer\^(\^\fIdisplay\fP, \fItime\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Time \fItime\fP\^;
-.LP
-XChangeActivePointerGrab\^(\^\fIdisplay\fP, \fIevent_mask\fP\^, \fIcursor\fP\^, \fItime\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- unsigned int \fIevent_mask\fP\^;
-.br
- Cursor \fIcursor\fP\^;
-.br
- Time \fItime\fP\^;
+.HP
+int XGrabPointer\^(\^Display *\fIdisplay\fP\^, Window \fIgrab_window\fP\^,
+Bool \fIowner_events\fP\^, unsigned int \fIevent_mask\fP\^, int
+\fIpointer_mode\fP\^, int \fIkeyboard_mode\fP\^, Window \fIconfine_to\fP\^,
+Cursor \fIcursor\fP\^, Time \fItime\fP\^);
+.HP
+int XUngrabPointer\^(\^Display *\fIdisplay\fP\^, Time \fItime\fP\^);
+.HP
+int XChangeActivePointerGrab\^(\^Display *\fIdisplay\fP\^, unsigned int
+\fIevent_mask\fP\^, Cursor \fIcursor\fP\^, Time \fItime\fP\^);
.SH ARGUMENTS
.IP \fIconfine_to\fP 1i
Specifies the window to confine the pointer in or
diff --git a/man/XGrabServer.man b/man/XGrabServer.man
index b75b4c7a..7f318bdc 100644
--- a/man/XGrabServer.man
+++ b/man/XGrabServer.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XGrServer.man,v 1.2 2001/01/27 18:20:00 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,17 +140,14 @@
.el .sp 10p
..
.ny0
-.TH XGrabServer 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XGrabServer 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XGrabServer, XUngrabServer \- grab the server
.SH SYNTAX
-XGrabServer\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.LP
-XUngrabServer\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
+.HP
+int XGrabServer\^(\^Display *\fIdisplay\fP\^);
+.HP
+int XUngrabServer\^(\^Display *\fIdisplay\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XGraphicsExposeEvent.man b/man/XGraphicsExposeEvent.man
index f5399303..7e481c9f 100644
--- a/man/XGraphicsExposeEvent.man
+++ b/man/XGraphicsExposeEvent.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XGEEvent.man,v 1.2 2001/01/27 18:19:59 dawes Exp $
+.\" $XdotOrg: lib/X11/man/XGraphicsExposeEvent.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,7 +141,7 @@
.el .sp 10p
..
.ny0
-.TH XGraphicsExposeEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XGraphicsExposeEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XGraphicsExposeEvent, XNoExposeEvent \- GraphicsExpose and NoExpose event structures
.SH STRUCTURES
@@ -152,16 +155,16 @@ events contain:
.TA .5i 3i
.ta .5i 3i
typedef struct {
- int type; /* GraphicsExpose */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
+ int type; /\(** GraphicsExpose */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came from a SendEvent request */
+ Display *display; /\(** Display the event was read from */
Drawable drawable;
int x, y;
int width, height;
- int count; /* if nonzero, at least this many more */
- int major_code; /* core is CopyArea or CopyPlane */
- int minor_code; /* not defined in the core */
+ int count; /\(** if nonzero, at least this many more */
+ int major_code; /\(** core is CopyArea or CopyPlane */
+ int minor_code; /\(** not defined in the core */
} XGraphicsExposeEvent;
.De
.LP
@@ -169,13 +172,13 @@ typedef struct {
.TA .5i 3i
.ta .5i 3i
typedef struct {
- int type; /* NoExpose */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
+ int type; /\(** NoExpose */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came from a SendEvent request */
+ Display *display; /\(** Display the event was read from */
Drawable drawable;
- int major_code; /* core is CopyArea or CopyPlane */
- int minor_code; /* not defined in the core */
+ int major_code; /\(** core is CopyArea or CopyPlane */
+ int minor_code; /\(** not defined in the core */
} XNoExposeEvent;
.De
.LP
diff --git a/man/XGravityEvent.man b/man/XGravityEvent.man
index b4d4f56b..fd825df4 100644
--- a/man/XGravityEvent.man
+++ b/man/XGravityEvent.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XGEvent.man,v 1.2 2001/01/27 18:19:59 dawes Exp $
+.\" $XdotOrg: lib/X11/man/XGravityEvent.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,7 +141,7 @@
.el .sp 10p
..
.ny0
-.TH XGravityEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XGravityEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XGravityEvent \- GravityNotify event structure
.SH STRUCTURES
@@ -150,10 +153,10 @@ events contains:
.TA .5i 3i
.ta .5i 3i
typedef struct {
- int type; /* GravityNotify */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
+ int type; /\(** GravityNotify */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came from a SendEvent request */
+ Display *display; /\(** Display the event was read from */
Window event;
Window window;
int x, y;
diff --git a/man/XIconifyWindow.man b/man/XIconifyWindow.man
index fff3572b..a863c139 100644
--- a/man/XIconifyWindow.man
+++ b/man/XIconifyWindow.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XIcWin.man,v 1.3 2001/02/09 03:47:45 tsi Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,38 +140,20 @@
.el .sp 10p
..
.ny0
-.TH XIconifyWindow 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XIconifyWindow 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XIconifyWindow, XWithdrawWindow, XReconfigureWMWindow \- manipulate top-level windows
.SH SYNTAX
-Status XIconifyWindow\^(\^\fIdisplay\fP, \fIw\fP, \fIscreen_number\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP;
-.br
- int \fIscreen_number\fP\^;
-.LP
-Status XWithdrawWindow\^(\^\fIdisplay\fP, \fIw\fP, \fIscreen_number\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- int \fIscreen_number\fP\^;
-.LP
-Status XReconfigureWMWindow\^(\^\fIdisplay\fP, \fIw\fP, \fIscreen_number\fP, \
-\fIvalue_mask\fP, \fIvalues\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- int \fIscreen_number\fP\^;
-.br
- unsigned int \fIvalue_mask\fP\^;
-.br
- XWindowChanges *\fIvalues\fP;
+.HP
+Status XIconifyWindow\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP, int
+\fIscreen_number\fP\^);
+.HP
+Status XWithdrawWindow\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, int
+\fIscreen_number\fP\^);
+.HP
+Status XReconfigureWMWindow\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^,
+int \fIscreen_number\fP\^, unsigned int \fIvalue_mask\fP\^, XWindowChanges
+*\fIvalues\fP);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XIfEvent.man b/man/XIfEvent.man
index a55399e4..90dad9ec 100644
--- a/man/XIfEvent.man
+++ b/man/XIfEvent.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XIfEvent.man,v 1.3 2003/04/28 22:17:55 herrb Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,39 +140,19 @@
.el .sp 10p
..
.ny0
-.TH XIfEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XIfEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XIfEvent, XCheckIfEvent, XPeekIfEvent \- check the event queue with a predicate procedure
.SH SYNTAX
-XIfEvent\^(\^\fIdisplay\fP, \fIevent_return\fP, \fIpredicate\fP, \fIarg\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XEvent *\fIevent_return\fP\^;
-.br
- Bool (\^*\fIpredicate\fP\^)\^(\^)\^;
-.br
- XPointer \fIarg\fP\^;
-.LP
-Bool XCheckIfEvent\^(\^\fIdisplay\fP, \fIevent_return\fP, \fIpredicate\fP, \fIarg\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XEvent *\fIevent_return\fP\^;
-.br
- Bool (\^*\fIpredicate\fP\^)\^(\^)\^;
-.br
- XPointer \fIarg\fP\^;
-.LP
-XPeekIfEvent\^(\^\fIdisplay\fP, \fIevent_return\fP, \fIpredicate\fP, \fIarg\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XEvent *\fIevent_return\fP\^;
-.br
- Bool (\^*\fIpredicate\fP\^)\^(\^)\^;
-.br
- XPointer \fIarg\fP\^;
+.HP
+int XIfEvent\^(\^Display *\fIdisplay\fP\^, XEvent *\fIevent_return\fP\^, Bool
+(\^*\fIpredicate\fP\^)\^(\^)\^, XPointer \fIarg\fP\^);
+.HP
+Bool XCheckIfEvent\^(\^Display *\fIdisplay\fP\^, XEvent *\fIevent_return\fP\^,
+Bool (\^*\fIpredicate\fP\^)\^(\^)\^, XPointer \fIarg\fP\^);
+.HP
+int XPeekIfEvent\^(\^Display *\fIdisplay\fP\^, XEvent *\fIevent_return\fP\^,
+Bool (\^*\fIpredicate\fP\^)\^(\^)\^, XPointer \fIarg\fP\^);
.SH ARGUMENTS
.IP \fIarg\fP 1i
Specifies the user-supplied argument that will be passed to the predicate procedure.
@@ -225,6 +207,44 @@ copies the matched event into the client-supplied
structure without removing the event from the queue.
.ZN XPeekIfEvent
flushes the output buffer if it blocks waiting for additional events.
+.LP
+Each of these functions requires you to pass a predicate procedure that
+determines if an event matches what you want.
+Your predicate procedure must decide if the event is useful
+without calling any Xlib functions.
+If the predicate directly or indirectly causes the state of the event queue
+to change, the result is not defined.
+If Xlib has been initialized for threads, the predicate is called with
+the display locked and the result of a call by the predicate to any
+Xlib function that locks the display is not defined unless the caller
+has first called
+.ZN XLockDisplay .
+.LP
+The predicate procedure and its associated arguments are:
+.sM
+.HP
+Bool (\^*\fIpredicate\fP\^)\^(\^Display *\fIdisplay\fP, XEvent *\fIevent\fP, XPointer \fIarg\fP\^)
+.IP \fIdisplay\fP 1i
+Specifies the connection to the X server.
+.IP \fIevent\fP 1i
+Specifies the
+.ZN XEvent
+structure.
+.IP \fIarg\fP 1i
+Specifies the argument passed in from the
+.ZN XIfEvent ,
+.ZN XCheckIfEvent ,
+or
+.ZN XPeekIfEvent
+function.
+.LP
+.eM
+The predicate procedure is called once for each
+event in the queue until it finds a match.
+After finding a match, the predicate procedure must return
+.ZN True .
+If it did not find a match, it must return
+.ZN False .
.SH "SEE ALSO"
XAnyEvent(3X11),
XNextEvent(3X11),
diff --git a/man/XInitImage.man b/man/XInitImage.man
index 0f15b6ef..3de1b412 100644
--- a/man/XInitImage.man
+++ b/man/XInitImage.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XCreImage.man,v 1.2 2001/01/27 18:19:57 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,77 +140,30 @@
.el .sp 10p
..
.ny0
-.TH XCreateImage 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XCreateImage 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XInitImage, XCreateImage, XGetPixel, XPutPixel, XSubImage, XAddPixel, XDestroyImage \- image utilities
.SH SYNTAX
-Status XInitImage\^(\^\fIimage\fP\^)
-.br
- XImage *\fIimage\fP\^;
-.LP
-XImage *XCreateImage\^(\^\fIdisplay\fP, \fIvisual\fP, \fIdepth\fP, \fIformat\fP, \fIoffset\fP, \fIdata\fP, \fIwidth\fP, \fIheight\fP\^, \fIbitmap_pad\fP,
-.br
- \fIbytes_per_line\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Visual *\fIvisual\fP\^;
-.br
- unsigned int \fIdepth\fP\^;
-.br
- int \fIformat\fP\^;
-.br
- int \fIoffset\fP\^;
-.br
- char *\fIdata\fP\^;
-.br
- unsigned int \fIwidth\fP\^;
-.br
- unsigned int \fIheight\fP\^;
-.br
- int \fIbitmap_pad\fP\^;
-.br
- int \fIbytes_per_line\fP\^;
-.LP
-unsigned long XGetPixel\^(\^\fIximage\fP, \fIx\fP, \fIy\fP\^)
-.br
- XImage *\fIximage\fP\^;
-.br
- int \fIx\fP\^;
-.br
- int \fIy\fP\^;
-.LP
-XPutPixel\^(\^\fIximage\fP, \fIx\fP, \fIy\fP, \fIpixel\fP\^)
-.br
- XImage *\fIximage\fP\^;
-.br
- int \fIx\fP\^;
-.br
- int \fIy\fP\^;
-.br
- unsigned long \fIpixel\fP\^;
-.LP
-XImage *XSubImage\^(\^\fIximage\fP, \fIx\fP, \fIy\fP, \fIsubimage_width\fP, \fIsubimage_height\fP\^)
-.br
- XImage *\fIximage\fP\^;
-.br
- int \fIx\fP\^;
-.br
- int \fIy\fP\^;
-.br
- unsigned int \fIsubimage_width\fP\^;
-.br
- unsigned int \fIsubimage_height\fP\^;
-.LP
-XAddPixel\^(\^\fIximage\fP, \fIvalue\fP\^)
-.br
- XImage *\fIximage\fP\^;
-.br
- long \fIvalue\fP\^;
-.LP
-XDestroyImage\^(\^\fIximage\fP\^)
-.br
- XImage *\^\fIximage\fP\^;
+.HP
+Status XInitImage\^(\^XImage *\fIimage\fP\^);
+.HP
+XImage *XCreateImage\^(\^Display *\fIdisplay\fP\^, Visual *\fIvisual\fP\^,
+unsigned int \fIdepth\fP\^, int \fIformat\fP\^, int \fIoffset\fP\^, char
+*\fIdata\fP\^, unsigned int \fIwidth\fP\^, unsigned int \fIheight\fP\^, int
+\fIbitmap_pad\fP\^, int \fIbytes_per_line\fP\^);
+.HP
+unsigned long XGetPixel\^(\^XImage *\fIximage\fP\^, int \fIx\fP\^, int
+\fIy\fP\^);
+.HP
+int XPutPixel\^(\^XImage *\fIximage\fP\^, int \fIx\fP\^, int \fIy\fP\^,
+unsigned long \fIpixel\fP\^);
+.HP
+XImage *XSubImage\^(\^XImage *\fIximage\fP\^, int \fIx\fP\^, int \fIy\fP\^,
+unsigned int \fIsubimage_width\fP\^, unsigned int \fIsubimage_height\fP\^);
+.HP
+int XAddPixel\^(\^XImage *\fIximage\fP\^, long \fIvalue\fP\^);
+.HP
+int XDestroyImage\^(\^XImage *\^\fIximage\fP\^);
.SH ARGUMENTS
.IP \fIbitmap_pad\fP 1i
Specifies the quantum of a scanline (8, 16, or 32).
diff --git a/man/XInitThreads.man b/man/XInitThreads.man
index 1812f640..92edbe61 100644
--- a/man/XInitThreads.man
+++ b/man/XInitThreads.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XThreads.man,v 1.2 2001/01/27 18:20:06 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,19 +140,16 @@
.el .sp 10p
..
.ny0
-.TH XInitThreads 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XInitThreads 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XInitThreads, XLockDisplay, XUnlockDisplay \- multi-threading support
.SH SYNTAX
-Status XInitThreads\^(\|);
-.LP
-void XLockDisplay\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.LP
-void XUnlockDisplay\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
+.HP
+Status XInitThreads\^(void);
+.HP
+void XLockDisplay\^(\^Display *\fIdisplay\fP\^);
+.HP
+void XUnlockDisplay\^(\^Display *\fIdisplay\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XInstallColormap.man b/man/XInstallColormap.man
index b6337037..0650ab2e 100644
--- a/man/XInstallColormap.man
+++ b/man/XInstallColormap.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XInstCmap.man,v 1.3 2001/07/23 20:47:17 paulo Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,29 +140,18 @@
.el .sp 10p
..
.ny0
-.TH XInstallColormap 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XInstallColormap 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XInstallColormap, XUninstallColormap, XListInstalledColormaps \- control colormaps
.SH SYNTAX
-XInstallColormap\^(\^\fIdisplay\fP, \fIcolormap\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Colormap \fIcolormap\fP\^;
-.LP
-XUninstallColormap\^(\^\fIdisplay\fP, \fIcolormap\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Colormap \fIcolormap\fP\^;
-.LP
-Colormap *XListInstalledColormaps\^(\^\fIdisplay\fP, \fIw\fP, \fInum_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- int *\fInum_return\fP\^;
+.HP
+int XInstallColormap\^(\^Display *\fIdisplay\fP\^, Colormap \fIcolormap\fP\^);
+.HP
+int XUninstallColormap\^(\^Display *\fIdisplay\fP\^, Colormap
+\fIcolormap\fP\^);
+.HP
+Colormap *XListInstalledColormaps\^(\^Display *\fIdisplay\fP\^, Window
+\fIw\fP\^, int *\fInum_return\fP\^);
.SH ARGUMENTS
.IP \fIcolormap\fP 1i
Specifies the colormap.
@@ -248,7 +239,7 @@ A value for a Colormap argument does not name a defined Colormap.
.ZN BadWindow
A value for a Window argument does not name a defined Window.
.SH "SEE ALSO"
-XChangeWindowAtrributes(3X11),
+XChangeWindowAttributes(3X11),
XCreateColormap(3X11),
XCreateWindow(3X11),
XFree(3X11)
diff --git a/man/XInternAtom.man b/man/XInternAtom.man
index 90036ef3..b0c103e6 100644
--- a/man/XInternAtom.man
+++ b/man/XInternAtom.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XInternA.man,v 1.2 2001/01/27 18:20:01 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,45 +140,21 @@
.el .sp 10p
..
.ny0
-.TH XInternAtom 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XInternAtom 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XInternAtom, XInternAtoms, XGetAtomName, XGetAtomNames \- create or return atom names
.SH SYNTAX
-Atom XInternAtom\^(\^\fIdisplay\fP, \fIatom_name\fP\^, \fIonly_if_exists\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- char *\fIatom_name\fP\^;
-.br
- Bool \fIonly_if_exists\fP\^;
-.LP
-Status XInternAtoms\^(\^\fIdisplay\fP, \fInames\fP\^, \fIcount\fP\^, \fIonly_if_exists\fP, \fIatoms_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- char **\fInames\fP\^;
-.br
- int \fIcount\fP\^;
-.br
- Bool \fIonly_if_exists\fP\^;
-.br
- Atom *\fIatoms_return\fP\^;
-.LP
-char *XGetAtomName\^(\^\fIdisplay\fP, \fIatom\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Atom \fIatom\fP\^;
-.LP
-Status XGetAtomNames\^(\^\fIdisplay\fP, \fIatoms\fP, \fIcount\fP\^, \fInames_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Atom *\fIatoms\fP\^;
-.br
- int \fIcount\fP\^;
-.br
- char **\fInames_return\fP\^;
+.HP
+Atom XInternAtom\^(\^Display *\fIdisplay\fP\^, char *\fIatom_name\fP\^, Bool
+\fIonly_if_exists\fP\^);
+.HP
+Status XInternAtoms\^(\^Display *\fIdisplay\fP\^, char **\fInames\fP\^, int
+\fIcount\fP\^, Bool \fIonly_if_exists\fP\^, Atom *\fIatoms_return\fP\^);
+.HP
+char *XGetAtomName\^(\^Display *\fIdisplay\fP\^, Atom \fIatom\fP\^);
+.HP
+Status XGetAtomNames\^(\^Display *\fIdisplay\fP\^, Atom *\fIatoms\fP\^, int
+\fIcount\fP\^, char **\fInames_return\fP\^);
.SH ARGUMENTS
.IP \fIatom\fP 1i
Specifies the atom for the property name you want returned.
diff --git a/man/XIntersectRegion.man b/man/XIntersectRegion.man
index 42c2d775..09450335 100644
--- a/man/XIntersectRegion.man
+++ b/man/XIntersectRegion.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XInterReg.man,v 1.3 2001/02/09 03:47:45 tsi Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,46 +140,29 @@
.el .sp 10p
..
.ny0
-.TH XIntersectRegion 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XIntersectRegion 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XIntersectRegion, XUnionRegion, XUnionRectWithRegion, XSubtractRegion, XXorRegion, XOffsetRegion, XShrinkRegion \- region arithmetic
.SH SYNTAX
-XIntersectRegion\^(\^\fIsra\fP\^, \fIsrb\fP\^, \fIdr_return\fP\^)
-.br
- Region \fIsra\fP\^, \fIsrb\fP\^, \fIdr_return\fP\^;
-.LP
-XUnionRegion\^(\^\fIsra\fP\^, \fIsrb\fP\^, \fIdr_return\fP\^)
-.br
- Region \fIsra\fP\^, \fIsrb\fP\^, \fIdr_return\fP\^;
-.LP
-XUnionRectWithRegion\^(\^\fIrectangle\fP, \fIsrc_region\fP, \
-\fIdest_region_return\fP\^)
-.br
- XRectangle *\fIrectangle\fP\^;
-.br
- Region \fIsrc_region\fP\^;
-.br
- Region \fIdest_region_return\fP\^;
-.LP
-XSubtractRegion\^(\^\fIsra\fP\^, \fIsrb\fP\^, \fIdr_return\fP\^)
-.br
- Region \fIsra\fP\^, \fIsrb\fP\^, \fIdr_return\fP\^;
-.LP
-XXorRegion\^(\^\fIsra\fP\^, \fIsrb\fP\^, \fIdr_return\fP\^)
-.br
- Region \fIsra\fP\^, \fIsrb\fP\^, \fIdr_return\fP\^;
-.LP
-XOffsetRegion\^(\^\fIr\fP\^, \fIdx\fP\^, \fIdy\fP\^)
-.br
- Region \fIr\fP\^;
-.br
- int \fIdx\fP\^, \fIdy\fP\^;
-.LP
-XShrinkRegion\^(\^\fIr\fP\^, \fIdx\fP\^, \fIdy\fP\^)
-.br
- Region \fIr\fP\^;
-.br
- int \fIdx\fP\^, \fIdy\fP\^;
+.HP
+int XIntersectRegion\^(\^Region \fIsra\fP\^, Region \fIsrb\fP\^, Region
+\fIdr_return\fP\^);
+.HP
+int XUnionRegion\^(\^Region \fIsra\fP\^, Region \fIsrb\fP\^, Region
+\fIdr_return\fP\^);
+.HP
+int XUnionRectWithRegion\^(\^XRectangle *\fIrectangle\fP\^, Region
+\fIsrc_region\fP\^, Region \fIdest_region_return\fP\^);
+.HP
+int XSubtractRegion\^(\^Region \fIsra\fP\^, Region \fIsrb\fP\^, Region
+\fIdr_return\fP\^);
+.HP
+int XXorRegion\^(\^Region \fIsra\fP\^, Region \fIsrb\fP\^, Region
+\fIdr_return\fP\^);
+.HP
+int XOffsetRegion\^(\^Region \fIr\fP\^, int \fIdx\fP\^, int \fIdy\fP\^);
+.HP
+int XShrinkRegion\^(\^Region \fIr\fP\^, int \fIdx\fP\^, int \fIdy\fP\^);
.SH ARGUMENTS
.IP \fIdest_region_return\fP 1i
Returns the destination region.
diff --git a/man/XKeymapEvent.man b/man/XKeymapEvent.man
index 896b5009..2b833ae4 100644
--- a/man/XKeymapEvent.man
+++ b/man/XKeymapEvent.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XKMapEven.man,v 1.2 2001/01/27 18:20:01 dawes Exp $
+.\" $XdotOrg: lib/X11/man/XKeymapEvent.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,7 +141,7 @@
.el .sp 10p
..
.ny0
-.TH XKeymapEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XKeymapEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XKeymapEvent \- KeymapNotify event structure
.SH STRUCTURES
@@ -149,12 +152,12 @@ events contains:
.Ds 0
.TA .5i 3i
.ta .5i 3i
-/* generated on EnterWindow and FocusIn when KeymapState selected */
+/\(** generated on EnterWindow and FocusIn when KeymapState selected */
typedef struct {
- int type; /* KeymapNotify */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
+ int type; /\(** KeymapNotify */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came from a SendEvent request */
+ Display *display; /\(** Display the event was read from */
Window window;
char key_vector[32];
} XKeymapEvent;
diff --git a/man/XListFonts.man b/man/XListFonts.man
index 5e4c3c93..726bced8 100644
--- a/man/XListFonts.man
+++ b/man/XListFonts.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XListFont.man,v 1.2 2001/01/27 18:20:01 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,43 +140,22 @@
.el .sp 10p
..
.ny0
-.TH XListFonts 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XListFonts 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XListFonts, XFreeFontNames, XListFontsWithInfo, XFreeFontInfo \- obtain or free font names and information
.SH SYNTAX
-char **XListFonts\^(\^\fIdisplay\fP, \fIpattern\fP\^, \fImaxnames\fP, \fIactual_count_return\fP\^)
-.br
- Display *\^\fIdisplay\fP\^;
-.br
- char *\^\fIpattern\fP\^;
-.br
- int \fImaxnames\fP\^;
-.br
- int *\^\fIactual_count_return\fP\^;
-.LP
-XFreeFontNames\^(\^\fIlist\fP\^)
-.br
- char *\fIlist\fP\^[\^]\^;
-.LP
-char **XListFontsWithInfo\^(\^\fIdisplay\fP, \fIpattern\fP, \fImaxnames\fP, \fIcount_return\fP, \fIinfo_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- char *\fIpattern\fP\^;
-.br
- int \fImaxnames\fP\^;
-.br
- int *\fIcount_return\fP\^;
-.br
- XFontStruct **\fIinfo_return\fP\^;
-.LP
-XFreeFontInfo(\^\fInames\fP, \fIfree_info\fP, \fIactual_count\fP\^)
-.br
- char **\fInames\fP\^;
-.br
- XFontStruct *\fIfree_info\fP;
-.br
- int \fIactual_count\fP\^;
+.HP
+char **XListFonts\^(\^Display *\^\fIdisplay\fP\^, char *\^\fIpattern\fP\^, int
+\fImaxnames\fP\^, int *\^\fIactual_count_return\fP\^);
+.HP
+int XFreeFontNames\^(\^char *\fIlist\fP\^[\^]\^);
+.HP
+char **XListFontsWithInfo\^(\^Display *\fIdisplay\fP\^, char *\fIpattern\fP\^,
+int \fImaxnames\fP\^, int *\fIcount_return\fP\^, XFontStruct
+**\fIinfo_return\fP\^);
+.HP
+int XFreeFontInfo(\^char **\fInames\fP\^, XFontStruct *\fIfree_info\fP, int
+\fIactual_count\fP\^);
.SH ARGUMENTS
.IP \fIactual_count\fP 1i
Specifies the actual number of font names.
diff --git a/man/XLoadFont.man b/man/XLoadFont.man
index b9f96d3a..cb7a3873 100644
--- a/man/XLoadFont.man
+++ b/man/XLoadFont.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XLoadFont.man,v 1.3 2003/04/28 22:17:55 herrb Exp $
+.\" $XdotOrg: lib/X11/man/XLoadFont.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,47 +141,24 @@
.el .sp 10p
..
.ny0
-.TH XLoadFont 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XLoadFont 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XLoadFont, XQueryFont, XLoadQueryFont, XFreeFont, XGetFontProperty, XUnloadFont, XCharStruct, XFontProp, XChar2b, XFontStruct \- load or unload fonts and font metric structures
.SH SYNTAX
-Font XLoadFont\^(\^\fIdisplay\fP, \fIname\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- char *\fIname\fP\^;
-.LP
-XFontStruct *XQueryFont\^(\^\fIdisplay\fP, \fIfont_ID\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XID \fIfont_ID\fP\^;
-.LP
-XFontStruct *XLoadQueryFont\^(\^\fIdisplay\fP, \fIname\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- char *\fIname\fP\^;
-.LP
-XFreeFont\^(\^\fIdisplay\fP, \fIfont_struct\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XFontStruct *\fIfont_struct\fP\^;
-.LP
-Bool XGetFontProperty\^(\^\fIfont_struct\fP\^, \^\fIatom\fP\^, \^\fIvalue_return\fP\^)
-.br
- XFontStruct *\fIfont_struct\fP\^;
-.br
- Atom \fIatom\fP\^;
-.br
- unsigned long *\fIvalue_return\fP\^;
-.LP
-XUnloadFont\^(\^\fIdisplay\fP, \fIfont\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Font \fIfont\fP\^;
+.HP
+Font XLoadFont\^(\^Display *\fIdisplay\fP\^, char *\fIname\fP\^);
+.HP
+XFontStruct *XQueryFont\^(\^Display *\fIdisplay\fP\^, XID \fIfont_ID\fP\^);
+.HP
+XFontStruct *XLoadQueryFont\^(\^Display *\fIdisplay\fP\^, char
+*\fIname\fP\^);
+.HP
+int XFreeFont\^(\^Display *\fIdisplay\fP\^, XFontStruct *\fIfont_struct\fP\^);
+.HP
+Bool XGetFontProperty\^(\^XFontStruct *\fIfont_struct\fP\^, Atom \fIatom\fP\^,
+unsigned long *\fIvalue_return\fP\^);
+.HP
+int XUnloadFont\^(\^Display *\fIdisplay\fP\^, Font \fIfont\fP\^);
.SH ARGUMENTS
.IP \fIatom\fP 1i
Specifies the atom for the property name you want returned.
@@ -333,12 +313,12 @@ structures contain:
.TA .5i 3i
.ta .5i 3i
typedef struct {
- short lbearing; /* origin to left edge of raster */
- short rbearing; /* origin to right edge of raster */
- short width; /* advance to next char's origin */
- short ascent; /* baseline to top edge of raster */
- short descent; /* baseline to bottom edge of raster */
- unsigned short attributes; /* per char flags (not predefined) */
+ short lbearing; /\(** origin to left edge of raster */
+ short rbearing; /\(** origin to right edge of raster */
+ short width; /\(** advance to next char's origin */
+ short ascent; /\(** baseline to top edge of raster */
+ short descent; /\(** baseline to bottom edge of raster */
+ unsigned short attributes; /\(** per char flags (not predefined) */
} XCharStruct;
.De
.LP
@@ -356,7 +336,7 @@ typedef struct {
.Ds 0
.TA .5i 3i
.ta .5i 3i
-typedef struct { /* normal 16 bit characters are two bytes */
+typedef struct { /\(** normal 16 bit characters are two bytes */
unsigned char byte1;
unsigned char byte2;
} XChar2b;
@@ -367,22 +347,22 @@ typedef struct { /* normal 16 bit characters are two bytes */
.TA .5i 3i
.ta .5i 3i
typedef struct {
- XExtData *ext_data; /* hook for extension to hang data */
- Font fid; /* Font id for this font */
- unsigned direction; /* hint about the direction font is painted */
- unsigned min_char_or_byte2; /* first character */
- unsigned max_char_or_byte2; /* last character */
- unsigned min_byte1; /* first row that exists */
- unsigned max_byte1; /* last row that exists */
- Bool all_chars_exist; /* flag if all characters have nonzero size */
- unsigned default_char; /* char to print for undefined character */
- int n_properties; /* how many properties there are */
- XFontProp *properties; /* pointer to array of additional properties */
- XCharStruct min_bounds; /* minimum bounds over all existing char */
- XCharStruct max_bounds; /* maximum bounds over all existing char */
- XCharStruct *per_char; /* first_char to last_char information */
- int ascent; /* logical extent above baseline for spacing */
- int descent; /* logical decent below baseline for spacing */
+ XExtData *ext_data; /\(** hook for extension to hang data */
+ Font fid; /\(** Font id for this font */
+ unsigned direction; /\(** hint about the direction font is painted */
+ unsigned min_char_or_byte2; /\(** first character */
+ unsigned max_char_or_byte2; /\(** last character */
+ unsigned min_byte1; /\(** first row that exists */
+ unsigned max_byte1; /\(** last row that exists */
+ Bool all_chars_exist; /\(** flag if all characters have nonzero size */
+ unsigned default_char; /\(** char to print for undefined character */
+ int n_properties; /\(** how many properties there are */
+ XFontProp *properties; /\(** pointer to array of additional properties */
+ XCharStruct min_bounds; /\(** minimum bounds over all existing char */
+ XCharStruct max_bounds; /\(** maximum bounds over all existing char */
+ XCharStruct *per_char; /\(** first_char to last_char information */
+ int ascent; /\(** logical extent above baseline for spacing */
+ int descent; /\(** logical decent below baseline for spacing */
} XFontStruct;
.De
.LP
diff --git a/man/XLookupKeysym.man b/man/XLookupKeysym.man
index d07dfcbb..38a5900b 100644
--- a/man/XLookupKeysym.man
+++ b/man/XLookupKeysym.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XLookKsym.man,v 1.4 2003/02/15 17:48:39 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,46 +140,22 @@
.el .sp 10p
..
.ny0
-.TH XLookupKeysym 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XLookupKeysym 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
-XLookupKeysym, XRefreshKeyboardMapping, XLookupString, XRebindKeySym \- handle keyboard input events in Latin-1
+XLookupKeysym, XRefreshKeyboardMapping, XLookupString, XRebindKeysym \- handle keyboard input events in Latin-1
.SH SYNTAX
-KeySym XLookupKeysym(\^\fIkey_event\fP, \fIindex\fP\^)
-.br
- XKeyEvent *\fIkey_event\fP\^;
-.br
- int \fIindex\fP\^;
-.LP
-XRefreshKeyboardMapping(\^\fIevent_map\fP\^)
-.br
- XMappingEvent *\fIevent_map\fP\^;
-.LP
-int XLookupString(\^\fIevent_struct\fP, \fIbuffer_return\fP,\
- \fIbytes_buffer\fP, \fIkeysym_return\fP, \fIstatus_in_out\fP\^)
-.br
- XKeyEvent *\fIevent_struct\fP\^;
-.br
- char *\fIbuffer_return\fP\^;
-.br
- int \fIbytes_buffer\fP\^;
-.br
- KeySym *\fIkeysym_return\fP\^;
-.br
- XComposeStatus *\fIstatus_in_out\fP\^;
-.LP
-XRebindKeysym(\^\fIdisplay\fP, \fIkeysym\fP, \fIlist\fP, \fImod_count\fP, \fIstring\fP, \fInum_bytes\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- KeySym \fIkeysym\fP\^;
-.br
- KeySym \fIlist\fP\^[\^]\^;
-.br
- int \fImod_count\fP\^;
-.br
- unsigned char *\fIstring\fP\^;
-.br
- int \fInum_bytes\fP\^;
+.HP
+KeySym XLookupKeysym(\^XKeyEvent *\fIkey_event\fP\^, int \fIindex\fP\^);
+.HP
+int XRefreshKeyboardMapping(\^XMappingEvent *\fIevent_map\fP\^);
+.HP
+int XLookupString(\^XKeyEvent *\fIevent_struct\fP\^, char
+*\fIbuffer_return\fP\^, int \fIbytes_buffer\fP\^, KeySym
+*\fIkeysym_return\fP\^, XComposeStatus *\fIstatus_in_out\fP\^);
+.HP
+int XRebindKeysym(\^Display *\fIdisplay\fP\^, KeySym \fIkeysym\fP\^, KeySym
+\fIlist\fP\^[\^]\^, int \fImod_count\fP\^, unsigned char *\fIstring\fP\^, int
+\fInum_bytes\fP\^);
.SH ARGUMENTS
.IP \fIbuffer_return\fP 1i
Returns the translated characters.
diff --git a/man/XMapEvent.man b/man/XMapEvent.man
index 79d43cce..097b3107 100644
--- a/man/XMapEvent.man
+++ b/man/XMapEvent.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XMEvent.man,v 1.2 2001/01/27 18:20:01 dawes Exp $
+.\" $XdotOrg: lib/X11/man/XMapEvent.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,7 +141,7 @@
.el .sp 10p
..
.ny0
-.TH XMapEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XMapEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XMapEvent, XMappingEvent \- MapNotify and MappingNotify event structures
.SH STRUCTURES
@@ -150,13 +153,13 @@ events contains:
.TA .5i 3i
.ta .5i 3i
typedef struct {
- int type; /* MapNotify */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
+ int type; /\(** MapNotify */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came from a SendEvent request */
+ Display *display; /\(** Display the event was read from */
Window event;
Window window;
- Bool override_redirect; /* boolean, is override set... */
+ Bool override_redirect; /\(** boolean, is override set... */
} XMapEvent;
.De
.LP
@@ -205,15 +208,15 @@ events is:
.TA .5i 3i
.ta .5i 3i
typedef struct {
- int type; /* MappingNotify */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
- Window window; /* unused */
- int request; /* one of MappingModifier, MappingKeyboard,
+ int type; /\(** MappingNotify */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came from a SendEvent request */
+ Display *display; /\(** Display the event was read from */
+ Window window; /\(** unused */
+ int request; /\(** one of MappingModifier, MappingKeyboard,
MappingPointer */
- int first_keycode; /* first keycode */
- int count; /* defines range of change w. first_keycode*/
+ int first_keycode; /\(** first keycode */
+ int count; /\(** defines range of change w. first_keycode*/
} XMappingEvent;
.De
.LP
diff --git a/man/XMapRequestEvent.man b/man/XMapRequestEvent.man
index d593d2b9..15ae3610 100644
--- a/man/XMapRequestEvent.man
+++ b/man/XMapRequestEvent.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XMREvent.man,v 1.2 2001/01/27 18:20:01 dawes Exp $
+.\" $XdotOrg: lib/X11/man/XMapRequestEvent.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,7 +141,7 @@
.el .sp 10p
..
.ny0
-.TH XMapRequestEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XMapRequestEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XMapRequestEvent \- MapRequest event structure
.SH STRUCTURES
@@ -150,10 +153,10 @@ events contains:
.TA .5i 3i
.ta .5i 3i
typedef struct {
- int type; /* MapRequest */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
+ int type; /\(** MapRequest */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came from a SendEvent request */
+ Display *display; /\(** Display the event was read from */
Window parent;
Window window;
} XMapRequestEvent;
diff --git a/man/XMapWindow.man b/man/XMapWindow.man
index f7678e0b..5dfb4cec 100644
--- a/man/XMapWindow.man
+++ b/man/XMapWindow.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XMapWin.man,v 1.2 2001/01/27 18:20:01 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,27 +140,16 @@
.el .sp 10p
..
.ny0
-.TH XMapWindow 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XMapWindow 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XMapWindow, XMapRaised, XMapSubwindows \- map windows
.SH SYNTAX
-XMapWindow\^(\^\fIdisplay\fP, \fIw\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.LP
-XMapRaised\^(\^\fIdisplay\fP, \fIw\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.LP
-XMapSubwindows\^(\^\fIdisplay\fP, \fIw\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
+.HP
+int XMapWindow\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^);
+.HP
+int XMapRaised\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^);
+.HP
+int XMapSubwindows\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XNextEvent.man b/man/XNextEvent.man
index 9b4f5a74..cfed368e 100644
--- a/man/XNextEvent.man
+++ b/man/XNextEvent.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XNEvent.man,v 1.2 2001/01/27 18:20:01 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,75 +140,32 @@
.el .sp 10p
..
.ny0
-.TH XNextEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XNextEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XNextEvent, XPeekEvent, XWindowEvent, XCheckWindowEvent, XMaskEvent, XCheckMaskEvent, XCheckTypedEvent, XCheckTypedWindowEvent \- select events by type
.SH SYNTAX
-XNextEvent\^(\^\fIdisplay\fP, \fIevent_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XEvent *\fIevent_return\fP\^;
-.LP
-XPeekEvent\^(\^\fIdisplay\fP, \fIevent_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XEvent *\fIevent_return\fP\^;
-.LP
-XWindowEvent\^(\^\fIdisplay\fP, \fIw\fP\^, \fIevent_mask\fP\^, \fIevent_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- long \fIevent_mask\fP\^;
-.br
- XEvent *\fIevent_return\fP\^;
-.LP
-Bool XCheckWindowEvent\^(\^\fIdisplay\fP, \fIw\fP\^, \fIevent_mask\fP\^, \fIevent_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- long \fIevent_mask\fP\^;
-.br
- XEvent *\fIevent_return\fP\^;
-.LP
-XMaskEvent\^(\^\fIdisplay\fP, \fIevent_mask\fP\^, \fIevent_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- long \fIevent_mask\fP\^;
-.br
- XEvent *\fIevent_return\fP\^;
-.LP
-Bool XCheckMaskEvent\^(\^\fIdisplay\fP, \fIevent_mask\fP\^, \fIevent_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- long \fIevent_mask\fP\^;
-.br
- XEvent *\fIevent_return\fP\^;
-.LP
-Bool XCheckTypedEvent\^(\^\fIdisplay\fP, \fIevent_type\fP\^, \fIevent_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIevent_type\fP\^;
-.br
- XEvent *\fIevent_return\fP\^;
-.LP
-Bool XCheckTypedWindowEvent\^(\^\fIdisplay\fP, \fIw\fP\^, \fIevent_type\fP\^, \fIevent_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- int \fIevent_type\fP\^;
-.br
- XEvent *\fIevent_return\fP\^;
+.HP
+int XNextEvent\^(\^Display *\fIdisplay\fP\^, XEvent *\fIevent_return\fP\^);
+.HP
+int XPeekEvent\^(\^Display *\fIdisplay\fP\^, XEvent *\fIevent_return\fP\^);
+.HP
+int XWindowEvent\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, long
+\fIevent_mask\fP\^, XEvent *\fIevent_return\fP\^);
+.HP
+Bool XCheckWindowEvent\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, long
+\fIevent_mask\fP\^, XEvent *\fIevent_return\fP\^);
+.HP
+int XMaskEvent\^(\^Display *\fIdisplay\fP\^, long \fIevent_mask\fP\^, XEvent
+*\fIevent_return\fP\^);
+.HP
+Bool XCheckMaskEvent\^(\^Display *\fIdisplay\fP\^, long \fIevent_mask\fP\^,
+XEvent *\fIevent_return\fP\^);
+.HP
+Bool XCheckTypedEvent\^(\^Display *\fIdisplay\fP\^, int \fIevent_type\fP\^,
+XEvent *\fIevent_return\fP\^);
+.HP
+Bool XCheckTypedWindowEvent\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^,
+int \fIevent_type\fP\^, XEvent *\fIevent_return\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XNoOp.man b/man/XNoOp.man
index 3e03378c..10ce6a24 100644
--- a/man/XNoOp.man
+++ b/man/XNoOp.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XNoOp.man,v 1.2 2001/01/27 18:20:01 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,13 +140,11 @@
.el .sp 10p
..
.ny0
-.TH XNoOp 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XNoOp 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XNoOp \- No Operation
.SH SYNTAX
-XNoOp\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
+int XNoOp\^(\^Display *\fIdisplay\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XOpenDisplay.man b/man/XOpenDisplay.man
index 077c6b35..ddc26ee7 100644
--- a/man/XOpenDisplay.man
+++ b/man/XOpenDisplay.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XOpDsply.man,v 1.2 2001/01/27 18:20:01 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,17 +140,14 @@
.el .sp 10p
..
.ny0
-.TH XOpenDisplay 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XOpenDisplay 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XOpenDisplay, XCloseDisplay \- connect or disconnect to X server
.SH SYNTAX
-Display *XOpenDisplay\^(\^\fIdisplay_name\fP\^)
-.br
- char *\fIdisplay_name\fP\^;
-.LP
-XCloseDisplay\^(\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
+.HP
+Display *XOpenDisplay\^(\^char *\fIdisplay_name\fP\^);
+.HP
+int XCloseDisplay\^(Display *\fIdisplay\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XOpenIM.man b/man/XOpenIM.man
index 8c30aea7..b2f89732 100644
--- a/man/XOpenIM.man
+++ b/man/XOpenIM.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XOpenIM.man,v 1.2 2001/01/27 18:20:02 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,67 +140,31 @@
.el .sp 10p
..
.ny0
-.TH XOpenIM 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XOpenIM 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XOpenIM, XCloseIM, XSetIMValues, XGetIMValues, XDisplayOfIM, XLocaleOfIM, XRegisterIMInstantiateCallback, XUnregisterIMInstantiateCallback \- open, close, and otain input method information
.SH SYNTAX
-XIM XOpenIM\^(\^\fIdisplay\fP\^, \fIdb\fP\^, \fIres_name\fP\^, \fIres_class\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XrmDatabase \fIdb\fP\^;
-.br
- char *\fIres_name\fP\^;
-.br
- char *\fIres_class\fP\^;
-.LP
-Status XCloseIM\^(\^\fIim\fP\^)
-.br
- XIM \fIim\fP\^;
-.LP
-char * XSetIMValues\^(\^\fIim\fP\^, ...)
-.br
- XIM \fIim\fP\^;
-.LP
-char * XGetIMValues\^(\^\fIim\fP\^, ...)
-.br
- XIM \fIim\fP\^;
-.LP
-Display * XDisplayOfIM\^(\^\fIim\fP\^)
-.br
- XIM \fIim\fP\^;
-.LP
-char * XLocaleOfIM\^(\^\fIim\fP\^)
-.br
- XIM \fIim\fP\^;
-.LP
-Bool XRegisterIMInstantiateCallback\^(\^\fIdisplay\fP\^, \fIdb\fP\^, \fIres_name\fP\^, \fIres_class\fP\^, \fIcallback\fP\^, \fIclient_data\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XrmDatabase \fIdb\fP\^;
-.br
- char *\fIres_name\fP\^;
-.br
- char *\fIres_class\fP\^;
-.br
- XIMProc \fIcallback\fP\^;
-.br
- XPointer *\fIclient_data\fP\^;
-.LP
-Bool XUnregisterIMInstantiateCallback\^(\^\fIdisplay\fP\^, \fIdb\fP\^, \fIres_name\fP\^, \fIres_class\fP\^, \fIcallback\fP\^, \fIclient_data\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XrmDatabase \fIdb\fP\^;
-.br
- char *\fIres_name\fP\^;
-.br
- char *\fIres_class\fP\^;
-.br
- XIMProc \fIcallback\fP\^;
-.br
- XPointer *\fIclient_data\fP\^;
+.HP
+XIM XOpenIM\^(\^Display *\fIdisplay\fP\^, XrmDatabase \fIdb\fP\^, char
+*\fIres_name\fP\^, char *\fIres_class\fP\^);
+.HP
+Status XCloseIM\^(\^XIM \fIim\fP\^);
+.HP
+char *XSetIMValues\^(\^XIM \fIim\fP\^, ...);
+.HP
+char *XGetIMValues\^(\^XIM \fIim\fP\^, ...);
+.HP
+Display *XDisplayOfIM\^(\^XIM \fIim\fP\^);
+.HP
+char *XLocaleOfIM\^(\^XIM \fIim\fP\^);
+.HP
+Bool XRegisterIMInstantiateCallback\^(\^Display *\fIdisplay\fP\^, XrmDatabase
+\fIdb\fP\^, char *\fIres_name\fP\^, char *\fIres_class\fP\^, XIMProc
+\fIcallback\fP\^, XPointer *\fIclient_data\fP\^);
+.HP
+Bool XUnregisterIMInstantiateCallback\^(\^Display *\fIdisplay\fP\^,
+XrmDatabase \fIdb\fP\^, char *\fIres_name\fP\^, char *\fIres_class\fP\^,
+XIMProc \fIcallback\fP\^, XPointer *\fIclient_data\fP\^);
.LP
.SH ARGUMENTS
.IP \fIcallback\fP 1i
diff --git a/man/XOpenOM.man b/man/XOpenOM.man
index a2668a5a..3977c550 100644
--- a/man/XOpenOM.man
+++ b/man/XOpenOM.man
@@ -1,4 +1,5 @@
.\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X Consortium
+.\" Copyright \(co 2000 The XFree86 Project, Inc.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining
.\" a copy of this software and associated documentation files (the
@@ -39,7 +40,9 @@
.\" Digital and Tektronix makes no representations about the suitability
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
-.\"
+.\"
+.\" $XFree86: xc/doc/man/X11/XOpenOM.man,v 1.4 2001/02/09 03:47:45 tsi Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,39 +141,23 @@
.el .sp 10p
..
.ny0
-.TH XOpenOM 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XOpenOM 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XOpenOM, XCloseOM, XSetOMValues, XGetOMValues, XDisplayOfOM, XLocaleOfOM \- open output methods
.SH SYNTAX
-XOM XOpenOM\^(\^\fIdisplay\fP\^, \fIdb\fP\^, \fIres_name\fP\^, \fIres_class\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XrmDatabase \fIdb\fP\^;
-.br
- char *\fIres_name\fP\^;
-.br
- char *\fIres_class\fP\^;
-.LP
-Status XCloseOM\^(\^\fIom\fP\^)
-.br
- XOM \fIom\fP\^;
-.LP
-char * XSetOMValues\^(\^\fIom\fP\^, ...)
-.br
- XOM \fIom\fP\^;
-.LP
-char * XGetOMValues\^(\^\fIom\fP\^, ...)
-.br
- XOM \fIom\fP\^;
-.LP
-Display * XDisplayOfOM\^(\^\fIom\fP\^)
-.br
- XOM \fIom\fP\^;
-.LP
-char * XLocaleOfOM\^(\^\fIom\fP\^)
-.br
- XOM \fIom\fP\^;
+.HP
+XOM XOpenOM\^(\^Display *\fIdisplay\fP\^, XrmDatabase \fIdb\fP\^, char
+*\fIres_name\fP\^, char *\fIres_class\fP\^);
+.HP
+Status XCloseOM\^(\^XOM \fIom\fP\^);
+.HP
+char *XSetOMValues\^(\^XOM \fIom\fP\^);
+.HP
+char *XGetOMValues\^(\^XOM \fIom\fP\^);
+.HP
+Display *XDisplayOfOM\^(\^XOM \fIom\fP\^);
+.HP
+char *XLocaleOfOM\^(\^XOM \fIom\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
@@ -241,7 +228,11 @@ 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;
otherwise,
-it returns the name of the first argument that could not be obtained.
+it returns the name of the first argument that could not be set.
+Xlib does not attempt to set arguments from the supplied list that
+follow the failed argument;
+all arguments in the list preceding the failed argument have been set
+correctly.
.LP
No standard arguments are currently defined by Xlib.
.LP
diff --git a/man/XParseGeometry.man b/man/XParseGeometry.man
index dd9e7115..a3b0a923 100644
--- a/man/XParseGeometry.man
+++ b/man/XParseGeometry.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XParGeom.man,v 1.3 2001/02/09 03:47:45 tsi Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,42 +140,20 @@
.el .sp 10p
..
.ny0
-.TH XParseGeometry 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XParseGeometry 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XParseGeometry, XWMGeometry \- parse window geometry
.SH SYNTAX
-int XParseGeometry\^(\^\fIparsestring\fP\^, \fIx_return\fP\^, \fIy_return\fP\^, \fIwidth_return\fP\^, \fIheight_return\fP\^)
-.br
- char *\fIparsestring\fP\^;
-.br
- int *\fIx_return\fP\^, *\fIy_return\fP\^;
-.br
- unsigned int *\fIwidth_return\fP\^, *\fIheight_return\fP\^;
-.LP
-int XWMGeometry\^(\^\fIdisplay\fP, \fIscreen\fP, \fIuser_geom\fP, \
-\fIdef_geom\fP, \fIbwidth\fP, \fIhints\fP, \fIx_return\fP, \fIy_return\fP,
-.br
- \fIwidth_return\fP, \fIheight_return\fP, \fIgravity_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIscreen\fP\^;
-.br
- char *\fIuser_geom\fP\^;
-.br
- char *\fIdef_geom\fP\^;
-.br
- unsigned int \fIbwidth\fP\^;
-.br
- XSizeHints *\fIhints\fP\^;
-.br
- int *\fIx_return\fP, *\fIy_return\fP\^;
-.br
- int *\fIwidth_return\fP\^;
-.br
- int *\fIheight_return\fP\^;
-.br
- int *\fIgravity_return\fP\^;
+.HP
+int XParseGeometry\^(\^char *\fIparsestring\fP\^, int *\fIx_return\fP\^, int
+*\fIy_return\fP\^, unsigned int *\fIwidth_return\fP\^, unsigned int
+*\fIheight_return\fP\^);
+.HP
+int XWMGeometry\^(\^Display *\fIdisplay\fP\^, int \fIscreen\fP\^, char
+*\fIuser_geom\fP\^, char *\fIdef_geom\fP\^, unsigned int \fIbwidth\fP\^,
+XSizeHints *\fIhints\fP\^, int *\fIx_return\fP, int *\fIy_return\fP\^, int
+*\fIwidth_return\fP\^, int *\fIheight_return\fP\^, int
+*\fIgravity_return\fP\^);
.SH ARGUMENTS
.IP \fIposition\fP 1i
.br
diff --git a/man/XPolygonRegion.man b/man/XPolygonRegion.man
index 2b7cb976..97d5eb38 100644
--- a/man/XPolygonRegion.man
+++ b/man/XPolygonRegion.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XPolyReg.man,v 1.2 2001/01/27 18:20:02 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,23 +140,15 @@
.el .sp 10p
..
.ny0
-.TH XPolygonRegion 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XPolygonRegion 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XPolygonRegion, XClipBox \- generate regions
.SH SYNTAX
-Region XPolygonRegion\^(\^\fIpoints\fP\^, \fIn\fP\^, \fIfill_rule\fP\^)
-.br
- XPoint \fIpoints[]\fP\^;
-.br
- int \fIn\fP\^;
-.br
- int \fIfill_rule\fP\^;
-.LP
-XClipBox\^(\^\fIr\fP\^, \fIrect_return\fP\^)
-.br
- Region \fIr\fP\^;
-.br
- XRectangle *\fIrect_return\fP\^;
+.HP
+Region XPolygonRegion\^(\^XPoint \fIpoints\fP[]\^, int \fIn\fP\^, int
+\fIfill_rule\fP\^);
+.HP
+int XClipBox\^(\^Region \fIr\fP\^, XRectangle *\fIrect_return\fP\^);
.SH ARGUMENTS
.IP \fIfill_rule\fP 1i
Specifies the fill-rule you want to set for the specified GC.
diff --git a/man/XPropertyEvent.man b/man/XPropertyEvent.man
index 5d290325..a9378ef3 100644
--- a/man/XPropertyEvent.man
+++ b/man/XPropertyEvent.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XPEvent.man,v 1.2 2001/01/27 18:20:02 dawes Exp $
+.\" $XdotOrg: lib/X11/man/XPropertyEvent.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,7 +141,7 @@
.el .sp 10p
..
.ny0
-.TH XPropertyEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XPropertyEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XPropertyEvent \- PropertyNotify event structure
.SH STRUCTURES
@@ -150,14 +153,14 @@ events contains:
.TA .5i 3i
.ta .5i 3i
typedef struct {
- int type; /* PropertyNotify */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
+ int type; /\(** PropertyNotify */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came from a SendEvent request */
+ Display *display; /\(** Display the event was read from */
Window window;
Atom atom;
Time time;
- int state; /* PropertyNewValue or PropertyDelete */
+ int state; /\(** PropertyNewValue or PropertyDelete */
} XPropertyEvent;
.De
.LP
diff --git a/man/XPutBackEvent.man b/man/XPutBackEvent.man
index 262113c5..6ab7ce2f 100644
--- a/man/XPutBackEvent.man
+++ b/man/XPutBackEvent.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XPutBEvnt.man,v 1.2 2001/01/27 18:20:02 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,15 +140,12 @@
.el .sp 10p
..
.ny0
-.TH XPutBackEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XPutBackEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XPutBackEvent \- put events back on the queue
.SH SYNTAX
-XPutBackEvent\^(\^\fIdisplay\fP, \fIevent\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XEvent *\fIevent\fP\^;
+.HP
+XPutBackEvent\^(\^Display *\fIdisplay\fP\^, XEvent *\fIevent\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XPutImage.man b/man/XPutImage.man
index 1e2a7936..24fbd35a 100644
--- a/man/XPutImage.man
+++ b/man/XPutImage.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XPutImage.man,v 1.3 2001/02/09 03:47:46 tsi Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,68 +140,33 @@
.el .sp 10p
..
.ny0
-.TH XPutImage 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XPutImage 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XPutImage, XGetImage, XGetSubImage \- transfer images
.SH SYNTAX
-XPutImage\^(\^\fIdisplay\fP, \fId\fP\^, \fIgc\fP\^, \fIimage\fP\^, \fIsrc_x\fP, \fIsrc_y\fP, \fIdest_x\fP\^, \fIdest_y\fP\^, \fIwidth\fP\^, \fIheight\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- XImage *\fIimage\fP\^;
-.br
- int \fIsrc_x\fP\^, \fIsrc_y\fP\^;
-.br
- int \fIdest_x\fP\^, \fIdest_y\fP\^;
-.br
- unsigned int \fIwidth\fP\^, \fIheight\fP\^;
-.LP
-XImage *XGetImage\^(\^\fIdisplay\fP, \fId\fP\^, \fIx\fP\^, \fIy\fP\^, \fIwidth\fP\^, \fIheight\fP\^, \fIplane_mask\fP, \fIformat\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- int \fIx\fP\^, \fIy\fP\^;
-.br
- unsigned int \fIwidth\fP\^, \fIheight\fP\^;
-.br
- unsigned long \fIplane_mask\fP\^;
-.br
- int \fIformat\fP\^;
-.LP
-XImage *XGetSubImage\^(\^\fIdisplay\fP, \fId\fP\^, \fIx\fP\^, \fIy\fP\^, \fIwidth\fP\^, \fIheight\fP\^, \fIplane_mask\fP, \fIformat\fP\^, \fIdest_image\fP\^, \fIdest_x\fP\^,
-.br
- \fIdest_y\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- int \fIx\fP\^, \fIy\fP\^;
-.br
- unsigned int \fIwidth\fP\^, \fIheight\fP\^;
-.br
- unsigned long \fIplane_mask\fP\^;
-.br
- int \fIformat\fP\^;
-.br
- XImage *\fIdest_image\fP\^;
-.br
- int \fIdest_x\fP\^, \fIdest_y\fP\^;
+.HP
+int XPutImage\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, GC \fIgc\fP\^,
+XImage *\fIimage\fP\^, int \fIsrc_x\fP\^, int \fIsrc_y\fP\^, int
+\fIdest_x\fP\^, int \fIdest_y\fP\^, unsigned int \fIwidth\fP\^, unsigned int
+\fIheight\fP\^);
+.HP
+XImage *XGetImage\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, int
+\fIx\fP\^, int \fIy\fP\^, unsigned int \fIwidth\fP\^, unsigned int
+\fIheight\fP\^, unsigned long \fIplane_mask\fP\^, int \fIformat\fP\^);
+.HP
+XImage *XGetSubImage\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, int
+\fIx\fP\^, int \fIy\fP\^, unsigned int \fIwidth\fP\^, unsigned int
+\fIheight\fP\^, unsigned long \fIplane_mask\fP\^, int \fIformat\fP\^, XImage
+*\fIdest_image\fP\^, int \fIdest_x\fP\^, \fIdest_y\fP\^);
.SH ARGUMENTS
.IP \fId\fP 1i
Specifies the drawable.
.IP \fIdest_image\fP 1i
Specifies the destination image.
-.ds Dx , which are relative to the origin of the drawable \
-and are the coordinates of the subimage \
-or which are relative to the origin of the destination rectangle, \
-specify its upper-left corner, and determine where the subimage \
+.ds Dx , which are relative to the origin of the drawable
+and are the coordinates of the subimage
+or which are relative to the origin of the destination rectangle,
+specify its upper-left corner, and determine where the subimage
is placed in the destination image
.IP \fIdest_x\fP 1i
.br
@@ -237,7 +204,7 @@ structure.
.ns
.IP \fIheight\fP 1i
Specify the width and height\*(Wh.
-.ds Xy , which are relative to the origin of the drawable \
+.ds Xy , which are relative to the origin of the drawable
and define the upper-left corner of the rectangle
.IP \fIx\fP 1i
.br
diff --git a/man/XQueryBestSize.man b/man/XQueryBestSize.man
index 6bd0156d..65b70c6e 100644
--- a/man/XQueryBestSize.man
+++ b/man/XQueryBestSize.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XQBSize.man,v 1.2 2001/01/27 18:20:02 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,41 +140,23 @@
.el .sp 10p
..
.ny0
-.TH XQueryBestSize 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XQueryBestSize 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XQueryBestSize, XQueryBestTile, XQueryBestStipple \- determine efficient sizes
.SH SYNTAX
-Status XQueryBestSize\^(\^\fIdisplay\fP, \fIclass\fP, \fIwhich_screen\fP, \fIwidth\fP, \fIheight\fP, \fIwidth_return\fP, \fIheight_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIclass\fP\^;
-.br
- Drawable \fIwhich_screen\fP\^;
-.br
- unsigned int \fIwidth\fP, \fIheight\fP\^;
-.br
- unsigned int *\fIwidth_return\fP, *\fIheight_return\fP\^;
-.LP
-Status XQueryBestTile\^(\^\fIdisplay\fP, \fIwhich_screen\fP, \fIwidth\fP, \fIheight\fP, \fIwidth_return\fP, \fIheight_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fIwhich_screen\fP\^;
-.br
- unsigned int \fIwidth\fP, \fIheight\fP\^;
-.br
- unsigned int *\fIwidth_return\fP, *\fIheight_return\fP\^;
-.LP
-Status XQueryBestStipple\^(\^\fIdisplay\fP, \fIwhich_screen\fP, \fIwidth\fP, \fIheight\fP, \fIwidth_return\fP, \fIheight_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fIwhich_screen\fP\^;
-.br
- unsigned int \fIwidth\fP, \fIheight\fP\^;
-.br
- unsigned int *\fIwidth_return\fP, *\fIheight_return\fP\^;
+.HP
+Status XQueryBestSize\^(\^Display *\fIdisplay\fP\^, int \fIclass\fP\^,
+Drawable \fIwhich_screen\fP\^, unsigned int \fIwidth\fP, unsigned int
+\fIheight\fP\^, unsigned int *\fIwidth_return\fP, unsigned int
+*\fIheight_return\fP\^);
+.HP
+Status XQueryBestTile\^(\^Display *\fIdisplay\fP\^, Drawable
+\fIwhich_screen\fP\^, unsigned int \fIwidth\fP, unsigned int \fIheight\fP\^,
+unsigned int *\fIwidth_return\fP, unsigned int *\fIheight_return\fP\^);
+.HP
+Status XQueryBestStipple\^(\^Display *\fIdisplay\fP\^, Drawable
+\fIwhich_screen\fP\^, unsigned int \fIwidth\fP, unsigned int \fIheight\fP\^,
+unsigned int *\fIwidth_return\fP, unsigned int *\fIheight_return\fP\^);
.SH ARGUMENTS
.IP \fIclass\fP 1i
Specifies the class that you are interested in.
diff --git a/man/XQueryColor.man b/man/XQueryColor.man
index ae0cb0e9..45062862 100644
--- a/man/XQueryColor.man
+++ b/man/XQueryColor.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XQColor.man,v 1.4 2001/02/09 03:47:46 tsi Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,48 +140,23 @@
.el .sp 10p
..
.ny0
-.TH XQueryColor 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XQueryColor 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XQueryColor, XQueryColors, XLookupColor, XParseColor \- obtain color values
.SH SYNTAX
-XQueryColor\^(\^\fIdisplay\fP, \fIcolormap\fP\^, \fIdef_in_out\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Colormap \fIcolormap\fP\^;
-.br
- XColor *\fIdef_in_out\fP\^;
-.LP
-XQueryColors\^(\^\fIdisplay\fP, \fIcolormap\fP\^, \fIdefs_in_out\fP\^, \fIncolors\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Colormap \fIcolormap\fP\^;
-.br
- XColor \fIdefs_in_out\fP[\^]\^;
-.br
- int \fIncolors\fP\^;
-.LP
-Status XLookupColor\^(\^\fIdisplay\fP, \fIcolormap\fP, \fIcolor_name\fP, \
-\fIexact_def_return\fP\^, \fIscreen_def_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Colormap \fIcolormap\fP\^;
-.br
- char *\fIcolor_name\fP\^;
-.br
- XColor *\fIexact_def_return\fP\^, *\fIscreen_def_return\fP\^;
-.LP
-Status XParseColor\^(\^\fIdisplay\fP, \fIcolormap\fP\^, \^\fIspec\fP\^, \fIexact_def_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Colormap \fIcolormap\fP\^;
-.br
- char *\fIspec\fP\^;
-.br
- XColor *\fIexact_def_return\fP\^;
+.HP
+int XQueryColor\^(\^Display *\fIdisplay\fP\^, Colormap \fIcolormap\fP\^, XColor
+*\fIdef_in_out\fP\^);
+.HP
+int XQueryColors\^(\^Display *\fIdisplay\fP\^, Colormap \fIcolormap\fP\^,
+XColor \fIdefs_in_out\fP[\^]\^, int \fIncolors\fP\^);
+.HP
+Status XLookupColor\^(\^Display *\fIdisplay\fP\^, Colormap \fIcolormap\fP\^,
+char *\fIcolor_name\fP\^, XColor *\fIexact_def_return\fP\^, XColor
+*\fIscreen_def_return\fP\^);
+.HP
+Status XParseColor\^(\^Display *\fIdisplay\fP\^, Colormap \fIcolormap\fP\^,
+char *\fIspec\fP\^, XColor *\fIexact_def_return\fP\^);
.SH ARGUMENTS
.IP \fIcolormap\fP 1i
Specifies the colormap.
@@ -303,10 +280,10 @@ a numeric specification, in one of the following formats:
.Ds 0
.TA 2i
.ta 2i
-#RGB (4 bits each)
-#RRGGBB (8 bits each)
-#RRRGGGBBB (12 bits each)
-#RRRRGGGGBBBB (16 bits each)
+\&#RGB (4 bits each)
+\&#RRGGBB (8 bits each)
+\&#RRRGGGBBB (12 bits each)
+\&#RRRRGGGGBBBB (16 bits each)
.De
.\" End marker code here
.LP
diff --git a/man/XQueryPointer.man b/man/XQueryPointer.man
index 01ef3715..440d43ba 100644
--- a/man/XQueryPointer.man
+++ b/man/XQueryPointer.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XQPointer.man,v 1.2 2001/01/27 18:20:02 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,25 +140,15 @@
.el .sp 10p
..
.ny0
-.TH XQueryPointer 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XQueryPointer 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XQueryPointer \- get pointer coordinates
.SH SYNTAX
-Bool XQueryPointer\^(\^\fIdisplay\fP, \fIw\fP\^, \fIroot_return\fP\^, \fIchild_return\fP\^, \fIroot_x_return\fP\^, \fIroot_y_return\fP\^,
-.br
- \fIwin_x_return\fP\^, \fIwin_y_return\fP\^, \fImask_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- Window *\fIroot_return\fP\^, *\fIchild_return\fP\^;
-.br
- int *\fIroot_x_return\fP\^, *\fIroot_y_return\fP\^;
-.br
- int *\fIwin_x_return\fP\^, *\fIwin_y_return\fP\^;
-.br
- unsigned int *\fImask_return\fP\^;
+.HP
+Bool XQueryPointer\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, Window
+*\fIroot_return\fP\^, Window *\fIchild_return\fP\^, int
+*\fIroot_x_return\fP\^, int *\fIroot_y_return\fP\^, int *\fIwin_x_return\fP\^,
+int *\fIwin_y_return\fP\^, unsigned int *\fImask_return\fP\^);
.SH ARGUMENTS
.IP \fIchild_return\fP 1i
Returns the child window that the pointer is located in, if any.
diff --git a/man/XQueryTree.man b/man/XQueryTree.man
index 3f1b65e8..21cbc3e4 100644
--- a/man/XQueryTree.man
+++ b/man/XQueryTree.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XQTree.man,v 1.3 2001/02/09 03:47:46 tsi Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,23 +140,14 @@
.el .sp 10p
..
.ny0
-.TH XQueryTree 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XQueryTree 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XQueryTree \- query window tree information
.SH SYNTAX
-Status XQueryTree\^(\^\fIdisplay\fP, \fIw\fP\^, \fIroot_return\fP\^, \fIparent_return\fP\^, \fIchildren_return\fP\^, \fInchildren_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- Window *\fIroot_return\fP\^;
-.br
- Window *\fIparent_return\fP\^;
-.br
- Window **\fIchildren_return\fP\^;
-.br
- unsigned int *\fInchildren_return\fP\^;
+.HP
+Status XQueryTree\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, Window
+*\fIroot_return\fP\^, Window *\fIparent_return\fP\^, Window
+**\fIchildren_return\fP\^, unsigned int *\fInchildren_return\fP\^);
.SH ARGUMENTS
.IP \fIchildren_return\fP 1i
Returns the list of children.
@@ -166,7 +159,7 @@ Returns the number of children.
Returns the parent window.
.IP \fIroot_return\fP 1i
Returns the root window.
-.ds Wi whose list of children, root, parent, and number of children \
+.ds Wi whose list of children, root, parent, and number of children
you want to obtain
.IP \fIw\fP 1i
Specifies the window \*(Wi.
diff --git a/man/XRaiseWindow.man b/man/XRaiseWindow.man
index fea5e6bc..af66c6ab 100644
--- a/man/XRaiseWindow.man
+++ b/man/XRaiseWindow.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XRaiseWin.man,v 1.2 2001/01/27 18:20:03 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,49 +140,24 @@
.el .sp 10p
..
.ny0
-.TH XRaiseWindow 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XRaiseWindow 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XRaiseWindow, XLowerWindow, XCirculateSubwindows, XCirculateSubwindowsUp, XCirculateSubwindowsDown, XRestackWindows \- change window stacking order
.SH SYNTAX
-XRaiseWindow\^(\^\fIdisplay\fP, \fIw\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.LP
-XLowerWindow\^(\^\fIdisplay\fP, \fIw\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.LP
-XCirculateSubwindows\^(\^\fIdisplay\fP, \fIw\fP\^, \fIdirection\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- int \fIdirection\fP\^;
-.LP
-XCirculateSubwindowsUp\^(\^\fIdisplay\fP, \fIw\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.LP
-XCirculateSubwindowsDown\^(\^\fIdisplay\fP, \fIw\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.LP
-XRestackWindows\^(\^\fIdisplay\fP, \fIwindows\fP\^, \^\fInwindows\fP\^);
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIwindows\fP\^[];
-.br
- int \fInwindows\fP\^;
+.HP
+int XRaiseWindow\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^);
+.HP
+int XLowerWindow\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^);
+.HP
+int XCirculateSubwindows\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, int
+\fIdirection\fP\^);
+.HP
+int XCirculateSubwindowsUp\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^);
+.HP
+int XCirculateSubwindowsDown\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^);
+.HP
+int XRestackWindows\^(\^Display *\fIdisplay\fP\^, Window \fIwindows\fP\^[], int
+\fInwindows\fP\^);
.SH ARGUMENTS
.IP \fIdirection\fP 1i
Specifies the direction (up or down) that you want to circulate
diff --git a/man/XReadBitmapFile.man b/man/XReadBitmapFile.man
index 4c384e0a..1880f379 100644
--- a/man/XReadBitmapFile.man
+++ b/man/XReadBitmapFile.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XReadBF.man,v 1.3 2001/02/07 22:35:20 tsi Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,71 +140,31 @@
.el .sp 10p
..
.ny0
-.TH XReadBitmapFile 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XReadBitmapFile 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XReadBitmapFile, XReadBitmapFileData, XWriteBitmapFile, XCreatePixmapFromBitmapData, XCreateBitmapFromData \- manipulate bitmaps
.SH SYNTAX
-int XReadBitmapFile(\^\fIdisplay\fP, \fId\fP, \fIfilename\fP, \fIwidth_return\fP, \fIheight_return\fP, \fIbitmap_return\fP, \fIx_hot_return\fP,
-.br
- \fIy_hot_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- char *\fIfilename\fP\^;
-.br
- unsigned int *\fIwidth_return\fP, *\fIheight_return\fP\^;
-.br
- Pixmap *\fIbitmap_return\fP\^;
-.br
- int *\fIx_hot_return\fP, *\fIy_hot_return\fP\^;
-.LP
-int XReadBitmapFileData(\^\fIfilename\fP, \fIwidth_return\fP, \fIheight_return\fP, \fIdata_return\fP, \fIx_hot_return\fP, \fIy_hot_return\fP\^)
-.br
- char *\fIfilename\fP\^;
-.br
- unsigned int *\fIwidth_return\fP, *\fIheight_return\fP\^;
-.br
- unsigned char *\fIdata_return\fP\^;
-.br
- int *\fIx_hot_return\fP, *\fIy_hot_return\fP\^;
-.LP
-int XWriteBitmapFile(\^\fIdisplay\fP, \fIfilename\fP, \fIbitmap\fP, \fIwidth\fP, \fIheight\fP, \fIx_hot\fP, \fIy_hot\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- char *\fIfilename\fP\^;
-.br
- Pixmap \fIbitmap\fP\^;
-.br
- unsigned int \fIwidth\fP, \fIheight\fP\^;
-.br
- int \fIx_hot\fP, \fIy_hot\fP\^;
-.LP
-Pixmap XCreatePixmapFromBitmapData\^(\^\fIdisplay\fP, \fId\fP, \fIdata\fP, \fIwidth\fP, \fIheight\fP, \fIfg\fP, \fIbg\fP, \fIdepth\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- char *\fIdata\fP\^;
-.br
- unsigned int \fIwidth\fP, \fIheight\fP\^;
-.br
- unsigned long \fIfg\fP, \fIbg\fP\^;
-.br
- unsigned int \fIdepth\fP\^;
-.LP
-Pixmap XCreateBitmapFromData(\^\fIdisplay\fP, \fId\fP, \fIdata\fP, \fIwidth\fP, \fIheight\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- char *\fIdata\fP\^;
-.br
- unsigned int \fIwidth\fP, \fIheight\fP\^;
+.HP
+int XReadBitmapFile(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, char
+*\fIfilename\fP\^, unsigned int *\fIwidth_return\fP, unsigned int
+*\fIheight_return\fP\^, Pixmap *\fIbitmap_return\fP\^, int
+*\fIx_hot_return\fP, int *\fIy_hot_return\fP\^);
+.HP
+int XReadBitmapFileData(\^char *\fIfilename\fP\^, unsigned int
+*\fIwidth_return\fP, unsigned int *\fIheight_return\fP\^, unsigned char
+*\fIdata_return\fP\^, int *\fIx_hot_return\fP, int *\fIy_hot_return\fP\^);
+.HP
+int XWriteBitmapFile(\^Display *\fIdisplay\fP\^, char *\fIfilename\fP\^,
+Pixmap \fIbitmap\fP\^, unsigned int \fIwidth\fP, unsigned int \fIheight\fP\^,
+int \fIx_hot\fP, int \fIy_hot\fP\^);
+.HP
+Pixmap XCreatePixmapFromBitmapData\^(\^Display *\fIdisplay\fP\^, Drawable
+\fId\fP\^, char *\fIdata\fP\^, unsigned int \fIwidth\fP, unsigned int
+\fIheight\fP\^, unsigned long \fIfg\fP, unsigned int \fIbg\fP\^, unsigned int
+\fIdepth\fP\^);
+.HP
+Pixmap XCreateBitmapFromData(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^,
+char *\fIdata\fP\^, unsigned int \fIwidth\fP, unsigned int \fIheight\fP\^);
.SH ARGUMENTS
.IP \fIbitmap\fP 1i
Specifies the bitmap.
@@ -357,7 +319,7 @@ a bitmap file that was written out by
The following example creates a gray bitmap:
.LP
.Ds 0
-#include "gray.bitmap"
+\&#include "gray.bitmap"
.sp 6p
Pixmap bitmap;
bitmap = XCreateBitmapFromData(display, window, gray_bits, gray_width, gray_height);
diff --git a/man/XRecolorCursor.man b/man/XRecolorCursor.man
index 801777f2..4b005ca9 100644
--- a/man/XRecolorCursor.man
+++ b/man/XRecolorCursor.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XRecCur.man,v 1.2 2001/01/27 18:20:03 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,33 +140,19 @@
.el .sp 10p
..
.ny0
-.TH XRecolorCursor 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XRecolorCursor 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XRecolorCursor, XFreeCursor, XQueryBestCursor \- manipulate cursors
.SH SYNTAX
-XRecolorCursor\^(\^\fIdisplay\fP, \fIcursor\fP\^, \fIforeground_color\fP\^, \fIbackground_color\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Cursor \fIcursor\fP\^;
-.br
- XColor *\fIforeground_color\fP\^, *\fIbackground_color\fP\^;
-.LP
-XFreeCursor\^(\^\fIdisplay\fP, \fIcursor\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Cursor \fIcursor\fP\^;
-.LP
-Status XQueryBestCursor\^(\^\fIdisplay\fP, \fId\fP, \fIwidth\fP\^, \fIheight\fP\^, \fIwidth_return\fP\^, \fIheight_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- unsigned int \fIwidth\fP\^, \fIheight\fP\^;
-.br
- unsigned int *\fIwidth_return\fP\^, *\fIheight_return\fP\^;
+.HP
+int XRecolorCursor\^(\^Display *\fIdisplay\fP\^, Cursor \fIcursor\fP\^, XColor
+*\fIforeground_color\fP\^, XColor *\fIbackground_color\fP\^);
+.HP
+int XFreeCursor\^(\^Display *\fIdisplay\fP\^, Cursor \fIcursor\fP\^);
+.HP
+Status XQueryBestCursor\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^,
+unsigned int \fIwidth\fP\^, unsigned int \fIheight\fP\^, unsigned int
+*\fIwidth_return\fP\^, unsigned int *\fIheight_return\fP\^);
.SH ARGUMENTS
.IP \fIbackground_color\fP 1i
Specifies the RGB values for the background of the source.
diff --git a/man/XReparentEvent.man b/man/XReparentEvent.man
index 7eb9a111..f5927fa3 100644
--- a/man/XReparentEvent.man
+++ b/man/XReparentEvent.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XREvent.man,v 1.2 2001/01/27 18:20:02 dawes Exp $
+.\" $XdotOrg: lib/X11/man/XReparentEvent.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,7 +141,7 @@
.el .sp 10p
..
.ny0
-.TH XReparentEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XReparentEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XReparentEvent \- ReparentNotify event structure
.SH STRUCTURES
@@ -150,10 +153,10 @@ events contains:
.TA .5i 3i
.ta .5i 3i
typedef struct {
- int type; /* ReparentNotify */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
+ int type; /\(** ReparentNotify */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came from a SendEvent request */
+ Display *display; /\(** Display the event was read from */
Window event;
Window window;
Window parent;
diff --git a/man/XReparentWindow.man b/man/XReparentWindow.man
index 6685c4f4..da1c1a80 100644
--- a/man/XReparentWindow.man
+++ b/man/XReparentWindow.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XReparWin.man,v 1.2 2001/01/27 18:20:03 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,19 +140,13 @@
.el .sp 10p
..
.ny0
-.TH XReparentWindow 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XReparentWindow 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XReparentWindow \- reparent windows
.SH SYNTAX
-XReparentWindow\^(\^\fIdisplay\fP, \fIw\fP\^, \fIparent\fP\^, \fIx\fP\^, \fIy\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- Window \fIparent\fP\^;
-.br
- int \fIx\fP\^, \fIy\fP\^;
+.HP
+int XReparentWindow\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, Window
+\fIparent\fP\^, int \fIx\fP\^, int \fIy\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XResizeRequestEvent.man b/man/XResizeRequestEvent.man
index 080e85d9..ee7959ca 100644
--- a/man/XResizeRequestEvent.man
+++ b/man/XResizeRequestEvent.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XRREvent.man,v 1.2 2001/01/27 18:20:03 dawes Exp $
+.\" $XdotOrg: lib/X11/man/XResizeRequestEvent.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,7 +141,7 @@
.el .sp 10p
..
.ny0
-.TH XResizeRequestEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XResizeRequestEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XResizeRequestEvent \- ResizeRequest event structure
.SH STRUCTURES
@@ -150,10 +153,10 @@ events contains:
.TA .5i 3i
.ta .5i 3i
typedef struct {
- int type; /* ResizeRequest */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
+ int type; /\(** ResizeRequest */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came from a SendEvent request */
+ Display *display; /\(** Display the event was read from */
Window window;
int width, height;
} XResizeRequestEvent;
diff --git a/man/XResourceManagerString.man b/man/XResourceManagerString.man
index 566d59d8..cc713a73 100644
--- a/man/XResourceManagerString.man
+++ b/man/XResourceManagerString.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XRMStr.man,v 1.2 2001/01/27 18:20:03 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,17 +140,14 @@
.el .sp 10p
..
.ny0
-.TH XResourceManagerString 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XResourceManagerString 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XResourceManagerString, XScreenResourceString \- obtain server resource properties
.SH SYNTAX
-char *XResourceManagerString\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.LP
-char *XScreenResourceString\^(\^\fIscreen\fP\^)
-.br
- Screen *\fIscreen\fP\^;
+.HP
+char *XResourceManagerString\^(\^Display *\fIdisplay\fP\^);
+.HP
+char *XScreenResourceString\^(\^Screen *\fIscreen\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XSaveContext.man b/man/XSaveContext.man
index 428479c5..b76e561c 100644
--- a/man/XSaveContext.man
+++ b/man/XSaveContext.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSContext.man,v 1.2 2001/01/27 18:20:03 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,42 +140,24 @@
.el .sp 10p
..
.ny0
-.TH XSaveContext 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSaveContext 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XSaveContext, XFindContext, XDeleteContext, XUniqueContext \- associative look-up routines
.SH SYNTAX
-int XSaveContext(\^\fIdisplay\fP, \fIrid\fP, \fIcontext\fP, \fIdata\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XID \fIrid\fP\^;
-.br
- XContext \fIcontext\fP\^;
-.br
- XPointer \fIdata\fP\^;
-.LP
-int XFindContext(\^\fIdisplay\fP, \fIrid\fP, \fIcontext\fP, \fIdata_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XID \fIrid\fP\^;
-.br
- XContext \fIcontext\fP\^;
-.br
- XPointer *\fIdata_return\fP\^;
-.LP
-int XDeleteContext(\^\fIdisplay\fP, \fIrid\fP, \fIcontext\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XID \fIrid\fP;
-.br
- XContext \fIcontext\fP;
+.HP
+int XSaveContext(\^Display *\fIdisplay\fP\^, XID \fIrid\fP\^, XContext
+\fIcontext\fP\^, XPointer \fIdata\fP\^);
+.HP
+int XFindContext(\^Display *\fIdisplay\fP\^, XID \fIrid\fP\^, XContext
+\fIcontext\fP\^, XPointer *\fIdata_return\fP\^);
+.HP
+int XDeleteContext(\^Display *\fIdisplay\fP\^, XID \fIrid\fP, XContext
+\fIcontext\fP);
.LP
-XContext XUniqueContext(\^)
+XContext XUniqueContext(void);
.SH ARGUMENTS
.IP \fIcontext\fP 1i
-Specifies the context type to which the data belongs.
+Specifies the context type to which the data belongs.
.IP \fIdata\fP 1i
Specifies the data to be associated with the window and type.
.IP \fIdata_return\fP 1i
diff --git a/man/XSelectInput.man b/man/XSelectInput.man
index 42b9ed81..1e3be473 100644
--- a/man/XSelectInput.man
+++ b/man/XSelectInput.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSInput.man,v 1.2 2001/01/27 18:20:03 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,17 +140,13 @@
.el .sp 10p
..
.ny0
-.TH XSelectInput 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSelectInput 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XSelectInput \- select input events
.SH SYNTAX
-XSelectInput\^(\^\fIdisplay\fP, \fIw\fP\^, \fIevent_mask\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- long \fIevent_mask\fP\^;
+.HP
+int XSelectInput\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, long
+\fIevent_mask\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XSelectionClearEvent.man b/man/XSelectionClearEvent.man
index 4313f17c..3c5bacb7 100644
--- a/man/XSelectionClearEvent.man
+++ b/man/XSelectionClearEvent.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSCEvent.man,v 1.2 2001/01/27 18:20:03 dawes Exp $
+.\" $XdotOrg: lib/X11/man/XSelectionClearEvent.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,7 +141,7 @@
.el .sp 10p
..
.ny0
-.TH XSelectionClearEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSelectionClearEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XSelectionClearEvent \- SelectionClear event structure
.SH STRUCTURES
@@ -150,10 +153,10 @@ events contains:
.TA .5i 3i
.ta .5i 3i
typedef struct {
- int type; /* SelectionClear */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
+ int type; /\(** SelectionClear */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came from a SendEvent request */
+ Display *display; /\(** Display the event was read from */
Window window;
Atom selection;
Time time;
diff --git a/man/XSelectionEvent.man b/man/XSelectionEvent.man
index 0df21cbb..783d0331 100644
--- a/man/XSelectionEvent.man
+++ b/man/XSelectionEvent.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSEvent.man,v 1.2 2001/01/27 18:20:03 dawes Exp $
+.\" $XdotOrg: lib/X11/man/XSelectionEvent.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,7 +141,7 @@
.el .sp 10p
..
.ny0
-.TH XSelectionEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSelectionEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XSelectionEvent \- SelectionNotify event structure
.SH STRUCTURES
@@ -150,14 +153,14 @@ events contains:
.TA .5i 3i
.ta .5i 3i
typedef struct {
- int type; /* SelectionNotify */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
+ int type; /\(** SelectionNotify */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came from a SendEvent request */
+ Display *display; /\(** Display the event was read from */
Window requestor;
Atom selection;
Atom target;
- Atom property; /* atom or None */
+ Atom property; /\(** atom or None */
Time time;
} XSelectionEvent;
.De
diff --git a/man/XSelectionRequestEvent.man b/man/XSelectionRequestEvent.man
index 2b28167f..165a9e30 100644
--- a/man/XSelectionRequestEvent.man
+++ b/man/XSelectionRequestEvent.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSREvent.man,v 1.2 2001/01/27 18:20:03 dawes Exp $
+.\" $XdotOrg: lib/X11/man/XSelectionRequestEvent.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,7 +141,7 @@
.el .sp 10p
..
.ny0
-.TH XSelectionRequestEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSelectionRequestEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XSelectionRequestEvent \- SelectionRequest event structure
.SH STRUCTURES
@@ -150,10 +153,10 @@ events contains:
.TA .5i 3i
.ta .5i 3i
typedef struct {
- int type; /* SelectionRequest */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
+ int type; /\(** SelectionRequest */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came from a SendEvent request */
+ Display *display; /\(** Display the event was read from */
Window owner;
Window requestor;
Atom selection;
diff --git a/man/XSendEvent.man b/man/XSendEvent.man
index 59fcd4cd..98f5ce5a 100644
--- a/man/XSendEvent.man
+++ b/man/XSendEvent.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSeEvent.man,v 1.3 2001/02/09 03:47:46 tsi Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,35 +140,18 @@
.el .sp 10p
..
.ny0
-.TH XSendEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSendEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XSendEvent, XDisplayMotionBufferSize, XGetMotionEvents, XTimeCoord \- send events and pointer motion history structure
.SH SYNTAX
-Status XSendEvent\^(\^\fIdisplay\fP, \fIw\fP\^, \fIpropagate\fP\^, \fIevent_mask\fP\^, \fIevent_send\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- Bool \fIpropagate\fP\^;
-.br
- long \fIevent_mask\fP\^;
-.br
- XEvent *\fIevent_send\fP\^;
-.LP
-unsigned long XDisplayMotionBufferSize\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.LP
-XTimeCoord *XGetMotionEvents\^(\^\fIdisplay\fP, \fIw\fP\^, \fIstart\fP\^, \fIstop\fP\^, \fInevents_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- Time \fIstart\fP\^, \fIstop\fP\^;
-.br
- int *\fInevents_return\fP\^;
+.HP
+Status XSendEvent\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, Bool
+\fIpropagate\fP\^, long \fIevent_mask\fP\^, XEvent *\fIevent_send\fP\^);
+.HP
+unsigned long XDisplayMotionBufferSize\^(\^Display *\fIdisplay\fP\^);
+.HP
+XTimeCoord *XGetMotionEvents\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^,
+Time \fIstart\fP\^, Time \fIstop\fP\^, int *\fInevents_return\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
@@ -187,8 +172,8 @@ history buffer.
You can pass a timestamp or
.ZN CurrentTime .
.ds Wi the window the event is to be sent to,
-.ZN PointerWindow , \
-or \
+.ZN PointerWindow ,
+or
.ZN InputFocus .
.IP \fIw\fP 1i
Specifies the window \*(Wi.
diff --git a/man/XSetArcMode.man b/man/XSetArcMode.man
index 4c0346ab..f7bb9446 100644
--- a/man/XSetArcMode.man
+++ b/man/XSetArcMode.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSeArcMod.man,v 1.2 2001/01/27 18:20:04 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,33 +140,19 @@
.el .sp 10p
..
.ny0
-.TH XSetArcMode 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSetArcMode 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XSetArcMode, XSetSubwindowMode, XSetGraphicsExposure \- GC convenience routines
.SH SYNTAX
-XSetArcMode\^(\^\fIdisplay\fP, \fIgc\fP\^, \fIarc_mode\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- int \fIarc_mode\fP\^;
-.LP
-XSetSubwindowMode\^(\^\fIdisplay\fP, \fIgc\fP\^, \fIsubwindow_mode\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- int \fIsubwindow_mode\fP\^;
-.LP
-XSetGraphicsExposures\^(\^\fIdisplay\fP, \fIgc\fP\^, \fIgraphics_exposures\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- Bool \fIgraphics_exposures\fP\^;
+.HP
+int XSetArcMode\^(\^Display *\fIdisplay\fP\^, GC \fIgc\fP\^, int
+\fIarc_mode\fP\^);
+.HP
+int XSetSubwindowMode\^(\^Display *\fIdisplay\fP\^, GC \fIgc\fP\^, int
+\fIsubwindow_mode\fP\^);
+.HP
+int XSetGraphicsExposures\^(\^Display *\fIdisplay\fP\^, GC \fIgc\fP\^, Bool
+\fIgraphics_exposures\fP\^);
.SH ARGUMENTS
.IP \fIarc_mode\fP 1i
Specifies the arc mode.
diff --git a/man/XSetClipOrigin.man b/man/XSetClipOrigin.man
index 7c1ad162..498af34c 100644
--- a/man/XSetClipOrigin.man
+++ b/man/XSetClipOrigin.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSeClipO.man,v 1.2 2001/01/27 18:20:04 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,39 +140,20 @@
.el .sp 10p
..
.ny0
-.TH XSetClipOrigin 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSetClipOrigin 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XSetClipOrigin, XSetClipMask, XSetClipRectangles \- GC convenience routines
.SH SYNTAX
-XSetClipOrigin\^(\^\fIdisplay\fP, \fIgc\fP\^, \fIclip_x_origin\fP\^, \fIclip_y_origin\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- int \fIclip_x_origin\fP\^, \fIclip_y_origin\fP\^;
-.LP
-XSetClipMask\^(\^\fIdisplay\fP, \fIgc\fP, \fIpixmap\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- Pixmap \fIpixmap\fP\^;
-.LP
-XSetClipRectangles\^(\^\fIdisplay\fP, \fIgc\fP\^, \fIclip_x_origin\fP\^, \fIclip_y_origin\fP\^, \fIrectangles\fP\^, \fIn\fP\^, \fIordering\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- int \fIclip_x_origin\fP\^, \fIclip_y_origin\fP\^;
-.br
- XRectangle \fIrectangles\fP[]\^;
-.br
- int \fIn\fP\^;
-.br
- int \fIordering\fP\^;
+.HP
+int XSetClipOrigin\^(\^Display *\fIdisplay\fP\^, GC \fIgc\fP\^, int
+\fIclip_x_origin\fP\^, int \fIclip_y_origin\fP\^);
+.HP
+int XSetClipMask\^(\^Display *\fIdisplay\fP\^, GC \fIgc\fP\^, Pixmap
+\fIpixmap\fP\^);
+.HP
+int XSetClipRectangles\^(\^Display *\fIdisplay\fP\^, GC \fIgc\fP\^, int
+\fIclip_x_origin\fP\^, int \fIclip_y_origin\fP\^, XRectangle
+\fIrectangles\fP[]\^, int \fIn\fP\^, int \fIordering\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XSetCloseDownMode.man b/man/XSetCloseDownMode.man
index 0b55b317..9c3ed008 100644
--- a/man/XSetCloseDownMode.man
+++ b/man/XSetCloseDownMode.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSeClosDM.man,v 1.2 2001/01/27 18:20:04 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,21 +140,14 @@
.el .sp 10p
..
.ny0
-.TH XSetCloseDownMode 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSetCloseDownMode 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XSetCloseDownMode, XKillClient \- control clients
.SH SYNTAX
-XSetCloseDownMode\^(\^\fIdisplay\fP, \fIclose_mode\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIclose_mode\fP\^;
-.LP
-XKillClient\^(\^\fIdisplay\fP, \fIresource\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XID \fIresource\fP\^;
+.HP
+int XSetCloseDownMode\^(\^Display *\fIdisplay\fP\^, int \fIclose_mode\fP\^);
+.HP
+int XKillClient\^(\^Display *\fIdisplay\fP\^, XID \fIresource\fP\^);
.SH ARGUMENTS
.IP \fIclose_mode\fP 1i
Specifies the client close-down mode.
diff --git a/man/XSetCommand.man b/man/XSetCommand.man
index fc877be4..3d86d306 100644
--- a/man/XSetCommand.man
+++ b/man/XSetCommand.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSeCmd.man,v 1.3 2001/02/09 03:47:46 tsi Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,30 +140,16 @@
.el .sp 10p
..
.ny0
-.TH XSetCommand 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSetCommand 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XSetCommand, XGetCommand \- set or read a window's WM_COMMAND property
.SH SYNTAX
-XSetCommand\^(\^\fIdisplay\fP, \fIw\fP, \fIargv\fP, \fIargc\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- char **\fIargv\fP\^;
-.br
- int \fIargc\fP\^;
-.LP
-Status XGetCommand\^(\^\fIdisplay\fP, \fIw\fP, \fIargv_return\fP, \
-\fIargc_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- char ***\fIargv_return\fP\^;
-.br
- int *\fIargc_return\fP\^;
+.HP
+int XSetCommand\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, char
+**\fIargv\fP\^, int \fIargc\fP\^);
+.HP
+Status XGetCommand\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, char
+***\fIargv_return\fP\^, int *\fIargc_return\fP\^);
.SH ARGUMENTS
.IP \fIargc\fP 1i
Specifies the number of arguments.
diff --git a/man/XSetErrorHandler.man b/man/XSetErrorHandler.man
index 5bc98e6e..c3acf27a 100644
--- a/man/XSetErrorHandler.man
+++ b/man/XSetErrorHandler.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSeErrHan.man,v 1.2 2001/01/27 18:20:04 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,43 +140,25 @@
.el .sp 10p
..
.ny0
-.TH XSetErrorHandler 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSetErrorHandler 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XSetErrorHandler, XGetErrorText, XDisplayName, XSetIOErrorHandler, XGetErrorDatabaseText \- default error handlers
.SH SYNTAX
-int (*XSetErrorHandler\^(\^\fIhandler\fP\^)\^)\^(\^)
-.br
- int (\^*\^\fIhandler\fP\^)\^(Display *, XErrorEvent *)
-.LP
-XGetErrorText\^(\^\fIdisplay\fP, \fIcode\fP, \fIbuffer_return\fP, \fIlength\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIcode\fP\^;
-.br
- char *\fIbuffer_return\fP\^;
-.br
- int \fIlength\fP\^;
-.LP
-char *XDisplayName\^(\^\fIstring\fP\^)
-.br
- char *\fIstring\fP\^;
-.LP
-int (*XSetIOErrorHandler\^(\^\fIhandler\fP\^)\^)\^(\^)
-.br
- int (\^*\^\fIhandler\fP\^)(Display *);
-.LP
-XGetErrorDatabaseText\^(\^\fIdisplay\fP, \fIname\fP, \fImessage\fP, \fIdefault_string\fP, \fIbuffer_return\fP, \fIlength\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- char *\fIname\fP, *\fImessage\fP\^;
-.br
- char *\fIdefault_string\fP\^;
-.br
- char *\fIbuffer_return\fP\^;
-.br
- int \fIlength\fP\^;
+.HP
+int (*XSetErrorHandler\^(\^int (\^*\^\fIhandler\fP\^)\^(Display *, XErrorEvent
+*)\^)\^)\^(\^);
+.HP
+int XGetErrorText\^(\^Display *\fIdisplay\fP\^, int \fIcode\fP\^, char
+*\fIbuffer_return\fP\^, int \fIlength\fP\^);
+.HP
+char *XDisplayName\^(\^char *\fIstring\fP\^);
+.HP
+int (*XSetIOErrorHandler\^(\^int (\^*\^\fIhandler\fP\^)(Display
+*)\^)\^)\^(\^);
+.HP
+int XGetErrorDatabaseText\^(\^Display *\fIdisplay\fP\^, char *\fIname\fP, char
+*\fImessage\fP\^, char *\fIdefault_string\fP\^, char *\fIbuffer_return\fP\^,
+int \fIlength\fP\^);
.SH ARGUMENTS
.IP \fIbuffer_return\fP 1i
Returns the error description.
diff --git a/man/XSetFillStyle.man b/man/XSetFillStyle.man
index b2604862..85c56bfa 100644
--- a/man/XSetFillStyle.man
+++ b/man/XSetFillStyle.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSeFillS.man,v 1.2 2001/01/27 18:20:04 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,25 +140,16 @@
.el .sp 10p
..
.ny0
-.TH XSetFillStyle 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSetFillStyle 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XSetFillStyle, XSetFillRule \- GC convenience routines
.SH SYNTAX
-XSetFillStyle\^(\^\fIdisplay\fP, \fIgc\fP\^, \fIfill_style\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- int \fIfill_style\fP\^;
-.LP
-XSetFillRule\^(\^\fIdisplay\fP, \fIgc\fP\^, \fIfill_rule\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- int \fIfill_rule\fP\^;
+.HP
+int XSetFillStyle\^(\^Display *\fIdisplay\fP\^, GC \fIgc\fP\^, int
+\fIfill_style\fP\^);
+.HP
+int XSetFillRule\^(\^Display *\fIdisplay\fP\^, GC \fIgc\fP\^, int
+\fIfill_rule\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XSetFont.man b/man/XSetFont.man
index f2a9eff4..7401c05c 100644
--- a/man/XSetFont.man
+++ b/man/XSetFont.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSeFont.man,v 1.2 2001/01/27 18:20:04 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,17 +140,12 @@
.el .sp 10p
..
.ny0
-.TH XSetFont 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSetFont 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XSetFont \- GC convenience routines
.SH SYNTAX
-XSetFont\^(\^\fIdisplay\fP, \fIgc\fP\^, \fIfont\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- Font \fIfont\fP\^;
+.HP
+int XSetFont\^(\^Display *\fIdisplay\fP\^, GC \fIgc\fP\^, Font \fIfont\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XSetFontPath.man b/man/XSetFontPath.man
index 4aa0a7e1..bd917092 100644
--- a/man/XSetFontPath.man
+++ b/man/XSetFontPath.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSeFontP.man,v 1.2 2001/01/27 18:20:04 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,29 +140,16 @@
.el .sp 10p
..
.ny0
-.TH XSetFontPath 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSetFontPath 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XSetFontPath, XGetFontPath, XFreeFontPath \- set, get, or free the font search path
.SH SYNTAX
-XSetFontPath\^(\^\fIdisplay\fP, \fIdirectories\fP\^, \fIndirs\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- char **\fIdirectories\fP\^;
-.br
- int \fIndirs\fP\^;
-.LP
-char **XGetFontPath\^(\^\fIdisplay\fP, \fInpaths_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int *\fInpaths_return\fP\^;
-
-.LP
-XFreeFontPath\^(\^\fIlist\fP\^)
-.br
- char **\fIlist\fP\^;
-
+int XSetFontPath\^(\^Display *\fIdisplay\fP\^, char **\fIdirectories\fP\^, int
+\fIndirs\fP\^);
+.HP
+char **XGetFontPath\^(\^Display *\fIdisplay\fP\^, int *\fInpaths_return\fP\^);
+.HP
+int XFreeFontPath\^(\^char **\fIlist\fP\^);
.SH ARGUMENTS
.IP \fIdirectories\fP 1i
Specifies the directory path used to look for a font.
diff --git a/man/XSetICFocus.man b/man/XSetICFocus.man
index ccc38e1a..1e6dd6e2 100644
--- a/man/XSetICFocus.man
+++ b/man/XSetICFocus.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSICFoc.man,v 1.2 2001/01/27 18:20:03 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,17 +140,14 @@
.el .sp 10p
..
.ny0
-.TH XSetICFocus 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSetICFocus 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XSetICFocus, XUnsetICFocus \- set and unset input context focus
.SH SYNTAX
-void XSetICFocus\^(\^\fIic\fP\^)
-.br
- XIC \fIic\fP\^;
-.LP
-void XUnsetICFocus\^(\^\fIic\fP\^)
-.br
- XIC \fIic\fP\^;
+.HP
+void XSetICFocus\^(\^XIC \fIic\fP\^);
+.HP
+void XUnsetICFocus\^(\^XIC \fIic\fP\^);
.SH ARGUMENTS
.IP \fIic\fP 1i
Specifies the input context.
diff --git a/man/XSetICValues.man b/man/XSetICValues.man
index 1b7b2d50..c7aca29e 100644
--- a/man/XSetICValues.man
+++ b/man/XSetICValues.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSICVals.man,v 1.2 2001/01/27 18:20:03 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,17 +140,14 @@
.el .sp 10p
..
.ny0
-.TH XSetICValues 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSetICValues 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XSetICValues, XGetICValues \- set and obtain XIC values
.SH SYNTAX
-char * XSetICValues\^(\^\fIic\fP\^, ...)
-.br
- XIC \fIic\fP\^;
-.LP
-char * XGetICValues\^(\^\fIic\fP\^, ...)
-.br
- XIC \fIic\fP\^;
+.HP
+char * XSetICValues\^(\^XIC \fIic\fP, ...\^);
+.HP
+char * XGetICValues\^(\^XIC \fIic\fP, ...\^);
.SH ARGUMENTS
.IP \fIic\fP 1i
Specifies the input context.
diff --git a/man/XSetInputFocus.man b/man/XSetInputFocus.man
index eef487fb..821241b4 100644
--- a/man/XSetInputFocus.man
+++ b/man/XSetInputFocus.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSeInFoc.man,v 1.2 2001/01/27 18:20:04 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,27 +140,16 @@
.el .sp 10p
..
.ny0
-.TH XSetInputFocus 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSetInputFocus 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XSetInputFocus, XGetInputFocus \- control input focus
.SH SYNTAX
-XSetInputFocus\^(\^\fIdisplay\fP, \fIfocus\fP\^, \fIrevert_to\fP\^, \fItime\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIfocus\fP\^;
-.br
- int \fIrevert_to\fP\^;
-.br
- Time \fItime\fP\^;
-.LP
-XGetInputFocus\^(\^\fIdisplay\fP, \fIfocus_return\fP\^, \fIrevert_to_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window *\fIfocus_return\fP\^;
-.br
- int *\fIrevert_to_return\fP\^;
+.HP
+int XSetInputFocus\^(\^Display *\fIdisplay\fP\^, Window \fIfocus\fP\^, int
+\fIrevert_to\fP\^, Time \fItime\fP\^);
+.HP
+int XGetInputFocus\^(\^Display *\fIdisplay\fP\^, Window *\fIfocus_return\fP\^,
+int *\fIrevert_to_return\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XSetLineAttributes.man b/man/XSetLineAttributes.man
index b7c33aa2..7a903c42 100644
--- a/man/XSetLineAttributes.man
+++ b/man/XSetLineAttributes.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSeLAttr.man,v 1.2 2001/01/27 18:20:04 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,35 +140,17 @@
.el .sp 10p
..
.ny0
-.TH XSetLineAttributes 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSetLineAttributes 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XSetLineAttributes, XSetDashes \- GC convenience routines
.SH SYNTAX
-XSetLineAttributes\^(\^\fIdisplay\fP, \fIgc\fP\^, \fIline_width\fP\^, \fIline_style\fP\^, \fIcap_style\fP\^, \fIjoin_style\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- unsigned int \fIline_width\fP\^;
-.br
- int \fIline_style\fP\^;
-.br
- int \fIcap_style\fP\^;
-.br
- int \fIjoin_style\fP\^;
-.LP
-XSetDashes\^(\^\fIdisplay\fP, \fIgc\fP\^, \fIdash_offset\fP\^, \fIdash_list\fP\^, \fIn\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- int \fIdash_offset\fP\^;
-.br
- char \fIdash_list\fP[]\^;
-.br
- int \fIn\fP\^;
+.HP
+int XSetLineAttributes\^(\^Display *\fIdisplay\fP\^, GC \fIgc\fP\^, unsigned
+int \fIline_width\fP\^, int \fIline_style\fP\^, int \fIcap_style\fP\^, int
+\fIjoin_style\fP\^);
+.HP
+int XSetDashes\^(\^Display *\fIdisplay\fP\^, GC \fIgc\fP\^, int
+\fIdash_offset\fP\^, char \fIdash_list\fP[]\^, int \fIn\fP\^);
.SH ARGUMENTS
.IP \fIcap_style\fP 1i
Specifies the line-style and cap-style you want to set for the specified GC.
diff --git a/man/XSetPointerMapping.man b/man/XSetPointerMapping.man
index 265809ae..da09bac2 100644
--- a/man/XSetPointerMapping.man
+++ b/man/XSetPointerMapping.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSePMap.man,v 1.2 2001/01/27 18:20:04 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,25 +140,16 @@
.el .sp 10p
..
.ny0
-.TH XSetPointerMapping 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSetPointerMapping 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XSetPointerMapping, XGetPointerMapping \- manipulate pointer settings
.SH SYNTAX
-int XSetPointerMapping\^(\^\fIdisplay\fP, \fImap\fP, \fInmap\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- unsigned char \fImap\fP\^[]\^;
-.br
- int \fInmap\fP\^;
-.LP
-int XGetPointerMapping\^(\^\fIdisplay\fP, \fImap_return\fP, \fInmap\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- unsigned char \fImap_return\fP\^[]\^;
-.br
- int \fInmap\fP\^;
+.HP
+int XSetPointerMapping\^(\^Display *\fIdisplay\fP\^, unsigned char
+\fImap\fP\^[]\^, int \fInmap\fP\^);
+.HP
+int XGetPointerMapping\^(\^Display *\fIdisplay\fP\^, unsigned char
+\fImap_return\fP\^[]\^, int \fInmap\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XSetScreenSaver.man b/man/XSetScreenSaver.man
index e4a33141..0632ae5d 100644
--- a/man/XSetScreenSaver.man
+++ b/man/XSetScreenSaver.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSeScSav.man,v 1.2 2001/01/27 18:20:04 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,45 +140,24 @@
.el .sp 10p
..
.ny0
-.TH XSetScreenSaver 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSetScreenSaver 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XSetScreenSaver, XForceScreenSaver, XActivateScreenSaver, XResetScreenSaver, XGetScreenSaver \- manipulate the screen saver
.SH SYNTAX
-XSetScreenSaver\^(\^\fIdisplay\fP, \fItimeout\fP\^, \fIinterval\fP\^, \fIprefer_blanking\fP\^, \fIallow_exposures\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fItimeout\fP\^, \fIinterval\fP\^;
-.br
- int \fIprefer_blanking\fP\^;
-.br
- int \fIallow_exposures\fP\^;
-.LP
-XForceScreenSaver\^(\^\fIdisplay\fP\^, \fImode\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fImode\fP\^;
-.LP
-XActivateScreenSaver\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.LP
-XResetScreenSaver\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.LP
-XGetScreenSaver\^(\^\fIdisplay\fP, \fItimeout_return\fP\^, \fIinterval_return\fP\^, \fIprefer_blanking_return\fP\^,
-.br
- \fIallow_exposures_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int *\fItimeout_return\fP\^, *\fIinterval_return\fP\^;
-.br
- int *\fIprefer_blanking_return\fP\^;
-.br
- int *\fIallow_exposures_return\fP\^;
+.HP
+int XSetScreenSaver\^(\^Display *\fIdisplay\fP\^, int \fItimeout\fP\^,
+int \fIinterval\fP\^, int \fIprefer_blanking\fP\^, int
+\fIallow_exposures\fP\^);
+.HP
+int XForceScreenSaver\^(\^Display *\fIdisplay\fP\^, int \fImode\fP\^);
+.HP
+int XActivateScreenSaver\^(\^Display *\fIdisplay\fP\^);
+.HP
+int XResetScreenSaver\^(\^Display *\fIdisplay\fP\^);
+.HP
+int XGetScreenSaver\^(\^Display *\fIdisplay\fP\^, int *\fItimeout_return\fP\^,
+int *\fIinterval_return\fP\^, int *\fIprefer_blanking_return\fP\^, int
+*\fIallow_exposures_return\fP\^);
.SH ARGUMENTS
.IP \fIallow_exposures\fP 1i
Specifies the screen save control values.
diff --git a/man/XSetSelectionOwner.man b/man/XSetSelectionOwner.man
index 2adf20b2..7ff67ed7 100644
--- a/man/XSetSelectionOwner.man
+++ b/man/XSetSelectionOwner.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSeSelOwn.man,v 1.2 2001/01/27 18:20:04 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,37 +140,20 @@
.el .sp 10p
..
.ny0
-.TH XSetSelectionOwner 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSetSelectionOwner 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XSetSelectionOwner, XGetSelectionOwner, XConvertSelection \- manipulate window selection
.SH SYNTAX
-XSetSelectionOwner\^(\^\fIdisplay\fP, \fIselection\fP\^, \fIowner\fP\^, \fItime\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Atom \fIselection\fP\^;
-.br
- Window \fIowner\fP\^;
-.br
- Time \fItime\fP\^;
-.LP
-Window XGetSelectionOwner\^(\^\fIdisplay\fP, \fIselection\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Atom \fIselection\fP\^;
-.LP
-XConvertSelection\^(\^\fIdisplay\fP, \fIselection\fP\^, \fItarget\fP\^, \fIproperty\fP\^, \fIrequestor\fP\^, \fItime\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Atom \fIselection\fP\^, \fItarget\fP\^;
-.br
- Atom \fIproperty\fP\^;
-.br
- Window \fIrequestor\fP\^;
-.br
- Time \fItime\fP\^;
+.HP
+int XSetSelectionOwner\^(\^Display *\fIdisplay\fP\^, Atom \fIselection\fP\^,
+Window \fIowner\fP\^, Time \fItime\fP\^);
+.HP
+Window XGetSelectionOwner\^(\^Display *\fIdisplay\fP\^, Atom
+\fIselection\fP\^);
+.HP
+int XConvertSelection\^(\^Display *\fIdisplay\fP\^, Atom \fIselection\fP\^,
+Atom \fItarget\fP\^, Atom \fIproperty\fP\^, Window \fIrequestor\fP\^, Time
+\fItime\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XSetState.man b/man/XSetState.man
index 83457fd8..21485678 100644
--- a/man/XSetState.man
+++ b/man/XSetState.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSeState.man,v 1.3 2001/12/17 03:04:40 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,53 +140,26 @@
.el .sp 10p
..
.ny0
-.TH XSetState 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSetState 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
-XSetState, XSetFunction, XSetPlanemask, XSetForeground, XSetBackground \- GC convenience routines
+XSetState, XSetFunction, XSetPlaneMask, XSetForeground, XSetBackground \- GC convenience routines
.SH SYNTAX
-XSetState\^(\^\fIdisplay\fP, \fIgc\fP\^, \fIforeground\fP\^, \fIbackground\fP\^, \fIfunction\fP\^, \fIplane_mask\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- unsigned long \fIforeground\fP\^, \fIbackground\fP\^;
-.br
- int \fIfunction\fP\^;
-.br
- unsigned long \fIplane_mask\fP\^;
-.LP
-XSetFunction\^(\^\fIdisplay\fP, \fIgc\fP\^, \fIfunction\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- int \fIfunction\fP\^;
-.LP
-XSetPlaneMask\^(\^\fIdisplay\fP, \fIgc\fP\^, \fIplane_mask\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- unsigned long \fIplane_mask\fP\^;
-.LP
-XSetForeground\^(\^\fIdisplay\fP, \fIgc\fP\^, \fIforeground\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- unsigned long \fIforeground\fP\^;
-.LP
-XSetBackground\^(\^\fIdisplay\fP, \fIgc\fP\^, \fIbackground\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- unsigned long \fIbackground\fP\^;
+.HP
+int XSetState\^(\^Display *\fIdisplay\fP\^, GC \fIgc\fP\^, unsigned long
+\fIforeground\fP\^, unsigned int \fIbackground\fP\^, int \fIfunction\fP\^,
+unsigned long \fIplane_mask\fP\^);
+.HP
+int XSetFunction\^(\^Display *\fIdisplay\fP\^, GC \fIgc\fP\^, int
+\fIfunction\fP\^);
+.HP
+int XSetPlaneMask\^(\^Display *\fIdisplay\fP\^, GC \fIgc\fP\^, unsigned long
+\fIplane_mask\fP\^);
+.HP
+int XSetForeground\^(\^Display *\fIdisplay\fP\^, GC \fIgc\fP\^, unsigned long
+\fIforeground\fP\^);
+.HP
+int XSetBackground\^(\^Display *\fIdisplay\fP\^, GC \fIgc\fP\^, unsigned long
+\fIbackground\fP\^);
.SH ARGUMENTS
.IP \fIbackground\fP 1i
Specifies the background you want to set for the specified GC.
diff --git a/man/XSetTextProperty.man b/man/XSetTextProperty.man
index 45a0fe3f..24b6fc99 100644
--- a/man/XSetTextProperty.man
+++ b/man/XSetTextProperty.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSeTProp.man,v 1.3 2001/02/09 03:47:46 tsi Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,31 +140,16 @@
.el .sp 10p
..
.ny0
-.TH XSetTextProperty 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSetTextProperty 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XSetTextProperty, XGetTextProperty \- set and read text properties
.SH SYNTAX
-void XSetTextProperty\^(\^\fIdisplay\fP, \fIw\fP, \fItext_prop\fP, \
-\fIproperty\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- XTextProperty *\fItext_prop\fP\^;
-.br
- Atom \fIproperty\fP\^;
-.LP
-Status XGetTextProperty\^(\^\fIdisplay\fP, \fIw\fP, \fItext_prop_return\fP, \
-\fIproperty\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- XTextProperty *\fItext_prop_return\fP\^;
-.br
- Atom \fIproperty\fP\^;
+.HP
+void XSetTextProperty\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^,
+XTextProperty *\fItext_prop\fP\^, Atom \fIproperty\fP\^);
+.HP
+Status XGetTextProperty\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^,
+XTextProperty *\fItext_prop_return\fP\^, Atom \fIproperty\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XSetTile.man b/man/XSetTile.man
index cce3789d..f9e439da 100644
--- a/man/XSetTile.man
+++ b/man/XSetTile.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSeTile.man,v 1.2 2001/01/27 18:20:05 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,33 +140,19 @@
.el .sp 10p
..
.ny0
-.TH XSetTile 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSetTile 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XSetTile, XSetStipple, XSetTSOrigin \- GC convenience routines
.SH SYNTAX
-XSetTile\^(\^\fIdisplay\fP, \fIgc\fP\^, \fItile\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- Pixmap \fItile\fP\^;
-.LP
-XSetStipple\^(\^\fIdisplay\fP, \fIgc\fP\^, \fIstipple\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- Pixmap \fIstipple\fP\^;
-.LP
-XSetTSOrigin\^(\^\fIdisplay\fP, \fIgc\fP\^, \fIts_x_origin\fP\^, \fIts_y_origin\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- int \fIts_x_origin\fP\^, \fIts_y_origin\fP\^;
+.HP
+int XSetTile\^(\^Display *\fIdisplay\fP\^, GC \fIgc\fP\^, Pixmap
+\fItile\fP\^);
+.HP
+int XSetStipple\^(\^Display *\fIdisplay\fP\^, GC \fIgc\fP\^, Pixmap
+\fIstipple\fP\^);
+.HP
+int XSetTSOrigin\^(\^Display *\fIdisplay\fP\^, GC \fIgc\fP\^, int
+\fIts_x_origin\fP\^, int \fIts_y_origin\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XSetTransientForHint.man b/man/XSetTransientForHint.man
index 2c229e4f..4ace855d 100644
--- a/man/XSetTransientForHint.man
+++ b/man/XSetTransientForHint.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSeTFHint.man,v 1.2 2001/01/27 18:20:05 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,25 +140,16 @@
.el .sp 10p
..
.ny0
-.TH XSetTransientForHint 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSetTransientForHint 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XSetTransientForHint, XGetTransientForHint \- set or read a window's WM_TRANSIENT_FOR property
.SH SYNTAX
-XSetTransientForHint\^(\^\fIdisplay\fP, \fIw\fP, \fIprop_window\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- Window \fIprop_window\fP\^;
-.LP
-Status XGetTransientForHint\^(\^\fIdisplay\fP, \fIw\fP, \fIprop_window_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- Window *\fIprop_window_return\fP\^;
+.HP
+int XSetTransientForHint\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^,
+Window \fIprop_window\fP\^);
+.HP
+Status XGetTransientForHint\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^,
+Window *\fIprop_window_return\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XSetWMClientMachine.man b/man/XSetWMClientMachine.man
index 7851abbc..8299ee1b 100644
--- a/man/XSetWMClientMachine.man
+++ b/man/XSetWMClientMachine.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSeWMCMac.man,v 1.2 2001/01/27 18:20:05 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,25 +140,16 @@
.el .sp 10p
..
.ny0
-.TH XSetWMClientMachine 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSetWMClientMachine 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XSetWMClientMachine, XGetWMClientMachine \- set or read a window's WM_CLIENT_MACHINE property
.SH SYNTAX
-void XSetWMClientMachine\^(\^\fIdisplay\fP, \fIw\fP, \fItext_prop\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- XTextProperty *\fItext_prop\fP\^;
-.LP
-Status XGetWMClientMachine\^(\^\fIdisplay\fP, \fIw\fP, \fItext_prop_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- XTextProperty *\fItext_prop_return\fP\^;
+.HP
+void XSetWMClientMachine\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^,
+XTextProperty *\fItext_prop\fP\^);
+.HP
+Status XGetWMClientMachine\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^,
+XTextProperty *\fItext_prop_return\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XSetWMColormapWindows.man b/man/XSetWMColormapWindows.man
index 5dd1b5e2..015ec823 100644
--- a/man/XSetWMColormapWindows.man
+++ b/man/XSetWMColormapWindows.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSeWMCWin.man,v 1.3 2001/02/09 03:47:46 tsi Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,31 +140,16 @@
.el .sp 10p
..
.ny0
-.TH XSetWMColormapWindows 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSetWMColormapWindows 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XSetWMColormapWindows, XGetWMColormapWindows \- set or read a window's WM_COLORMAP_WINDOWS property
.SH SYNTAX
-Status XSetWMColormapWindows\^(\^\fIdisplay\fP, \fIw\fP, \
-\fIcolormap_windows\fP, \fIcount\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- Window *\fIcolormap_windows\fP\^;
-.br
- int \fIcount\fP\^;
-.LP
-Status XGetWMColormapWindows\^(\^\fIdisplay\fP, \fIw\fP, \
-\fIcolormap_windows_return\fP, \fIcount_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- Window **\fIcolormap_windows_return\fP\^;
-.br
- int *\fIcount_return\fP\^;
+.HP
+Status XSetWMColormapWindows\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^,
+Window *\fIcolormap_windows\fP\^, int \fIcount\fP\^);
+.HP
+Status XGetWMColormapWindows\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^,
+Window **\fIcolormap_windows_return\fP\^, int *\fIcount_return\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XSetWMIconName.man b/man/XSetWMIconName.man
index 22a5276f..baef8849 100644
--- a/man/XSetWMIconName.man
+++ b/man/XSetWMIconName.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSeWMINam.man,v 1.2 2001/01/27 18:20:05 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,41 +140,22 @@
.el .sp 10p
..
.ny0
-.TH XSetWMIconName 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSetWMIconName 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XSetWMIconName, XGetWMIconName, XSetIconName, XGetIconName \- set or read a window's WM_ICON_NAME property
.SH SYNTAX
-void XSetWMIconName\^(\^\fIdisplay\fP, \fIw\fP, \fItext_prop\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- XTextProperty *\fItext_prop\fP\^;
-.LP
-Status XGetWMIconName\^(\^\fIdisplay\fP, \fIw\fP, \fItext_prop_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- XTextProperty *\fItext_prop_return\fP\^;
-.LP
-XSetIconName\^(\^\fIdisplay\fP, \fIw\fP\^, \fIicon_name\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- char *\fIicon_name\fP\^;
-.LP
-Status XGetIconName\^(\^\fIdisplay\fP, \fIw\fP\^, \fIicon_name_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- char **\fIicon_name_return\fP\^;
+.HP
+void XSetWMIconName\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^,
+XTextProperty *\fItext_prop\fP\^);
+.HP
+Status XGetWMIconName\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^,
+XTextProperty *\fItext_prop_return\fP\^);
+.HP
+int XSetIconName\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, char
+*\fIicon_name\fP\^);
+.HP
+Status XGetIconName\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, char
+**\fIicon_name_return\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XSetWMName.man b/man/XSetWMName.man
index e076d520..0e963aa2 100644
--- a/man/XSetWMName.man
+++ b/man/XSetWMName.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSeWMName.man,v 1.2 2001/01/27 18:20:05 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,41 +140,22 @@
.el .sp 10p
..
.ny0
-.TH XSetWMName 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSetWMName 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XSetWMName, XGetWMName, XStoreName, XFetchName \- set or read a window's WM_NAME property
.SH SYNTAX
-void XSetWMName\^(\^\fIdisplay\fP, \fIw\fP, \fItext_prop\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- XTextProperty *\fItext_prop\fP\^;
-.LP
-Status XGetWMName\^(\^\fIdisplay\fP, \fIw\fP, \fItext_prop_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- XTextProperty *\fItext_prop_return\fP\^;
-.LP
-XStoreName\^(\^\fIdisplay\fP, \fIw\fP\^, \fIwindow_name\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- char *\fIwindow_name\fP\^;
-.LP
-Status XFetchName\^(\^\fIdisplay\fP, \fIw\fP\^, \fIwindow_name_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- char **\fIwindow_name_return\fP\^;
+.HP
+void XSetWMName\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, XTextProperty
+*\fItext_prop\fP\^);
+.HP
+Status XGetWMName\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^,
+XTextProperty *\fItext_prop_return\fP\^);
+.HP
+int XStoreName\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, char
+*\fIwindow_name\fP\^);
+.HP
+Status XFetchName\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, char
+**\fIwindow_name_return\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XSetWMProperties.man b/man/XSetWMProperties.man
index 84b109ff..2398fbc9 100644
--- a/man/XSetWMProperties.man
+++ b/man/XSetWMProperties.man
@@ -1,4 +1,5 @@
.\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X Consortium
+.\" Copyright \(co 2000 The XFree86 Project, Inc.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining
.\" a copy of this software and associated documentation files (the
@@ -39,6 +40,8 @@
.\" Digital and Tektronix makes no representations about the suitability
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
+.\"
+.\" $XFree86: xc/doc/man/X11/XSeWMProp.man,v 1.4 2001/02/09 03:47:46 tsi Exp $
.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
@@ -138,53 +141,25 @@
.el .sp 10p
..
.ny0
-.TH XSetWMProperties 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSetWMProperties 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
-XSetWMProperties, XmbSetWMProperties \- set standard window properties
+XSetWMProperties, XmbSetWMProperties, Xutf8SetWMProperties \- set standard window properties
.SH SYNTAX
-void XSetWMProperties\^(\^\fIdisplay\fP, \fIw\fP, \fIwindow_name\fP, \
-\fIicon_name\fP, \fIargv\fP, \fIargc\fP, \fInormal_hints\fP, \fIwm_hints\fP, \
-\fIclass_hints\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- XTextProperty *\fIwindow_name\fP\^;
-.br
- XTextProperty *\fIicon_name\fP\^;
-.br
- char **\fIargv\fP\^;
-.br
- int \fIargc\fP\^;
-.br
- XSizeHints *\fInormal_hints\fP\^;
-.br
- XWMHints *\fIwm_hints\fP\^;
-.br
- XClassHint *\fIclass_hints\fP\^;
-.LP
-void XmbSetWMProperties\^(\^\fIdisplay\fP\^, \fIw\fP\^, \fIwindow_name\fP\^, \fIicon_name\fP\^, \fIargv\fP\^, \fIargc\fP\^,
-.br
- \fInormal_hints\fP\^, \fIwm_hints\fP\^, \fIclass_hints\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- char *\fIwindow_name\fP\^;
-.br
- char *\fIicon_name\fP\^;
-.br
- char *\fIargv\fP\^[];
-.br
- int \fIargc\fP\^;
-.br
- XSizeHints *\fInormal_hints\fP\^;
-.br
- XWMHints *\fIwm_hints\fP\^;
-.br
- XClassHint *\fIclass_hints\fP\^;
+.HP
+void XSetWMProperties\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^,
+XTextProperty *\fIwindow_name\fP\^, XTextProperty *\fIicon_name\fP\^, char
+**\fIargv\fP\^, int \fIargc\fP\^, XSizeHints *\fInormal_hints\fP\^, XWMHints
+*\fIwm_hints\fP\^, XClassHint *\fIclass_hints\fP\^);
+.HP
+void XmbSetWMProperties\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, char
+*\fIwindow_name\fP\^, char *\fIicon_name\fP\^, char *\fIargv\fP\^[], int
+\fIargc\fP\^, XSizeHints *\fInormal_hints\fP\^, XWMHints *\fIwm_hints\fP\^,
+XClassHint *\fIclass_hints\fP\^);
+.HP
+void Xutf8SetWMProperties\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, char
+*\fIwindow_name\fP\^, char *\fIicon_name\fP\^, char *\fIargv\fP\^[], int
+\fIargc\fP\^, XSizeHints *\fInormal_hints\fP\^, XWMHints *\fIwm_hints\fP\^,
+XClassHint *\fIclass_hints\fP\^);
.SH ARGUMENTS
.IP \fIargc\fP 1i
Specifies the number of arguments.
@@ -267,19 +242,22 @@ any directory prefixes, is substituted for res_name.
.LP
The
.ZN XmbSetWMProperties
-convenience function provides a simple programming interface
+and
+.ZN Xutf8SetWMProperties
+convenience functions provide a simple programming interface
for setting those essential window properties that are used
for communicating with other clients
(particularly window and session managers).
.LP
If the window_name argument is non-NULL,
-.ZN XmbSetWMProperties
-sets the WM_NAME property.
+they set the WM_NAME property.
If the icon_name argument is non-NULL,
+they set the WM_ICON_NAME property.
+The window_name and icon_name arguments are null-terminated strings, for
.ZN XmbSetWMProperties
-sets the WM_ICON_NAME property.
-The window_name and icon_name arguments are null-terminated strings
-in the encoding of the current locale.
+in the encoding of the current locale, for
+.ZN Xutf8SetWMProperties
+in UTF-8 encoding.
If the arguments can be fully converted to the STRING encoding,
the properties are created with type ``STRING'';
otherwise, the arguments are converted to Compound Text,
@@ -287,18 +265,24 @@ and the properties are created with type ``COMPOUND_TEXT''.
.LP
If the normal_hints argument is non-NULL,
.ZN XmbSetWMProperties
-calls
+and
+.ZN Xutf8SetWMProperties
+call
.ZN XSetWMNormalHints ,
which sets the WM_NORMAL_HINTS property (see section 14.1.7).
If the wm_hints argument is non-NULL,
.ZN XmbSetWMProperties
-calls
+and
+.ZN Xutf8SetWMProperties
+call
.ZN XSetWMHints ,
which sets the WM_HINTS property (see section 14.1.6).
.LP
If the argv argument is non-NULL,
.ZN XmbSetWMProperties
-sets the WM_COMMAND property from argv and argc.
+and
+.ZN Xutf8SetWMProperties
+set the WM_COMMAND property from argv and argc.
An argc of zero indicates a zero-length command.
.LP
The hostname of the machine is stored using
@@ -307,7 +291,9 @@ The hostname of the machine is stored using
.LP
If the class_hints argument is non-NULL,
.ZN XmbSetWMProperties
-sets the WM_CLASS property.
+and
+.ZN Xutf8SetWMProperties
+set the WM_CLASS property.
If the res_name member in the
.ZN XClassHint
structure is set to the NULL pointer and the RESOURCE_NAME
@@ -320,26 +306,36 @@ is substituted for res_name.
.LP
It is assumed that the supplied class_hints.res_name and argv,
the RESOURCE_NAME environment variable, and the hostname of the machine
-are in the encoding of the locale announced for the LC_CTYPE category
-(on POSIX-compliant systems, the LC_CTYPE, else LANG environment variable).
+are in the encoding of the current locale.
The corresponding WM_CLASS, WM_COMMAND, and WM_CLIENT_MACHINE properties
are typed according to the local host locale announcer.
-No encoding conversion is performed prior to storage in the properties.
+No encoding conversion is performed for these strings prior to storage
+in the properties.
.LP
For clients that need to process the property text in a locale,
.ZN XmbSetWMProperties
-sets the WM_LOCALE_NAME property to be the name of the current locale.
+and
+.ZN Xutf8SetWMProperties
+set the WM_LOCALE_NAME 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.
.LP
-.ZN XSetWMProperties
-and
+.ZN XSetWMProperties ,
.ZN XmbSetWMProperties
+and
+.ZN Xutf8SetWMProperties
can generate
.ZN BadAlloc
and
.ZN BadWindow
errors.
+.LP
+The function
+.ZN Xutf8SetWMProperties
+is an extension introduced by The XFree86 Project, Inc. in their 4.0.2
+release. Its presence is
+indicated by the macro
+.ZN X_HAVE_UTF8_STRING .
.SH PROPERTIES
.TP 1i
\s-1WM_CLASS\s+1
diff --git a/man/XSetWMProtocols.man b/man/XSetWMProtocols.man
index 24821304..44bf5acf 100644
--- a/man/XSetWMProtocols.man
+++ b/man/XSetWMProtocols.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSeWMProt.man,v 1.4 2003/04/28 22:17:57 herrb Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,31 +140,16 @@
.el .sp 10p
..
.ny0
-.TH XSetWMProtocols 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSetWMProtocols 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
-XSetWMProtocols, XGetWMProtocols \- set or read a window's WM__PROTOCOLS property
+XSetWMProtocols, XGetWMProtocols \- set or read a window's WM_PROTOCOLS property
.SH SYNTAX
-Status XSetWMProtocols\^(\^\fIdisplay\fP, \fIw\fP, \fIprotocols\fP, \
-\fIcount\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- Atom *\fIprotocols\fP\^;
-.br
- int \fIcount\fP\^;
-.LP
-Status XGetWMProtocols\^(\^\fIdisplay\fP, \fIw\fP, \fIprotocols_return\fP, \
-\fIcount_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.br
- Atom **\fIprotocols_return\fP\^;
-.br
- int *\fIcount_return\fP\^;
+.HP
+Status XSetWMProtocols\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, Atom
+*\fIprotocols\fP\^, int \fIcount\fP\^);
+.HP
+Status XGetWMProtocols\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^, Atom
+**\fIprotocols_return\fP\^, int *\fIcount_return\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XStoreBytes.man b/man/XStoreBytes.man
index d2ca223c..d333d99b 100644
--- a/man/XStoreBytes.man
+++ b/man/XStoreBytes.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XStBytes.man,v 1.3 2001/02/09 03:47:46 tsi Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,50 +140,25 @@
.el .sp 10p
..
.ny0
-.TH XStoreBytes 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XStoreBytes 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XStoreBytes, XStoreBuffer, XFetchBytes, XFetchBuffer, XRotateBuffers \- manipulate cut and paste buffers
.SH SYNTAX
-XStoreBytes\^(\^\fIdisplay\fP, \fIbytes\fP\^, \fInbytes\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- char *\fIbytes\fP\^;
-.br
- int \^\fInbytes\fP\^;
-.br
-.LP
-XStoreBuffer\^(\^\fIdisplay\fP, \fIbytes\fP\^, \fInbytes\fP\^, \fIbuffer\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- char *\fIbytes\fP\^;
-.br
- int \^\fInbytes\fP\^;
-.br
- int \fIbuffer\fP\^;
-.LP
-char *XFetchBytes\^(\^\fIdisplay\fP, \fInbytes_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int *\fInbytes_return\fP\^;
-.LP
-char *XFetchBuffer\^(\^\fIdisplay\fP, \fInbytes_return\fP\^, \fIbuffer\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int *\fInbytes_return\fP\^;
-.br
- int \fIbuffer\fP\^;
-.LP
-XRotateBuffers\^(\^\fIdisplay\fP, \fIrotate\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIrotate\fP\^;
+.HP
+int XStoreBytes\^(\^Display *\fIdisplay\fP\^, char *\fIbytes\fP\^, int
+\^\fInbytes\fP\^);
+.HP
+int XStoreBuffer\^(\^Display *\fIdisplay\fP\^, char *\fIbytes\fP\^, int
+\^\fInbytes\fP\^, int \fIbuffer\fP\^);
+.HP
+char *XFetchBytes\^(\^Display *\fIdisplay\fP\^, int *\fInbytes_return\fP\^);
+.HP
+char *XFetchBuffer\^(\^Display *\fIdisplay\fP\^, int *\fInbytes_return\fP\^,
+int \fIbuffer\fP\^);
+.HP
+int XRotateBuffers\^(\^Display *\fIdisplay\fP\^, int \fIrotate\fP\^);
.SH ARGUMENTS
-.ds Fn in which you want to store the bytes \
+.ds Fn in which you want to store the bytes
or from which you want the stored data returned
.IP \fIbuffer\fP 1i
Specifies the buffer \*(Fn.
diff --git a/man/XStoreColors.man b/man/XStoreColors.man
index c849a5ff..bb905826 100644
--- a/man/XStoreColors.man
+++ b/man/XStoreColors.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XStColors.man,v 1.2 2001/01/27 18:20:05 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,39 +140,19 @@
.el .sp 10p
..
.ny0
-.TH XStoreColors 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XStoreColors 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XStoreColors, XStoreColor, XStoreNamedColor \- set colors
.SH SYNTAX
-XStoreColors\^(\^\fIdisplay\fP, \fIcolormap\fP\^, \fIcolor\fP\^, \fIncolors\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Colormap \fIcolormap\fP\^;
-.br
- XColor \fIcolor\fP\^[\^]\^;
-.br
- int \fIncolors\fP\^;
-.LP
-XStoreColor\^(\^\fIdisplay\fP, \fIcolormap\fP\^, \fIcolor\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Colormap \fIcolormap\fP\^;
-.br
- XColor *\fIcolor\fP\^;
-.LP
-XStoreNamedColor\^(\^\fIdisplay\fP, \fIcolormap\fP\^, \fIcolor\fP\^, \fIpixel\fP\^, \fIflags\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Colormap \fIcolormap\fP\^;
-.br
- char *\^\fIcolor\fP\^;
-.br
- unsigned long \fIpixel\fP\^;
-.br
- int \fIflags\fP\^;
+.HP
+int XStoreColors\^(\^Display *\fIdisplay\fP\^, Colormap \fIcolormap\fP\^,
+XColor \fIcolor\fP\^[\^]\^, int \fIncolors\fP\^);
+.HP
+int XStoreColor\^(\^Display *\fIdisplay\fP\^, Colormap \fIcolormap\fP\^,
+XColor *\fIcolor\fP\^);
+.HP
+int XStoreNamedColor\^(\^Display *\fIdisplay\fP\^, Colormap \fIcolormap\fP\^,
+char *\^\fIcolor\fP\^, unsigned long \fIpixel\fP\^, int \fIflags\fP\^);
.SH ARGUMENTS
.ds Co pixel and RGB values or the color name string (for example, red)
.IP \fIcolor\fP 1i
diff --git a/man/XStringListToTextProperty.man b/man/XStringListToTextProperty.man
index 7a0021c0..02cc2165 100644
--- a/man/XStringListToTextProperty.man
+++ b/man/XStringListToTextProperty.man
@@ -1,4 +1,5 @@
.\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X Consortium
+.\" Copyright \(co 2000 The XFree86 Project, Inc.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining
.\" a copy of this software and associated documentation files (the
@@ -39,6 +40,9 @@
.\" Digital and Tektronix makes no representations about the suitability
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
+.\"
+.\" $XFree86: xc/doc/man/X11/XSLTTProp.man,v 1.5 2003/04/28 22:17:56 herrb Exp $
+.\" $XdotOrg: lib/X11/man/XStringListToTextProperty.man,v 1.2 2004-04-23 18:42:09 eich Exp $
.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
@@ -138,31 +142,18 @@
.el .sp 10p
..
.ny0
-.TH XStringListToTextProperty 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XStringListToTextProperty 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XStringListToTextProperty, XTextPropertyToStringList, XFreeStringList, XTextProperty \- convert string lists and text property structure
.SH SYNTAX
-Status XStringListToTextProperty\^(\^\fIlist\fP, \fIcount\fP, \
-\fItext_prop_return\fP\^)
-.br
- char **\fIlist\fP\^;
-.br
- int \fIcount\fP\^;
-.br
- XTextProperty *\fItext_prop_return\fP\^;
-.LP
-Status XTextPropertyToStringList\^(\^\fItext_prop\fP, \fIlist_return\fP, \
-\fIcount_return\fP\^)
-.br
- XTextProperty *\fItext_prop\fP\^;
-.br
- char ***\fIlist_return\fP\^;
-.br
- int *\fIcount_return\fP\^;
-.LP
-void XFreeStringList\^(\^\fIlist\fP\^)
-.br
- char **\fIlist\fP\^;
+.HP
+Status XStringListToTextProperty\^(\^char **\fIlist\fP\^, int \fIcount\fP\^,
+XTextProperty *\fItext_prop_return\fP\^);
+.HP
+Status XTextPropertyToStringList\^(\^XTextProperty *\fItext_prop\fP\^, char
+***\fIlist_return\fP\^, int *\fIcount_return\fP\^);
+.HP
+void XFreeStringList\^(\^char **\fIlist\fP\^);
.SH ARGUMENTS
.ds Cn strings
.IP \fIcount\fP 1i
@@ -224,7 +215,8 @@ To free the storage for the list and its contents, use
The
.ZN XFreeStringList
function releases memory allocated by
-.ZN XmbTextPropertyToTextList
+.ZN XmbTextPropertyToTextList ,
+.ZN Xutf8TextPropertyToTextList
and
.ZN XTextPropertyToStringList
and the missing charset list allocated by
@@ -238,10 +230,10 @@ structure contains:
.TA .5i 2.5i
.ta .5i 2.5i
typedef struct {
- unsigned char *value; /* property data */
- Atom encoding; /* type of property */
- int format; /* 8, 16, or 32 */
- unsigned long nitems; /* number of items in value */
+ unsigned char *value; /\(** property data */
+ Atom encoding; /\(** type of property */
+ int format; /\(** 8, 16, or 32 */
+ unsigned long nitems; /\(** number of items in value */
} XTextProperty;
.De
.SH "SEE ALSO"
diff --git a/man/XStringToKeysym.man b/man/XStringToKeysym.man
index 10615df3..9c3a48eb 100644
--- a/man/XStringToKeysym.man
+++ b/man/XStringToKeysym.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XStTKsym.man,v 1.2 2001/01/27 18:20:05 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,39 +140,22 @@
.el .sp 10p
..
.ny0
-.TH XStringToKeysym 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XStringToKeysym 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XStringToKeysym, XKeysymToString, XKeycodeToKeysym, XKeysymToKeycode, XConvertCase \- convert keysyms
.SH SYNTAX
-KeySym XStringToKeysym\^(\^\fIstring\fP\^)
-.br
- char *\fIstring\fP\^;
-.LP
-char *XKeysymToString\^(\^\fIkeysym\fP\^)
-.br
- KeySym \fIkeysym\fP\^;
-.LP
-KeySym XKeycodeToKeysym\^(\^\fIdisplay\fP, \fIkeycode\fP, \fIindex\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- KeyCode \fIkeycode\fP\^;
-.br
- int \fIindex\fP\^;
-.LP
-KeyCode XKeysymToKeycode\^(\^\fIdisplay\fP, \fIkeysym\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- KeySym \fIkeysym\fP\^;
-.LP
-void XConvertCase(\^\fIkeysym\fP, \fIlower_return\fP, \fIupper_return\fP\^)
-.br
- KeySym \fIkeysym\fP\^;
-.br
- KeySym *\fIlower_return\fP\^;
-.br
- KeySym *\fIupper_return\fP\^;
+.HP
+KeySym XStringToKeysym\^(\^char *\fIstring\fP\^);
+.HP
+char *XKeysymToString\^(\^KeySym \fIkeysym\fP\^);
+.HP
+KeySym XKeycodeToKeysym\^(\^Display *\fIdisplay\fP\^, KeyCode \fIkeycode\fP\^,
+int \fIindex\fP\^);
+.HP
+KeyCode XKeysymToKeycode\^(\^Display *\fIdisplay\fP\^, KeySym \fIkeysym\fP\^);
+.HP
+void XConvertCase(\^KeySym \fIkeysym\fP\^, KeySym *\fIlower_return\fP\^,
+KeySym *\fIupper_return\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XSupportsLocale.man b/man/XSupportsLocale.man
index fa6874fb..b03b6208 100644
--- a/man/XSupportsLocale.man
+++ b/man/XSupportsLocale.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSupLoc.man,v 1.2 2001/01/27 18:20:05 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,15 +140,14 @@
.el .sp 10p
..
.ny0
-.TH XSupportsLocal 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSupportsLocal 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XSupportsLocale, XSetLocaleModifiers \- determine locale support and configure locale modifiers
.SH SYNTAX
-Bool XSupportsLocale\^(\|)
-.LP
-char *XSetLocaleModifiers\^(\^\fImodifier_list\fP\^)
-.br
- char *\fImodifier_list\fP\^;
+.HP
+Bool XSupportsLocale\^(void);
+.HP
+char *XSetLocaleModifiers\^(\^char *\fImodifier_list\fP\^);
.SH ARGUMENTS
.IP \fImodifier_list\fP 1i
Specifies the modifiers.
diff --git a/man/XSynchronize.man b/man/XSynchronize.man
index d37c8f92..65ca2c12 100644
--- a/man/XSynchronize.man
+++ b/man/XSynchronize.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XSync.man,v 1.2 2001/01/27 18:20:05 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,21 +140,15 @@
.el .sp 10p
..
.ny0
-.TH XSynchronize 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XSynchronize 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XSynchronize, XSetAfterFunction \- enable or disable synchronization
.SH SYNTAX
-int (*XSynchronize\^(\^\fIdisplay\fP, \fIonoff\fP\^)\^)()
-.br
- Display *\fIdisplay\fP\^;
-.br
- Bool \fIonoff\fP\^;
-.LP
-int (*XSetAfterFunction\^(\^\fIdisplay\fP, \fIprocedure\fP\^))()
-.br
- Display *\fIdisplay\fP\^;
-.br
- int (\^*\^\fIprocedure\fP\^)\^();
+.HP
+int (*XSynchronize\^(\^Display *\fIdisplay\fP\^, Bool \fIonoff\fP\^))();
+.HP
+int (*XSetAfterFunction\^(\^Display *\fIdisplay\fP\^, int
+(\^*\^\fIprocedure\fP\^)\^()))();
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XTextExtents.man b/man/XTextExtents.man
index c897a7c5..96634c56 100644
--- a/man/XTextExtents.man
+++ b/man/XTextExtents.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XTextExt.man,v 1.3 2001/02/09 03:47:47 tsi Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,83 +140,30 @@
.el .sp 10p
..
.ny0
-.TH XTextExtents 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XTextExtents 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XTextExtents, XTextExtents16, XQueryTextExtents, XQueryTextExtents16 \- compute or query text extents
.SH SYNTAX
-XTextExtents\^(\^\fIfont_struct\fP\^, \fIstring\fP\^, \fInchars\fP\^, \
-\fIdirection_return\fP, \fIfont_ascent_return\fP,
-.br
- \fIfont_descent_return\fP, \fIoverall_return\fP\^)
-.br
- XFontStruct *\fIfont_struct\fP\^;
-.br
- char *\fIstring\fP\^;
-.br
- int \fInchars\fP\^;
-.br
- int *\fIdirection_return\fP\^;
-.br
- int *\fIfont_ascent_return\fP, *\fIfont_descent_return\fP\^;
-.br
- XCharStruct *\fIoverall_return\fP\^;
-
-.LP
-XTextExtents16\^(\^\fIfont_struct\fP\^, \fIstring\fP\^, \fInchars\fP\^, \
-\fIdirection_return\fP, \fIfont_ascent_return\fP,
-.br
- \fIfont_descent_return\fP, \fIoverall_return\fP\^)
-.br
- XFontStruct *\fIfont_struct\fP\^;
-.br
- XChar2b *\fIstring\fP\^;
-.br
- int \fInchars\fP\^;
-.br
- int *\fIdirection_return\fP\^;
-.br
- int *\fIfont_ascent_return\fP, *\fIfont_descent_return\fP\^;
-.br
- XCharStruct *\fIoverall_return\fP\^;
-
-.LP
-XQueryTextExtents\^(\^\fIdisplay\fP, \fIfont_ID\fP, \fIstring\fP, \
-\fInchars\fP, \fIdirection_return\fP, \fIfont_ascent_return\fP,
-.br
- \fIfont_descent_return\fP, \fIoverall_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XID \fIfont_ID\fP\^;
-.br
- char *\fIstring\fP\^;
-.br
- int \fInchars\fP\^;
-.br
- int *\fIdirection_return\fP\^;
-.br
- int *\fIfont_ascent_return\fP, *\fIfont_descent_return\fP\^;
-.br
- XCharStruct *\fIoverall_return\fP\^;
-.LP
-XQueryTextExtents16\^(\^\fIdisplay\fP, \fIfont_ID\fP, \fIstring\fP, \
-\fInchars\fP, \fIdirection_return\fP, \fIfont_ascent_return\fP,
-.br
- \fIfont_descent_return\fP, \fIoverall_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XID \fIfont_ID\fP\^;
-.br
- XChar2b *\fIstring\fP\^;
-.br
- int \fInchars\fP\^;
-.br
- int *\fIdirection_return\fP\^;
-.br
- int *\fIfont_ascent_return\fP, *\fIfont_descent_return\fP\^;
-.br
- XCharStruct *\fIoverall_return\fP\^;
+.HP
+int XTextExtents\^(\^XFontStruct *\fIfont_struct\fP\^, char *\fIstring\fP\^,
+int \fInchars\fP\^, int *\fIdirection_return\fP\^, int
+*\fIfont_ascent_return\fP, int *\fIfont_descent_return\fP\^, XCharStruct
+*\fIoverall_return\fP\^);
+.HP
+int XTextExtents16\^(\^XFontStruct *\fIfont_struct\fP\^, XChar2b
+*\fIstring\fP\^, int \fInchars\fP\^, int *\fIdirection_return\fP\^, int
+*\fIfont_ascent_return\fP, int *\fIfont_descent_return\fP\^, XCharStruct
+*\fIoverall_return\fP\^);
+.HP
+int XQueryTextExtents\^(\^Display *\fIdisplay\fP\^, XID \fIfont_ID\fP\^, char
+*\fIstring\fP\^, int \fInchars\fP\^, int *\fIdirection_return\fP\^, int
+*\fIfont_ascent_return\fP, int *\fIfont_descent_return\fP\^, XCharStruct
+*\fIoverall_return\fP\^);
+.HP
+int XQueryTextExtents16\^(\^Display *\fIdisplay\fP\^, XID \fIfont_ID\fP\^,
+XChar2b *\fIstring\fP\^, int \fInchars\fP\^, int *\fIdirection_return\fP\^,
+int *\fIfont_ascent_return\fP, int *\fIfont_descent_return\fP\^, XCharStruct
+*\fIoverall_return\fP\^);
.SH ARGUMENTS
.IP \fIdirection_return\fP 1i
Returns the value of the direction hint
diff --git a/man/XTextWidth.man b/man/XTextWidth.man
index a5d70143..149878fc 100644
--- a/man/XTextWidth.man
+++ b/man/XTextWidth.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XTextWid.man,v 1.2 2001/01/27 18:20:06 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,25 +140,16 @@
.el .sp 10p
..
.ny0
-.TH XTextWidth 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XTextWidth 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XTextWidth, XTextWidth16 \- compute text width
.SH SYNTAX
-int XTextWidth\^(\^\fIfont_struct\fP\^, \fIstring\fP, \fIcount\fP\^)
-.br
- XFontStruct *\fIfont_struct\fP\^;
-.br
- char *\fIstring\fP\^;
-.br
- int \fIcount\fP\^;
-.LP
-int XTextWidth16\^(\^\fIfont_struct\fP\^, \fIstring\fP, \fIcount\fP\^)
-.br
- XFontStruct *\fIfont_struct\fP\^;
-.br
- XChar2b *\fIstring\fP\^;
-.br
- int \fIcount\fP\^;
+.HP
+int XTextWidth\^(\^XFontStruct *\fIfont_struct\fP\^, char *\fIstring\fP\^,
+int \fIcount\fP\^);
+.HP
+int XTextWidth16\^(\^XFontStruct *\fIfont_struct\fP\^, XChar2b
+*\fIstring\fP\^, int \fIcount\fP\^);
.SH ARGUMENTS
.IP \fIcount\fP 1i
Specifies the character count in the specified string.
diff --git a/man/XTranslateCoordinates.man b/man/XTranslateCoordinates.man
index 2037665a..ab329a53 100644
--- a/man/XTranslateCoordinates.man
+++ b/man/XTranslateCoordinates.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XTranWCo.man,v 1.2 2001/01/27 18:20:06 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,23 +140,15 @@
.el .sp 10p
..
.ny0
-.TH XTranslateCoordinates 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XTranslateCoordinates 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XTranslateCoordinates \- translate window coordinates
.SH SYNTAX
-Bool XTranslateCoordinates\^(\^\fIdisplay\fP, \fIsrc_w\fP\^, \fIdest_w\fP\^, \fIsrc_x\fP\^, \fIsrc_y\fP\^, \fIdest_x_return\fP\^,
-.br
- \fIdest_y_return\fP\^, \fIchild_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIsrc_w\fP\^, \fIdest_w\fP\^;
-.br
- int \fIsrc_x\fP\^, \fIsrc_y\fP\^;
-.br
- int *\fIdest_x_return\fP\^, *\fIdest_y_return\fP\^;
-.br
- Window *\fIchild_return\fP\^;
+.HP
+Bool XTranslateCoordinates\^(\^Display *\fIdisplay\fP\^, Window \fIsrc_w\fP\^,
+\fIdest_w\fP\^, int \fIsrc_x\fP\^, int \fIsrc_y\fP\^, int
+*\fIdest_x_return\fP\^, int *\fIdest_y_return\fP\^, Window
+*\fIchild_return\fP\^);
.SH ARGUMENTS
.IP \fIchild_return\fP 1i
Returns the child if the coordinates are contained in a mapped child of the
diff --git a/man/XUnmapEvent.man b/man/XUnmapEvent.man
index a94bc331..261f0866 100644
--- a/man/XUnmapEvent.man
+++ b/man/XUnmapEvent.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XUmapEven.man,v 1.2 2001/01/27 18:20:06 dawes Exp $
+.\" $XdotOrg: lib/X11/man/XUnmapEvent.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,7 +141,7 @@
.el .sp 10p
..
.ny0
-.TH XUnmapEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XUnmapEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XUnmapEvent \- UnmapNotify event structure
.SH STRUCTURES
@@ -150,10 +153,10 @@ events contains:
.TA .5i 3i
.ta .5i 3i
typedef struct {
- int type; /* UnmapNotify */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
+ int type; /\(** UnmapNotify */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came from a SendEvent request */
+ Display *display; /\(** Display the event was read from */
Window event;
Window window;
Bool from_configure;
diff --git a/man/XUnmapWindow.man b/man/XUnmapWindow.man
index 98e5519d..84874ce4 100644
--- a/man/XUnmapWindow.man
+++ b/man/XUnmapWindow.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XUnmapWin.man,v 1.2 2001/01/27 18:20:06 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,21 +140,14 @@
.el .sp 10p
..
.ny0
-.TH XUnmapWindow 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XUnmapWindow 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XUnmapWindow, XUnmapSubwindows \- unmap windows
.SH SYNTAX
-XUnmapWindow\^(\^\fIdisplay\fP, \fIw\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
-.LP
-XUnmapSubwindows\^(\^\fIdisplay\fP, \fIw\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIw\fP\^;
+.HP
+int XUnmapWindow\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^);
+.HP
+int XUnmapSubwindows\^(\^Display *\fIdisplay\fP\^, Window \fIw\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XVaCreateNestedList.man b/man/XVaCreateNestedList.man
index 56be7f32..1ef3113b 100644
--- a/man/XVaCreateNestedList.man
+++ b/man/XVaCreateNestedList.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XVCNList.man,v 1.2 2001/01/27 18:20:06 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,15 +140,13 @@
.el .sp 10p
..
.ny0
-.TH XVaCreateNestedList 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XVaCreateNestedList 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XVaCreateNestedList \- allocate a nested variable argument list
.SH SYNTAX
typedef void * XVaNestedList;
-
-XVaNestedList XVaCreateNestedList\^(\^\fIdummy\fP\^, ...)
-.br
- int \fIdummy\fP\^;
+.HP
+XVaNestedList XVaCreateNestedList\^(\^int \fIdummy\fP\^, ...\^);
.SH ARGUMENTS
.IP \fIdummy\fP 1i
Specifies an unused argument (required by ANSI C).
diff --git a/man/XVisibilityEvent.man b/man/XVisibilityEvent.man
index 218e4005..503c034c 100644
--- a/man/XVisibilityEvent.man
+++ b/man/XVisibilityEvent.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XVEvent.man,v 1.3 2001/08/13 19:34:52 dawes Exp $
+.\" $XdotOrg: lib/X11/man/XVisibilityEvent.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,9 +141,9 @@
.el .sp 10p
..
.ny0
-.TH XVisibilityEvent 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XVisibilityEvent 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
-XVisibilityNotifyEvent \- VisibilityNotify event structure
+XVisibilityEvent \- VisibilityNotify event structure
.SH STRUCTURES
The structure for
.ZN VisibilityNotify
@@ -150,10 +153,10 @@ events contains:
.TA .5i 3i
.ta .5i 3i
typedef struct {
- int type; /* VisibiltyNotify */
- unsigned long serial; /* # of last request processed by server */
- Bool send_event; /* true if this came from a SendEvent request */
- Display *display; /* Display the event was read from */
+ int type; /\(** VisibilityNotify */
+ unsigned long serial; /\(** # of last request processed by server */
+ Bool send_event; /\(** true if this came from a SendEvent request */
+ Display *display; /\(** Display the event was read from */
Window window;
int state;
} XVisibilityEvent;
diff --git a/man/XWarpPointer.man b/man/XWarpPointer.man
index 0db9dce3..2e88459a 100644
--- a/man/XWarpPointer.man
+++ b/man/XWarpPointer.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XWarpPntr.man,v 1.2 2001/01/27 18:20:06 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,23 +140,15 @@
.el .sp 10p
..
.ny0
-.TH XWarpPointer 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XWarpPointer 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XWarpPointer \- move pointer
.SH SYNTAX
-XWarpPointer\^(\^\fIdisplay\fP, \fIsrc_w\fP\^, \fIdest_w\fP\^, \fIsrc_x\fP\^, \fIsrc_y\fP\^, \fIsrc_width\fP\^, \fIsrc_height\fP\^, \fIdest_x\fP\^,
-.br
- \fIdest_y\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Window \fIsrc_w\fP\^, \fIdest_w\fP\^;
-.br
- int \fIsrc_x\fP\^, \fIsrc_y\fP\^;
-.br
- unsigned int \fIsrc_width\fP\^, \fIsrc_height\fP\^;
-.br
- int \fIdest_x\fP\^, \fIdest_y\fP\^;
+.HP
+int XWarpPointer\^(\^Display *\fIdisplay\fP\^, Window \fIsrc_w\fP\^, Window
+\fIdest_w\fP\^, int \fIsrc_x\fP\^, int \fIsrc_y\fP\^, unsigned int
+\fIsrc_width\fP\^, unsigned int \fIsrc_height\fP\^, int \fIdest_x\fP\^, int
+\fIdest_y\fP\^);
.SH ARGUMENTS
.IP \fIdest_w\fP 1i
Specifies the destination window or
diff --git a/man/XcmsAllocColor.man b/man/XcmsAllocColor.man
index 685b3409..c6fdbf71 100644
--- a/man/XcmsAllocColor.man
+++ b/man/XcmsAllocColor.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XcmsAClr.man,v 3.3 2001/01/27 18:20:06 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,57 +140,34 @@
.el .sp 10p
..
.ny0
-.TH XcmsAllocColor 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XcmsAllocColor 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XcmsAllocColor, XcmsAllocNamedColor \- allocate colors
.SH SYNTAX
-Status XcmsAllocColor\^(\^\fIdisplay\fP\^, \fIcolormap\fP\^, \fIcolor_in_out\fP\^, \fIresult_format\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Colormap \fIcolormap\fP\^;
-.br
- XcmsColor *\fIcolor_in_out\fP\^;
-.br
- XcmsColorFormat \fIresult_format\fP\^;
-.LP
-Status XcmsAllocNamedColor\^(\^\fIdisplay\fP\^, \fIcolormap\fP\^, \fIcolor_string\fP\^, \fIcolor_screen_return\fP\^, \fIcolor_exact_return\fP\^,
-.br
- \fIresult_format\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Colormap \fIcolormap\fP\^;
-.br
- char *\fIcolor_string\fP\^;
-.br
- XcmsColor *\fIcolor_screen_return\fP\^;
-.br
- XcmsColor *\fIcolor_exact_return\fP\^;
-.br
- XcmsColorFormat \fIresult_format\fP\^;
+.HP
+Status XcmsAllocColor\^(\^Display *\fIdisplay\fP\^, Colormap \fIcolormap\fP\^,
+XcmsColor *\fIcolor_in_out\fP\^, XcmsColorFormat \fIresult_format\fP\^);
+.HP
+Status XcmsAllocNamedColor\^(\^Display *\fIdisplay\fP\^, Colormap
+\fIcolormap\fP\^, char *\fIcolor_string\fP\^, XcmsColor
+*\fIcolor_screen_return\fP\^, XcmsColor *\fIcolor_exact_return\fP\^, XcmsColorFormat \fIresult_format\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
.IP \fIcolormap\fP 1i
Specifies the colormap.
-.\" $Header: /X.org/CVS/xc/doc/man/X11/XcmsAClr.man,v 1.3 2001/03/16 17:47:48 pookie Exp $
.IP \fIcolor_exact_return\fP 1i
Returns the color specification parsed from the color string
or parsed from the corresponding string found in a color-name database.
-.\" $Header: /X.org/CVS/xc/doc/man/X11/XcmsAClr.man,v 1.3 2001/03/16 17:47:48 pookie Exp $
.IP \fIcolor_in_out\fP 1i
Specifies the color to allocate and returns the pixel and color
that is actually used in the colormap.
-.\" $Header: /X.org/CVS/xc/doc/man/X11/XcmsAClr.man,v 1.3 2001/03/16 17:47:48 pookie Exp $
.IP \fIcolor_screen_return\fP 1i
Returns the pixel value of the color cell and color specification
that actually is stored for that cell.
.ds St \ whose color definition structure is to be returned
-.\" $Header: /X.org/CVS/xc/doc/man/X11/XcmsAClr.man,v 1.3 2001/03/16 17:47:48 pookie Exp $
.IP \fIcolor_string\fP 1i
Specifies the color string\*(St.
-.\" $Header: /X.org/CVS/xc/doc/man/X11/XcmsAClr.man,v 1.3 2001/03/16 17:47:48 pookie Exp $
.IP \fIresult_format\fP 1i
Specifies the color format for the returned color specification.
.SH DESCRIPTION
diff --git a/man/XcmsCCCOfColormap.man b/man/XcmsCCCOfColormap.man
index 36d7377f..9cee8e7e 100644
--- a/man/XcmsCCCOfColormap.man
+++ b/man/XcmsCCCOfColormap.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/Xcms3CoC.man,v 1.2 2001/01/27 18:20:06 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,23 +140,16 @@
.el .sp 10p
..
.ny0
-.TH XcmsCCCOfColormap 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XcmsCCCOfColormap 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XcmsCCCOfColormap, XcmsSetCCCOfColormap \- query and modify CCC of a colormap
.SH SYNTAX
-XcmsCCC XcmsCCCOfColormap\^(\^\fIdisplay\fP, \fIcolormap\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Colormap \fIcolormap\fP\^;
-.LP
-XcmsCCC XcmsSetCCCOfColormap\^(\^\fIdisplay\fP, \fIcolormap\fP\^, \fIccc\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Colormap \fIcolormap\fP\^;
-.br
- XcmsCCC \fIccc\fP\^;
+.HP
+XcmsCCC XcmsCCCOfColormap\^(\^Display *\fIdisplay\fP\^, Colormap
+\fIcolormap\fP\^);
+.HP
+XcmsCCC XcmsSetCCCOfColormap\^(\^Display *\fIdisplay\fP\^, Colormap
+\fIcolormap\fP\^, XcmsCCC \fIccc\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XcmsCIELabQueryMaxC.man b/man/XcmsCIELabQueryMaxC.man
index 3e785d16..41ea628e 100644
--- a/man/XcmsCIELabQueryMaxC.man
+++ b/man/XcmsCIELabQueryMaxC.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XcmsLaQMC.man,v 1.3 2001/02/09 03:47:47 tsi Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,47 +140,22 @@
.el .sp 10p
..
.ny0
-.TH XcmsCIELabQueryMax 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XcmsCIELabQueryMax 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XcmsCIELabQueryMaxC, XcmsCIELabQueryMaxL, XcmsCIELabQueryMaxLC, XcmsCIELabQueryMinL \- obtain the CIE L*a*b* coordinates
.SH SYNTAX
-Status XcmsCIELabQueryMaxC\^(\^\fIccc\fP\^, \fIhue_angle\fP\^, \fIL_star\fP\^, \fIcolor_return\fP\^)
-.br
- XcmsCCC \fIccc\fP\^;
-.br
- XcmsFloat \fIhue_angle\fP\^;
-.br
- XcmsFloat \fIL_star\fP\^;
-.br
- XcmsColor *\fIcolor_return\fP\^;
-.LP
-Status XcmsCIELabQueryMaxL\^(\^\fIccc\fP\^, \fIhue_angle\fP\^, \fIchroma\fP\^, \fIcolor_return\fP\^)
-.br
- XcmsCCC \fIccc\fP\^;
-.br
- XcmsFloat \fIhue_angle\fP\^;
-.br
- XcmsFloat \fIchroma\fP\^;
-.br
- XcmsColor *\fIcolor_return\fP\^;
-.LP
-Status XcmsCIELabQueryMaxLC\^(\^\fIccc\fP\^, \fIhue_angle\fP\^, \fIcolor_return\fP\^)
-.br
- XcmsCCC \fIccc\fP\^;
-.br
- XcmsFloat \fIhue_angle\fP\^;
-.br
- XcmsColor *\fIcolor_return\fP\^;
-.LP
-Status XcmsCIELabQueryMinL\^(\^\fIccc\fP\^, \fIhue_angle\fP\^, \fIchroma\fP\^, \fIcolor_return\fP\^)
-.br
- XcmsCCC \fIccc\fP\^;
-.br
- XcmsFloat \fIhue_angle\fP\^;
-.br
- XcmsFloat \fIchroma\fP\^;
-.br
- XcmsColor *\fIcolor_return\fP\^;
+.HP
+Status XcmsCIELabQueryMaxC\^(\^XcmsCCC \fIccc\fP\^, XcmsFloat
+\fIhue_angle\fP\^, XcmsFloat \fIL_star\fP\^, XcmsColor *\fIcolor_return\fP\^);
+.HP
+Status XcmsCIELabQueryMaxL\^(\^XcmsCCC \fIccc\fP\^, XcmsFloat
+\fIhue_angle\fP\^, XcmsFloat \fIchroma\fP\^, XcmsColor *\fIcolor_return\fP\^);
+.HP
+Status XcmsCIELabQueryMaxLC\^(\^XcmsCCC \fIccc\fP\^, XcmsFloat
+\fIhue_angle\fP\^, XcmsColor *\fIcolor_return\fP\^);
+.HP
+Status XcmsCIELabQueryMinL\^(\^XcmsCCC \fIccc\fP\^, XcmsFloat
+\fIhue_angle\fP\^, XcmsFloat \fIchroma\fP\^, XcmsColor *\fIcolor_return\fP\^);
.SH ARGUMENTS
.IP \fIccc\fP 1i
Specifies the CCC.
@@ -187,9 +164,9 @@ are ignored.
.ds Ch maximum lightness (MaxL) or minimum lightness (MinL)
.IP \fIchroma\fP 1i
Specifies the chroma at which to find \*(Ch.
-.ds Lc maximum chroma (MaxC and MaxLC), maximum lightnes (MaxL), \
+.ds Lc maximum chroma (MaxC and MaxLC), maximum lightnes (MaxL),
or minimum lightness (MinL)
-.ds lC hue angle and lightness (MaxC), hue angle and chroma (MaxL and MinL), \
+.ds lC hue angle and lightness (MaxC), hue angle and chroma (MaxL and MinL),
or hue angle (MaxLC)
.IP \fIcolor_return\fP 1i
Returns the CIE L*a*b* coordinates of \*(Lc
@@ -197,7 +174,7 @@ displayable by the screen for the given \*(lC.
The white point associated with the returned
color specification is the Screen White Point.
The value returned in the pixel member is undefined.
-.ds Ha maximum chroma (MaxC and MaxLC), maximum lightness (MaxL), \
+.ds Ha maximum chroma (MaxC and MaxLC), maximum lightness (MaxL),
or minimum lightness (MinL)
.IP \fIhue_angle\fP 1i
Specifies the hue angle (in degrees) at which to find \*(Ha.
diff --git a/man/XcmsCIELuvQueryMaxC.man b/man/XcmsCIELuvQueryMaxC.man
index 60fe8e16..5521c74e 100644
--- a/man/XcmsCIELuvQueryMaxC.man
+++ b/man/XcmsCIELuvQueryMaxC.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XcmsLuQMC.man,v 1.3 2001/02/09 03:47:47 tsi Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,47 +140,22 @@
.el .sp 10p
..
.ny0
-.TH XcmsCIELuvQueryMaxC 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XcmsCIELuvQueryMaxC 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XcmsCIELuvQueryMaxC, XcmsCIELuvQueryMaxL, XcmsCIELuvQueryMaxLC, XcmsCIELuvQueryMinL \- obtain the CIE L*u*v* coordinates
.SH SYNTAX
-Status XcmsCIELuvQueryMaxC\^(\^\fIccc\fP\^, \fIhue_angle\fP\^, \fIL_star\fP\^, \fIcolor_return\fP\^)
-.br
- XcmsCCC \fIccc\fP\^;
-.br
- XcmsFloat \fIhue_angle\fP\^;
-.br
- XcmsFloat \fIL_star\fP\^;
-.br
- XcmsColor *\fIcolor_return\fP\^;
-.LP
-Status XcmsCIELuvQueryMaxL\^(\^\fIccc\fP\^, \fIhue_angle\fP\^, \fIchroma\fP\^, \fIcolor_return\fP\^)
-.br
- XcmsCCC \fIccc\fP\^;
-.br
- XcmsFloat \fIhue_angle\fP\^;
-.br
- XcmsFloat \fIchroma\fP\^;
-.br
- XcmsColor *\fIcolor_return\fP\^;
-.LP
-Status XcmsCIELuvQueryMaxLC\^(\^\fIccc\fP\^, \fIhue_angle\fP\^, \fIcolor_return\fP\^)
-.br
- XcmsCCC \fIccc\fP\^;
-.br
- XcmsFloat \fIhue_angle\fP\^;
-.br
- XcmsColor *\fIcolor_return\fP\^;
-.LP
-Status XcmsCIELuvQueryMinL\^(\^\fIccc\fP\^, \fIhue_angle\fP\^, \fIchroma\fP\^, \fIcolor_return\fP\^)
-.br
- XcmsCCC \fIccc\fP\^;
-.br
- XcmsFloat \fIhue_angle\fP\^;
-.br
- XcmsFloat \fIchroma\fP\^;
-.br
- XcmsColor *\fIcolor_return\fP\^;
+.HP
+Status XcmsCIELuvQueryMaxC\^(\^XcmsCCC \fIccc\fP\^, XcmsFloat
+\fIhue_angle\fP\^, XcmsFloat \fIL_star\fP\^, XcmsColor *\fIcolor_return\fP\^);
+.HP
+Status XcmsCIELuvQueryMaxL\^(\^XcmsCCC \fIccc\fP\^, XcmsFloat
+\fIhue_angle\fP\^, XcmsFloat \fIchroma\fP\^, XcmsColor *\fIcolor_return\fP\^);
+.HP
+Status XcmsCIELuvQueryMaxLC\^(\^XcmsCCC \fIccc\fP\^, XcmsFloat
+\fIhue_angle\fP\^, XcmsColor *\fIcolor_return\fP\^);
+.HP
+Status XcmsCIELuvQueryMinL\^(\^XcmsCCC \fIccc\fP\^, XcmsFloat
+\fIhue_angle\fP\^, XcmsFloat \fIchroma\fP\^, XcmsColor *\fIcolor_return\fP\^);
.SH ARGUMENTS
.IP \fIccc\fP 1i
Specifies the CCC.
@@ -187,9 +164,9 @@ are ignored.
.ds Ch maximum lightness (MaxL) or minimum lightness (MinL)
.IP \fIchroma\fP 1i
Specifies the chroma at which to find \*(Ch.
-.ds Lc maximum chroma (MaxC and MaxLC), maximum lightnes (MaxL), \
+.ds Lc maximum chroma (MaxC and MaxLC), maximum lightnes (MaxL),
or minimum lightness (MinL)
-.ds lC hue angle and lightness (MaxC), hue angle and chroma (MaxL and MinL), \
+.ds lC hue angle and lightness (MaxC), hue angle and chroma (MaxL and MinL),
or hue angle (MaxLC)
.IP \fIcolor_return\fP 1i
Returns the CIE L*u*v* coordinates of \*(Lc
@@ -197,7 +174,7 @@ displayable by the screen for the given \*(lC.
The white point associated with the returned
color specification is the Screen White Point.
The value returned in the pixel member is undefined.
-.ds Ha maximum chroma (MaxC and MaxLC), maximum lightness (MaxL), \
+.ds Ha maximum chroma (MaxC and MaxLC), maximum lightness (MaxL),
or minimum lightness (MinL)
.IP \fIhue_angle\fP 1i
Specifies the hue angle (in degrees) at which to find \*(Ha.
diff --git a/man/XcmsColor.man b/man/XcmsColor.man
index a19630f6..dcd7a7ee 100644
--- a/man/XcmsColor.man
+++ b/man/XcmsColor.man
@@ -1,5 +1,4 @@
.\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X Consortium
-.\"
.\" 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
@@ -40,6 +39,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XcmsClr.man,v 3.4 2001/01/27 18:20:06 dawes Exp $
+.\" $XdotOrg: lib/X11/man/XcmsColor.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,7 +140,7 @@
.el .sp 10p
..
.ny0
-.TH XcmsColor 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XcmsColor 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XcmsColor, XcmsRGB, XcmsRGBi, XcmsCIEXYZ, XcmsCIEuvY, XcmsCIExyY, XcmsCIELab, XcmsCIELuv, XcmsTekHVC, XcmsPad \- Xcms color struture
.SH STRUCTURES
@@ -149,7 +151,7 @@ contains:
.Ds 0
.TA .5i 1i 2.5i
.ta .5i 1i 2.5i
-typedef unsigned long XcmsColorFormat; /* Color Specification Format */
+typedef unsigned long XcmsColorFormat; /\(** Color Specification Format */
typedef struct {
union {
@@ -165,7 +167,7 @@ typedef struct {
} spec;
unsigned long pixel;
XcmsColorFormat format;
-} XcmsColor; /* Xcms Color Structure */
+} XcmsColor; /\(** Xcms Color Structure */
.De
.LP
.Ds 0
@@ -174,20 +176,20 @@ typedef struct {
typedef double XcmsFloat;
typedef struct {
- unsigned short red; /* 0x0000 to 0xffff */
- unsigned short green; /* 0x0000 to 0xffff */
- unsigned short blue; /* 0x0000 to 0xffff */
-} XcmsRGB; /* RGB Device */
+ unsigned short red; /\(** 0x0000 to 0xffff */
+ unsigned short green; /\(** 0x0000 to 0xffff */
+ unsigned short blue; /\(** 0x0000 to 0xffff */
+} XcmsRGB; /\(** RGB Device */
.De
.LP
.Ds 0
.TA .5i 2.5i
.ta .5i 2.5i
typedef struct {
- XcmsFloat red; /* 0.0 to 1.0 */
- XcmsFloat green; /* 0.0 to 1.0 */
- XcmsFloat blue; /* 0.0 to 1.0 */
-} XcmsRGBi; /* RGB Intensity */
+ XcmsFloat red; /\(** 0.0 to 1.0 */
+ XcmsFloat green; /\(** 0.0 to 1.0 */
+ XcmsFloat blue; /\(** 0.0 to 1.0 */
+} XcmsRGBi; /\(** RGB Intensity */
.De
.LP
.Ds 0
@@ -195,59 +197,59 @@ typedef struct {
.ta .5i 2.5i
typedef struct {
XcmsFloat X;
- XcmsFloat Y; /* 0.0 to 1.0 */
+ XcmsFloat Y; /\(** 0.0 to 1.0 */
XcmsFloat Z;
-} XcmsCIEXYZ; /* CIE XYZ */
+} XcmsCIEXYZ; /\(** CIE XYZ */
.De
.LP
.Ds 0
.TA .5i 2.5i
.ta .5i 2.5i
typedef struct {
- XcmsFloat u_prime; /* 0.0 to ~0.6 */
- XcmsFloat v_prime; /* 0.0 to ~0.6 */
- XcmsFloat Y; /* 0.0 to 1.0 */
-} XcmsCIEuvY; /* CIE u'v'Y */
+ XcmsFloat u_prime; /\(** 0.0 to ~0.6 */
+ XcmsFloat v_prime; /\(** 0.0 to ~0.6 */
+ XcmsFloat Y; /\(** 0.0 to 1.0 */
+} XcmsCIEuvY; /\(** CIE u'v'Y */
.De
.LP
.Ds 0
.TA .5i 2.5i
.ta .5i 2.5i
typedef struct {
- XcmsFloat x; /* 0.0 to ~.75 */
- XcmsFloat y; /* 0.0 to ~.85 */
- XcmsFloat Y; /* 0.0 to 1.0 */
-} XcmsCIExyY; /* CIE xyY */
+ XcmsFloat x; /\(** 0.0 to ~.75 */
+ XcmsFloat y; /\(** 0.0 to ~.85 */
+ XcmsFloat Y; /\(** 0.0 to 1.0 */
+} XcmsCIExyY; /\(** CIE xyY */
.De
.LP
.Ds 0
.TA .5i 2.5i
.ta .5i 2.5i
typedef struct {
- XcmsFloat L_star; /* 0.0 to 100.0 */
+ XcmsFloat L_star; /\(** 0.0 to 100.0 */
XcmsFloat a_star;
XcmsFloat b_star;
-} XcmsCIELab; /* CIE L*a*b* */
+} XcmsCIELab; /\(** CIE L*a*b* */
.De
.LP
.Ds 0
.TA .5i 2.5i
.ta .5i 2.5i
typedef struct {
- XcmsFloat L_star; /* 0.0 to 100.0 */
+ XcmsFloat L_star; /\(** 0.0 to 100.0 */
XcmsFloat u_star;
XcmsFloat v_star;
-} XcmsCIELuv; /* CIE L*u*v* */
+} XcmsCIELuv; /\(** CIE L*u*v* */
.De
.LP
.Ds 0
.TA .5i 2.5i
.ta .5i 2.5i
typedef struct {
- XcmsFloat H; /* 0.0 to 360.0 */
- XcmsFloat V; /* 0.0 to 100.0 */
- XcmsFloat C; /* 0.0 to 100.0 */
-} XcmsTekHVC; /* TekHVC */
+ XcmsFloat H; /\(** 0.0 to 360.0 */
+ XcmsFloat V; /\(** 0.0 to 100.0 */
+ XcmsFloat C; /\(** 0.0 to 100.0 */
+} XcmsTekHVC; /\(** TekHVC */
.De
.LP
.Ds 0
@@ -258,7 +260,7 @@ typedef struct {
XcmsFloat pad1;
XcmsFloat pad2;
XcmsFloat pad3;
-} XcmsPad; /* four doubles */
+} XcmsPad; /\(** four doubles */
.De
.SH DESCRIPTION
The
diff --git a/man/XcmsConvertColors.man b/man/XcmsConvertColors.man
index 1a7c55ad..e80986d0 100644
--- a/man/XcmsConvertColors.man
+++ b/man/XcmsConvertColors.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XcmsCClrs.man,v 1.2 2001/01/27 18:20:06 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,21 +140,14 @@
.el .sp 10p
..
.ny0
-.TH XcmsConvertColors 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XcmsConvertColors 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XcmsConvertColors \- convert CCC color specifications
.SH SYNTAX
-Status XcmsConvertColors\^(\^\fIccc\fP\^, \fIcolors_in_out\fP\^, \fIncolors\fP\^, \fItarget_format\fP\^, \fIcompression_flags_return\fP\^)
-.br
- XcmsCCC \fIccc\fP\^;
-.br
- XcmsColor \fIcolors_in_out\fP\^[\^]\^;
-.br
- unsigned int \fIncolors\fP\^;
-.br
- XcmsColorFormat \fItarget_format\fP\^;
-.br
- Bool \fIcompression_flags_return\fP\^[\^]\^;
+.HP
+Status XcmsConvertColors\^(\^XcmsCCC \fIccc\fP\^, XcmsColor
+\fIcolors_in_out\fP\^[\^]\^, unsigned int \fIncolors\fP\^, XcmsColorFormat
+\fItarget_format\fP\^, Bool \fIcompression_flags_return\fP\^[\^]\^);
.SH ARGUMENTS
.IP \fIccc\fP 1i
Specifies the CCC.
diff --git a/man/XcmsCreateCCC.man b/man/XcmsCreateCCC.man
index 8fc15459..ccf1548c 100644
--- a/man/XcmsCreateCCC.man
+++ b/man/XcmsCreateCCC.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XcmsCre3C.man,v 1.2 2001/01/27 18:20:07 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,33 +140,18 @@
.el .sp 10p
..
.ny0
-.TH XcmsCreateCCC 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XcmsCreateCCC 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XcmsCreateCCC, XcmsFreeCCC \- creating and destroying CCCs
.SH SYNTAX
-XcmsCCC XcmsCreateCCC\^(\^\fIdisplay\fP, \fIscreen_number\fP\^, \fIvisual\fP\^, \fIclient_white_point\fP\^, \fIcompression_proc\fP\^,
-.br
- \fIcompression_client_data\fP\^, \fIwhite_adjust_proc\fP\^, \fIwhite_adjust_client_data\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIscreen_number\fP\^;
-.br
- Visual *\fIvisual\fP\^;
-.br
- XcmsColor *\fIclient_white_point\fP\^;
-.br
- XcmsCompressionProc \fIcompression_proc\fP\^;
-.br
- XPointer \fIcompression_client_data\fP\^;
-.br
- XcmsWhiteAdjustProc \fIwhite_adjust_proc\fP\^;
-.br
- XPointer \fIwhite_adjust_client_data\fP\^;
+.HP
+XcmsCCC XcmsCreateCCC\^(\^Display *\fIdisplay\fP\^, int \fIscreen_number\fP\^,
+Visual *\fIvisual\fP\^, XcmsColor *\fIclient_white_point\fP\^,
+XcmsCompressionProc \fIcompression_proc\fP\^, XPointer
+\fIcompression_client_data\fP\^, XcmsWhiteAdjustProc
+\fIwhite_adjust_proc\fP\^, XPointer \fIwhite_adjust_client_data\fP\^);
.LP
-void XcmsFreeCCC\^(\^\fIccc\fP\^)
-.br
- XcmsCCC \fIccc\fP\^;
+void XcmsFreeCCC\^(\^XcmsCCC \fIccc\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XcmsDefaultCCC.man b/man/XcmsDefaultCCC.man
index 9a9996dc..febe50ee 100644
--- a/man/XcmsDefaultCCC.man
+++ b/man/XcmsDefaultCCC.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XcmsD3C.man,v 1.2 2001/01/27 18:20:07 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,15 +140,13 @@
.el .sp 10p
..
.ny0
-.TH XcmsDefaultCCC 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XcmsDefaultCCC 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XcmsDefaultCCC \- obtain the default CCC for a screen
.SH SYNTAX
-XcmsCCC XcmsDefaultCCC\^(\^\fIdisplay\fP, \fIscreen_number\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- int \fIscreen_number\fP\^;
+.HP
+XcmsCCC XcmsDefaultCCC\^(\^Display *\fIdisplay\fP\^, int
+\fIscreen_number\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XcmsQueryBlack.man b/man/XcmsQueryBlack.man
index 3598b769..96588c9e 100644
--- a/man/XcmsQueryBlack.man
+++ b/man/XcmsQueryBlack.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XcmsQBlk.man,v 1.2 2001/01/27 18:20:07 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,49 +140,25 @@
.el .sp 10p
..
.ny0
-.TH XcmsQueryBlack 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XcmsQueryBlack 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XcmsQueryBlack, XcmsQueryBlue, XcmsQueryGreen, XcmsQueryRed, XcmsQueryWhite \- obtain black, blue, green, red, and white CCC color specifications
.SH SYNTAX
-Status XcmsQueryBlack\^(\^\fIccc\fP\^, \fItarget_format\fP\^, \fIcolor_return\fP\^)
-.br
- XcmsCCC \fIccc\fP\^;
-.br
- XcmsColorFormat \fItarget_format\fP\^;
-.br
- XcmsColor *\fIcolor_return\fP\^;
-.LP
-Status XcmsQueryBlue\^(\^\fIccc\fP\^, \fItarget_format\fP\^, \fIcolor_return\fP\^)
-.br
- XcmsCCC \fIccc\fP\^;
-.br
- XcmsColorFormat \fItarget_format\fP\^;
-.br
- XcmsColor *\fIcolor_return\fP\^;
-.LP
-Status XcmsQueryGreen\^(\^\fIccc\fP\^, \fItarget_format\fP\^, \fIcolor_return\fP\^)
-.br
- XcmsCCC \fIccc\fP\^;
-.br
- XcmsColorFormat \fItarget_format\fP\^;
-.br
- XcmsColor *\fIcolor_return\fP\^;
-.LP
-Status XcmsQueryRed\^(\^\fIccc\fP\^, \fItarget_format\fP\^, \fIcolor_return\fP\^)
-.br
- XcmsCCC \fIccc\fP\^;
-.br
- XcmsColorFormat \fItarget_format\fP\^;
-.br
- XcmsColor *\fIcolor_return\fP\^;
-.LP
-Status XcmsQueryWhite\^(\^\fIccc\fP\^, \fItarget_format\fP\^, \fIcolor_return\fP\^)
-.br
- XcmsCCC \fIccc\fP\^;
-.br
- XcmsColorFormat \fItarget_format\fP\^;
-.br
- XcmsColor *\fIcolor_return\fP\^;
+.HP
+Status XcmsQueryBlack\^(\^XcmsCCC \fIccc\fP\^, XcmsColorFormat
+\fItarget_format\fP\^, XcmsColor *\fIcolor_return\fP\^);
+.HP
+Status XcmsQueryBlue\^(\^XcmsCCC \fIccc\fP\^, XcmsColorFormat
+\fItarget_format\fP\^, XcmsColor *\fIcolor_return\fP\^);
+.HP
+Status XcmsQueryGreen\^(\^XcmsCCC \fIccc\fP\^, XcmsColorFormat
+\fItarget_format\fP\^, XcmsColor *\fIcolor_return\fP\^);
+.HP
+Status XcmsQueryRed\^(\^XcmsCCC \fIccc\fP\^, XcmsColorFormat
+\fItarget_format\fP\^, XcmsColor *\fIcolor_return\fP\^);
+.HP
+Status XcmsQueryWhite\^(\^XcmsCCC \fIccc\fP\^, XcmsColorFormat
+\fItarget_format\fP\^, XcmsColor *\fIcolor_return\fP\^);
.SH ARGUMENTS
.IP \fIccc\fP 1i
Specifies the CCC.
diff --git a/man/XcmsQueryColor.man b/man/XcmsQueryColor.man
index ea91e167..b485beff 100644
--- a/man/XcmsQueryColor.man
+++ b/man/XcmsQueryColor.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XcmsQClr.man,v 3.3 2001/01/27 18:20:07 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,51 +140,27 @@
.el .sp 10p
..
.ny0
-.TH XcmsQueryColor 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XcmsQueryColor 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XcmsQueryColor, XcmsQueryColors, XcmsLookupColor \- obtain color values
.SH SYNTAX
-Status XcmsQueryColor\^(\^\fIdisplay\fP, \fIcolormap\fP\^, \fIcolor_in_out\fP\^, \fIresult_format\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Colormap \fIcolormap\fP\^;
-.br
- XcmsColor *\fIcolor_in_out\fP\^;
-.br
- XcmsColorFormat \fIresult_format\fP\^;
-.LP
-Status XcmsQueryColors\^(\^\fIdisplay\fP, \fIcolormap\fP\^, \fIcolors_in_out\fP\^, \fIncolors\fP\^, \fIresult_format\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Colormap \fIcolormap\fP\^;
-.br
- XcmsColor \fIcolors_in_out\fP\^[\^]\^;
-.br
- unsigned int \fIncolors\fP\^;
-.br
- XcmsColorFormat \fIresult_format\fP\^;
-.LP
-Status XcmsLookupColor\^(\^\fIdisplay\fP, \fIcolormap\fP\^, \fIcolor_string\fP\^, \fIcolor_exact_return\fP\^, \fIcolor_screen_return\fP\^,
-.br
- \fIresult_format\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Colormap \fIcolormap\fP\^;
-.br
- char *\fIcolor_string\fP\^;
-.br
- XcmsColor *\fIcolor_exact_return\fP\^, *\fIcolor_screen_return\fP\^;
-.br
- XcmsColorFormat \fIresult_format\fP\^;
+.HP
+Status XcmsQueryColor\^(\^Display *\fIdisplay\fP\^, Colormap \fIcolormap\fP\^,
+XcmsColor *\fIcolor_in_out\fP\^, XcmsColorFormat \fIresult_format\fP\^);
+.HP
+Status XcmsQueryColors\^(\^Display *\fIdisplay\fP\^, Colormap
+\fIcolormap\fP\^, XcmsColor \fIcolors_in_out\fP\^[\^]\^, unsigned int
+\fIncolors\fP\^, XcmsColorFormat \fIresult_format\fP\^);
+.HP
+Status XcmsLookupColor\^(\^Display *\fIdisplay\fP\^, Colormap
+\fIcolormap\fP\^, char *\fIcolor_string\fP\^, XcmsColor
+*\fIcolor_exact_return\fP\^, XcmsColor *\fIcolor_screen_return\fP\^,
+XcmsColorFormat \fIresult_format\fP\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
.IP \fIcolormap\fP 1i
Specifies the colormap.
-.\" $Header: /X.org/CVS/xc/doc/man/X11/XcmsQClr.man,v 1.3 2001/03/16 17:47:49 pookie Exp $
.IP \fIcolor_exact_return\fP 1i
Returns the color specification parsed from the color string
or parsed from the corresponding string found in a color-name database.
@@ -194,10 +172,8 @@ structure.
.IP \fIcolor_screen_return\fP 1i
Returns the color that can be reproduced on the screen.
.ds St
-.\" $Header: /X.org/CVS/xc/doc/man/X11/XcmsQClr.man,v 1.3 2001/03/16 17:47:49 pookie Exp $
.IP \fIcolor_string\fP 1i
Specifies the color string\*(St.
-.\" $Header: /X.org/CVS/xc/doc/man/X11/XcmsQClr.man,v 1.3 2001/03/16 17:47:49 pookie Exp $
.IP \fIresult_format\fP 1i
Specifies the color format for the returned color
specifications (color_screen_return and color_exact_return arguments).
diff --git a/man/XcmsSetWhitePoint.man b/man/XcmsSetWhitePoint.man
index 760ce854..dca7069c 100644
--- a/man/XcmsSetWhitePoint.man
+++ b/man/XcmsSetWhitePoint.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XcmsSWP.man,v 1.2 2001/01/27 18:20:07 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,23 +140,15 @@
.el .sp 10p
..
.ny0
-.TH XcmsSetWhitePoint 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XcmsSetWhitePoint 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XcmsSetWhitePoint, XcmsSetWhiteAdjustProc \- modifying CCC attributes
.SH SYNTAX
-Status XcmsSetWhitePoint\^(\^\fIccc\fP\^, \fIcolor\fP\^)
-.br
- XcmsCCC \fIccc\fP\^;
-.br
- XcmsColor *\fIcolor\fP\^;
-.LP
-XcmsWhiteAdjustProc XcmsSetWhiteAdjustProc\^(\^\fIccc\fP\^, \fIwhite_adjust_proc\fP\^, \fIclient_data\fP\^)
-.br
- XcmsCCC \fIccc\fP\^;
-.br
- XcmsWhiteAdjustProc \fIwhite_adjust_proc\fP\^;
-.br
- XPointer \fIclient_data\fP\^;
+.HP
+Status XcmsSetWhitePoint\^(\^XcmsCCC \fIccc\fP\^, XcmsColor *\fIcolor\fP\^);
+.HP
+XcmsWhiteAdjustProc XcmsSetWhiteAdjustProc\^(\^XcmsCCC \fIccc\fP\^,
+XcmsWhiteAdjustProc \fIwhite_adjust_proc\fP\^, XPointer \fIclient_data\fP\^);
.SH ARGUMENTS
.IP \fIccc\fP 1i
Specifies the CCC.
diff --git a/man/XcmsStoreColor.man b/man/XcmsStoreColor.man
index 65d0e3a4..3630ad0e 100644
--- a/man/XcmsStoreColor.man
+++ b/man/XcmsStoreColor.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XcmsSClr.man,v 1.2 2001/01/27 18:20:07 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,29 +140,17 @@
.el .sp 10p
..
.ny0
-.TH XcmsStoreColor 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XcmsStoreColor 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XcmsStoreColor, XcmsStoreColors \- set colors
.SH SYNTAX
-Status XcmsStoreColor\^(\^\fIdisplay\fP, \fIcolormap\fP\^, \fIcolor\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Colormap \fIcolormap\fP\^;
-.br
- XcmsColor *\fIcolor\fP\^;
-.LP
-Status XcmsStoreColors\^(\^\fIdisplay\fP, \fIcolormap\fP\^, \fIcolors\fP\^, \fIncolors\fP\^, \fIcompression_flags_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Colormap \fIcolormap\fP\^;
-.br
- XcmsColor \fIcolors\fP\^[\^]\^;
-.br
- int \fIncolors\fP\^;
-.br
- Bool \fIcompression_flags_return\fP\^[\^]\^;
+.HP
+Status XcmsStoreColor\^(\^Display *\fIdisplay\fP\^, Colormap \fIcolormap\fP\^,
+XcmsColor *\fIcolor\fP\^);
+.HP
+Status XcmsStoreColors\^(\^Display *\fIdisplay\fP\^, Colormap
+\fIcolormap\fP\^, XcmsColor \fIcolors\fP\^[\^]\^, int \fIncolors\fP\^, Bool
+\fIcompression_flags_return\fP\^[\^]\^);
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
diff --git a/man/XcmsTekHVCQueryMaxC.man b/man/XcmsTekHVCQueryMaxC.man
index fe399866..00000380 100644
--- a/man/XcmsTekHVCQueryMaxC.man
+++ b/man/XcmsTekHVCQueryMaxC.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XcmsTQMC.man,v 1.3 2001/02/09 03:47:47 tsi Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,57 +140,26 @@
.el .sp 10p
..
.ny0
-.TH XcmsTekHVCQueryMaxC 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XcmsTekHVCQueryMaxC 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XcmsTekHVCQueryMaxC, XcmsTekHVCQueryMaxV, XcmsTekHVCQueryMaxVC, XcmsTekHVCQueryMaxVSamples, XcmsTekHVCQueryMinV \- obtain the TekHVC coordinates
.SH SYNTAX
-Status XcmsTekHVCQueryMaxC\^(\^\fIccc\fP\^, \fIhue\fP\^, \fIvalue\fP\^, \fIcolor_return\fP\^)
-.br
- XcmsCCC \fIccc\fP\^;
-.br
- XcmsFloat \fIhue\fP\^;
-.br
- XcmsFloat \fIvalue\fP\^;
-.br
- XcmsColor *\fIcolor_return\fP\^;
-.LP
-Status XcmsTekHVCQueryMaxV\^(\^\fIccc\fP\^, \fIhue\fP\^, \fIchroma\fP\^, \fIcolor_return\fP\^)
-.br
- XcmsCCC \fIccc\fP\^;
-.br
- XcmsFloat \fIhue\fP\^;
-.br
- XcmsFloat \fIchroma\fP\^;
-.br
- XcmsColor *\fIcolor_return\fP\^;
-.LP
-Status XcmsTekHVCQueryMaxVC\^(\^\fIccc\fP\^, \fIhue\fP\^, \fIcolor_return\fP\^)
-.br
- XcmsCCC \fIccc\fP\^;
-.br
- XcmsFloat \fIhue\fP\^;
-.br
- XcmsColor *\fIcolor_return\fP\^;
-.LP
-Status XcmsTekHVCQueryMaxVSamples\^(\^\fIccc\fP\^, \fIhue\fP\^, \fIcolors_return\fP\^, \fInsamples\fP\^)
-.br
- XcmsCCC \fIccc\fP\^;
-.br
- XcmsFloat \fIhue\fP\^;
-.br
- XcmsColor \fIcolors_return[]\fP\^;
-.br
- unsigned int \fInsamples\fP\^;
-.LP
-Status XcmsTekHVCQueryMinV\^(\^\fIccc\fP\^, \fIhue\fP\^, \fIchroma\fP\^, \fIcolor_return\fP\^)
-.br
- XcmsCCC \fIccc\fP\^;
-.br
- XcmsFloat \fIhue\fP\^;
-.br
- XcmsFloat \fIchroma\fP\^;
-.br
- XcmsColor *\fIcolor_return\fP\^;
+.HP
+Status XcmsTekHVCQueryMaxC\^(\^XcmsCCC \fIccc\fP\^, XcmsFloat \fIhue\fP\^,
+XcmsFloat \fIvalue\fP\^, XcmsColor *\fIcolor_return\fP\^);
+.HP
+Status XcmsTekHVCQueryMaxV\^(\^XcmsCCC \fIccc\fP\^, XcmsFloat \fIhue\fP\^,
+XcmsFloat \fIchroma\fP\^, XcmsColor *\fIcolor_return\fP\^);
+.HP
+Status XcmsTekHVCQueryMaxVC\^(\^XcmsCCC \fIccc\fP\^, XcmsFloat \fIhue\fP\^,
+XcmsColor *\fIcolor_return\fP\^);
+.HP
+Status XcmsTekHVCQueryMaxVSamples\^(\^XcmsCCC \fIccc\fP\^, XcmsFloat
+\fIhue\fP\^, XcmsColor \fIcolors_return[]\fP\^, unsigned int
+\fInsamples\fP\^);
+.HP
+Status XcmsTekHVCQueryMinV\^(\^XcmsCCC \fIccc\fP\^, XcmsFloat \fIhue\fP\^,
+XcmsFloat \fIchroma\fP\^, XcmsColor *\fIcolor_return\fP\^);
.SH ARGUMENTS
.IP \fIccc\fP 1i
Specifies the CCC.
@@ -203,20 +174,20 @@ such that the Chroma is the maximum attainable for the Value and Hue.
The white point associated with the returned
color specification is the Screen White Point.
The value returned in the pixel member is undefined.
-.ds Lc maximum Chroma along with the actual Hue and Value (MaxC), \
-maximum Value along with the Hue and Chroma (MaxV), \
-color specification in XcmsTekHVC for the maximum Chroma, \
-the Value at which that maximum Chroma is reached and actual Hue (MaxVC) \
+.ds Lc maximum Chroma along with the actual Hue and Value (MaxC),
+maximum Value along with the Hue and Chroma (MaxV),
+color specification in XcmsTekHVC for the maximum Chroma,
+the Value at which that maximum Chroma is reached and actual Hue (MaxVC)
or minimum Value and the actual Hue and Chroma (MinL)
-.ds lC maximum Chroma (MaxC and MaxVC), maximum Value (MaxV), or \
+.ds lC maximum Chroma (MaxC and MaxVC), maximum Value (MaxV), or
minimum Value (MinL)
.IP \fIcolor_return\fP 1i
Returns the \*(Lc at which the \*(lC was found.
The white point associated with the returned
color specification is the Screen White Point.
The value returned in the pixel member is undefined.
-.ds Hu in which to find the maximum Chroma (MaxC and MaxVC), \
-maximum Value (MaxV), the maximum Chroma/Value samples (MaxVSamples), \
+.ds Hu in which to find the maximum Chroma (MaxC and MaxVC),
+maximum Value (MaxV), the maximum Chroma/Value samples (MaxVSamples),
or the minimum Value (MinL)
.IP \fIhue\fP 1i
Specifies the Hue \*(Hu.
diff --git a/man/XmbDrawImageString.man b/man/XmbDrawImageString.man
index 5889cb70..e47c033b 100644
--- a/man/XmbDrawImageString.man
+++ b/man/XmbDrawImageString.man
@@ -1,4 +1,5 @@
.\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X Consortium
+.\" Copyright \(co 2000 The XFree86 Project, Inc.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining
.\" a copy of this software and associated documentation files (the
@@ -39,6 +40,8 @@
.\" Digital and Tektronix makes no representations about the suitability
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
+.\"
+.\" $XFree86: xc/doc/man/X11/XmbDIStr.man,v 1.3 2001/01/27 18:20:07 dawes Exp $
.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
@@ -138,41 +141,22 @@
.el .sp 10p
..
.ny0
-.TH XmbDrawImageString 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XmbDrawImageString 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
-XmbDrawImageString, XwcDrawImageString \- draw image text using a single font set
+XmbDrawImageString, XwcDrawImageString, Xutf8DrawImageString \- draw image text using a single font set
.SH SYNTAX
-void XmbDrawImageString\^(\^\fIdisplay\fP\^, \fId\fP\^, \fIfont_set\fP\^, \fIgc\fP\^, \fIx\fP\^, \fIy\fP\^, \fIstring\fP\^, \fInum_bytes\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- XFontSet \fIfont_set\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- int \fIx\fP\^, \fIy\fP\^;
-.br
- char *\fIstring\fP\^;
-.br
- int \fInum_bytes\fP\^;
-.LP
-void XwcDrawImageString\^(\^\fIdisplay\fP\^, \fId\fP\^, \fIfont_set\fP\^, \fIgc\fP\^, \fIx\fP\^, \fIy\fP\^, \fIstring\fP\^, \fInum_wchars\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- XFontSet \fIfont_set\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- int \fIx\fP\^, \fIy\fP\^;
-.br
- wchar_t *\fIstring\fP\^;
-.br
- int \fInum_wchars\fP\^;
+.HP
+void XmbDrawImageString\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^,
+XFontSet \fIfont_set\fP\^, GC \fIgc\fP\^, int \fIx\fP\^, int \fIy\fP\^, char
+*\fIstring\fP\^, int \fInum_bytes\fP\^);
+.HP
+void XwcDrawImageString\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^,
+XFontSet \fIfont_set\fP\^, GC \fIgc\fP\^, int \fIx\fP\^, int \fIy\fP\^,
+wchar_t *\fIstring\fP\^, int \fInum_wchars\fP\^);
+.HP
+void Xutf8DrawImageString\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^,
+XFontSet \fIfont_set\fP\^, GC \fIgc\fP\^, int \fIx\fP\^, int \fIy\fP\^, char
+*\fIstring\fP\^, int \fInum_bytes\fP\^);
.SH ARGUMENTS
.IP \fId\fP 1i
Specifies the drawable.
@@ -196,15 +180,17 @@ Specifies the character string.
Specify the x and y coordinates\*(Xy.
.SH DESCRIPTION
The
-.ZN XmbDrawImageString
-and
+.ZN XmbDrawImageString ,
.ZN XwcDrawImageString
+and
+.ZN Xutf8DrawImageString
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
-.ZN XmbTextExtents
-or
+.ZN XmbTextExtents ,
.ZN XwcTextExtents
+or
+.ZN Xutf8TextExtents
for the same text and
.ZN XFontSet .
.LP
@@ -214,6 +200,13 @@ has missing charsets, each unavailable character is drawn
with the default string returned by
.ZN XCreateFontSet .
The behavior for an invalid codepoint is undefined.
+.LP
+The function
+.ZN Xutf8TextExtents
+is an extension introduced by The XFree86 Project, Inc. in their 4.0.2
+release. Its presence is
+indicated by the macro
+.ZN X_HAVE_UTF8_STRING .
.SH "SEE ALSO"
XDrawImageString(3X11),
XDrawString(3X11),
diff --git a/man/XmbDrawString.man b/man/XmbDrawString.man
index 9d1fe1e4..8af12eda 100644
--- a/man/XmbDrawString.man
+++ b/man/XmbDrawString.man
@@ -1,4 +1,5 @@
.\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X Consortium
+.\" Copyright \(co 2000 The XFree86 Project, Inc.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining
.\" a copy of this software and associated documentation files (the
@@ -39,6 +40,8 @@
.\" Digital and Tektronix makes no representations about the suitability
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
+.\"
+.\" $XFree86: xc/doc/man/X11/XmbDStr.man,v 1.4 2002/04/30 16:45:02 tsi Exp $
.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
@@ -138,41 +141,22 @@
.el .sp 10p
..
.ny0
-.TH XmbDrawString 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XmbDrawString 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
-XmbDrawString, XwcDrawString \- draw text using a single font set
+XmbDrawString, XwcDrawString, Xutf8DrawString \- draw text using a single font set
.SH SYNTAX
-void XmbDrawString\^(\^\fIdisplay\fP\^, \fId\fP\^, \fIfont_set\fP\^, \fIgc\fP\^, \fIx\fP\^, \fIy\fP\^, \fIstring\fP\^, \fInum_bytes\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- XFontSet \fIfont_set\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- int \fIx\fP\^, \fIy\fP\^;
-.br
- char *\fIstring\fP\^;
-.br
- int \fInum_bytes\fP\^;
-.LP
-void XwcDrawString\^(\^\fIdisplay\fP\^, \fId\fP\^, \fIfont_set\fP\^, \fIgc\fP\^, \fIx\fP\^, \fIy\fP\^, \fIstring\fP\^, \fInum_wchars\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- XFontSet \fIfont_set\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- int \fIx\fP\^, \fIy\fP\^;
-.br
- wchar_t *\fIstring\fP\^;
-.br
- int \fInum_wchars\fP\^;
+.HP
+void XmbDrawString\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, XFontSet
+\fIfont_set\fP\^, GC \fIgc\fP\^, int \fIx\fP\^, int \fIy\fP\^, char
+*\fIstring\fP\^, int \fInum_bytes\fP\^);
+.HP
+void XwcDrawString\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, XFontSet
+\fIfont_set\fP\^, GC \fIgc\fP\^, int \fIx\fP\^, int \fIy\fP\^, wchar_t
+*\fIstring\fP\^, int \fInum_wchars\fP\^);
+.HP
+void Xutf8DrawString\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^,
+XFontSet \fIfont_set\fP\^, GC \fIgc\fP\^, int \fIx\fP\^, int \fIy\fP\^, char
+*\fIstring\fP\^, int \fInum_bytes\fP\^);
.SH ARGUMENTS
.IP \fId\fP 1i
Specifies the drawable.
@@ -196,9 +180,10 @@ Specifies the character string.
Specify the x and y coordinates\*(Xy.
.SH DESCRIPTION
The
-.ZN XmbDrawString
-and
+.ZN XmbDrawString ,
.ZN XwcDrawString
+and
+.ZN Xutf8DrawString
functions draw the specified text with the foreground pixel.
When the
.ZN XFontSet
@@ -206,8 +191,15 @@ has missing charsets, each unavailable character is drawn
with the default string returned by
.ZN XCreateFontSet .
The behavior for an invalid codepoint is undefined.
+.LP
+The function
+.ZN Xutf8DrawString
+is an extension introduced by The XFree86 Project, Inc. in their 4.0.2
+release. Its presence is
+indicated by the macro
+.ZN X_HAVE_UTF8_STRING .
.SH "SEE ALSO"
-XXDrawImageString(3X11),
+XDrawImageString(3X11),
XDrawString(3X11),
XDrawText(3X11),
XmbDrawImageString(3X11),
diff --git a/man/XmbDrawText.man b/man/XmbDrawText.man
index 959a770c..3baf7224 100644
--- a/man/XmbDrawText.man
+++ b/man/XmbDrawText.man
@@ -1,4 +1,5 @@
.\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X Consortium
+.\" Copyright \(co 2000 The XFree86 Project, Inc.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining
.\" a copy of this software and associated documentation files (the
@@ -39,6 +40,9 @@
.\" Digital and Tektronix makes no representations about the suitability
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
+.\"
+.\" $XFree86: xc/doc/man/X11/XmbDTxt.man,v 1.4 2003/04/28 22:17:58 herrb Exp $
+.\" $XdotOrg: lib/X11/man/XmbDrawText.man,v 1.2 2004-04-23 18:42:09 eich Exp $
.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
@@ -138,37 +142,21 @@
.el .sp 10p
..
.ny0
-.TH XmbDrawText 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XmbDrawText 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
-XmbDrawText, XwcDrawText \- draw text using multiple font sets
+XmbDrawText, XwcDrawText, Xutf8DrawText \- draw text using multiple font sets
.SH SYNTAX
-void XmbDrawText\^(\^\fIdisplay\fP\^, \fId\fP\^, \fIgc\fP\^, \fIx\fP\^, \fIy\fP\^, \fIitems\fP\^, \fInitems\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- int \fIx\fP\^, \fIy\fP\^;
-.br
- XmbTextItem *\fIitems\fP\^;
-.br
- int \fInitems\fP\^;
-.LP
-void XwcDrawText\^(\^\fIdisplay\fP\^, \fId\fP\^, \fIgc\fP\^, \fIx\fP\^, \fIy\fP\^, \fIitems\fP\^, \fInitems\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- Drawable \fId\fP\^;
-.br
- GC \fIgc\fP\^;
-.br
- int \fIx\fP\^, \fIy\fP\^;
-.br
- XwcTextItem *\fIitems\fP\^;
-.br
- int \fInitems\fP\^;
+.HP
+void XmbDrawText\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, GC
+\fIgc\fP\^, int \fIx\fP\^, int \fIy\fP\^, XmbTextItem *\fIitems\fP\^, int
+\fInitems\fP\^);
+.HP
+void XwcDrawText\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, GC
+\fIgc\fP\^, int \fIx\fP\^, int \fIy\fP\^, XwcTextItem *\fIitems\fP\^, int
+\fInitems\fP\^);
+.HP
+void Xutf8DrawText\^(\^Display *\fIdisplay\fP\^, Drawable \fId\fP\^, GC
+\fIgc\fP\^, int \fIx\fP\^, int \fIy\fP\^, XmbTextItem *\fIitems\fP\^, int \fInitems\fP\^);
.SH ARGUMENTS
.IP \fId\fP 1i
Specifies the drawable.
@@ -188,9 +176,10 @@ Specifies the number of text items in the array.
Specify the x and y coordinates\*(Xy.
.SH DESCRIPTION
The
-.ZN XmbDrawText
-and
+.ZN XmbDrawText ,
.ZN XwcDrawText
+and
+.ZN Xutf8DrawText
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
@@ -205,24 +194,32 @@ Leading text items with a font_set member set to
.ZN None
will not be drawn.
.LP
-.ZN XmbDrawText
-and
+.ZN XmbDrawText ,
.ZN XwcDrawText
+and
+.ZN Xutf8DrawText
do not perform any context-dependent rendering between text segments.
Clients may compute the drawing metrics by passing each text segment to
-.ZN XmbTextExtents
-and
-.ZN XwcTextExtents
-or
-.ZN XmbTextPerCharExtents
-and
+.ZN XmbTextExtents ,
+.ZN XwcTextExtents ,
+.ZN Xutf8TextExtents
+or
+.ZN XmbTextPerCharExtents ,
.ZN XwcTextPerCharExtents .
+.ZN Xutf8TextPerCharExtents .
When the
.ZN XFontSet
has missing charsets, each unavailable character is drawn
with the default string returned by
.ZN XCreateFontSet .
The behavior for an invalid codepoint is undefined.
+.LP
+The function
+.ZN Xutf8DrawText
+is an extension introduced by The XFree86 Project, Inc. in their 4.0.2
+release. Its presence is
+indicated by the macro
+.ZN X_HAVE_UTF8_STRING .
.SH STRUCTURES
The
.ZN XmbTextItem
@@ -231,10 +228,10 @@ structure contains:
.TA .5i 2.5i
.ta .5i 2.5i
typedef struct {
- char *chars; /* pointer to string */
- int nchars; /* number of bytes */
- int delta; /* pixel delta between strings */
- XFontSet font_set; /* fonts, None means don't change */
+ char *chars; /\(** pointer to string */
+ int nchars; /\(** number of bytes */
+ int delta; /\(** pixel delta between strings */
+ XFontSet font_set; /\(** fonts, None means don't change */
} XmbTextItem;
.De
The
@@ -244,10 +241,10 @@ structure contains:
.TA .5i 2.5i
.ta .5i 2.5i
typedef struct {
- wchar_t *chars; /* pointer to wide char string */
- int nchars; /* number of wide characters */
- int delta; /* pixel delta between strings */
- XFontSet font_set; /* fonts, None means don't change */
+ wchar_t *chars; /\(** pointer to wide char string */
+ int nchars; /\(** number of wide characters */
+ int delta; /\(** pixel delta between strings */
+ XFontSet font_set; /\(** fonts, None means don't change */
} XwcTextItem;
.De
.SH "SEE ALSO"
diff --git a/man/XmbLookupString.man b/man/XmbLookupString.man
index 48085d08..fc30f4a2 100644
--- a/man/XmbLookupString.man
+++ b/man/XmbLookupString.man
@@ -1,5 +1,6 @@
'\" t
.\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X Consortium
+.\" Copyright \(co 2000 The XFree86 Project, Inc.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining
.\" a copy of this software and associated documentation files (the
@@ -40,6 +41,8 @@
.\" Digital and Tektronix makes no representations about the suitability
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
+.\"
+.\" $XFree86: xc/doc/man/X11/XmbLStr.man,v 1.3 2001/01/27 18:20:08 dawes Exp $
.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
@@ -140,37 +143,22 @@
..
.ny0
'\" t
-.TH XmbLookupString 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XmbLookupString 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
-XmbLookupString, XwcLookupString \- obtain composed input from an input method
+XmbLookupString, XwcLookupString, Xutf8LookupString \- obtain composed input from an input method
.SH SYNTAX
-int XmbLookupString\^(\^\fIic\fP\^, \fIevent\fP\^, \fIbuffer_return\fP\^, \fIbytes_buffer\fP\^, \fIkeysym_return\fP\^, \fIstatus_return\fP\^)
-.br
- XIC \fIic\fP\^;
-.br
- XKeyPressedEvent *\fIevent\fP;
-.br
- char *\fIbuffer_return\fP\^;
-.br
- int \fIbytes_buffer\fP\^;
-.br
- KeySym *\fIkeysym_return\fP\^;
-.br
- Status *\fIstatus_return\fP\^;
-.LP
-int XwcLookupString\^(\^\fIic\fP\^, \fIevent\fP\^, \fIbuffer_return\fP\^, \fIbytes_buffer\fP\^, \fIkeysym_return\fP\^, \fIstatus_return\fP\^)
-.br
- XIC \fIic\fP\^;
-.br
- XKeyPressedEvent *\fIevent\fP\^;
-.br
- wchar_t *\fIbuffer_return\fP\^;
-.br
- int \fIwchars_buffer\fP\^;
-.br
- KeySym *\fIkeysym_return\fP\^;
-.br
- Status *\fIstatus_return\fP\^;
+.HP
+int XmbLookupString\^(\^XIC \fIic\fP\^, XKeyPressedEvent *\fIevent\fP, char
+*\fIbuffer_return\fP\^, int \fIbytes_buffer\fP\^, KeySym
+*\fIkeysym_return\fP\^, Status *\fIstatus_return\fP\^);
+.HP
+int XwcLookupString\^(\^XIC \fIic\fP\^, XKeyPressedEvent *\fIevent\fP\^,
+wchar_t *\fIbuffer_return\fP\^, int \fIwchars_buffer\fP\^, KeySym
+*\fIkeysym_return\fP\^, Status *\fIstatus_return\fP\^);
+.HP
+int Xutf8LookupString\^(\^XIC \fIic\fP\^, XKeyPressedEvent *\fIevent\fP, char
+*\fIbuffer_return\fP\^, int \fIbytes_buffer\fP\^, KeySym
+*\fIkeysym_return\fP\^, Status *\fIstatus_return\fP\^);
.SH ARGUMENTS
.IP \fIbuffer_return\fP 1i
Returns a multibyte string or wide character string (if any)
@@ -191,9 +179,10 @@ Returns the KeySym computed from the event if this argument is not NULL.
Returns a value indicating what kind of data is returned.
.SH DESCRIPTION
The
-.ZN XmbLookupString
-and
+.ZN XmbLookupString ,
.ZN XwcLookupString
+and
+.ZN Xutf8LookupString
functions return the string from the input method specified
in the buffer_return argument.
If no string is returned,
@@ -206,7 +195,9 @@ If both a string and a KeySym are returned,
the KeySym value does not necessarily correspond to the string returned.
.LP
.ZN XmbLookupString
-returns the length of the string in bytes, and
+and
+.ZN Xutf8LookupString
+return the length of the string in bytes, and
.ZN XwcLookupString
returns the length of the string in characters.
Both
@@ -214,7 +205,9 @@ Both
and
.ZN XwcLookupString
return text in the encoding of the locale bound to the input method
-of the specified input context.
+of the specified input context, and
+.ZN Xutf8LookupString
+returns text in UTF-8 encoding.
.LP
Each string returned by
.ZN XmbLookupString
@@ -223,13 +216,14 @@ and
begins in the initial state of the encoding of the locale
(if the encoding of the locale is state-dependent).
.NT
-To insure proper input processing,
+To ensure proper input processing,
it is essential that the client pass only
.ZN KeyPress
events to
-.ZN XmbLookupString
+.ZN XmbLookupString ,
+.ZN XwcLookupString
and
-.ZN XwcLookupString .
+.ZN Xutf8LookupString .
Their behavior when a client passes a
.ZN KeyRelease
event is undefined.
@@ -237,7 +231,7 @@ event is undefined.
.LP
Clients should check the status_return argument before
using the other returned values.
-These two functions both return a value to status_return
+These three functions each return a value to status_return
that indicates what has been returned in the other arguments.
The possible values returned are:
.TS
@@ -246,9 +240,10 @@ T{
.ZN XBufferOverflow
T} T{
The input string to be returned is too large for the supplied buffer_return.
-The required size
-.Pn ( XmbLookupString
-in bytes;
+The required size (for
+.ZN XmbLookupString ,
+.ZN Xutf8LookupString
+in bytes; for
.ZN XwcLookupString
in characters) is returned as the value of the function,
and the contents of buffer_return and keysym_return are not modified.
@@ -266,9 +261,9 @@ T{
.ZN XLookupChars
T} T{
Some input characters have been composed.
-They are placed in the buffer_return argument,
+They are placed in the buffer_return argument, using the encoding
+described above,
and the string length is returned as the value of the function.
-The string is encoded in the locale bound to the input context.
The content of the keysym_return argument is not modified.
T}
T{
@@ -291,16 +286,25 @@ T}
.TE
.LP
It does not make any difference if the input context passed as an argument to
-.ZN XmbLookupString
-and
+.ZN XmbLookupString ,
.ZN XwcLookupString
+and
+.ZN Xutf8LookupString
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
-.ZN XmbLookupString
-or
+.ZN XmbLookupString ,
.ZN XwcLookupString
+or
+.ZN Xutf8LookupString
even though it does not have any more keyboard focus.
+.LP
+The function
+.ZN Xutf8LookupString
+is an extension introduced by The XFree86 Project, Inc. in their 4.0.2
+release. Its presence is
+indicated by the macro
+.ZN X_HAVE_UTF8_STRING .
.SH "SEE ALSO"
XLookupKeysym(3X11)
.br
diff --git a/man/XmbResetIC.man b/man/XmbResetIC.man
index a1b07747..e71465b6 100644
--- a/man/XmbResetIC.man
+++ b/man/XmbResetIC.man
@@ -1,4 +1,5 @@
.\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X Consortium
+.\" Copyright \(co 2000 The XFree86 Project, Inc.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining
.\" a copy of this software and associated documentation files (the
@@ -39,6 +40,8 @@
.\" Digital and Tektronix makes no representations about the suitability
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
+.\"
+.\" $XFree86: xc/doc/man/X11/XmbRIC.man,v 1.3 2001/01/27 18:20:08 dawes Exp $
.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
@@ -138,17 +141,16 @@
.el .sp 10p
..
.ny0
-.TH XmbResetIC 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XmbResetIC 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
-XmbResetIC, XwcResetIC \- reset the state of an input context
+XmbResetIC, XwcResetIC, Xutf8ResetIC \- reset the state of an input context
.SH SYNTAX
-char * XmbResetIC\^(\^\fIic\fP\^)
-.br
- XIC \fIic\fP\^;
-.LP
-wchar_t * XwcResetIC\^(\^\fIic\fP\^)
-.br
- XIC \fIic\fP\^;
+.HP
+char *XmbResetIC\^(\^XIC \fIic\fP\^);
+.HP
+wchar_t *XwcResetIC\^(\^XIC \fIic\fP\^);
+.HP
+char *Xutf8ResetIC\^(\^XIC \fIic\fP\^);
.SH ARGUMENTS
.IP \fIic\fP 1i
Specifies the input context.
@@ -157,9 +159,10 @@ When
.ZN XNResetState
is set to
.ZN XIMInitialState ,
-.ZN XmbResetIC
-and
+.ZN XmbResetIC ,
.ZN XwcResetIC
+and
+.ZN Xutf8ResetIC
reset an input context to its initial state;
when
.ZN XNResetState
@@ -170,14 +173,21 @@ 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
-.ZN XmbResetIC
-or
+.ZN XmbResetIC ,
.ZN XwcResetIC
+or
+.ZN Xutf8ResetIC
does not change the focus.
.LP
The return value of
.ZN XmbResetIC
is its current preedit string as a multibyte string.
+The return value of
+.ZN XwcResetIC
+is its current preedit string as a wide character string.
+The return value of
+.ZN Xutf8ResetIC
+is its current preedit string as an UTF-8 string.
If there is any preedit text drawn or visible to the user,
then these procedures must return a non-NULL string.
If there is no visible preedit text,
@@ -186,6 +196,13 @@ whether these procedures return a non-NULL string or NULL.
.LP
The client should free the returned string by calling
.ZN XFree .
+.LP
+The function
+.ZN Xutf8ResetIC
+is an extension introduced by The XFree86 Project, Inc. in their 4.0.2
+release. Its presence is
+indicated by the macro
+.ZN X_HAVE_UTF8_STRING .
.SH "SEE ALSO"
XCreateIC(3X11),
XOpenIM(3X11),
diff --git a/man/XmbTextEscapement.man b/man/XmbTextEscapement.man
index 6eb89877..8aeb0b08 100644
--- a/man/XmbTextEscapement.man
+++ b/man/XmbTextEscapement.man
@@ -1,4 +1,5 @@
.\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X Consortium
+.\" Copyright \(co 2000 The XFree86 Project, Inc.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining
.\" a copy of this software and associated documentation files (the
@@ -39,6 +40,8 @@
.\" Digital and Tektronix makes no representations about the suitability
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
+.\"
+.\" $XFree86: xc/doc/man/X11/XmbTEsc.man,v 1.3 2001/01/27 18:20:08 dawes Exp $
.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
@@ -138,25 +141,19 @@
.el .sp 10p
..
.ny0
-.TH XmbTextEscapement 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XmbTextEscapement 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
-XmbTextEscapement, XwcTextEscapement \- obtain the escapement of text
+XmbTextEscapement, XwcTextEscapement, Xutf8TextEscapement \- obtain the escapement of text
.SH SYNTAX
-int XmbTextEscapement\^(\^\fIfont_set\fP\^, \fIstring\fP\^, \fInum_bytes\fP\^)
-.br
- XFontSet \fIfont_set\fP\^;
-.br
- char *\fIstring\fP\^;
-.br
- int \fInum_bytes\fP\^;
-.LP
-int XwcTextEscapement\^(\^\fIfont_set\fP\^, \fIstring\fP\^, \fInum_wchars\fP\^)
-.br
- XFontSet \fIfont_set\fP\^;
-.br
- wchar_t *\fIstring\fP\^;
-.br
- int \fInum_wchars\fP\^;
+.HP
+int XmbTextEscapement\^(\^XFontSet \fIfont_set\fP\^, char *\fIstring\fP\^, int
+\fInum_bytes\fP\^);
+.HP
+int XwcTextEscapement\^(\^XFontSet \fIfont_set\fP\^, wchar_t *\fIstring\fP\^,
+int \fInum_wchars\fP\^);
+.HP
+int Xutf8TextEscapement\^(\^XFontSet \fIfont_set\fP\^, char *\fIstring\fP\^,
+int \fInum_bytes\fP\^);
.SH ARGUMENTS
.IP \fIfont_set\fP 1i
Specifies the font set.
@@ -168,9 +165,10 @@ Specifies the number of characters in the string argument.
Specifies the character string.
.SH DESCRIPTION
The
-.ZN XmbTextEscapement
-and
+.ZN XmbTextEscapement ,
.ZN XwcTextEscapement
+and
+.ZN Xutf8TextEscapement
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
@@ -180,6 +178,13 @@ dependent on the supplied string.
.LP
Regardless of the character rendering order,
the escapement is always positive.
+.LP
+The function
+.ZN Xutf8TextEscapement
+is an extension introduced by The XFree86 Project, Inc. in their 4.0.2
+release. Its presence is
+indicated by the macro
+.ZN X_HAVE_UTF8_STRING .
.SH "SEE ALSO"
XmbTextExtents(3X11),
XmbTextPerCharExtents(3X11)
diff --git a/man/XmbTextExtents.man b/man/XmbTextExtents.man
index fe43c225..4c9ad9d3 100644
--- a/man/XmbTextExtents.man
+++ b/man/XmbTextExtents.man
@@ -1,4 +1,5 @@
.\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X Consortium
+.\" Copyright \(co 2000 The XFree86 Project, Inc.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining
.\" a copy of this software and associated documentation files (the
@@ -39,6 +40,8 @@
.\" Digital and Tektronix makes no representations about the suitability
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
+.\"
+.\" $XFree86: xc/doc/man/X11/XmbTExt.man,v 1.4 2001/01/27 18:20:08 dawes Exp $
.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
@@ -138,33 +141,22 @@
.el .sp 10p
..
.ny0
-.TH XmbTextExtents 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XmbTextExtents 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
-XmbTextExtents, XwcTextExtents \- compute text extents
+XmbTextExtents, XwcTextExtents, Xutf8TextExtents \- compute text extents
.SH SYNTAX
-int XmbTextExtents\^(\^\fIfont_set\fP\^, \fIstring\fP\^, \fInum_bytes\fP\^, \fIoverall_ink_return\fP\^, \fIoverall_logical_return\fP\^)
-.br
- XFontSet \fIfont_set\fP\^;
-.br
- char *\fIstring\fP\^;
-.br
- int \fInum_bytes\fP\^;
-.br
- XRectangle *\fIoverall_ink_return\fP\^;
-.br
- XRectangle *\fIoverall_logical_return\fP\^;
-.LP
-int XwcTextExtents\^(\^\fIfont_set\fP\^, \fIstring\fP\^, \fInum_wchars\fP\^, \fIoverall_ink_return\fP\^, \fIoverall_logical_return\fP\^)
-.br
- XFontSet \fIfont_set\fP\^;
-.br
- wchar_t *\fIstring\fP\^;
-.br
- int \fInum_wchars\fP\^;
-.br
- XRectangle *\fIoverall_ink_return\fP\^;
-.br
- XRectangle *\fIoverall_logical_return\fP\^;
+.HP
+int XmbTextExtents\^(\^XFontSet \fIfont_set\fP\^, char *\fIstring\fP\^, int
+\fInum_bytes\fP\^, XRectangle *\fIoverall_ink_return\fP\^, XRectangle
+*\fIoverall_logical_return\fP\^);
+.HP
+int XwcTextExtents\^(\^XFontSet \fIfont_set\fP\^, wchar_t *\fIstring\fP\^, int
+\fInum_wchars\fP\^, XRectangle *\fIoverall_ink_return\fP\^, XRectangle
+*\fIoverall_logical_return\fP\^);
+.HP
+int Xutf8TextExtents\^(\^XFontSet \fIfont_set\fP\^, char *\fIstring\fP\^, int
+\fInum_bytes\fP\^, XRectangle *\fIoverall_ink_return\fP\^, XRectangle
+*\fIoverall_logical_return\fP\^);
.SH ARGUMENTS
.IP \fIfont_set\fP 1i
Specifies the font set.
@@ -181,17 +173,19 @@ Returns the overall logical \*(Ov.
Specifies the character string.
.SH DESCRIPTION
The
-.ZN XmbTextExtents
-and
+.ZN XmbTextExtents ,
.ZN XwcTextExtents
+and
+.ZN Xutf8TextExtents
functions set the components of the specified overall_ink_return and
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
-.ZN XmbTextEscapement
+.ZN XmbTextEscapement ,
+.ZN XwcTextEscapement
or
-.ZN XwcTextEscapement .
+.ZN Xutf8TextEscapement .
These metrics are relative to the drawing origin of the string,
using the fonts loaded for the specified font set.
.LP
@@ -220,6 +214,13 @@ from the default string returned by
.ZN XCreateFontSet
so that the metrics represent the text as it will actually be drawn.
The behavior for an invalid codepoint is undefined.
+.LP
+The function
+.ZN Xutf8TextExtents
+is an extension introduced by The XFree86 Project, Inc. in their 4.0.2
+release. Its presence is
+indicated by the macro
+.ZN X_HAVE_UTF8_STRING .
.SH "SEE ALSO"
XmbTextEscapement(3X11),
XmbTextPerCharExtents(3X11)
diff --git a/man/XmbTextListToTextProperty.man b/man/XmbTextListToTextProperty.man
index 94dffb36..13367377 100644
--- a/man/XmbTextListToTextProperty.man
+++ b/man/XmbTextListToTextProperty.man
@@ -1,5 +1,6 @@
'\" t
.\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X Consortium
+.\" Copyright \(co 2000 The XFree86 Project, Inc.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining
.\" a copy of this software and associated documentation files (the
@@ -40,7 +41,10 @@
.\" Digital and Tektronix makes no representations about the suitability
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
-.\"
+.\"
+.\" $XFree86: xc/doc/man/X11/XTLTTProp.man,v 1.6 2003/04/28 22:17:57 herrb Exp $
+.\" $XdotOrg: lib/X11/man/XmbTextListToTextProperty.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -140,59 +144,36 @@
..
.ny0
'\" t
-.TH XmbTextListToTextProperty 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XmbTextListToTextProperty 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
-XmbTextListToTextProperty, XwcTextListToTextProperty, XmbTextPropertyToTextList, XwcTextPropertyToTextList, XwcFreeStringList, XDefaultString \- convert text lists and text property structures
+XmbTextListToTextProperty, XwcTextListToTextProperty, Xutf8TextListToTextProperty, XmbTextPropertyToTextList, XwcTextPropertyToTextList, Xutf8TextPropertyToTextList, XwcFreeStringList, XDefaultString \- convert text lists and text property structures
.SH SYNTAX
-int XmbTextListToTextProperty\^(\^\fIdisplay\fP\^, \fIlist\fP\^, \fIcount\fP\^, \fIstyle\fP\^, \fItext_prop_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- char **\fIlist\fP\^;
-.br
- int \fIcount\fP\^;
-.br
- XICCEncodingStyle \fIstyle\fP\^;
-.br
- XTextProperty *\fItext_prop_return\fP\^;
-.LP
-int XwcTextListToTextProperty\^(\^\fIdisplay\fP\^, \fIlist\fP\^, \fIcount\fP\^, \fIstyle\fP\^, \fItext_prop_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- wchar_t **\fIlist\fP\^;
-.br
- int \fIcount\fP\^;
-.br
- XICCEncodingStyle \fIstyle\fP\^;
-.br
- XTextProperty *\fItext_prop_return\fP\^;
-.LP
-int XmbTextPropertyToTextList\^(\^\fIdisplay\fP\^, \fItext_prop\fP\^, \fIlist_return\fP\^, \fIcount_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XTextProperty *\fItext_prop\fP\^;
-.br
- char ***\fIlist_return\fP\^;
-.br
- int *\fIcount_return\fP\^;
-.LP
-int XwcTextPropertyToTextList\^(\^\fIdisplay\fP\^, \fItext_prop\fP\^, \fIlist_return\fP\^, \fIcount_return\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XTextProperty *\fItext_prop\fP\^;
-.br
- wchar_t ***\fIlist_return\fP\^;
-.br
- int *\fIcount_return\fP\^;
-.LP
-void XwcFreeStringList\^(\^\fIlist\fP\^)
-.br
- wchar_t **\fIlist\fP\^;
-.LP
-char *XDefaultString\^(\|)
+.HP
+int XmbTextListToTextProperty\^(\^Display *\fIdisplay\fP\^, char
+**\fIlist\fP\^, int \fIcount\fP\^, XICCEncodingStyle \fIstyle\fP\^,
+XTextProperty *\fItext_prop_return\fP\^);
+.HP
+int XwcTextListToTextProperty\^(\^Display *\fIdisplay\fP\^, wchar_t
+**\fIlist\fP\^, int \fIcount\fP\^, XICCEncodingStyle \fIstyle\fP\^,
+XTextProperty *\fItext_prop_return\fP\^);
+.HP
+int Xutf8TextListToTextProperty\^(\^Display *\fIdisplay\fP\^, char
+**\fIlist\fP\^, int \fIcount\fP\^, XICCEncodingStyle \fIstyle\fP\^,
+XTextProperty *\fItext_prop_return\fP\^);
+.HP
+int XmbTextPropertyToTextList\^(\^Display *\fIdisplay\fP\^, XTextProperty
+*\fItext_prop\fP\^, char ***\fIlist_return\fP\^, int *\fIcount_return\fP\^);
+.HP
+int XwcTextPropertyToTextList\^(\^Display *\fIdisplay\fP\^, XTextProperty
+*\fItext_prop\fP\^, wchar_t ***\fIlist_return\fP\^, int
+*\fIcount_return\fP\^);
+.HP
+int Xutf8TextPropertyToTextList\^(\^Display *\fIdisplay\fP\^, XTextProperty
+*\fItext_prop\fP\^, char ***\fIlist_return\fP\^, int *\fIcount_return\fP\^);
+.HP
+void XwcFreeStringList\^(\^wchar_t **\fIlist\fP\^);
+.HP
+char *XDefaultString\^(void)
.SH ARGUMENTS
.IP \fIdisplay\fP 1i
Specifies the connection to the X server.
@@ -219,15 +200,20 @@ Returns the number of \*(Cn.
Specifies the list of strings to be freed.
.SH DESCRIPTION
The
-.ZN XmbTextListToTextProperty
-and
+.ZN XmbTextListToTextProperty ,
.ZN XwcTextListToTextProperty
+and
+.ZN Xutf8TextListToTextProperty
functions set the specified
.ZN XTextProperty
value to a set of null-separated elements representing the concatenation
-of the specified list of null-terminated text strings.
-A final terminating null is stored at the end of the value field
-of text_prop_return but is not included in the nitems member.
+of the specified list of null-terminated text strings. The input text
+strings must be given in the current locale encoding (for
+.ZN XmbTextListToTextProperty
+and
+.ZN XwcTextListToTextProperty ),
+or in UTF-8 encoding (for
+.ZN Xutf8TextListToTextProperty ).
.LP
The functions set the encoding field of text_prop_return to an
.ZN Atom
@@ -241,6 +227,13 @@ or
.ZN XCompoundTextStyle
is specified,
this encoding is ``STRING'' or ``COMPOUND_TEXT'', respectively.
+If the style
+.ZN XUTF8StringStyle
+is specified,
+this encoding is ``UTF8_STRING''.
+(This is an extension introduced by The XFree86 Project, Inc. in their 4.0.2
+release. Its presence is indicated by the macro
+.ZN X_HAVE_UTF8_STRING .)
If the style
.ZN XTextStyle
is specified,
@@ -250,6 +243,8 @@ If the style
is specified,
this encoding is ``STRING'' if the text is fully convertible to STRING,
else ``COMPOUND_TEXT''.
+A final terminating null byte is stored at the end of the value field
+of text_prop_return but is not included in the nitems member.
.LP
If insufficient memory is available for the new value string,
the functions return
@@ -279,13 +274,20 @@ To free the storage for the value field, use
.ZN XFree .
.LP
The
-.ZN XmbTextPropertyToTextList
-and
+.ZN XmbTextPropertyToTextList ,
.ZN XwcTextPropertyToTextList
-functions return a list of text strings in the current locale representing the
+and
+.ZN Xutf8TextPropertyToTextList
+functions return a list of text strings representing the
null-separated elements of the specified
.ZN XTextProperty
-structure.
+structure. The returned strings are encoded using the current locale encoding
+(for
+.ZN XmbTextPropertyToTextList
+and
+.ZN XwcTextPropertyToTextList )
+or in UTF-8 (for
+.ZN Xutf8TextPropertyToTextList ).
The data in text_prop must be format 8.
.LP
Multiple elements of the property (for example, the strings in a disjoint
@@ -294,9 +296,10 @@ The contents of the property are not required to be null-terminated;
any terminating null should not be included in text_prop.nitems.
.LP
If insufficient memory is available for the list and its elements,
-.ZN XmbTextPropertyToTextList
-and
+.ZN XmbTextPropertyToTextList ,
.ZN XwcTextPropertyToTextList
+and
+.ZN Xutf8TextPropertyToTextList
return
.ZN XNoMemory .
If the current locale is not supported,
@@ -307,7 +310,7 @@ to the encoding of the current locale,
the functions return
.ZN XConverterNotFound .
For supported locales,
-existence of a converter from COMPOUND_TEXT, STRING
+existence of a converter from COMPOUND_TEXT, STRING, UTF8_STRING
or the encoding of the current locale is guaranteed if
.ZN XSupportsLocale
returns
@@ -319,14 +322,15 @@ In all of these error cases,
the functions do not set any return values.
.LP
Otherwise,
-.ZN XmbTextPropertyToTextList
-and
+.ZN XmbTextPropertyToTextList ,
.ZN XwcTextPropertyToTextList
+and
+.ZN Xutf8TextPropertyToTextList
return the list of null-terminated text strings to list_return
and the number of text strings to count_return.
.LP
-If the value field of text_prop is not fully convertible to the encoding of
-the current locale,
+If the value field of text_prop is not fully convertible to the
+encoding of the current locale,
the functions return the number of unconvertible characters.
Each unconvertible character is converted to a string in the
current locale that is specific to the current locale.
@@ -334,14 +338,17 @@ To obtain the value of this string,
use
.ZN XDefaultString .
Otherwise,
-.ZN XmbTextPropertyToTextList
-and
+.ZN XmbTextPropertyToTextList ,
.ZN XwcTextPropertyToTextList
+and
+.ZN Xutf8TextPropertyToTextList
return
.ZN Success .
.LP
To free the storage for the list and its contents returned by
-.ZN XmbTextPropertyToTextList ,
+.ZN XmbTextPropertyToTextList
+or
+.ZN Xutf8TextPropertyToTextList ,
use
.ZN XFreeStringList .
To free the storage for the list and its contents returned by
@@ -383,6 +390,15 @@ The returned string is null-terminated.
It is owned by Xlib and should not be modified or freed by the client.
It may be freed after the current locale is changed.
Until freed, it will not be modified by Xlib.
+.LP
+The functions
+.ZN Xutf8TextListToTextProperty
+and
+.ZN Xutf8TextPropertyToTextList
+are extensions introduced by The XFree86 Project, Inc. in their 4.0.2
+release. Their presence is
+indicated by the macro
+.ZN X_HAVE_UTF8_STRING .
.SH STRUCTURES
The
.ZN XTextProperty
@@ -392,10 +408,10 @@ structure contains:
.TA .5i 2.5i
.ta .5i 2.5i
typedef struct {
- unsigned char *value; /* property data */
- Atom encoding; /* type of property */
- int format; /* 8, 16, or 32 */
- unsigned long nitems; /* number of items in value */
+ unsigned char *value; /\(** property data */
+ Atom encoding; /\(** type of property */
+ int format; /\(** 8, 16, or 32 */
+ unsigned long nitems; /\(** number of items in value */
} XTextProperty;
.De
.LP
@@ -406,21 +422,21 @@ structure contains:
.TS
lw(.5i) lw(2i) lw(2.5i).
T{
-#define
+\&#define
T} T{
.ZN XNoMemory
T} T{
\-1
T}
T{
-#define
+\&#define
T} T{
.ZN XLocaleNotSupported
T} T{
\-2
T}
T{
-#define
+\&#define
T} T{
.ZN XConverterNotFound
T} T{
@@ -431,10 +447,11 @@ T}
.TA .5i 2.5i
.ta .5i 2.5i
typedef enum {
- XStringStyle, /* STRING */
- XCompoundTextStyle, /* COMPOUND_TEXT */
- XTextStyle, /* text in owner's encoding (current locale) */
- XStdICCTextStyle /* STRING, else COMPOUND_TEXT */
+ XStringStyle, /\(** STRING */
+ XCompoundTextStyle, /\(** COMPOUND_TEXT */
+ XTextStyle, /\(** text in owner's encoding (current locale) */
+ XStdICCTextStyle, /\(** STRING, else COMPOUND_TEXT */
+ XUTF8StringStyle /\(** UTF8_STRING */
} XICCEncodingStyle;
.De
.SH "SEE ALSO"
diff --git a/man/XmbTextPerCharExtents.man b/man/XmbTextPerCharExtents.man
index 1173a8a1..ba1d2e3a 100644
--- a/man/XmbTextPerCharExtents.man
+++ b/man/XmbTextPerCharExtents.man
@@ -1,4 +1,5 @@
.\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X Consortium
+.\" Copyright \(co 2000 The XFree86 Project, Inc.
.\"
.\" Permission is hereby granted, free of charge, to any person obtaining
.\" a copy of this software and associated documentation files (the
@@ -39,6 +40,8 @@
.\" Digital and Tektronix makes no representations about the suitability
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
+.\"
+.\" $XFree86: xc/doc/man/X11/XmbTPCEx.man,v 1.4 2001/01/27 18:20:08 dawes Exp $
.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
@@ -138,53 +141,28 @@
.el .sp 10p
..
.ny0
-.TH XmbTextPerCharExtents 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XmbTextPerCharExtents 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
-XmbTextPerCharExtents, XwcTextPerCharExtents \- obtain per-character information for a text string
+XmbTextPerCharExtents, XwcTextPerCharExtents, Xutf8TextPerCharExtents \- obtain per-character information for a text string
.SH SYNTAX
-Status XmbTextPerCharExtents\^(\^\fIfont_set\fP\^, \fIstring\fP\^, \fInum_bytes\fP\^, \fIink_array_return\fP\^,
-.br
- \fIlogical_array_return\fP\^, \fIarray_size\fP\^, \fInum_chars_return\fP\^, \fIoverall_ink_return\fP\^, \fIoverall_logical_return\fP\^)
-.br
- XFontSet \fIfont_set\fP\^;
-.br
- char *\fIstring\fP\^;
-.br
- int \fInum_bytes\fP\^;
-.br
- XRectangle *\fIink_array_return\fP\^;
-.br
- XRectangle *\fIlogical_array_return\fP\^;
-.br
- int \fIarray_size\fP\^;
-.br
- int *\fInum_chars_return\fP\^;
-.br
- XRectangle *\fIoverall_ink_return\fP\^;
-.br
- XRectangle *\fIoverall_logical_return\fP\^;
-.LP
-Status XwcTextPerCharExtents\^(\^\fIfont_set\fP\^, \fIstring\fP\^, \fInum_wchars\fP\^, \fIink_array_return\fP\^,
-.br
- \fIlogical_array_return\fP\^, \fIarray_size\fP\^, \fInum_chars_return\fP\^, \fIoverall_ink_return\fP\^, \fIoverall_logical_return\fP\^)
-.br
- XFontSet \fIfont_set\fP\^;
-.br
- wchar_t *\fIstring\fP\^;
-.br
- int \fInum_wchars\fP\^;
-.br
- XRectangle *\fIink_array_return\fP\^;
-.br
- XRectangle *\fIlogical_array_return\fP;
-.br
- int \fIarray_size\fP\^;
-.br
- int *\fInum_chars_return\fP\^;
-.br
- XRectangle *\fIoverall_ink_return\fP\^;
-.br
- XRectangle *\fIoverall_logical_return\fP\^;
+.HP
+Status XmbTextPerCharExtents\^(\^XFontSet \fIfont_set\fP\^, char
+*\fIstring\fP\^, int \fInum_bytes\fP\^, XRectangle *\fIink_array_return\fP\^,
+XRectangle *\fIlogical_array_return\fP\^, int \fIarray_size\fP\^, int
+*\fInum_chars_return\fP\^, XRectangle *\fIoverall_ink_return\fP\^, XRectangle
+*\fIoverall_logical_return\fP\^);
+.HP
+Status XwcTextPerCharExtents\^(\^XFontSet \fIfont_set\fP\^, wchar_t
+*\fIstring\fP\^, int \fInum_wchars\fP\^, XRectangle
+*\fIink_array_return\fP\^, XRectangle *\fIlogical_array_return\fP, int
+\fIarray_size\fP\^, int *\fInum_chars_return\fP\^, XRectangle
+*\fIoverall_ink_return\fP\^, XRectangle *\fIoverall_logical_return\fP\^);
+.HP
+Status Xutf8TextPerCharExtents\^(\^XFontSet \fIfont_set\fP\^, char
+*\fIstring\fP\^, int \fInum_bytes\fP\^, XRectangle *\fIink_array_return\fP\^,
+XRectangle *\fIlogical_array_return\fP\^, int \fIarray_size\fP\^, int
+*\fInum_chars_return\fP\^, XRectangle *\fIoverall_ink_return\fP\^, XRectangle
+*\fIoverall_logical_return\fP\^);
.SH ARGUMENTS
.IP \fIarray_size\fP 1i
Specifies the size of ink_array_return and logical_array_return.
@@ -210,9 +188,10 @@ Returns the overall logical \*(Ov.
Specifies the character string.
.SH DESCRIPTION
The
-.ZN XmbTextPerCharExtents
-and
+.ZN XmbTextPerCharExtents ,
.ZN XwcTextPerCharExtents
+and
+.ZN Xutf8TextPerCharExtents
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
@@ -255,14 +234,23 @@ and num_chars_return is set to the number of rectangles required.
Otherwise, the functions return a nonzero value.
.LP
If the overall_ink_return or overall_logical_return argument is non-NULL,
-.ZN XmbTextPerCharExtents
-and
+.ZN XmbTextPerCharExtents ,
.ZN XwcTextPerCharExtents
+and
+.ZN Xutf8TextPerCharExtents
return the maximum extent of the string's metrics to overall_ink_return
or overall_logical_return, as returned by
-.ZN XmbTextExtents
+.ZN XmbTextExtents ,
+.ZN XwcTextExtents
or
-.ZN XwcTextExtents .
+.ZN Xutf8TextExtents .
+.LP
+The function
+.ZN Xutf8TextPerCharExtents
+is an extension introduced by The XFree86 Project, Inc. in their 4.0.2
+release. Its presence is
+indicated by the macro
+.ZN X_HAVE_UTF8_STRING .
.SH "SEE ALSO"
XmbTextEscapement(3X11),
XmbTextExtents(3X11)
diff --git a/man/XrmEnumerateDatabase.man b/man/XrmEnumerateDatabase.man
index d91081de..0da6490e 100644
--- a/man/XrmEnumerateDatabase.man
+++ b/man/XrmEnumerateDatabase.man
@@ -41,6 +41,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XEnumDB.man,v 1.4 2003/04/28 22:17:54 herrb Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -140,41 +142,31 @@
..
.ny0
'\" t
-.TH XrmEnumerateDatabase 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XrmEnumerateDatabase 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XrmEnumerateDatabase \- enumerate resource database entries
.SH SYNTAX
.TS
lw(.5i) lw(2i) lw(2.5i).
T{
-#define
+\&#define
T} T{
.ZN XrmEnumAllLevels
T} T{
0
T}
T{
-#define
+\&#define
T} T{
.ZN XrmEnumOneLevel
T} T{
1
T}
.TE
-.FD 0
-Bool XrmEnumerateDatabase\^(\^\fIdatabase\fP, \fIname_prefix\fP, \fIclass_prefix\fP, \fImode\fP, \fIproc\fP, \fIarg\fP\^)
-.br
- XrmDatabase \fIdatabase\fP\^;
-.br
- XrmNameList \fIname_prefix\fP\^;
-.br
- XrmClassList \fIclass_prefix\fP\^;
-.br
- int \fImode\fP\^;
-.br
- Bool (\^*\fIproc\fP\^)\^(\^)\^;
-.br
- XPointer \fIarg\fP\^;
+.HP
+Bool XrmEnumerateDatabase\^(\^XrmDatabase \fIdatabase\fP\^, XrmNameList
+\fIname_prefix\fP\^, XrmClassList \fIclass_prefix\fP\^, int \fImode\fP\^, Bool
+(\^*\fIproc\fP\^)\^(\^)\^, XPointer \fIarg\fP\^);
.SH ARGUMENTS
.IP \fIdatabase\fP 1i
Specifies the resource database.
@@ -231,7 +223,7 @@ The bindings and quarks lists are terminated by
Note that pointers
to the database and type are passed, but these values should not be modified.
.LP
-The procedure must not modifiy the database.
+The procedure must not modify the database.
If Xlib has been initialized for threads, the procedure is called with
the database locked and the result of a call by the procedure to any
Xlib function using the same database is not defined.
diff --git a/man/XrmGetFileDatabase.man b/man/XrmGetFileDatabase.man
index 62a9b55c..925eca94 100644
--- a/man/XrmGetFileDatabase.man
+++ b/man/XrmGetFileDatabase.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XGFDBase.man,v 1.2 2001/01/27 18:19:59 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,41 +140,26 @@
.el .sp 10p
..
.ny0
-.TH XrmGetFileDatabase 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XrmGetFileDatabase 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XrmGetFileDatabase, XrmPutFileDatabase, XrmGetStringDatabase, XrmLocaleOfDatabase, XrmGetDatabase, XrmSetDatabase, XrmDestroyDatabase \- retrieve and store resource databases
.SH SYNTAX
-XrmDatabase XrmGetFileDatabase\^(\^\fIfilename\fP\^)
-.br
- char *\fIfilename\fP\^;
-.LP
-void XrmPutFileDatabase\^(\^\fIdatabase\fP, \fIstored_db\fP\^)
-.br
- XrmDatabase \fIdatabase\fP\^;
-.br
- char *\fIstored_db\fP\^;
-.LP
-XrmDatabase XrmGetStringDatabase\^(\^\fIdata\fP\^)
-.br
- char *\fIdata\fP\^;
-.LP
-char *XrmLocaleOfDatabase\^(\^\fIdatabase\fP\^)
-.br
- XrmDatabase \fIdatabase\fP\^;
-.LP
-XrmDatabase XrmGetDatabase\^(\^\fIdisplay\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.LP
-void XrmSetDatabase\^(\^\fIdisplay\fP\^, \fIdatabase\fP\^)
-.br
- Display *\fIdisplay\fP\^;
-.br
- XrmDatabase \fIdatabase\fP\^;
-.LP
-void XrmDestroyDatabase\^(\^\fIdatabase\fP\^)
-.br
- XrmDatabase \fIdatabase\fP\^;
+.HP
+XrmDatabase XrmGetFileDatabase\^(\^char *\fIfilename\fP\^);
+.HP
+void XrmPutFileDatabase\^(\^XrmDatabase \fIdatabase\fP\^, char
+*\fIstored_db\fP\^);
+.HP
+XrmDatabase XrmGetStringDatabase\^(\^char *\fIdata\fP\^,
+.HP
+char *XrmLocaleOfDatabase\^(\^XrmDatabase \fIdatabase\fP\^);
+.HP
+XrmDatabase XrmGetDatabase\^(\^Display *\fIdisplay\fP\^);
+.HP
+void XrmSetDatabase\^(\^Display *\fIdisplay\fP\^, XrmDatabase
+\fIdatabase\fP\^);
+.HP
+void XrmDestroyDatabase\^(\^XrmDatabase \fIdatabase\fP\^);
.SH ARGUMENTS
.IP \fIfilename\fP 1i
Specifies the resource database file name.
diff --git a/man/XrmGetResource.man b/man/XrmGetResource.man
index 65dad31d..98e96dc8 100644
--- a/man/XrmGetResource.man
+++ b/man/XrmGetResource.man
@@ -41,6 +41,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XGetRes.man,v 1.3 2001/02/09 03:47:45 tsi Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -140,63 +142,28 @@
..
.ny0
'\" e
-.TH XrmGetResource 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XrmGetResource 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XrmGetResource, XrmQGetResource, XrmQGetSearchList, XrmQGetSearchResource \- retrieve database resources and search lists
.SH SYNTAX
-Bool XrmGetResource\^(\^\fIdatabase\fP, \fIstr_name\fP, \fIstr_class\fP, \
-\fIstr_type_return\fP, \fIvalue_return\fP\^)
-.br
- XrmDatabase \fIdatabase\fP\^;
-.br
- char *\fIstr_name\fP\^;
-.br
- char *\fIstr_class\fP\^;
-.br
- char **\fIstr_type_return\fP\^;
-.br
- XrmValue *\fIvalue_return\fP\^;
-.LP
-Bool XrmQGetResource\^(\^\fIdatabase\fP, \fIquark_name\fP, \fIquark_class\fP, \
-\fIquark_type_return\fP, \fIvalue_return\fP\^)
-.br
- XrmDatabase \fIdatabase\fP\^;
-.br
- XrmNameList \fIquark_name\fP\^;
-.br
- XrmClassList \fIquark_class\fP\^;
-.br
- XrmRepresentation *\fIquark_type_return\fP\^;
-.br
- XrmValue *\fIvalue_return\fP\^;
-.LP
+.HP
+Bool XrmGetResource\^(\^XrmDatabase \fIdatabase\fP\^, char *\fIstr_name\fP\^,
+char *\fIstr_class\fP\^, char **\fIstr_type_return\fP\^, XrmValue
+*\fIvalue_return\fP\^);
+.HP
+Bool XrmQGetResource\^(\^XrmDatabase \fIdatabase\fP\^, XrmNameList
+\fIquark_name\fP\^, XrmClassList \fIquark_class\fP\^, XrmRepresentation
+*\fIquark_type_return\fP\^, XrmValue *\fIvalue_return\fP\^);
+.HP
typedef XrmHashTable *XrmSearchList;
.sp
-Bool XrmQGetSearchList\^(\^\fIdatabase\fP, \fInames\fP, \fIclasses\fP, \
-\fIlist_return\fP, \fIlist_length\fP\^)
-.br
- XrmDatabase \fIdatabase\fP\^;
-.br
- XrmNameList \fInames\fP\^;
-.br
- XrmClassList \fIclasses\fP\^;
-.br
- XrmSearchList \fIlist_return\fP\^;
-.br
- int \fIlist_length\fP\^;
-.LP
-Bool XrmQGetSearchResource\^(\^\fIlist\fP, \fIname\fP, \fIclass\fP, \
-\fItype_return\fP, \fIvalue_return\fP\^)
-.br
- XrmSearchList \fIlist\fP\^;
-.br
- XrmName \fIname\fP\^;
-.br
- XrmClass \fIclass\fP\^;
-.br
- XrmRepresentation *\fItype_return\fP\^;
-.br
- XrmValue *\fIvalue_return\fP\^;
+Bool XrmQGetSearchList\^(\^XrmDatabase \fIdatabase\fP\^, XrmNameList
+\fInames\fP\^, XrmClassList \fIclasses\fP\^, XrmSearchList
+\fIlist_return\fP\^, int \fIlist_length\fP\^);
+.HP
+Bool XrmQGetSearchResource\^(\^XrmSearchList \fIlist\fP\^, XrmName
+\fIname\fP\^, XrmClass \fIclass\fP\^, XrmRepresentation *\fItype_return\fP\^,
+XrmValue *\fIvalue_return\fP\^);
.SH ARGUMENTS
.IP \fIclass\fP 1i
Specifies the resource class.
diff --git a/man/XrmInitialize.man b/man/XrmInitialize.man
index 9aed6182..90484bfd 100644
--- a/man/XrmInitialize.man
+++ b/man/XrmInitialize.man
@@ -40,6 +40,9 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XInitial.man,v 1.4 2003/04/28 22:17:55 herrb Exp $
+.\" $XdotOrg: lib/X11/man/XrmInitialize.man,v 1.2 2004-04-23 18:42:09 eich Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,26 +141,16 @@
.el .sp 10p
..
.ny0
-.TH XrmInitialize 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XrmInitialize 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XrmInitialize, XrmParseCommand, XrmValue, XrmOptionKind, XrmOptionDescRec \- initialize the Resource Manager, Resource Manager structures, and parse the command line
.SH SYNTAX
-void XrmInitialize\^(\|);
-.LP
-void XrmParseCommand\^(\^\fIdatabase\fP\^, \^\fItable\fP\^, \^\fItable_count\fP\^, \
-\^\fIname\fP\^, \^\fIargc_in_out\fP\^, \^\fIargv_in_out\fP\^)
-.br
- XrmDatabase *\fIdatabase\fP\^;
-.br
- XrmOptionDescList \fItable\fP\^;
-.br
- int \fItable_count\fP\^;
-.br
- char *\fIname\fP\^;
-.br
- int *\fIargc_in_out\fP\^;
-.br
- char **\fIargv_in_out\fP\^;
+.HP
+void XrmInitialize\^(void\^);
+.HP
+void XrmParseCommand\^(\^XrmDatabase *\fIdatabase\fP\^, XrmOptionDescList
+\fItable\fP\^, int \fItable_count\fP\^, char *\fIname\fP\^, int
+*\fIargc_in_out\fP\^, char **\fIargv_in_out\fP\^);
.SH ARGUMENTS
.IP \fIargc_in_out\fP 1i
Specifies the number of arguments and returns the number of remaining arguments.
@@ -240,14 +233,14 @@ typedef struct {
.TA .5i 2.5i
.ta .5i 2.5i
typedef enum {
- XrmoptionNoArg, /* Value is specified in XrmOptionDescRec.value */
- XrmoptionIsArg, /* Value is the option string itself */
- XrmoptionStickyArg, /* Value is characters immediately following option */
- XrmoptionSepArg, /* Value is next argument in argv */
- XrmoptionResArg, /* Resource and value in next argument in argv */
- XrmoptionSkipArg, /* Ignore this option and the next argument in argv */
- XrmoptionSkipLine, /* Ignore this option and the rest of argv */
- XrmoptionSkipNArgs /* Ignore this option and the next
+ XrmoptionNoArg, /\(** Value is specified in XrmOptionDescRec.value */
+ XrmoptionIsArg, /\(** Value is the option string itself */
+ XrmoptionStickyArg, /\(** Value is characters immediately following option */
+ XrmoptionSepArg, /\(** Value is next argument in argv */
+ XrmoptionResArg, /\(** Resource and value in next argument in argv */
+ XrmoptionSkipArg, /\(** Ignore this option and the next argument in argv */
+ XrmoptionSkipLine, /\(** Ignore this option and the rest of argv */
+ XrmoptionSkipNArgs /\(** Ignore this option and the next
\ \ \ XrmOptionDescRec.value arguments in argv */
} XrmOptionKind;
.De
@@ -256,10 +249,10 @@ typedef enum {
.TA .5i 2.5i
.ta .5i 2.5i
typedef struct {
- char *option; /* Option specification string in argv */
- char *specifier; /* Binding and resource name (sans application name) */
- XrmOptionKind argKind; /* Which style of option it is */
- XPointer value; /* Value to provide if XrmoptionNoArg or
+ char *option; /\(** Option specification string in argv */
+ char *specifier; /\(** Binding and resource name (sans application name) */
+ XrmOptionKind argKind; /\(** Which style of option it is */
+ XPointer value; /\(** Value to provide if XrmoptionNoArg or
\ \ \ XrmoptionSkipNArgs */
} XrmOptionDescRec, *XrmOptionDescList;
.De
diff --git a/man/XrmMergeDatabases.man b/man/XrmMergeDatabases.man
index 3cd1f3fc..835dfaf9 100644
--- a/man/XrmMergeDatabases.man
+++ b/man/XrmMergeDatabases.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XMDBases.man,v 1.2 2001/01/27 18:20:01 dawes Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,27 +140,18 @@
.el .sp 10p
..
.ny0
-.TH XrmMergeDatabases 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XrmMergeDatabases 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XrmMergeDatabases, XrmCombineDatabase, XrmCombineFileDatabase \- merge resource databases
.SH SYNTAX
-void XrmMergeDatabases(\^\fIsource_db\fP, \fItarget_db\fP\^)
-.br
- XrmDatabase \fIsource_db\fP, *\fItarget_db\fP\^;
-.LP
-void XrmCombineDatabase(\^\fIsource_db\fP, \fItarget_db\fP, \fIoverride\fP\^)
-.br
- XrmDatabase \fIsource_db\fP, *\fItarget_db\fP\^;
-.br
- Bool \fIoverride\fP;
-.LP
-Status XrmCombineFileDatabase(\^\fIfilename\fP, \fItarget_db\fP, \fIoverride\fP\^)
-.br
- char *\fIfilename\fP;
-.br
- XrmDatabase *\fItarget_db\fP\^;
-.br
- Bool \fIoverride\fP;
+.HP
+void XrmMergeDatabases(\^XrmDatabase \fIsource_db\fP, *\fItarget_db\fP\^);
+.HP
+void XrmCombineDatabase(\^XrmDatabase \fIsource_db\fP, XrmDatabase
+*\fItarget_db\fP\^);
+.HP
+Status XrmCombineFileDatabase(\^char *\fIfilename\fP, XrmDatabase
+*\fItarget_db\fP\^, Bool \fIoverride\fP);
.SH ARGUMENTS
.IP \fIsource_db\fP 1i
Specifies the resource database that is to be merged into the target database.
diff --git a/man/XrmPutResource.man b/man/XrmPutResource.man
index acbc6d7c..80c59cb2 100644
--- a/man/XrmPutResource.man
+++ b/man/XrmPutResource.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XPutRes.man,v 1.3 2001/02/09 03:47:46 tsi Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,57 +140,26 @@
.el .sp 10p
..
.ny0
-.TH XrmPutResource 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XrmPutResource 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XrmPutResource, XrmQPutResource, XrmPutStringResource, XrmQPutStringResource, XrmPutLineResource \- store database resources
.SH SYNTAX
-void XrmPutResource\^(\^\fIdatabase\fP, \fIspecifier\fP, \fItype\fP, \fIvalue\fP\^)
-.br
- XrmDatabase *\fIdatabase\fP\^;
-.br
- char *\fIspecifier\fP\^;
-.br
- char *\fItype\fP\^;
-.br
- XrmValue *\fIvalue\fP\^;
-.LP
-void XrmQPutResource\^(\^\fIdatabase\fP, \fIbindings\fP, \fIquarks\fP, \
-\fItype\fP, \fIvalue\fP\^)
-.br
- XrmDatabase *\fIdatabase\fP\^;
-.br
- XrmBindingList \fIbindings\fP\^;
-.br
- XrmQuarkList \fIquarks\fP\^;
-.br
- XrmRepresentation \fItype\fP\^;
-.br
- XrmValue *\fIvalue\fP\^;
-.LP
-void XrmPutStringResource\^(\^\fIdatabase\fP, \fIspecifier\fP, \fIvalue\fP\^)
-.br
- XrmDatabase *\fIdatabase\fP\^;
-.br
- char *\fIspecifier\fP\^;
-.br
- char *\fIvalue\fP\^;
-.LP
-void XrmQPutStringResource\^(\^\fIdatabase\fP, \fIbindings\fP, \fIquarks\fP, \
-\fIvalue\fP\^)
-.br
- XrmDatabase *\fIdatabase\fP\^;
-.br
- XrmBindingList \fIbindings\fP\^;
-.br
- XrmQuarkList \fIquarks\fP\^;
-.br
- char *\fIvalue\fP\^;
-.LP
-void XrmPutLineResource\^(\^\fIdatabase\fP, \fIline\fP\^)
-.br
- XrmDatabase *\fIdatabase\fP\^;
-.br
- char *\fIline\fP\^;
+.HP
+void XrmPutResource\^(\^XrmDatabase *\fIdatabase\fP\^, char
+*\fIspecifier\fP\^, char *\fItype\fP\^, XrmValue *\fIvalue\fP\^);
+.HP
+void XrmQPutResource\^(\^XrmDatabase *\fIdatabase\fP\^, XrmBindingList
+\fIbindings\fP\^, XrmQuarkList \fIquarks\fP\^, XrmRepresentation \fItype\fP\^,
+XrmValue *\fIvalue\fP\^);
+.HP
+void XrmPutStringResource\^(\^XrmDatabase *\fIdatabase\fP\^, char
+*\fIspecifier\fP\^, char *\fIvalue\fP\^);
+.HP
+void XrmQPutStringResource\^(\^XrmDatabase *\fIdatabase\fP\^, XrmBindingList
+\fIbindings\fP\^, XrmQuarkList \fIquarks\fP\^, char *\fIvalue\fP\^);
+.HP
+void XrmPutLineResource\^(\^XrmDatabase *\fIdatabase\fP\^, char
+*\fIline\fP\^);
.SH ARGUMENTS
.IP \fIbindings\fP 1i
Specifies a list of bindings.
@@ -216,6 +187,7 @@ followed by:
.Ds
XrmQPutResource(database, bindings, quarks, XrmStringToQuark(type), value)
.De
+.LP
If the specifier and type are not in the Host Portable Character Encoding,
the result is implementation-dependent.
The value is stored in the database without modification.
diff --git a/man/XrmUniqueQuark.man b/man/XrmUniqueQuark.man
index 54aa3cb7..45e53482 100644
--- a/man/XrmUniqueQuark.man
+++ b/man/XrmUniqueQuark.man
@@ -40,6 +40,8 @@
.\" of this documentation for any purpose.
.\" It is provided ``as is'' without express or implied warranty.
.\"
+.\" $XFree86: xc/doc/man/X11/XUQuark.man,v 1.4 2001/02/09 03:47:47 tsi Exp $
+.\"
.ds xT X Toolkit Intrinsics \- C Language Interface
.ds xW Athena X Widgets \- C Language X Toolkit Interface
.ds xL Xlib \- C Language X Interface
@@ -138,61 +140,51 @@
.el .sp 10p
..
.ny0
-.TH XrmUniqueQuark 3X11 "Release 6.6" "X Version 11" "XLIB FUNCTIONS"
+.TH XrmUniqueQuark 3X11 __xorgversion__ "XLIB FUNCTIONS"
.SH NAME
XrmUniqueQuark, XrmStringToQuark, XrmPermStringToQuark, XrmQuarkToString, XrmStringToQuarkList, XrmStringToBindingQuarkList \- manipulate resource quarks
.SH SYNTAX
-XrmQuark XrmUniqueQuark\^(\|)
+.HP
+XrmQuark XrmUniqueQuark\^(void);
.LP
-#define XrmStringToName(string) XrmStringToQuark(string)
-#define XrmStringToClass(string) XrmStringToQuark(string)
-#define XrmStringToRepresentation(string) XrmStringToQuark(string)
-.sp
-XrmQuark XrmStringToQuark\^(\^\fIstring\fP\^)
+\&#define XrmStringToName(string) XrmStringToQuark(string)
.br
- char *\fIstring\fP\^;
-.sp
-XrmQuark XrmPermStringToQuark\^(\^\fIstring\fP\^)
+\&#define XrmStringToClass(string) XrmStringToQuark(string)
.br
- char *\fIstring\fP\^;
+\&#define XrmStringToRepresentation(string) XrmStringToQuark(string)
+.HP
+int XrmQuark XrmStringToQuark\^(\^char *\fIstring\fP\^);
+.HP
+XrmQuark XrmPermStringToQuark\^(\^char *\fIstring\fP\^);
.LP
-#define XrmStringToName(string) XrmStringToQuark(string)
-#define XrmStringToClass(string) XrmStringToQuark(string)
-#define XrmStringToRepresentation(string) XrmStringToQuark(string)
-.sp
-XrmQuark XrmStringToQuark\^(\^\fIstring\fP\^)
-.br
- char *\fIstring\fP\^;
-.sp
-XrmQuark XrmPermStringToQuark\^(\^\fIstring\fP\^)
+\&#define XrmStringToName(string) XrmStringToQuark(string)
.br
- char *\fIstring\fP\^;
-.LP
-#define XrmNameToString(name) XrmQuarkToString(name)
-#define XrmClassToString(class) XrmQuarkToString(class)
-#define XrmRepresentationToString(type) XrmQuarkToString(type)
-.sp
-char *XrmQuarkToString\^(\^\fIquark\fP\^)
+\&#define XrmStringToClass(string) XrmStringToQuark(string)
.br
- XrmQuark \fIquark\fP\^;
+\&#define XrmStringToRepresentation(string) XrmStringToQuark(string)
+.HP
+XrmQuark XrmStringToQuark\^(\^char *\fIstring\fP\^);
+.HP
+XrmQuark XrmPermStringToQuark\^(\^char *\fIstring\fP\^);
.LP
-#define XrmStringToNameList(str, name) XrmStringToQuarkList((str), (name))
-#define XrmStringToClassList(str,class) XrmStringToQuarkList((str), (class))
-.sp
-void XrmStringToQuarkList\^(\^\fIstring\fP, \fIquarks_return\fP\^)
+\&#define XrmNameToString(name) XrmQuarkToString(name)
.br
- char *\fIstring\fP\^;
+\&#define XrmClassToString(class) XrmQuarkToString(class)
.br
- XrmQuarkList \fIquarks_return\fP\^;
+\&#define XrmRepresentationToString(type) XrmQuarkToString(type)
+.HP
+char *XrmQuarkToString\^(\^XrmQuark \fIquark\fP\^);
.LP
-XrmStringToBindingQuarkList\^(\^\fIstring\fP, \fIbindings_return\fP, \
-\fIquarks_return\fP\^)
+\&#define XrmStringToNameList(str, name) XrmStringToQuarkList((str), (name))
.br
- char *\fIstring\fP\^;
-.br
- XrmBindingList \fIbindings_return\fP\^;
-.br
- XrmQuarkList \fIquarks_return\fP\^;
+\&#define XrmStringToClassList(str,class) XrmStringToQuarkList((str), (class))
+.sp
+.HP
+void XrmStringToQuarkList\^(\^char *\fIstring\fP\^, XrmQuarkList
+\fIquarks_return\fP\^);
+.HP
+XrmStringToBindingQuarkList\^(\^char *\fIstring\fP\^, XrmBindingList
+\fIbindings_return\fP\^, XrmQuarkList \fIquarks_return\fP\^);
.SH ARGUMENTS
.IP \fIbindings_return\fP 1i
Returns the binding list.
diff --git a/modules/im/ximcp/imCallbk.c b/modules/im/ximcp/imCallbk.c
index 158b1021..10f19d3a 100644
--- a/modules/im/ximcp/imCallbk.c
+++ b/modules/im/ximcp/imCallbk.c
@@ -32,11 +32,16 @@ PERFORMANCE OF THIS SOFTWARE.
makoto@sm.sony.co.jp
***********************************************************************/
+/* $XFree86: xc/lib/X11/imCallbk.c,v 3.9 2003/08/22 13:29:16 pascal Exp $ */
#include "Xlibint.h"
#include "Xlcint.h"
#include "Ximint.h"
#include "XlcPubI.h"
+#ifdef X_LOCALE
+#define mblen(a,b) _Xmblen(a,b)
+extern int _Xmblen ();
+#endif
#define sz_CARD8 1
#define sz_INT8 1
@@ -71,9 +76,7 @@ typedef enum {
} XimCbStatus;
typedef XimCbStatus (*XimCb)(
-#if NeedFunctionPrototypes
Xim, Xic, char*, int
-#endif
);
#define PACKET_TO_MAJOROPCODE(p) (*(CARD8*)((CARD8*)(p)))
@@ -88,8 +91,6 @@ typedef XimCbStatus (*XimCb)(
(im->private.proto.read((im),(XPointer)(buf),(buf_len),&(len)))
#define _XimFlushData(im) im->private.proto.flush((im))
-#if NeedFunctionPrototypes
-Public Bool _XimCbDispatch(Xim xim, INT16 len, XPointer data, XPointer call_data);
Private XimCbStatus _XimGeometryCallback(Xim, Xic, char*, int);
Private XimCbStatus _XimStrConversionCallback(Xim, Xic, char*, int);
Private XimCbStatus _XimPreeditStartCallback(Xim, Xic, char*, int);
@@ -101,30 +102,11 @@ Private XimCbStatus _XimStatusStartCallback(Xim, Xic, char*, int);
Private XimCbStatus _XimStatusDoneCallback(Xim, Xic, char*, int);
Private XimCbStatus _XimStatusDrawCallback(Xim, Xic, char*, int);
Private XimCbStatus _XimPreeditStateNotifyCallback(Xim, Xic, char *, int);
-#else
-Public Bool _XimCbDispatch();
-Private XimCbStatus _XimGeometryCallback();
-Private XimCbStatus _XimStrConversionCallback();
-Private XimCbStatus _XimPreeditStartCallback();
-Private XimCbStatus _XimPreeditDoneCallback();
-Private void _free_memory_for_text();
-Private XimCbStatus _XimPreeditDrawCallback();
-Private XimCbStatus _XimPreeditCaretCallback();
-Private XimCbStatus _XimStatusStartCallback();
-Private XimCbStatus _XimStatusDoneCallback();
-Private XimCbStatus _XimStatusDrawCallback();
-Private XimCbStatus _XimPreeditStateNotifyCallback();
-#endif /* NeedFunctionPrototypes */
-
-#ifdef __STDC__
-#define Const const
-#else
-#define Const /**/
-#endif
+
#if defined(__STDC__) && ((defined(sun) && defined(SVR4)) || defined(WIN32))
#define RConst /**/
#else
-#define RConst Const
+#define RConst const
#endif
/* NOTE:
@@ -156,23 +138,13 @@ static RConst XimCb callback_table[] = {
Private Bool
-#if NeedFunctionPrototypes
_XimIsReadyForProcess(Xic ic)
-#else
-_XimIsReadyForProcess(ic)
- Xic ic;
-#endif
{
return(!ic->private.proto.waitCallback); /* check HM */
}
Private void
-#if NeedFunctionPrototypes
_XimProcessPendingCallbacks(Xic ic)
-#else
-_XimProcessPendingCallbacks(ic)
- Xic ic;
-#endif
{
XimPendingCallback pcbq;
@@ -189,13 +161,7 @@ _XimProcessPendingCallbacks(ic)
}
Private void
-#if NeedFunctionPrototypes
_XimPutCbIntoQueue(Xic ic, XimPendingCallback call_data)
-#else
-_XimPutCbIntoQueue(ic, call_data)
- Xic ic;
- XimPendingCallback call_data;
-#endif
{
XimPendingCallback pcbq = ic->private.proto.pend_cb_que;
@@ -216,18 +182,10 @@ _XimPutCbIntoQueue(ic, call_data)
}
Public Bool
-#if NeedFunctionPrototypes
_XimCbDispatch(Xim xim,
INT16 len,
XPointer data,
XPointer call_data)
-#else
-_XimCbDispatch(xim, len, data, call_data)
- Xim xim;
- INT16 len;
- XPointer data;
- XPointer call_data;
-#endif
{
/* `data' points to the beginning of the packet defined in IM Protocol doc.
*/
@@ -301,20 +259,12 @@ _XimCbDispatch(xim, len, data, call_data)
}
Private XimCbStatus
-#if NeedFunctionPrototypes
_XimGeometryCallback(Xim im,
Xic ic,
char* proto,
int len)
-#else
-_XimGeometryCallback(im, ic, proto, len)
- Xim im;
- Xic ic;
- char* proto;
- int len;
-#endif
{
- XIMCallback* cb = &ic->core.geometry_callback;
+ XICCallback* cb = &ic->core.geometry_callback;
/* invoke the callack
*/
@@ -332,20 +282,12 @@ _XimGeometryCallback(im, ic, proto, len)
}
Private XimCbStatus
-#if NeedFunctionPrototypes
_XimStrConversionCallback(Xim im,
Xic ic,
char* proto,
int len)
-#else
-_XimStrConversionCallback(im, ic, proto, len)
- Xim im;
- Xic ic;
- char* proto;
- int len;
-#endif
{
- XIMCallback* cb = &ic->core.string_conversion_callback; /* check HM */
+ XICCallback* cb = &ic->core.string_conversion_callback; /* check HM */
XIMStringConversionCallbackStruct cbrec;
/* invoke the callback
@@ -361,7 +303,7 @@ _XimStrConversionCallback(im, ic, proto, len)
cbrec.factor = (unsigned short)
*(CARD32*)&proto[p];
- (*cb->callback)((XIC)ic, cb->client_data, &cbrec);
+ (*cb->callback)((XIC)ic, cb->client_data, (XPointer)&cbrec);
}
else {
@@ -423,32 +365,18 @@ _XimStrConversionCallback(im, ic, proto, len)
}
Private XimCbStatus
-#if NeedFunctionPrototypes
_XimPreeditStartCallback(Xim im,
Xic ic,
char* proto,
int len)
-#else
-_XimPreeditStartCallback(im, ic, proto, len)
- Xim im;
- Xic ic;
- char* proto;
- int len;
-#endif
{
- XIMCallback* cb = &ic->core.preedit_attr.start_callback;
+ XICCallback* cb = &ic->core.preedit_attr.start_callback;
int ret;
/* invoke the callback
*/
if (cb && cb->callback){
- ret = (*(int (*)(
-#if NeedNestedPrototypes
- XIC, XPointer, XPointer
-#endif
- ))(cb->callback))((XIC)ic,
- cb->client_data,
- (XPointer)NULL);
+ ret = (*(cb->callback))((XIC)ic, cb->client_data, (XPointer)NULL);
}
else {
@@ -486,20 +414,12 @@ _XimPreeditStartCallback(im, ic, proto, len)
}
Private XimCbStatus
-#if NeedFunctionPrototypes
_XimPreeditDoneCallback(Xim im,
Xic ic,
char* proto,
int len)
-#else
-_XimPreeditDoneCallback(im, ic, proto, len)
- Xim im;
- Xic ic;
- char* proto;
- int len;
-#endif
{
- XIMCallback* cb = &ic->core.preedit_attr.done_callback;
+ XICCallback* cb = &ic->core.preedit_attr.done_callback;
/* invoke the callback
*/
@@ -517,16 +437,9 @@ _XimPreeditDoneCallback(im, ic, proto, len)
}
Private void
-#if NeedFunctionPrototypes
_read_text_from_packet(Xim im,
char* buf,
XIMText** text_ptr)
-#else
-_read_text_from_packet(im, buf, text_ptr)
- Xim im;
- char* buf;
- XIMText** text_ptr;
-#endif
{
int status;
XIMText* text;
@@ -639,12 +552,7 @@ _read_text_from_packet(im, buf, text_ptr)
}
Private void
-#if NeedFunctionPrototypes
_free_memory_for_text(XIMText* text)
-#else
-_free_memory_for_text(text)
- XIMText* text;
-#endif
{
if (text) {
if (text->string.multi_byte)
@@ -656,20 +564,12 @@ _free_memory_for_text(text)
}
Private XimCbStatus
-#if NeedFunctionPrototypes
_XimPreeditDrawCallback(Xim im,
Xic ic,
char* proto,
int len)
-#else
-_XimPreeditDrawCallback(im, ic, proto, len)
- Xim im;
- Xic ic;
- char* proto;
- int len;
-#endif
{
- XIMCallback* cb = &ic->core.preedit_attr.draw_callback;
+ XICCallback* cb = &ic->core.preedit_attr.draw_callback;
XIMPreeditDrawCallbackStruct cbs;
/* invoke the callback
@@ -680,7 +580,7 @@ _XimPreeditDrawCallback(im, ic, proto, len)
cbs.chg_length = (int)*(INT32*)proto; proto += sz_INT32;
_read_text_from_packet(im, proto, &cbs.text);
- (*cb->callback)((XIC)ic, cb->client_data, &cbs);
+ (*cb->callback)((XIC)ic, cb->client_data, (XPointer)&cbs);
_free_memory_for_text((XIMText*)cbs.text);
}
@@ -695,20 +595,12 @@ _XimPreeditDrawCallback(im, ic, proto, len)
}
Private XimCbStatus
-#if NeedFunctionPrototypes
_XimPreeditCaretCallback(Xim im,
Xic ic,
char* proto,
int len)
-#else
-_XimPreeditCaretCallback(im, ic, proto, len)
- Xim im;
- Xic ic;
- char* proto;
- int len;
-#endif
{
- XIMCallback* cb = &ic->core.preedit_attr.caret_callback;
+ XICCallback* cb = &ic->core.preedit_attr.caret_callback;
XIMPreeditCaretCallbackStruct cbs;
/* invoke the callback
@@ -718,7 +610,7 @@ _XimPreeditCaretCallback(im, ic, proto, len)
cbs.direction = (XIMCaretDirection)*(CARD32*)proto; proto += sz_CARD32;
cbs.style = (XIMCaretStyle)*(CARD32*)proto; proto += sz_CARD32;
- (*cb->callback)((XIC)ic, cb->client_data, &cbs);
+ (*cb->callback)((XIC)ic, cb->client_data, (XPointer)&cbs);
}
else {
@@ -755,20 +647,12 @@ _XimPreeditCaretCallback(im, ic, proto, len)
}
Private XimCbStatus
-#if NeedFunctionPrototypes
_XimStatusStartCallback(Xim im,
Xic ic,
char* proto,
int len)
-#else
-_XimStatusStartCallback(im, ic, proto, len)
- Xim im;
- Xic ic;
- char* proto;
- int len;
-#endif
{
- XIMCallback* cb = &ic->core.status_attr.start_callback;
+ XICCallback* cb = &ic->core.status_attr.start_callback;
/* invoke the callback
*/
@@ -786,20 +670,12 @@ _XimStatusStartCallback(im, ic, proto, len)
}
Private XimCbStatus
-#if NeedFunctionPrototypes
_XimStatusDoneCallback(Xim im,
Xic ic,
char* proto,
int len)
-#else
-_XimStatusDoneCallback(im, ic, proto, len)
- Xim im;
- Xic ic;
- char* proto;
- int len;
-#endif
{
- XIMCallback* cb = &ic->core.status_attr.done_callback;
+ XICCallback* cb = &ic->core.status_attr.done_callback;
/* invoke the callback
*/
@@ -817,20 +693,12 @@ _XimStatusDoneCallback(im, ic, proto, len)
}
Private XimCbStatus
-#if NeedFunctionPrototypes
_XimStatusDrawCallback(Xim im,
Xic ic,
char* proto,
int len)
-#else
-_XimStatusDrawCallback(im, ic, proto, len)
- Xim im;
- Xic ic;
- char* proto;
- int len;
-#endif
{
- XIMCallback* cb = &ic->core.status_attr.draw_callback;
+ XICCallback* cb = &ic->core.status_attr.draw_callback;
XIMStatusDrawCallbackStruct cbs;
/* invoke the callback
@@ -846,7 +714,8 @@ _XimStatusDrawCallback(im, ic, proto, len)
(*cb->callback)((XIC)ic, cb->client_data, (XPointer)&cbs);
- _free_memory_for_text((XIMText *)cbs.data.text);
+ if (cbs.type == XIMTextType)
+ _free_memory_for_text((XIMText *)cbs.data.text);
}
else {
@@ -859,17 +728,9 @@ _XimStatusDrawCallback(im, ic, proto, len)
}
Private XimCbStatus
-#if NeedFunctionPrototypes
_XimPreeditStateNotifyCallback( Xim im, Xic ic, char* proto, int len )
-#else
-_XimPreeditStateNotifyCallback( im, ic, proto, len )
- Xim im;
- Xic ic;
- char *proto;
- int len;
-#endif
{
- XIMCallback *cb = &ic->core.preedit_attr.state_notify_callback;
+ XICCallback *cb = &ic->core.preedit_attr.state_notify_callback;
/* invoke the callack
*/
@@ -877,7 +738,7 @@ _XimPreeditStateNotifyCallback( im, ic, proto, len )
XIMPreeditStateNotifyCallbackStruct cbrec;
cbrec.state = *(BITMASK32 *)proto;
- (*cb->callback)( (XIC)ic, cb->client_data, &cbrec );
+ (*cb->callback)( (XIC)ic, cb->client_data, (XPointer)&cbrec );
}
else {
/* no callback registered
diff --git a/modules/im/ximcp/imDefFlt.c b/modules/im/ximcp/imDefFlt.c
index 6f32b446..5452d31f 100644
--- a/modules/im/ximcp/imDefFlt.c
+++ b/modules/im/ximcp/imDefFlt.c
@@ -26,6 +26,7 @@ PERFORMANCE OF THIS SOFTWARE.
fujiwara@a80.tech.yk.fujitsu.co.jp
******************************************************************/
+/* $XFree86: xc/lib/X11/imDefFlt.c,v 1.4 2001/01/17 19:41:51 dawes Exp $ */
#include <X11/Xatom.h>
#define NEED_EVENTS
@@ -35,11 +36,11 @@ PERFORMANCE OF THIS SOFTWARE.
#include "Ximint.h"
Private long
-_XimTriggerCheck(im, ev, len, keylist)
- Xim im;
- XKeyEvent *ev;
- INT32 len;
- CARD32 *keylist;
+_XimTriggerCheck(
+ Xim im,
+ XKeyEvent *ev,
+ INT32 len,
+ CARD32 *keylist)
{
register long i;
KeySym keysym;
@@ -66,27 +67,27 @@ _XimTriggerCheck(im, ev, len, keylist)
}
Private long
-_XimTriggerOnCheck(im, ev)
- Xim im;
- XKeyEvent *ev;
+_XimTriggerOnCheck(
+ Xim im,
+ XKeyEvent *ev)
{
return _XimTriggerCheck(im, ev, (INT32)im->private.proto.im_onkeylist[0],
&im->private.proto.im_onkeylist[1]);
}
Private long
-_XimTriggerOffCheck(im, ev)
- Xim im;
- XKeyEvent *ev;
+_XimTriggerOffCheck(
+ Xim im,
+ XKeyEvent *ev)
{
return _XimTriggerCheck(im, ev, (INT32)im->private.proto.im_offkeylist[0],
&im->private.proto.im_offkeylist[1]);
}
Private Bool
-_XimOnKeysCheck(ic, ev)
- Xic ic;
- XKeyEvent *ev;
+_XimOnKeysCheck(
+ Xic ic,
+ XKeyEvent *ev)
{
Xim im = (Xim)ic->core.im;
long idx;
@@ -103,9 +104,9 @@ _XimOnKeysCheck(ic, ev)
}
Private Bool
-_XimOffKeysCheck(ic, ev)
- Xic ic;
- XKeyEvent *ev;
+_XimOffKeysCheck(
+ Xic ic,
+ XKeyEvent *ev)
{
Xim im = (Xim)ic->core.im;
long idx;
@@ -122,8 +123,8 @@ _XimOffKeysCheck(ic, ev)
}
Private void
-_XimPendingFilter(ic)
- Xic ic;
+_XimPendingFilter(
+ Xic ic)
{
Xim im = (Xim)ic->core.im;
@@ -135,9 +136,9 @@ _XimPendingFilter(ic)
}
Private Bool
-_XimProtoKeypressFilter(ic, ev)
- Xic ic;
- XKeyEvent *ev;
+_XimProtoKeypressFilter(
+ Xic ic,
+ XKeyEvent *ev)
{
#ifdef XIM_CONNECTABLE
Xim im = (Xim)ic->core.im;
@@ -188,19 +189,19 @@ _XimProtoKeypressFilter(ic, ev)
}
Private Bool
-_XimFilterKeypress (d, w, ev, client_data)
- Display *d;
- Window w;
- XEvent *ev;
- XPointer client_data;
+_XimFilterKeypress(
+ Display *d,
+ Window w,
+ XEvent *ev,
+ XPointer client_data)
{
return _XimProtoKeypressFilter((Xic)client_data, (XKeyEvent *)ev );
}
Private Bool
-_XimProtoKeyreleaseFilter( ic, ev )
- Xic ic;
- XKeyEvent *ev;
+_XimProtoKeyreleaseFilter(
+ Xic ic,
+ XKeyEvent *ev)
{
#ifdef XIM_CONNECTABLE
Xim im = (Xim)ic->core.im;
@@ -251,18 +252,18 @@ _XimProtoKeyreleaseFilter( ic, ev )
}
Private Bool
-_XimFilterKeyrelease (d, w, ev, client_data)
- Display *d;
- Window w;
- XEvent *ev;
- XPointer client_data;
+_XimFilterKeyrelease(
+ Display *d,
+ Window w,
+ XEvent *ev,
+ XPointer client_data)
{
return _XimProtoKeyreleaseFilter((Xic)client_data, (XKeyEvent *)ev);
}
Private void
-_XimRegisterKeyPressFilter(ic)
- Xic ic ;
+_XimRegisterKeyPressFilter(
+ Xic ic)
{
if (ic->core.focus_window) {
if (!(ic->private.proto.registed_filter_event & KEYPRESS_MASK)) {
@@ -278,8 +279,8 @@ _XimRegisterKeyPressFilter(ic)
}
Private void
-_XimRegisterKeyReleaseFilter(ic)
- Xic ic ;
+_XimRegisterKeyReleaseFilter(
+ Xic ic)
{
if (ic->core.focus_window) {
if (!(ic->private.proto.registed_filter_event & KEYRELEASE_MASK)) {
@@ -295,8 +296,8 @@ _XimRegisterKeyReleaseFilter(ic)
}
Private void
-_XimUnregisterKeyPressFilter(ic)
- Xic ic ;
+_XimUnregisterKeyPressFilter(
+ Xic ic)
{
if (ic->core.focus_window) {
if (ic->private.proto.registed_filter_event & KEYPRESS_MASK) {
@@ -311,8 +312,8 @@ _XimUnregisterKeyPressFilter(ic)
}
Private void
-_XimUnregisterKeyReleaseFilter(ic)
- Xic ic ;
+_XimUnregisterKeyReleaseFilter(
+ Xic ic)
{
if (ic->core.focus_window) {
if (ic->private.proto.registed_filter_event & KEYRELEASE_MASK) {
@@ -327,8 +328,8 @@ _XimUnregisterKeyReleaseFilter(ic)
}
Public void
-_XimRegisterFilter(ic)
- Xic ic;
+_XimRegisterFilter(
+ Xic ic)
{
_XimRegisterKeyPressFilter(ic);
if (IS_FORWARD_EVENT(ic, KeyReleaseMask))
@@ -337,8 +338,8 @@ _XimRegisterFilter(ic)
}
Public void
-_XimUnregisterFilter(ic)
- Xic ic;
+_XimUnregisterFilter(
+ Xic ic)
{
_XimUnregisterKeyPressFilter(ic);
_XimUnregisterKeyReleaseFilter(ic);
@@ -346,8 +347,8 @@ _XimUnregisterFilter(ic)
}
Public void
-_XimReregisterFilter(ic)
- Xic ic;
+_XimReregisterFilter(
+ Xic ic)
{
if (IS_FORWARD_EVENT(ic, KeyReleaseMask))
_XimRegisterKeyReleaseFilter(ic);
@@ -358,11 +359,11 @@ _XimReregisterFilter(ic)
}
Private Bool
-_XimFilterServerDestroy (d, w, ev, client_data)
- Display *d;
- Window w;
- XEvent *ev;
- XPointer client_data;
+_XimFilterServerDestroy(
+ Display *d,
+ Window w,
+ XEvent *ev,
+ XPointer client_data)
{
Xim im = (Xim)client_data;
@@ -380,8 +381,8 @@ _XimFilterServerDestroy (d, w, ev, client_data)
}
Public void
-_XimRegisterServerFilter(im)
- Xim im ;
+_XimRegisterServerFilter(
+ Xim im)
{
if (im->private.proto.im_window) {
if (!(im->private.proto.registed_filter_event & DESTROYNOTIFY_MASK)) {
@@ -399,8 +400,8 @@ _XimRegisterServerFilter(im)
}
Public void
-_XimUnregisterServerFilter(im)
- Xim im ;
+_XimUnregisterServerFilter(
+ Xim im)
{
if (im->private.proto.im_window) {
if (im->private.proto.registed_filter_event & DESTROYNOTIFY_MASK) {
diff --git a/modules/im/ximcp/imDefIc.c b/modules/im/ximcp/imDefIc.c
index 37726654..8f3257e3 100644
--- a/modules/im/ximcp/imDefIc.c
+++ b/modules/im/ximcp/imDefIc.c
@@ -28,25 +28,18 @@ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
fujiwara@a80.tech.yk.fujitsu.co.jp
******************************************************************/
+/* $XFree86: xc/lib/X11/imDefIc.c,v 3.9 2003/04/13 19:22:20 dawes Exp $ */
#include "Xlibint.h"
#include "Xlcint.h"
#include "Ximint.h"
Private Bool
-#if NeedFunctionPrototypes
_XimCreateICCheck(
Xim im,
INT16 len,
XPointer data,
XPointer arg)
-#else
-_XimCreateICCheck(im, len, data, arg)
- Xim im;
- INT16 len;
- XPointer data;
- XPointer arg;
-#endif
{
CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
CARD8 major_opcode = *((CARD8 *)data);
@@ -181,17 +174,17 @@ _XimReCreateIC(ic)
buf_size = BUFSIZE;
ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
_XimCreateICCheck, 0);
- if(ret_code == XIM_TRUE) {
+ if (ret_code == XIM_TRUE) {
preply = reply;
- } else if(ret_code == XIM_OVERFLOW) {
- if(len <= 0) {
+ } else if (ret_code == XIM_OVERFLOW) {
+ if (len <= 0) {
preply = reply;
} else {
buf_size = (int)len;
preply = (XPointer)Xmalloc(buf_size);
ret_code = _XimRead(im, &len, preply, buf_size,
_XimCreateICCheck, 0);
- if(ret_code != XIM_TRUE) {
+ if (ret_code != XIM_TRUE) {
Xfree(preply);
ic->private.proto.waitCallback = False;
goto ErrorOnReCreateIC;
@@ -205,13 +198,13 @@ _XimReCreateIC(ic)
buf_s = (CARD16 *)((char *)preply + XIM_HEADER_SIZE);
if (*((CARD8 *)preply) == XIM_ERROR) {
_XimProcError(im, 0, (XPointer)&buf_s[3]);
- if(reply != preply)
+ if (reply != preply)
Xfree(preply);
goto ErrorOnReCreateIC;
}
ic->private.proto.icid = buf_s[1]; /* icid */
- if(reply != preply)
+ if (reply != preply)
Xfree(preply);
_XimRegisterFilter(ic);
@@ -245,19 +238,11 @@ _XimDelayModeGetICValues(ic, arg)
#endif /* XIM_CONNECTABLE */
Private Bool
-#if NeedFunctionPrototypes
_XimGetICValuesCheck(
Xim im,
INT16 len,
XPointer data,
XPointer arg)
-#else
-_XimGetICValuesCheck(im, len, data, arg)
- Xim im;
- INT16 len;
- XPointer data;
- XPointer arg;
-#endif
{
Xic ic = (Xic)arg;
CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
@@ -282,9 +267,9 @@ _XimGetICValuesCheck(im, len, data, arg)
}
Private char *
-_XimProtoGetICValues(xic, arg)
- XIC xic ;
- XIMArg *arg ;
+_XimProtoGetICValues(
+ XIC xic,
+ XIMArg *arg)
{
Xic ic = (Xic)xic;
Xim im = (Xim)ic->core.im;
@@ -371,17 +356,17 @@ _XimProtoGetICValues(xic, arg)
buf_size = BUFSIZE;
ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
_XimGetICValuesCheck, (XPointer)ic);
- if(ret_code == XIM_TRUE) {
+ if (ret_code == XIM_TRUE) {
preply = reply;
- } else if(ret_code == XIM_OVERFLOW) {
- if(len <= 0) {
+ } else if (ret_code == XIM_OVERFLOW) {
+ if (len <= 0) {
preply = reply;
} else {
buf_size = (int)len;
preply = (XPointer)Xmalloc(len);
ret_code = _XimRead(im, &len, preply, buf_size,
_XimGetICValuesCheck, (XPointer)ic);
- if(ret_code != XIM_TRUE) {
+ if (ret_code != XIM_TRUE) {
if (preply != reply)
Xfree(preply);
return arg->name;
@@ -393,7 +378,7 @@ _XimProtoGetICValues(xic, arg)
buf_s = (CARD16 *)((char *)preply + XIM_HEADER_SIZE);
if (*((CARD8 *)preply) == XIM_ERROR) {
_XimProcError(im, 0, (XPointer)&buf_s[3]);
- if(reply != preply)
+ if (reply != preply)
Xfree(preply);
return arg->name;
}
@@ -622,19 +607,11 @@ _XimDelayModeSetICValues(ic, arg)
#endif /* XIM_CONNECTABLE */
Private Bool
-#if NeedFunctionPrototypes
_XimSetICValuesCheck(
Xim im,
INT16 len,
XPointer data,
XPointer arg)
-#else
-_XimSetICValuesCheck(im, len, data, arg)
- Xim im;
- INT16 len;
- XPointer data;
- XPointer arg;
-#endif
{
Xic ic = (Xic)arg;
CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
@@ -659,9 +636,9 @@ _XimSetICValuesCheck(im, len, data, arg)
}
Private char *
-_XimProtoSetICValues(xic, arg)
- XIC xic;
- XIMArg *arg;
+_XimProtoSetICValues(
+ XIC xic,
+ XIMArg *arg)
{
Xic ic = (Xic)xic;
Xim im = (Xim)ic->core.im;
@@ -778,14 +755,14 @@ _XimProtoSetICValues(xic, arg)
buf_size = BUFSIZE;
ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
_XimSetICValuesCheck, (XPointer)ic);
- if(ret_code == XIM_TRUE) {
+ if (ret_code == XIM_TRUE) {
preply = reply;
- } else if(ret_code == XIM_OVERFLOW) {
+ } else if (ret_code == XIM_OVERFLOW) {
buf_size = (int)len;
preply = (XPointer)Xmalloc(buf_size);
ret_code = _XimRead(im, &len, preply, buf_size,
_XimSetICValuesCheck, (XPointer)ic);
- if(ret_code != XIM_TRUE) {
+ if (ret_code != XIM_TRUE) {
Xfree(preply);
ic->private.proto.waitCallback = False;
return tmp_name;
@@ -798,30 +775,22 @@ _XimProtoSetICValues(xic, arg)
buf_s = (CARD16 *)((char *)preply + XIM_HEADER_SIZE);
if (*((CARD8 *)preply) == XIM_ERROR) {
_XimProcError(im, 0, (XPointer)&buf_s[3]);
- if(reply != preply)
+ if (reply != preply)
Xfree(preply);
return tmp_name;
}
- if(reply != preply)
+ if (reply != preply)
Xfree(preply);
return name;
}
Private Bool
-#if NeedFunctionPrototypes
_XimDestroyICCheck(
Xim im,
INT16 len,
XPointer data,
XPointer arg)
-#else
-_XimDestroyICCheck(im, len, data, arg)
- Xim im;
- INT16 len;
- XPointer data;
- XPointer arg;
-#endif
{
Xic ic = (Xic)arg;
CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
@@ -847,8 +816,8 @@ _XimDestroyICCheck(im, len, data, arg)
}
Private void
-_XimProtoICFree(ic)
- Xic ic;
+_XimProtoICFree(
+ Xic ic)
{
#ifdef XIM_CONNECTABLE
Xim im = (Xim)ic->core.im;
@@ -894,8 +863,8 @@ _XimProtoICFree(ic)
}
Private void
-_XimProtoDestroyIC(xic)
- XIC xic;
+_XimProtoDestroyIC(
+ XIC xic)
{
Xic ic = (Xic)xic;
Xim im = (Xim)ic->core.im;
@@ -922,7 +891,7 @@ _XimProtoDestroyIC(xic)
buf_size = BUFSIZE;
ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
_XimDestroyICCheck, (XPointer)ic);
- if(ret_code == XIM_OVERFLOW) {
+ if (ret_code == XIM_OVERFLOW) {
buf_size = len;
preply = (XPointer)Xmalloc(buf_size);
(void)_XimRead(im, &len, preply, buf_size,
@@ -937,8 +906,8 @@ _XimProtoDestroyIC(xic)
}
Private void
-_XimProtoSetFocus(xic)
- XIC xic;
+_XimProtoSetFocus(
+ XIC xic)
{
Xic ic = (Xic)xic;
Xim im = (Xim)ic->core.im;
@@ -982,8 +951,8 @@ _XimProtoSetFocus(xic)
}
Private void
-_XimProtoUnsetFocus(xic)
- XIC xic;
+_XimProtoUnsetFocus(
+ XIC xic)
{
Xic ic = (Xic)xic;
Xim im = (Xim)ic->core.im;
@@ -1027,19 +996,11 @@ _XimProtoUnsetFocus(xic)
}
Private Bool
-#if NeedFunctionPrototypes
_XimResetICCheck(
Xim im,
INT16 len,
XPointer data,
XPointer arg)
-#else
-_XimResetICCheck(im, len, data, arg)
- Xim im;
- INT16 len;
- XPointer data;
- XPointer arg;
-#endif
{
Xic ic = (Xic)arg;
CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
@@ -1064,58 +1025,9 @@ _XimResetICCheck(im, len, data, arg)
}
Private char *
-_XimCommitedMbString(im, ic, buf)
- Xim im;
- Xic ic;
- XPointer buf;
-{
- CARD16 *buf_s = (CARD16 *)buf;
- XimCommitInfo info;
- int len;
- int new_len;
- char *commit;
- char *new_commit = NULL;
- char *str;
- Status status;
-
- len = 0;
- for (info = ic->private.proto.commit_info; info; info = info->next)
- len += info->string_len;
- len += buf_s[0];
- if( len == 0 )
- return( NULL );
-
- if (!(commit = (char *)Xmalloc(len + 1)))
- goto Error_On_Reset;
-
- str = commit;
- for (info = ic->private.proto.commit_info; info; info = info->next) {
- (void)memcpy(str, info->string, info->string_len);
- str += info->string_len;
- }
- (void)memcpy(str, (char *)&buf_s[1], buf_s[0]);
- commit[len] = '\0';
-
- new_len = im->methods->ctstombs((XIM)im, commit, len, NULL, 0, &status);
- if (status != XLookupNone) {
- if (!(new_commit = Xmalloc(new_len + 1))) {
- Xfree(commit);
- goto Error_On_Reset;
- }
- (void)im->methods->ctstombs((XIM)im, commit, len,
- new_commit, new_len, NULL);
- new_commit[new_len] = '\0';
- }
- Xfree(commit);
-
-Error_On_Reset:
- _XimFreeCommitInfo( ic );
- return new_commit;
-}
-
-Private char *
-_XimProtoMbReset(xic)
- XIC xic;
+_XimProtoReset(
+ XIC xic,
+ char * (*retfunc) (Xim im, Xic ic, XPointer buf) )
{
Xic ic = (Xic)xic;
Xim im = (Xim)ic->core.im;
@@ -1147,17 +1059,17 @@ _XimProtoMbReset(xic)
buf_size = BUFSIZE;
ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
_XimResetICCheck, (XPointer)ic);
- if(ret_code == XIM_TRUE) {
+ if (ret_code == XIM_TRUE) {
preply = reply;
- } else if(ret_code == XIM_OVERFLOW) {
- if(len < 0) {
+ } else if (ret_code == XIM_OVERFLOW) {
+ if (len < 0) {
preply = reply;
} else {
buf_size = len;
preply = (XPointer)Xmalloc(buf_size);
ret_code = _XimRead(im, &len, preply, buf_size,
_XimResetICCheck, (XPointer)ic);
- if(ret_code != XIM_TRUE) {
+ if (ret_code != XIM_TRUE) {
Xfree(preply);
ic->private.proto.waitCallback = False;
return NULL;
@@ -1171,23 +1083,80 @@ _XimProtoMbReset(xic)
buf_s = (CARD16 *)((char *)preply + XIM_HEADER_SIZE);
if (*((CARD8 *)preply) == XIM_ERROR) {
_XimProcError(im, 0, (XPointer)&buf_s[3]);
- if(reply != preply)
+ if (reply != preply)
free(preply);
return NULL;
}
- commit = _XimCommitedMbString(im, ic, (XPointer)&buf_s[2]);
+ commit = retfunc(im, ic, (XPointer)&buf_s[2]);
- if(reply != preply)
+ if (reply != preply)
Xfree(preply);
return commit;
}
+Private char *
+_XimCommitedMbString(
+ Xim im,
+ Xic ic,
+ XPointer buf)
+{
+ CARD16 *buf_s = (CARD16 *)buf;
+ XimCommitInfo info;
+ int len;
+ int new_len;
+ char *commit;
+ char *new_commit = NULL;
+ char *str;
+ Status status;
+
+ len = 0;
+ for (info = ic->private.proto.commit_info; info; info = info->next)
+ len += info->string_len;
+ len += buf_s[0];
+ if ( len == 0 )
+ return( NULL );
+
+ if (!(commit = (char *)Xmalloc(len + 1)))
+ goto Error_On_Reset;
+
+ str = commit;
+ for (info = ic->private.proto.commit_info; info; info = info->next) {
+ (void)memcpy(str, info->string, info->string_len);
+ str += info->string_len;
+ }
+ (void)memcpy(str, (char *)&buf_s[1], buf_s[0]);
+ commit[len] = '\0';
+
+ new_len = im->methods->ctstombs((XIM)im, commit, len, NULL, 0, &status);
+ if (status != XLookupNone) {
+ if (!(new_commit = Xmalloc(new_len + 1))) {
+ Xfree(commit);
+ goto Error_On_Reset;
+ }
+ (void)im->methods->ctstombs((XIM)im, commit, len,
+ new_commit, new_len, NULL);
+ new_commit[new_len] = '\0';
+ }
+ Xfree(commit);
+
+Error_On_Reset:
+ _XimFreeCommitInfo( ic );
+ return new_commit;
+}
+
+Private char *
+_XimProtoMbReset(
+ XIC xic)
+{
+ return _XimProtoReset(xic, _XimCommitedMbString);
+}
+
Private wchar_t *
-_XimCommitedWcString(im, ic, buf)
- Xim im;
- Xic ic;
- XPointer buf;
+_XimCommitedWcString(
+ Xim im,
+ Xic ic,
+ XPointer buf)
{
CARD16 *buf_s = (CARD16 *)buf;
XimCommitInfo info;
@@ -1202,7 +1171,7 @@ _XimCommitedWcString(im, ic, buf)
for (info = ic->private.proto.commit_info; info; info = info->next)
len += info->string_len;
len += buf_s[0];
- if( len == 0 )
+ if ( len == 0 )
return( (wchar_t *)NULL );
if (!(commit = (char *)Xmalloc(len + 1)))
@@ -1235,72 +1204,68 @@ Error_On_Reset:
}
Private wchar_t *
-_XimProtoWcReset(xic)
- XIC xic;
+_XimProtoWcReset(
+ XIC xic)
{
- Xic ic = (Xic)xic;
- Xim im = (Xim)ic->core.im;
- CARD32 buf32[BUFSIZE/4];
- CARD8 *buf = (CARD8 *)buf32;
- CARD16 *buf_s = (CARD16 *)&buf[XIM_HEADER_SIZE];
- INT16 len;
- CARD32 reply32[BUFSIZE/4];
- char *reply = (char *)reply32;
- XPointer preply;
- int buf_size;
- int ret_code;
- wchar_t *commit;
+ return (wchar_t *) _XimProtoReset(xic,
+ (char * (*) (Xim, Xic, XPointer)) _XimCommitedWcString);
+}
- if (!IS_IC_CONNECTED(ic))
- return (wchar_t *)NULL;
+Private char *
+_XimCommitedUtf8String(
+ Xim im,
+ Xic ic,
+ XPointer buf)
+{
+ CARD16 *buf_s = (CARD16 *)buf;
+ XimCommitInfo info;
+ int len;
+ int new_len;
+ char *commit;
+ char *new_commit = NULL;
+ char *str;
+ Status status;
- buf_s[0] = im->private.proto.imid; /* imid */
- buf_s[1] = ic->private.proto.icid; /* icid */
+ len = 0;
+ for (info = ic->private.proto.commit_info; info; info = info->next)
+ len += info->string_len;
+ len += buf_s[0];
+ if ( len == 0 )
+ return( NULL );
- len = sizeof(CARD16) /* sizeof imid */
- + sizeof(CARD16); /* sizeof icid */
+ if (!(commit = (char *)Xmalloc(len + 1)))
+ goto Error_On_Reset;
- _XimSetHeader((XPointer)buf, XIM_RESET_IC, 0, &len);
- if (!(_XimWrite(im, len, (XPointer)buf)))
- return NULL;
- _XimFlush(im);
- ic->private.proto.waitCallback = True;
- buf_size = BUFSIZE;
- ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
- _XimResetICCheck, (XPointer)ic);
- if(ret_code == XIM_TRUE) {
- preply = reply;
- } else if(ret_code == XIM_OVERFLOW) {
- if(len <= 0) {
- preply = reply;
- } else {
- buf_size = len;
- preply = (XPointer)Xmalloc(buf_size);
- ret_code = _XimRead(im, &len, preply, buf_size,
- _XimResetICCheck, (XPointer)ic);
- if(ret_code != XIM_TRUE) {
- Xfree(preply);
- ic->private.proto.waitCallback = False;
- return NULL;
- }
- }
- } else {
- ic->private.proto.waitCallback = False;
- return NULL;
+ str = commit;
+ for (info = ic->private.proto.commit_info; info; info = info->next) {
+ (void)memcpy(str, info->string, info->string_len);
+ str += info->string_len;
}
- ic->private.proto.waitCallback = False;
- buf_s = (CARD16 *)((char *)preply + XIM_HEADER_SIZE);
- if (*((CARD8 *)preply) == XIM_ERROR) {
- _XimProcError(im, 0, (XPointer)&buf_s[3]);
- if(reply != preply)
- free(preply);
- return NULL;
+ (void)memcpy(str, (char *)&buf_s[1], buf_s[0]);
+ commit[len] = '\0';
+
+ new_len = im->methods->ctstoutf8((XIM)im, commit, len, NULL, 0, &status);
+ if (status != XLookupNone) {
+ if (!(new_commit = Xmalloc(new_len + 1))) {
+ Xfree(commit);
+ goto Error_On_Reset;
+ }
+ (void)im->methods->ctstoutf8((XIM)im, commit, len,
+ new_commit, new_len, NULL);
+ new_commit[new_len] = '\0';
}
+ Xfree(commit);
- commit = _XimCommitedWcString(im, ic, (XPointer)&buf_s[2]);
+Error_On_Reset:
+ _XimFreeCommitInfo( ic );
+ return new_commit;
+}
- Xfree(preply);
- return commit;
+Private char *
+_XimProtoUtf8Reset(
+ XIC xic)
+{
+ return _XimProtoReset(xic, _XimCommitedUtf8String);
}
Private XICMethodsRec ic_methods = {
@@ -1311,14 +1276,16 @@ Private XICMethodsRec ic_methods = {
_XimProtoGetICValues, /* get_values */
_XimProtoMbReset, /* mb_reset */
_XimProtoWcReset, /* wc_reset */
+ _XimProtoUtf8Reset, /* utf8_reset */
_XimProtoMbLookupString, /* mb_lookup_string */
_XimProtoWcLookupString, /* wc_lookup_string */
+ _XimProtoUtf8LookupString /* utf8_lookup_string */
};
Private Bool
-_XimGetInputStyle(arg, input_style)
- XIMArg *arg;
- XIMStyle *input_style;
+_XimGetInputStyle(
+ XIMArg *arg,
+ XIMStyle *input_style)
{
register XIMArg *p;
@@ -1333,11 +1300,11 @@ _XimGetInputStyle(arg, input_style)
#ifdef XIM_CONNECTABLE
Private Bool
-_XimDelayModeCreateIC(ic, values, res, num)
- Xic ic;
- XIMArg *values;
- XIMResourceList res;
- unsigned int num;
+_XimDelayModeCreateIC(
+ Xic ic,
+ XIMArg *values,
+ XIMResourceList res,
+ unsigned int num)
{
Xim im = (Xim)ic->core.im;
XimDefICValues ic_values;
@@ -1351,12 +1318,12 @@ _XimDelayModeCreateIC(ic, values, res, num)
_XimSetICMode(res, num, input_style);
- if(_XimSetICValueData(ic, (XPointer)&ic_values, res, num,
+ if (_XimSetICValueData(ic, (XPointer)&ic_values, res, num,
values, XIM_CREATEIC, False)) {
return False;
}
_XimSetCurrentICValues(ic, &ic_values);
- if(!_XimSetICDefaults(ic, (XPointer)&ic_values,
+ if (!_XimSetICDefaults(ic, (XPointer)&ic_values,
XIM_SETICDEFAULTS, res, num)) {
return False;
}
@@ -1394,9 +1361,9 @@ _XimReconnectModeCreateIC(ic)
#endif /* XIM_CONNECTABLE */
Public XIC
-_XimProtoCreateIC(xim, arg)
- XIM xim;
- XIMArg *arg;
+_XimProtoCreateIC(
+ XIM xim,
+ XIMArg *arg)
{
Xim im = (Xim)xim;
Xic ic;
@@ -1543,17 +1510,17 @@ _XimProtoCreateIC(xim, arg)
buf_size = BUFSIZE;
ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
_XimCreateICCheck, 0);
- if(ret_code == XIM_TRUE) {
+ if (ret_code == XIM_TRUE) {
preply = reply;
- } else if(ret_code == XIM_OVERFLOW) {
- if(len <= 0) {
+ } else if (ret_code == XIM_OVERFLOW) {
+ if (len <= 0) {
preply = reply;
} else {
buf_size = (int)len;
preply = (XPointer)Xmalloc(buf_size);
ret_code = _XimRead(im, &len, preply, buf_size,
_XimCreateICCheck, 0);
- if(ret_code != XIM_TRUE) {
+ if (ret_code != XIM_TRUE) {
Xfree(preply);
ic->private.proto.waitCallback = False;
goto ErrorOnCreatingIC;
@@ -1567,14 +1534,14 @@ _XimProtoCreateIC(xim, arg)
buf_s = (CARD16 *)((char *)preply + XIM_HEADER_SIZE);
if (*((CARD8 *)preply) == XIM_ERROR) {
_XimProcError(im, 0, (XPointer)&buf_s[3]);
- if(reply != preply)
+ if (reply != preply)
Xfree(preply);
goto ErrorOnCreatingIC;
}
ic->private.proto.icid = buf_s[1]; /* icid */
- if(reply != preply)
- Xfree(preply);
+ if (reply != preply)
+ Xfree(preply);
MARK_IC_CONNECTED(ic);
return (XIC)ic;
diff --git a/modules/im/ximcp/imDefIm.c b/modules/im/ximcp/imDefIm.c
index 2fca3f9e..9e631028 100644
--- a/modules/im/ximcp/imDefIm.c
+++ b/modules/im/ximcp/imDefIm.c
@@ -31,19 +31,22 @@ OF THIS SOFTWARE.
makoto@sm.sony.co.jp
******************************************************************/
+/* $XFree86: xc/lib/X11/imDefIm.c,v 1.15 2003/08/22 19:27:24 eich Exp $ */
#include <X11/Xatom.h>
#define NEED_EVENTS
#include "Xlibint.h"
#include "Xlcint.h"
#include "XlcPublic.h"
+#include "XlcPubI.h"
#include "XimTrInt.h"
#include "Ximint.h"
+
Public int
-_XimCheckDataSize(buf, len)
- XPointer buf;
- int len;
+_XimCheckDataSize(
+ XPointer buf,
+ int len)
{
CARD16 *buf_s = (CARD16 *)buf;
@@ -53,20 +56,12 @@ _XimCheckDataSize(buf, len)
}
Public void
-#if NeedFunctionPrototypes
_XimSetHeader(
XPointer buf,
CARD8 major_opcode,
CARD8 minor_opcode,
INT16 *len
)
-#else
-_XimSetHeader(buf, major_opcode, minor_opcode, len)
- XPointer buf;
- CARD8 major_opcode;
- CARD8 minor_opcode;
- INT16 *len;
-#endif /* NeedFunctionPrototypes */
{
CARD8 *buf_b = (CARD8 *)buf;
CARD16 *buf_s = (CARD16 *)buf;
@@ -79,7 +74,7 @@ _XimSetHeader(buf, major_opcode, minor_opcode, len)
}
Private char
-_XimGetMyEndian()
+_XimGetMyEndian(void)
{
CARD16 test_card = 1;
@@ -90,9 +85,9 @@ _XimGetMyEndian()
}
Private Bool
-_XimCheckServerName(im, str)
- Xim im;
- char *str;
+_XimCheckServerName(
+ Xim im,
+ char *str)
{
char *server_name = im->core.im_name;
int len;
@@ -128,12 +123,12 @@ _XimCheckServerName(im, str)
}
Private char *
-_XimCheckLocaleName(im, address, address_len, locale_name, len)
- Xim im;
- char *address;
- int address_len;
- char *locale_name[];
- int len;
+_XimCheckLocaleName(
+ Xim im,
+ char *address,
+ int address_len,
+ char *locale_name[],
+ int len)
{
int category_len;
char *pp;
@@ -158,7 +153,7 @@ _XimCheckLocaleName(im, address, address_len, locale_name, len)
*p = '\0';
for( n = 0; n < len; n++ )
- if( locale_name[n] && !strcmp( pp, locale_name[n] ) )
+ if( locale_name[n] && !_XlcCompareISOLatin1( pp, locale_name[n] ) )
return locale_name[n];
if (finish)
break;
@@ -168,12 +163,12 @@ _XimCheckLocaleName(im, address, address_len, locale_name, len)
}
Private Bool
-_XimCheckTransport(address, address_len, transport, len, trans_addr)
- char *address;
- int address_len;
- char *transport;
- int len;
- char **trans_addr;
+_XimCheckTransport(
+ char *address,
+ int address_len,
+ char *transport,
+ int len,
+ char **trans_addr)
{
int category_len = strlen(XIM_TRANSPORT_CATEGORY);
char *pp;
@@ -212,10 +207,10 @@ _XimCheckTransport(address, address_len, transport, len, trans_addr)
}
Private Bool
-_CheckSNEvent(display, xevent, arg)
- Display *display;
- XEvent *xevent;
- XPointer arg;
+_CheckSNEvent(
+ Display *display,
+ XEvent *xevent,
+ XPointer arg)
{
XSelectionEvent *event = (XSelectionEvent *)xevent;
Window window = *(Window*)arg;
@@ -226,11 +221,11 @@ _CheckSNEvent(display, xevent, arg)
}
Private Bool
-_XimGetSelectionNotify(display, window, target, ret_address)
- Display *display;
- Window window;
- Atom target;
- char **ret_address;
+_XimGetSelectionNotify(
+ Display *display,
+ Window window,
+ Atom target,
+ char **ret_address)
{
XEvent event;
XSelectionEvent *ev = (XSelectionEvent *)&event;
@@ -255,9 +250,9 @@ _XimGetSelectionNotify(display, window, target, ret_address)
}
Private Bool
-_XimPreConnectionIM(im, selection)
- Xim im;
- Atom selection;
+_XimPreConnectionIM(
+ Xim im,
+ Atom selection)
{
Display *display = im->core.display;
Atom locales, transport;
@@ -373,8 +368,8 @@ Error:
}
Private Bool
-_XimPreConnect(im)
- Xim im;
+_XimPreConnect(
+ Xim im)
{
Display *display = im->core.display;
Atom imserver;
@@ -384,7 +379,7 @@ _XimPreConnect(im)
unsigned long bytes_after;
unsigned char *prop_return;
Atom *atoms;
- Window im_window;
+ Window im_window = 0;
register int i;
if((imserver = XInternAtom(display, XIM_SERVERS, True)) == (Atom)None)
@@ -420,11 +415,11 @@ _XimPreConnect(im)
}
Private Bool
-_XimGetAuthProtocolNames(im, buf, num, len)
- Xim im;
- CARD16 *buf;
- CARD8 *num;
- INT16 *len;
+_XimGetAuthProtocolNames(
+ Xim im,
+ CARD16 *buf,
+ CARD8 *num,
+ INT16 *len)
{
if (!IS_USE_AUTHORIZATION_FUNC(im)) {
*num = 0;
@@ -438,10 +433,10 @@ _XimGetAuthProtocolNames(im, buf, num, len)
}
Private Bool
-_XimSetAuthReplyData(im, buf, len)
- Xim im;
- XPointer buf;
- INT16 *len;
+_XimSetAuthReplyData(
+ Xim im,
+ XPointer buf,
+ INT16 *len)
{
/*
* Not yet
@@ -451,10 +446,10 @@ _XimSetAuthReplyData(im, buf, len)
}
Private Bool
-_XimSetAuthNextData(im, buf, len)
- Xim im;
- XPointer buf;
- INT16 *len;
+_XimSetAuthNextData(
+ Xim im,
+ XPointer buf,
+ INT16 *len)
{
/*
* Not yet
@@ -464,10 +459,10 @@ _XimSetAuthNextData(im, buf, len)
}
Private Bool
-_XimSetAuthRequiredData(im, buf, len)
- Xim im;
- XPointer buf;
- INT16 *len;
+_XimSetAuthRequiredData(
+ Xim im,
+ XPointer buf,
+ INT16 *len)
{
/*
* Not yet
@@ -477,9 +472,9 @@ _XimSetAuthRequiredData(im, buf, len)
}
Private Bool
-_XimCheckAuthSetupData(im, buf)
- Xim im;
- XPointer buf;
+_XimCheckAuthSetupData(
+ Xim im,
+ XPointer buf)
{
/*
* Not yet
@@ -488,9 +483,9 @@ _XimCheckAuthSetupData(im, buf)
}
Private Bool
-_XimCheckAuthNextData(im, buf)
- Xim im;
- XPointer buf;
+_XimCheckAuthNextData(
+ Xim im,
+ XPointer buf)
{
/*
* Not yet
@@ -503,9 +498,9 @@ _XimCheckAuthNextData(im, buf)
#define BAD_AUTH 0
Private int
-_XimClientAuthCheck(im, buf)
- Xim im;
- XPointer buf;
+_XimClientAuthCheck(
+ Xim im,
+ XPointer buf)
{
/*
* Not yet
@@ -514,8 +509,8 @@ _XimClientAuthCheck(im, buf)
}
Private void
-_XimAuthNG(im)
- Xim im;
+_XimAuthNG(
+ Xim im)
{
CARD32 buf32[BUFSIZE/4];
CARD8 *buf = (CARD8 *)buf32;
@@ -528,19 +523,11 @@ _XimAuthNG(im)
}
Private Bool
-#if NeedFunctionPrototypes
_XimAllRecv(
Xim im,
INT16 len,
XPointer data,
XPointer arg)
-#else
-_XimAllRecv(im, len, data, arg)
- Xim im;
- INT16 len;
- XPointer data;
- XPointer arg;
-#endif
{
return True;
}
@@ -549,8 +536,8 @@ _XimAllRecv(im, len, data, arg)
#define CLIENT_WAIT2 2
Private Bool
-_XimConnection(im)
- Xim im;
+_XimConnection(
+ Xim im)
{
CARD32 buf32[BUFSIZE/4];
CARD8 *buf = (CARD8 *)buf32;
@@ -710,19 +697,11 @@ _XimConnection(im)
}
Private Bool
-#if NeedFunctionPrototypes
_XimDisconnectCheck(
Xim im,
INT16 len,
XPointer data,
XPointer arg)
-#else
-_XimDisconnectCheck(im, len, data, arg)
- Xim im;
- INT16 len;
- XPointer data;
- XPointer arg;
-#endif
{
CARD8 major_opcode = *((CARD8 *)data);
CARD8 minor_opcode = *((CARD8 *)data + 1);
@@ -737,8 +716,8 @@ _XimDisconnectCheck(im, len, data, arg)
}
Private Bool
-_XimDisconnect(im)
- Xim im;
+_XimDisconnect(
+ Xim im)
{
CARD32 buf32[BUFSIZE/4];
CARD8 *buf = (CARD8 *)buf32;
@@ -777,19 +756,11 @@ _XimDisconnect(im)
}
Private Bool
-#if NeedFunctionPrototypes
_XimOpenCheck(
Xim im,
INT16 len,
XPointer data,
XPointer arg)
-#else
-_XimOpenCheck(im, len, data, arg)
- Xim im;
- INT16 len;
- XPointer data;
- XPointer arg;
-#endif
{
CARD8 major_opcode = *((CARD8 *)data);
CARD8 minor_opcode = *((CARD8 *)data + 1);
@@ -804,8 +775,8 @@ _XimOpenCheck(im, len, data, arg)
}
Private Bool
-_XimOpen(im)
- Xim im;
+_XimOpen(
+ Xim im)
{
CARD32 buf32[BUFSIZE/4];
CARD8 *buf = (CARD8 *)buf32;
@@ -900,19 +871,11 @@ _XimOpen(im)
}
Private Bool
-#if NeedFunctionPrototypes
_XimCloseCheck(
Xim im,
INT16 len,
XPointer data,
XPointer arg)
-#else
-_XimCloseCheck(im, len, data, arg)
- Xim im;
- INT16 len;
- XPointer data;
- XPointer arg;
-#endif
{
CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
CARD8 major_opcode = *((CARD8 *)data);
@@ -932,8 +895,8 @@ _XimCloseCheck(im, len, data, arg)
}
Private Bool
-_XimClose(im)
- Xim im;
+_XimClose(
+ Xim im)
{
CARD32 buf32[BUFSIZE/4];
CARD8 *buf = (CARD8 *)buf32;
@@ -990,8 +953,8 @@ _XimClose(im)
}
Public void
-_XimProtoIMFree(im)
- Xim im;
+_XimProtoIMFree(
+ Xim im)
{
/* XIMPrivateRec */
if (im->private.proto.im_onkeylist) {
@@ -1030,6 +993,30 @@ _XimProtoIMFree(im)
_XlcCloseConverter(im->private.proto.ctow_conv);
im->private.proto.ctow_conv = NULL;
}
+ if (im->private.proto.ctoutf8_conv) {
+ _XlcCloseConverter(im->private.proto.ctoutf8_conv);
+ im->private.proto.ctoutf8_conv = NULL;
+ }
+ if (im->private.proto.cstomb_conv) {
+ _XlcCloseConverter(im->private.proto.cstomb_conv);
+ im->private.proto.cstomb_conv = NULL;
+ }
+ if (im->private.proto.cstowc_conv) {
+ _XlcCloseConverter(im->private.proto.cstowc_conv);
+ im->private.proto.cstowc_conv = NULL;
+ }
+ if (im->private.proto.cstoutf8_conv) {
+ _XlcCloseConverter(im->private.proto.cstoutf8_conv);
+ im->private.proto.cstoutf8_conv = NULL;
+ }
+ if (im->private.proto.ucstoc_conv) {
+ _XlcCloseConverter(im->private.proto.ucstoc_conv);
+ im->private.proto.ucstoc_conv = NULL;
+ }
+ if (im->private.proto.ucstoutf8_conv) {
+ _XlcCloseConverter(im->private.proto.ucstoutf8_conv);
+ im->private.proto.ucstoutf8_conv = NULL;
+ }
#ifdef XIM_CONNECTABLE
if (!IS_SERVER_CONNECTED(im) && IS_RECONNECTABLE(im)) {
@@ -1084,8 +1071,8 @@ _XimProtoIMFree(im)
}
Private Status
-_XimProtoCloseIM(xim)
- XIM xim;
+_XimProtoCloseIM(
+ XIM xim)
{
Xim im = (Xim)xim;
XIC ic;
@@ -1105,6 +1092,13 @@ _XimProtoCloseIM(xim)
#endif /* XIM_CONNECTABLE */
ic = next;
}
+#ifdef XIM_CONNECTABLE
+ if (!(!IS_SERVER_CONNECTED(im) && IS_RECONNECTABLE(im)))
+ im->core.ic_chain = NULL;
+#else
+ im->core.ic_chain = NULL;
+#endif
+
_XimUnregisterServerFilter(im);
_XimResetIMInstantiateCallback(im);
status = (Status)_XimClose(im);
@@ -1123,11 +1117,12 @@ _XimProtoCloseIM(xim)
return status;
}
+#ifdef XIM_CONNECTABLE
Private Bool
-_XimCheckIMQuarkList(quark_list, num_quark, quark)
- XrmQuark *quark_list;
- int num_quark;
- XrmQuark quark;
+_XimCheckIMQuarkList(
+ XrmQuark *quark_list,
+ int num_quark,
+ XrmQuark quark)
{
register int i;
@@ -1139,11 +1134,10 @@ _XimCheckIMQuarkList(quark_list, num_quark, quark)
return False;
}
-#ifdef XIM_CONNECTABLE
Private Bool
-_XimSaveIMValues(im, arg)
- Xim im;
- XIMArg *arg;
+_XimSaveIMValues(
+ Xim im,
+ XIMArg *arg)
{
register XIMArg *p;
register int n;
@@ -1190,9 +1184,9 @@ _XimSaveIMValues(im, arg)
}
Private char *
-_XimDelayModeSetIMValues(im, arg)
- Xim im;
- XIMArg *arg;
+_XimDelayModeSetIMValues(
+ Xim im,
+ XIMArg *arg)
{
XimDefIMValues im_values;
char *name;
@@ -1208,19 +1202,11 @@ _XimDelayModeSetIMValues(im, arg)
#endif /* XIM_CONNECTABLE */
Private Bool
-#if NeedFunctionPrototypes
_XimSetIMValuesCheck(
Xim im,
INT16 len,
XPointer data,
XPointer arg)
-#else
-_XimSetIMValuesCheck(im, len, data, arg)
- Xim im;
- INT16 len;
- XPointer data;
- XPointer arg;
-#endif
{
CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
CARD8 major_opcode = *((CARD8 *)data);
@@ -1240,9 +1226,9 @@ _XimSetIMValuesCheck(im, len, data, arg)
}
Private char *
-_XimProtoSetIMValues(xim, arg)
- XIM xim;
- XIMArg *arg;
+_XimProtoSetIMValues(
+ XIM xim,
+ XIMArg *arg)
{
Xim im = (Xim)xim;
XimDefIMValues im_values;
@@ -1372,9 +1358,9 @@ _XimProtoSetIMValues(xim, arg)
#ifdef XIM_CONNECTABLE
Private char *
-_XimDelayModeGetIMValues(im, arg)
- Xim im;
- XIMArg *arg;
+_XimDelayModeGetIMValues(
+ Xim im,
+ XIMArg *arg)
{
XimDefIMValues im_values;
@@ -1385,19 +1371,11 @@ _XimDelayModeGetIMValues(im, arg)
#endif /* XIM_CONNECTABLE */
Private Bool
-#if NeedFunctionPrototypes
_XimGetIMValuesCheck(
Xim im,
INT16 len,
XPointer data,
XPointer arg)
-#else
-_XimGetIMValuesCheck(im, len, data, arg)
- Xim im;
- INT16 len;
- XPointer data;
- XPointer arg;
-#endif
{
CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
CARD8 major_opcode = *((CARD8 *)data);
@@ -1417,9 +1395,9 @@ _XimGetIMValuesCheck(im, len, data, arg)
}
Private char *
-_XimProtoGetIMValues(xim, arg)
- XIM xim;
- XIMArg *arg;
+_XimProtoGetIMValues(
+ XIM xim,
+ XIMArg *arg)
{
Xim im = (Xim)xim;
register XIMArg *p;
@@ -1429,7 +1407,7 @@ _XimProtoGetIMValues(xim, arg)
INT16 len;
CARD32 reply32[BUFSIZE/4];
char *reply = (char *)reply32;
- XPointer preply;
+ XPointer preply = NULL;
int buf_size;
int ret_code;
char *makeid_name;
@@ -1534,14 +1512,15 @@ Private XIMMethodsRec im_methods = {
_XimProtoGetIMValues, /* get_values */
_XimProtoCreateIC, /* create_ic */
_Ximctstombs, /* ctstombs */
- _Ximctstowcs /* ctstowcs */
+ _Ximctstowcs, /* ctstowcs */
+ _Ximctstoutf8 /* ctstoutf8 */
};
Private Bool
-_XimSetEncodingByName(im, buf, len)
- Xim im;
- char **buf;
- int *len;
+_XimSetEncodingByName(
+ Xim im,
+ char **buf,
+ int *len)
{
char *encoding = (char *)NULL;
int encoding_len;
@@ -1571,10 +1550,10 @@ _XimSetEncodingByName(im, buf, len)
}
Private Bool
-_XimSetEncodingByDetail(im, buf, len)
- Xim im;
- char **buf;
- int *len;
+_XimSetEncodingByDetail(
+ Xim im,
+ char **buf,
+ int *len)
{
*len = 0;
*buf = NULL;
@@ -1582,20 +1561,23 @@ _XimSetEncodingByDetail(im, buf, len)
}
Private Bool
-_XimGetEncoding(im, buf, name, name_len, detail, detail_len)
- Xim im;
- CARD16 *buf;
- char *name;
- int name_len;
- char *detail;
- int detail_len;
+_XimGetEncoding(
+ Xim im,
+ CARD16 *buf,
+ char *name,
+ int name_len,
+ char *detail,
+ int detail_len)
{
XLCd lcd = im->core.lcd;
CARD16 category = buf[0];
CARD16 idx = buf[1];
int len;
- XlcConv ctom_conv;
- XlcConv ctow_conv;
+ XlcConv ctom_conv = NULL;
+ XlcConv ctow_conv = NULL;
+ XlcConv ctoutf8_conv = NULL;
+ XlcConv conv;
+ XimProtoPrivateRec *private = &im->private.proto;
if (idx == (CARD16)XIM_Default_Encoding_IDX) { /* XXX */
if (!(ctom_conv = _XlcOpenConverter(lcd,
@@ -1604,6 +1586,9 @@ _XimGetEncoding(im, buf, name, name_len, detail, detail_len)
if (!(ctow_conv = _XlcOpenConverter(lcd,
XlcNCompoundText, lcd, XlcNWideChar)))
return False;
+ if (!(ctoutf8_conv = _XlcOpenConverter(lcd,
+ XlcNCompoundText, lcd, XlcNUtf8String)))
+ return False;
}
if (category == XIM_Encoding_NameCategory) {
@@ -1616,6 +1601,9 @@ _XimGetEncoding(im, buf, name, name_len, detail, detail_len)
if (!(ctow_conv = _XlcOpenConverter(lcd,
XlcNCompoundText, lcd, XlcNWideChar)))
return False;
+ if (!(ctoutf8_conv = _XlcOpenConverter(lcd,
+ XlcNCompoundText, lcd, XlcNUtf8String)))
+ return False;
break;
} else {
/*
@@ -1633,25 +1621,40 @@ _XimGetEncoding(im, buf, name, name_len, detail, detail_len)
} else {
return False;
}
- im->private.proto.ctom_conv = ctom_conv;
- im->private.proto.ctow_conv = ctow_conv;
+
+ private->ctom_conv = ctom_conv;
+ private->ctow_conv = ctow_conv;
+ private->ctoutf8_conv = ctoutf8_conv;
+
+ if (!(conv = _XlcOpenConverter(lcd, XlcNCharSet, lcd, XlcNMultiByte)))
+ return False;
+ private->cstomb_conv = conv;
+
+ if (!(conv = _XlcOpenConverter(lcd, XlcNCharSet, lcd, XlcNWideChar)))
+ return False;
+ private->cstowc_conv = conv;
+
+ if (!(conv = _XlcOpenConverter(lcd, XlcNCharSet, lcd, XlcNUtf8String)))
+ return False;
+ private->cstoutf8_conv = conv;
+
+ if (!(conv = _XlcOpenConverter(lcd, XlcNUcsChar, lcd, XlcNChar)))
+ return False;
+ private->ucstoc_conv = conv;
+
+ if (!(conv = _XlcOpenConverter(lcd, XlcNUcsChar, lcd, XlcNUtf8String)))
+ return False;
+ private->ucstoutf8_conv = conv;
+
return True;
}
Private Bool
-#if NeedFunctionPrototypes
_XimEncodingNegoCheck(
Xim im,
INT16 len,
XPointer data,
XPointer arg)
-#else
-_XimEncodingNegoCheck(im, len, data, arg)
- Xim im;
- INT16 len;
- XPointer data;
- XPointer arg;
-#endif
{
CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
CARD8 major_opcode = *((CARD8 *)data);
@@ -1671,8 +1674,8 @@ _XimEncodingNegoCheck(im, len, data, arg)
}
Private Bool
-_XimEncodingNegotiation(im)
- Xim im;
+_XimEncodingNegotiation(
+ Xim im)
{
char *name_ptr = 0;
int name_len = 0;
@@ -1778,8 +1781,8 @@ _XimEncodingNegotiation(im)
#ifdef XIM_CONNECTABLE
Private Bool
-_XimSendSavedIMValues(im)
- Xim im;
+_XimSendSavedIMValues(
+ Xim im)
{
XimDefIMValues im_values;
INT16 len;
@@ -1888,8 +1891,8 @@ _XimSendSavedIMValues(im)
}
Private void
-_XimDelayModeIMFree(im)
- Xim im;
+_XimDelayModeIMFree(
+ Xim im)
{
if (im->core.im_resources) {
Xfree(im->core.im_resources);
@@ -1911,8 +1914,8 @@ _XimDelayModeIMFree(im)
}
Public Bool
-_XimConnectServer(im)
- Xim im;
+_XimConnectServer(
+ Xim im)
{
Xim save_im;
@@ -1935,8 +1938,8 @@ _XimConnectServer(im)
}
Public Bool
-_XimDelayModeSetAttr(im)
- Xim im;
+_XimDelayModeSetAttr(
+ Xim im)
{
XimDefIMValues im_values;
@@ -1967,8 +1970,8 @@ _XimDelayModeSetAttr(im)
}
Private Bool
-_XimReconnectModeSetAttr(im)
- Xim im;
+_XimReconnectModeSetAttr(
+ Xim im)
{
XimDefIMValues im_values;
@@ -1994,8 +1997,8 @@ _XimReconnectModeSetAttr(im)
#endif /* XIM_CONNECTABLE */
Public Bool
-_XimProtoOpenIM(im)
- Xim im;
+_XimProtoOpenIM(
+ Xim im)
{
_XimInitialResourceInfo();
@@ -2010,6 +2013,7 @@ _XimProtoOpenIM(im)
_XimRegisterServerFilter(im);
return True;
}
+ _XimShutdown(im);
#ifdef XIM_CONNECTABLE
} else if (IS_DELAYBINDABLE(im)) {
if (_XimDelayModeSetAttr(im))
diff --git a/modules/im/ximcp/imDefLkup.c b/modules/im/ximcp/imDefLkup.c
index 8653a07c..21ddedfe 100644
--- a/modules/im/ximcp/imDefLkup.c
+++ b/modules/im/ximcp/imDefLkup.c
@@ -26,6 +26,7 @@ PERFORMANCE OF THIS SOFTWARE.
fujiwara@a80.tech.yk.fujitsu.co.jp
******************************************************************/
+/* $XFree86: xc/lib/X11/imDefLkup.c,v 3.11 2003/06/23 17:35:43 eich Exp $ */
#include <X11/Xatom.h>
#define NEED_EVENTS
@@ -34,15 +35,9 @@ PERFORMANCE OF THIS SOFTWARE.
#include "Ximint.h"
Public Xic
-#if NeedFunctionPrototypes
_XimICOfXICID(
Xim im,
XICID icid)
-#else
-_XimICOfXICID(im, icid)
- Xim im;
- XICID icid;
-#endif /* NeedFunctionPrototypes */
{
Xic pic;
@@ -54,9 +49,9 @@ _XimICOfXICID(im, icid)
}
Private void
-_XimProcIMSetEventMask(im, buf)
- Xim im;
- XPointer buf;
+_XimProcIMSetEventMask(
+ Xim im,
+ XPointer buf)
{
EVENTMASK *buf_l = (EVENTMASK *)buf;
@@ -66,9 +61,9 @@ _XimProcIMSetEventMask(im, buf)
}
Private void
-_XimProcICSetEventMask(ic, buf)
- Xic ic;
- XPointer buf;
+_XimProcICSetEventMask(
+ Xic ic,
+ XPointer buf)
{
EVENTMASK *buf_l = (EVENTMASK *)buf;
@@ -79,19 +74,11 @@ _XimProcICSetEventMask(ic, buf)
}
Public Bool
-#if NeedFunctionPrototypes
_XimSetEventMaskCallback(
Xim xim,
INT16 len,
XPointer data,
XPointer call_data)
-#else
-_XimSetEventMaskCallback(xim, len, data, call_data)
- Xim xim;
- INT16 len;
- XPointer data;
- XPointer call_data;
-#endif /* NeedFunctionPrototypes */
{
CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
XIMID imid = buf_s[0];
@@ -112,19 +99,11 @@ _XimSetEventMaskCallback(xim, len, data, call_data)
}
Private Bool
-#if NeedFunctionPrototypes
_XimSyncCheck(
Xim im,
INT16 len,
XPointer data,
XPointer arg)
-#else
-_XimSyncCheck(im, len, data, arg)
- Xim im;
- INT16 len;
- XPointer data;
- XPointer arg;
-#endif
{
Xic ic = (Xic)arg;
CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
@@ -149,9 +128,9 @@ _XimSyncCheck(im, len, data, arg)
}
Public Bool
-_XimSync(im, ic)
- Xim im;
- Xic ic;
+_XimSync(
+ Xim im,
+ Xic ic)
{
CARD32 buf32[BUFSIZE/4];
CARD8 *buf = (CARD8 *)buf32;
@@ -207,9 +186,9 @@ _XimSync(im, ic)
}
Public Bool
-_XimProcSyncReply(im, ic)
- Xim im;
- Xic ic;
+_XimProcSyncReply(
+ Xim im,
+ Xic ic)
{
CARD32 buf32[BUFSIZE/4];
CARD8 *buf = (CARD8 *)buf32;
@@ -230,9 +209,9 @@ _XimProcSyncReply(im, ic)
}
Public Bool
-_XimRespSyncReply(ic, mode)
- Xic ic;
- BITMASK16 mode;
+_XimRespSyncReply(
+ Xic ic,
+ BITMASK16 mode)
{
if (mode & XimSYNCHRONUS) /* SYNC Request */
MARK_NEED_SYNC_REPLY(ic);
@@ -240,19 +219,11 @@ _XimRespSyncReply(ic, mode)
}
Public Bool
-#if NeedFunctionPrototypes
_XimSyncCallback(
Xim xim,
INT16 len,
XPointer data,
XPointer call_data)
-#else
-_XimSyncCallback(xim, len, data, call_data)
- Xim xim;
- INT16 len;
- XPointer data;
- XPointer call_data;
-#endif /* NeedFunctionPrototypes */
{
CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
XIMID imid = buf_s[0];
@@ -269,9 +240,9 @@ _XimSyncCallback(xim, len, data, call_data)
}
Private INT16
-_XimSetEventToWire(ev, event)
- XEvent *ev;
- xEvent *event;
+_XimSetEventToWire(
+ XEvent *ev,
+ xEvent *event)
{
if (!(_XimProtoEventToWire(ev, event, False)))
return 0;
@@ -281,10 +252,10 @@ _XimSetEventToWire(ev, event)
}
Private Bool
-_XimForwardEventCore(ic, ev, sync)
- Xic ic;
- XEvent *ev;
- Bool sync;
+_XimForwardEventCore(
+ Xic ic,
+ XEvent *ev,
+ Bool sync)
{
Xim im = (Xim)ic->core.im;
CARD32 buf32[BUFSIZE/4];
@@ -353,10 +324,10 @@ _XimForwardEventCore(ic, ev, sync)
}
Public Bool
-_XimForwardEvent(ic, ev, sync)
- Xic ic;
- XEvent *ev;
- Bool sync;
+_XimForwardEvent(
+ Xic ic,
+ XEvent *ev,
+ Bool sync)
{
#ifdef EXT_FORWARD
if (((ev->type == KeyPress) || (ev->type == KeyRelease)))
@@ -367,11 +338,11 @@ _XimForwardEvent(ic, ev, sync)
}
Private void
-_XimProcEvent(d, ic, ev, buf)
- Display *d;
- Xic ic;
- XEvent *ev;
- CARD16 *buf;
+_XimProcEvent(
+ Display *d,
+ Xic ic,
+ XEvent *ev,
+ CARD16 *buf)
{
INT16 serial = buf[0];
xEvent *xev = (xEvent *)&buf[1];
@@ -385,10 +356,10 @@ _XimProcEvent(d, ic, ev, buf)
}
Private Bool
-_XimForwardEventRecv(im, ic, buf)
- Xim im;
- Xic ic;
- XPointer buf;
+_XimForwardEventRecv(
+ Xim im,
+ Xic ic,
+ XPointer buf)
{
CARD16 *buf_s = (CARD16 *)buf;
Display *d = im->core.display;
@@ -404,19 +375,11 @@ _XimForwardEventRecv(im, ic, buf)
}
Public Bool
-#if NeedFunctionPrototypes
_XimForwardEventCallback(
Xim xim,
INT16 len,
XPointer data,
XPointer call_data)
-#else
-_XimForwardEventCallback(xim, len, data, call_data)
- Xim xim;
- INT16 len;
- XPointer data;
- XPointer call_data;
-#endif /* NeedFunctionPrototypes */
{
CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
XIMID imid = buf_s[0];
@@ -433,9 +396,9 @@ _XimForwardEventCallback(xim, len, data, call_data)
}
Private Bool
-_XimRegisterTriggerkey(im, buf)
- Xim im;
- XPointer buf;
+_XimRegisterTriggerkey(
+ Xim im,
+ XPointer buf)
{
CARD32 *buf_l = (CARD32 *)buf;
CARD32 len;
@@ -480,19 +443,11 @@ _XimRegisterTriggerkey(im, buf)
}
Public Bool
-#if NeedFunctionPrototypes
_XimRegisterTriggerKeysCallback(
Xim xim,
INT16 len,
XPointer data,
XPointer call_data)
-#else
-_XimRegisterTriggerKeysCallback(xim, len, data, call_data)
- Xim xim;
- INT16 len;
- XPointer data;
- XPointer call_data;
-#endif /* NeedFunctionPrototypes */
{
CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
Xim im = (Xim)call_data;
@@ -502,8 +457,8 @@ _XimRegisterTriggerKeysCallback(xim, len, data, call_data)
}
Public EVENTMASK
-_XimGetWindowEventmask(ic)
- Xic ic;
+_XimGetWindowEventmask(
+ Xic ic)
{
Xim im = (Xim )ic->core.im;
XWindowAttributes atr;
@@ -515,19 +470,11 @@ _XimGetWindowEventmask(ic)
Private Bool
-#if NeedFunctionPrototypes
_XimTriggerNotifyCheck(
Xim im,
INT16 len,
XPointer data,
XPointer arg)
-#else
-_XimTriggerNotifyCheck(im, len, data, arg)
- Xim im;
- INT16 len;
- XPointer data;
- XPointer arg;
-#endif
{
Xic ic = (Xic)arg;
CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
@@ -552,11 +499,11 @@ _XimTriggerNotifyCheck(im, len, data, arg)
}
Public Bool
-_XimTriggerNotify(im, ic, mode, idx)
- Xim im;
- Xic ic;
- int mode;
- CARD32 idx;
+_XimTriggerNotify(
+ Xim im,
+ Xic ic,
+ int mode,
+ CARD32 idx)
{
CARD32 buf32[BUFSIZE/4];
CARD8 *buf = (CARD8 *)buf32;
@@ -620,12 +567,12 @@ _XimTriggerNotify(im, ic, mode, idx)
}
Private Bool
-_XimRegCommitInfo(ic, string, string_len, keysym, keysym_len)
- Xic ic;
- char *string;
- int string_len;
- KeySym *keysym;
- int keysym_len;
+_XimRegCommitInfo(
+ Xic ic,
+ char *string,
+ int string_len,
+ KeySym *keysym,
+ int keysym_len)
{
XimCommitInfo info;
@@ -641,8 +588,8 @@ _XimRegCommitInfo(ic, string, string_len, keysym, keysym_len)
}
Private void
-_XimUnregCommitInfo(ic)
- Xic ic;
+_XimUnregCommitInfo(
+ Xic ic)
{
XimCommitInfo info;
@@ -659,8 +606,8 @@ _XimUnregCommitInfo(ic)
}
Public void
-_XimFreeCommitInfo(ic)
- Xic ic;
+_XimFreeCommitInfo(
+ Xic ic)
{
while (ic->private.proto.commit_info)
_XimUnregCommitInfo(ic);
@@ -668,11 +615,11 @@ _XimFreeCommitInfo(ic)
}
Private Bool
-_XimProcKeySym(ic, sym, xim_keysym, xim_keysym_len)
- Xic ic;
- CARD32 sym;
- KeySym **xim_keysym;
- int *xim_keysym_len;
+_XimProcKeySym(
+ Xic ic,
+ CARD32 sym,
+ KeySym **xim_keysym,
+ int *xim_keysym_len)
{
Xim im = (Xim)ic->core.im;
@@ -688,12 +635,12 @@ _XimProcKeySym(ic, sym, xim_keysym, xim_keysym_len)
}
Private Bool
-_XimProcCommit(ic, buf, len, xim_string, xim_string_len)
- Xic ic;
- BYTE *buf;
- int len;
- char **xim_string;
- int *xim_string_len;
+_XimProcCommit(
+ Xic ic,
+ BYTE *buf,
+ int len,
+ char **xim_string,
+ int *xim_string_len)
{
Xim im = (Xim)ic->core.im;
char *string;
@@ -712,10 +659,10 @@ _XimProcCommit(ic, buf, len, xim_string, xim_string_len)
}
Private Bool
-_XimCommitRecv(im, ic, buf)
- Xim im;
- Xic ic;
- XPointer buf;
+_XimCommitRecv(
+ Xim im,
+ Xic ic,
+ XPointer buf)
{
CARD16 *buf_s = (CARD16 *)buf;
BITMASK16 flag = buf_s[0];
@@ -769,19 +716,11 @@ _XimCommitRecv(im, ic, buf)
}
Public Bool
-#if NeedFunctionPrototypes
_XimCommitCallback(
Xim xim,
INT16 len,
XPointer data,
XPointer call_data)
-#else
-_XimCommitCallback(xim, len, data, call_data)
- Xim xim;
- INT16 len;
- XPointer data;
- XPointer call_data;
-#endif /* NeedFunctionPrototypes */
{
CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
XIMID imid = buf_s[0];
@@ -798,35 +737,27 @@ _XimCommitCallback(xim, len, data, call_data)
}
Public void
-_XimProcError(im, ic, data)
- Xim im;
- Xic ic;
- XPointer data;
+_XimProcError(
+ Xim im,
+ Xic ic,
+ XPointer data)
{
return;
}
Public Bool
-#if NeedFunctionPrototypes
_XimErrorCallback(
Xim xim,
INT16 len,
XPointer data,
XPointer call_data)
-#else
-_XimErrorCallback(xim, len, data, call_data)
- Xim xim;
- INT16 len;
- XPointer data;
- XPointer call_data;
-#endif /* NeedFunctionPrototypes */
{
CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
BITMASK16 flag = buf_s[2];
XIMID imid;
XICID icid;
Xim im = (Xim)call_data;
- Xic ic;
+ Xic ic = NULL;
if (flag & XIM_IMID_VALID) {
imid = buf_s[0];
@@ -844,13 +775,13 @@ _XimErrorCallback(xim, len, data, call_data)
}
Public Bool
-_XimError(im, ic, error_code, detail_length, type, detail)
- Xim im;
- Xic ic;
- CARD16 error_code;
- INT16 detail_length;
- CARD16 type;
- char *detail;
+_XimError(
+ Xim im,
+ Xic ic,
+ CARD16 error_code,
+ INT16 detail_length,
+ CARD16 type,
+ char *detail)
{
CARD32 buf32[BUFSIZE/4];
CARD8 *buf = (CARD8 *)buf32;
@@ -887,21 +818,15 @@ _XimError(im, ic, error_code, detail_length, type, detail)
return True;
}
-#ifndef MAXINT
-#define MAXINT (~((unsigned int)1 << (8 * sizeof(int)) - 1))
-#endif /* !MAXINT */
-
-Public int
-_Ximctstombs(xim, from, from_len, to, to_len, state)
- XIM xim;
- char *from;
- int from_len;
- char *to;
- int to_len;
- Status *state;
+Private int
+_Ximctsconvert(
+ XlcConv conv,
+ char *from,
+ int from_len,
+ char *to,
+ int to_len,
+ Status *state)
{
- Xim im = (Xim)xim;
- XlcConv conv = im->private.proto.ctom_conv;
int from_left;
int to_left;
int from_savelen;
@@ -910,6 +835,7 @@ _Ximctstombs(xim, from, from_len, to, to_len, state)
int to_cnvlen;
char *from_buf;
char *to_buf;
+ char scratchbuf[BUFSIZ];
Status tmp_state;
if (!state)
@@ -920,71 +846,66 @@ _Ximctstombs(xim, from, from_len, to, to_len, state)
return 0;
}
- if (to && to_len) {
- from_left = from_len;
- to_left = to_len;
- from_cnvlen = 0;
- to_cnvlen = 0;
- for (;;) {
- from_savelen = from_left;
- to_savelen = to_left;
- from_buf = &from[from_cnvlen];
- to_buf = &to[to_cnvlen];
- if (_XlcConvert(conv, (XPointer *)&from_buf, &from_left,
- (XPointer *)&to_buf, &to_left, NULL, 0) < 0) {
- *state = XLookupNone;
- return 0;
- }
- from_cnvlen += (from_savelen - from_left);
- to_cnvlen += (to_savelen - to_left);
- if (from_left == 0) {
- if (to_cnvlen > 0) {
- *state = XLookupChars;
- } else {
- *state = XLookupNone;
- }
- return to_cnvlen;
- }
- if (to_left == 0)
- break;
- }
- }
+ /* Reset the converter. The CompoundText at 'from' starts in
+ initial state. */
+ _XlcResetConverter(conv);
from_left = from_len;
+ to_left = BUFSIZ;
from_cnvlen = 0;
to_cnvlen = 0;
- to_buf = NULL;
for (;;) {
- from_savelen = from_left;
- to_left = MAXINT;
from_buf = &from[from_cnvlen];
+ from_savelen = from_left;
+ to_buf = &scratchbuf[to_cnvlen];
+ to_savelen = to_left;
if (_XlcConvert(conv, (XPointer *)&from_buf, &from_left,
(XPointer *)&to_buf, &to_left, NULL, 0) < 0) {
*state = XLookupNone;
return 0;
}
from_cnvlen += (from_savelen - from_left);
- to_cnvlen += (MAXINT - to_left);
+ to_cnvlen += (to_savelen - to_left);
if (from_left == 0) {
- if (to_cnvlen > 0)
- *state = XBufferOverflow;
- else
+ if (!to_cnvlen) {
*state = XLookupNone;
- break;
+ return 0;
+ }
+ break;
}
}
+
+ if (!to || !to_len || (to_len < to_cnvlen)) {
+ *state = XBufferOverflow;
+ } else {
+ memcpy(to, scratchbuf, to_cnvlen);
+ *state = XLookupChars;
+ }
return to_cnvlen;
}
Public int
-_Ximctstowcs(xim, from, from_len, to, to_len, state)
+_Ximctstombs(xim, from, from_len, to, to_len, state)
XIM xim;
char *from;
int from_len;
- wchar_t *to;
+ char *to;
int to_len;
Status *state;
{
+ return _Ximctsconvert(((Xim)xim)->private.proto.ctom_conv,
+ from, from_len, to, to_len, state);
+}
+
+Public int
+_Ximctstowcs(
+ XIM xim,
+ char *from,
+ int from_len,
+ wchar_t *to,
+ int to_len,
+ Status *state)
+{
Xim im = (Xim)xim;
XlcConv conv = im->private.proto.ctow_conv;
int from_left;
@@ -995,6 +916,7 @@ _Ximctstowcs(xim, from, from_len, to, to_len, state)
int to_cnvlen;
char *from_buf;
wchar_t *to_buf;
+ wchar_t scratchbuf[BUFSIZ];
Status tmp_state;
if (!state)
@@ -1005,70 +927,65 @@ _Ximctstowcs(xim, from, from_len, to, to_len, state)
return 0;
}
- if (to && to_len) {
- from_left = from_len;
- to_left = to_len;
- from_cnvlen = 0;
- to_cnvlen = 0;
- for (;;) {
- from_savelen = from_left;
- to_savelen = to_left;
- from_buf = &from[from_cnvlen];
- to_buf = &to[to_cnvlen];
- if (_XlcConvert(conv, (XPointer *)&from_buf, &from_left,
- (XPointer *)&to_buf, &to_left, NULL, 0) < 0) {
- *state = XLookupNone;
- return 0;
- }
- from_cnvlen += (from_savelen - from_left);
- to_cnvlen += (to_savelen - to_left);
- if (from_left == 0) {
- if (to_cnvlen > 0) {
- *state = XLookupChars;
- } else {
- *state = XLookupNone;
- }
- return to_cnvlen;
- }
- if (to_left == 0)
- break;
- }
- }
+ /* Reset the converter. The CompoundText at 'from' starts in
+ initial state. */
+ _XlcResetConverter(conv);
from_left = from_len;
+ to_left = BUFSIZ;
from_cnvlen = 0;
to_cnvlen = 0;
- to_buf = (wchar_t *)NULL;
for (;;) {
- from_savelen = from_left;
- to_left = MAXINT;
from_buf = &from[from_cnvlen];
+ from_savelen = from_left;
+ to_buf = &scratchbuf[to_cnvlen];
+ to_savelen = to_left;
if (_XlcConvert(conv, (XPointer *)&from_buf, &from_left,
(XPointer *)&to_buf, &to_left, NULL, 0) < 0) {
*state = XLookupNone;
return 0;
}
from_cnvlen += (from_savelen - from_left);
- to_cnvlen += (MAXINT - to_left);
+ to_cnvlen += (to_savelen - to_left);
if (from_left == 0) {
- if (to_cnvlen > 0)
- *state = XBufferOverflow;
- else
+ if (!to_cnvlen){
*state = XLookupNone;
+ return 0;
+ }
break;
}
}
+
+ if (!to || !to_len || (to_len < to_cnvlen)) {
+ *state = XBufferOverflow;
+ } else {
+ memcpy(to, scratchbuf, to_cnvlen * sizeof(wchar_t));
+ *state = XLookupChars;
+ }
return to_cnvlen;
}
Public int
-_XimProtoMbLookupString(xic, ev, buffer, bytes, keysym, state)
- XIC xic;
- XKeyEvent *ev;
- char *buffer;
- int bytes;
- KeySym *keysym;
- Status *state;
+_Ximctstoutf8(
+ XIM xim,
+ char *from,
+ int from_len,
+ char *to,
+ int to_len,
+ Status *state)
+{
+ return _Ximctsconvert(((Xim)xim)->private.proto.ctoutf8_conv,
+ from, from_len, to, to_len, state);
+}
+
+Public int
+_XimProtoMbLookupString(
+ XIC xic,
+ XKeyEvent *ev,
+ char *buffer,
+ int bytes,
+ KeySym *keysym,
+ Status *state)
{
Xic ic = (Xic)xic;
Xim im = (Xim)ic->core.im;
@@ -1084,15 +1001,14 @@ _XimProtoMbLookupString(xic, ev, buffer, bytes, keysym, state)
if ((ev->type == KeyPress) && (ev->keycode == 0)) { /* Filter function */
if (!(info = ic->private.proto.commit_info)) {
- if (state)
- *state = XLookupNone;
+ *state = XLookupNone;
return 0;
}
ret = im->methods->ctstombs((XIM)im, info->string,
info->string_len, buffer, bytes, state);
if (*state == XBufferOverflow)
- return 0;
+ return ret;
if (keysym && (info->keysym && *(info->keysym))) {
*keysym = *(info->keysym);
if (*state == XLookupChars)
@@ -1105,7 +1021,9 @@ _XimProtoMbLookupString(xic, ev, buffer, bytes, keysym, state)
} else if (ev->type == KeyPress) {
ret = _XimLookupMBText(ic, ev, buffer, bytes, keysym, NULL);
if (ret > 0) {
- if (keysym && *keysym != NoSymbol)
+ if (ret > bytes)
+ *state = XBufferOverflow;
+ else if (keysym && *keysym != NoSymbol)
*state = XLookupBoth;
else
*state = XLookupChars;
@@ -1124,13 +1042,13 @@ _XimProtoMbLookupString(xic, ev, buffer, bytes, keysym, state)
}
Public int
-_XimProtoWcLookupString(xic, ev, buffer, bytes, keysym, state)
- XIC xic;
- XKeyEvent *ev;
- wchar_t *buffer;
- int bytes;
- KeySym *keysym;
- Status *state;
+_XimProtoWcLookupString(
+ XIC xic,
+ XKeyEvent *ev,
+ wchar_t *buffer,
+ int bytes,
+ KeySym *keysym,
+ Status *state)
{
Xic ic = (Xic)xic;
Xim im = (Xim)ic->core.im;
@@ -1146,15 +1064,14 @@ _XimProtoWcLookupString(xic, ev, buffer, bytes, keysym, state)
if (ev->type == KeyPress && ev->keycode == 0) { /* Filter function */
if (!(info = ic->private.proto.commit_info)) {
- if (state)
- *state = XLookupNone;
+ *state = XLookupNone;
return 0;
}
ret = im->methods->ctstowcs((XIM)im, info->string,
info->string_len, buffer, bytes, state);
if (*state == XBufferOverflow)
- return 0;
+ return ret;
if (keysym && (info->keysym && *(info->keysym))) {
*keysym = *(info->keysym);
if (*state == XLookupChars)
@@ -1167,7 +1084,72 @@ _XimProtoWcLookupString(xic, ev, buffer, bytes, keysym, state)
} else if (ev->type == KeyPress) {
ret = _XimLookupWCText(ic, ev, buffer, bytes, keysym, NULL);
if (ret > 0) {
+ if (ret > bytes)
+ *state = XBufferOverflow;
+ else if (keysym && *keysym != NoSymbol)
+ *state = XLookupBoth;
+ else
+ *state = XLookupChars;
+ } else {
if (keysym && *keysym != NoSymbol)
+ *state = XLookupKeySym;
+ else
+ *state = XLookupNone;
+ }
+ } else {
+ *state = XLookupNone;
+ ret = 0;
+ }
+
+ return ret;
+}
+
+Public int
+_XimProtoUtf8LookupString(
+ XIC xic,
+ XKeyEvent *ev,
+ char *buffer,
+ int bytes,
+ KeySym *keysym,
+ Status *state)
+{
+ Xic ic = (Xic)xic;
+ Xim im = (Xim)ic->core.im;
+ int ret;
+ Status tmp_state;
+ XimCommitInfo info;
+
+ if (!IS_SERVER_CONNECTED(im))
+ return 0;
+
+ if (!state)
+ state = &tmp_state;
+
+ if (ev->type == KeyPress && ev->keycode == 0) { /* Filter function */
+ if (!(info = ic->private.proto.commit_info)) {
+ *state = XLookupNone;
+ return 0;
+ }
+
+ ret = im->methods->ctstoutf8((XIM)im, info->string,
+ info->string_len, buffer, bytes, state);
+ if (*state == XBufferOverflow)
+ return ret;
+ if (keysym && (info->keysym && *(info->keysym))) {
+ *keysym = *(info->keysym);
+ if (*state == XLookupChars)
+ *state = XLookupBoth;
+ else
+ *state = XLookupKeySym;
+ }
+ _XimUnregCommitInfo(ic);
+
+ } else if (ev->type == KeyPress) {
+ ret = _XimLookupUTF8Text(ic, ev, buffer, bytes, keysym, NULL);
+ if (ret > 0) {
+ if (ret > bytes)
+ *state = XBufferOverflow;
+ else if (keysym && *keysym != NoSymbol)
*state = XLookupBoth;
else
*state = XLookupChars;
diff --git a/modules/im/ximcp/imDispch.c b/modules/im/ximcp/imDispch.c
index b693537f..a9b3175b 100644
--- a/modules/im/ximcp/imDispch.c
+++ b/modules/im/ximcp/imDispch.c
@@ -26,6 +26,7 @@ PERFORMANCE OF THIS SOFTWARE.
fujiwara@a80.tech.yk.fujitsu.co.jp
******************************************************************/
+/* $XFree86: xc/lib/X11/imDispch.c,v 1.4 2003/04/13 19:22:20 dawes Exp $ */
#include <X11/Xlib.h>
#include "Xlibint.h"
@@ -33,27 +34,17 @@ PERFORMANCE OF THIS SOFTWARE.
#include "Xlcint.h"
#include "Ximint.h"
+
Public Bool
-#if NeedFunctionPrototypes
_XimRegProtoIntrCallback(
Xim im,
CARD16 major_code,
CARD16 minor_code,
Bool (*proc)(
-#if NeedNestedPrototypes
Xim, INT16, XPointer, XPointer
-#endif
),
XPointer call_data)
-#else
-_XimRegProtoIntrCallback(im, major_code, minor_code, proc, call_data)
- Xim im;
- CARD16 major_code;
- CARD16 minor_code;
- Bool (*proc)();
- XPointer call_data;
-#endif /* NeedFunctionPrototypes */
{
XimProtoIntrRec *rec;
@@ -84,19 +75,11 @@ _XimFreeProtoIntrCallback(im)
}
Private Bool
-#if NeedFunctionPrototypes
_XimTransportIntr(
Xim im,
INT16 len,
XPointer data,
XPointer call_data)
-#else
-_XimTransportIntr(im, len, data, call_data)
- Xim im;
- INT16 len;
- XPointer data;
- XPointer call_data;
-#endif
{
Xim call_im = (Xim)call_data;
XimProtoIntrRec *rec = call_im->private.proto.intrproto;
diff --git a/modules/im/ximcp/imEvToWire.c b/modules/im/ximcp/imEvToWire.c
index 1bbf74e6..3aba0eba 100644
--- a/modules/im/ximcp/imEvToWire.c
+++ b/modules/im/ximcp/imEvToWire.c
@@ -21,11 +21,14 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.
******************************************************************/
+/* $XFree86$ */
#define NEED_EVENTS
#include <X11/Xlibint.h>
#include <X11/Xlib.h>
#undef NEED_EVENTS
+#include "Ximint.h"
+
#define sw16(n, s) ((s) ? \
(((n) << 8 & 0xff00) | \
@@ -40,10 +43,10 @@ SOFTWARE.
) : n)
Status
-_XimProtoEventToWire(re, event, sw)
-register XEvent *re; /* pointer to where event should be reformatted */
-register xEvent *event; /* wire protocol event */
-Bool sw; /* swap byte? */
+_XimProtoEventToWire(
+ register XEvent *re, /* pointer to where event should be reformatted */
+ register xEvent *event, /* wire protocol event */
+ Bool sw) /* swap byte? */
{
switch (event->u.u.type = re->type) {
case KeyPress:
@@ -417,10 +420,10 @@ Bool sw; /* swap byte? */
* reformat a wire event into an XEvent structure of the right type.
*/
Bool
-_XimProtoWireToEvent(re, event, sw)
-register XEvent *re; /* pointer to where event should be reformatted */
-register xEvent *event; /* wire protocol event */
-Bool sw; /* swap byte? */
+_XimProtoWireToEvent(
+ register XEvent *re, /* pointer to where event should be reformatted */
+ register xEvent *event, /* wire protocol event */
+ Bool sw) /* swap byte? */
{
re->type = event->u.u.type & 0x7f;
diff --git a/modules/im/ximcp/imExten.c b/modules/im/ximcp/imExten.c
index c73bcf06..b6aa877e 100644
--- a/modules/im/ximcp/imExten.c
+++ b/modules/im/ximcp/imExten.c
@@ -26,6 +26,7 @@ PERFORMANCE OF THIS SOFTWARE.
fujiwara@a80.tech.yk.fujitsu.co.jp
******************************************************************/
+/* $XFree86: xc/lib/X11/imExten.c,v 1.4 2003/04/13 19:22:21 dawes Exp $ */
#include <X11/Xatom.h>
#define NEED_EVENTS
@@ -68,27 +69,28 @@ Private XIM_QueryExtRec extensions[] = {
};
Private int
-_XimIsSupportExt(idx)
- int idx;
+_XimIsSupportExt(
+ int idx)
{
register int i;
int n = XIMNumber(extensions) - 1;
for (i = 0; i < n; i++) {
- if (extensions[i].idx == idx)
+ if (extensions[i].idx == idx) {
if (extensions[i].is_support)
return i;
else
break;
+ }
}
return -1;
}
Private Bool
-_XimProcExtSetEventMask(im, ic, buf)
- Xim im;
- Xic ic;
- XPointer buf;
+_XimProcExtSetEventMask(
+ Xim im,
+ Xic ic,
+ XPointer buf)
{
EVENTMASK *buf_l = (EVENTMASK *)buf;
EVENTMASK select_mask = _XimGetWindowEventmask(ic);
@@ -112,19 +114,11 @@ _XimProcExtSetEventMask(im, ic, buf)
}
Private Bool
-#if NeedFunctionPrototypes
_XimExtSetEventMaskCallback(
Xim xim,
INT16 len,
XPointer data,
XPointer call_data)
-#else
-_XimExtSetEventMaskCallback(xim, len, data, call_data)
- Xim xim;
- INT16 len;
- XPointer data;
- XPointer call_data;
-#endif /* NeedFunctionPrototypes */
{
CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
XIMID imid = buf_s[0];
@@ -142,10 +136,10 @@ _XimExtSetEventMaskCallback(xim, len, data, call_data)
#ifdef EXT_FORWARD
Private Bool
-_XimProcExtForwardKeyEvent(im, ic, buf)
- Xim im;
- Xic ic;
- XPointer buf;
+_XimProcExtForwardKeyEvent(
+ Xim im,
+ Xic ic,
+ XPointer buf)
{
CARD8 *buf_b = (CARD8 *)buf;
CARD16 *buf_s = (CARD16 *)buf;
@@ -171,19 +165,11 @@ _XimProcExtForwardKeyEvent(im, ic, buf)
}
Private Bool
-#if NeedFunctionPrototypes
_XimExtForwardKeyEventCallback(
Xim xim,
INT16 len,
XPointer data,
XPointer call_data)
-#else
-_XimExtForwardKeyEventCallback(xim, len, data, call_data)
- Xim xim;
- INT16 len;
- XPointer data;
- XPointer call_data;
-#endif /* NeedFunctionPrototypes */
{
CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
XIMID imid = buf_s[0];
@@ -200,19 +186,11 @@ _XimExtForwardKeyEventCallback(xim, len, data, call_data)
}
Private Bool
-#if NeedFunctionPrototypes
_XimExtForwardKeyEventCheck(
Xim im,
INT16 len,
XPointer data,
XPointer arg)
-#else
-_XimExtForwardKeyEventCheck(im, len, data, arg)
- Xim im;
- INT16 len;
- XPointer data;
- XPointer arg;
-#endif
{
Xic ic = (Xic)arg;
CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
@@ -236,10 +214,10 @@ _XimExtForwardKeyEventCheck(im, len, data, arg)
}
Public Bool
-_XimExtForwardKeyEvent(ic, ev, sync)
- Xic ic;
- XKeyEvent *ev;
- Bool sync;
+_XimExtForwardKeyEvent(
+ Xic ic,
+ XKeyEvent *ev,
+ Bool sync)
{
Xim im = (Xim) ic->core.im;
CARD32 buf32[BUFSIZE/4];
@@ -318,7 +296,7 @@ _XimExtForwardKeyEvent(ic, ev, sync)
#endif /* EXT_FORWARD */
Private int
-_XimCheckExtensionListSize()
+_XimCheckExtensionListSize(void)
{
register int i;
int len;
@@ -335,8 +313,8 @@ _XimCheckExtensionListSize()
}
Private void
-_XimSetExtensionList(buf)
- CARD8 *buf;
+_XimSetExtensionList(
+ CARD8 *buf)
{
register int i;
int len;
@@ -353,9 +331,9 @@ _XimSetExtensionList(buf)
}
Private unsigned int
-_XimCountNumberOfExtension(total, ext)
- INT16 total;
- CARD8 *ext;
+_XimCountNumberOfExtension(
+ INT16 total,
+ CARD8 *ext)
{
unsigned int n;
INT16 len;
@@ -375,9 +353,9 @@ _XimCountNumberOfExtension(total, ext)
}
Private Bool
-_XimParseExtensionList(im, data)
- Xim im;
- CARD16 *data;
+_XimParseExtensionList(
+ Xim im,
+ CARD16 *data)
{
int num = XIMNumber(extensions) - 1;
unsigned int n;
@@ -411,19 +389,11 @@ _XimParseExtensionList(im, data)
}
Private Bool
-#if NeedFunctionPrototypes
_XimQueryExtensionCheck(
Xim im,
INT16 len,
XPointer data,
XPointer arg)
-#else
-_XimQueryExtensionCheck(im, len, data, arg)
- Xim im;
- INT16 len;
- XPointer data;
- XPointer arg;
-#endif
{
CARD16 *buf_s = (CARD16 *)((CARD8 *)data + XIM_HEADER_SIZE);
CARD8 major_opcode = *((CARD8 *)data);
@@ -443,8 +413,8 @@ _XimQueryExtensionCheck(im, len, data, arg)
}
Public Bool
-_XimExtension(im)
- Xim im;
+_XimExtension(
+ Xim im)
{
CARD8 *buf;
CARD16 *buf_s;
@@ -478,9 +448,12 @@ _XimExtension(im)
len += sizeof(CARD16) /* sizeof imid */
+ sizeof(INT16); /* sizeof length of extensions */
- _XimSetHeader((XPointer)buf, XIM_QUERY_EXTENSION, 0, &len);
- if (!(_XimWrite(im, len, (XPointer)buf)))
+ _XimSetHeader((XPointer)buf, XIM_QUERY_EXTENSION, 0, &len);
+ if (!(_XimWrite(im, len, (XPointer)buf))) {
+ XFree(buf);
return False;
+ }
+ XFree(buf);
_XimFlush(im);
buf_size = BUFSIZE;
ret_code = _XimRead(im, &len, (XPointer)reply, buf_size,
@@ -546,11 +519,11 @@ _XimExtension(im)
#define XIM_Xpoint_length 12
Private Bool
-_XimExtMove(im, ic, x, y)
- Xim im;
- Xic ic;
- CARD16 x;
- CARD16 y;
+_XimExtMove(
+ Xim im,
+ Xic ic,
+ CARD16 x,
+ CARD16 y)
{
CARD32 buf32[BUFSIZE/4];
CARD8 *buf = (CARD8 *)buf32;
@@ -579,8 +552,8 @@ _XimExtMove(im, ic, x, y)
}
Public BITMASK32
-_XimExtenArgCheck(arg)
- XIMArg *arg;
+_XimExtenArgCheck(
+ XIMArg *arg)
{
CARD32 flag = 0L;
if (!strcmp(arg->name, XNSpotLocation))
@@ -589,21 +562,12 @@ _XimExtenArgCheck(arg)
}
Public Bool
-#if NeedFunctionPrototypes
_XimExtenMove(
Xim im,
Xic ic,
CARD32 flag,
CARD16 *buf,
INT16 length)
-#else
-_XimExtenMove(im, ic, flag, buf, length)
- Xim im;
- Xic ic;
- CARD32 flag;
- CARD16 *buf;
- INT16 length;
-#endif /* NeedFunctionPrototypes */
{
if ((IS_EXT_XNSPOTLOCATION(flag)) && (length == XIM_Xpoint_length))
return _XimExtMove(im, ic, buf[4], buf[5]);
diff --git a/modules/im/ximcp/imImSw.c b/modules/im/ximcp/imImSw.c
index 13ea2a70..51e13e7a 100644
--- a/modules/im/ximcp/imImSw.c
+++ b/modules/im/ximcp/imImSw.c
@@ -32,6 +32,7 @@ THIS SOFTWARE.
frankyling@hgrd01.enet.dec.com
******************************************************************/
+/* $XFree86: xc/lib/X11/imImSw.c,v 1.3 2001/01/17 19:41:51 dawes Exp $ */
#include "Xlibint.h"
#include "Xlcint.h"
@@ -39,15 +40,15 @@ THIS SOFTWARE.
#include "XimImSw.h"
Private Bool
-_XimCheckIfDefault(im)
- Xim im;
+_XimCheckIfDefault(
+ Xim im)
{
return(True);
}
XimImsportSW _XimImSportRec[] = {
- _XimCheckIfLocalProcessing, _XimLocalOpenIM, _XimLocalIMFree,
- _XimCheckIfThaiProcessing, _XimThaiOpenIM, _XimThaiIMFree,
- _XimCheckIfDefault, _XimProtoOpenIM, _XimProtoIMFree,
- NULL, NULL, NULL,
+ { _XimCheckIfLocalProcessing, _XimLocalOpenIM, _XimLocalIMFree },
+ { _XimCheckIfThaiProcessing, _XimThaiOpenIM, _XimThaiIMFree },
+ { _XimCheckIfDefault, _XimProtoOpenIM, _XimProtoIMFree },
+ { NULL, NULL, NULL },
};
diff --git a/modules/im/ximcp/imInsClbk.c b/modules/im/ximcp/imInsClbk.c
index 413dd38f..3d647953 100644
--- a/modules/im/ximcp/imInsClbk.c
+++ b/modules/im/ximcp/imInsClbk.c
@@ -26,6 +26,7 @@ PERFORMANCE OF THIS SOFTWARE.
makoto@sm.sony.co.jp
******************************************************************/
+/* $XFree86: xc/lib/X11/imInsClbk.c,v 3.3 2003/05/27 22:26:26 tsi Exp $ */
#include <X11/Xatom.h>
#define NEED_EVENTS
@@ -45,14 +46,8 @@ typedef struct _XimInstCallback {
XrmDatabase rdb;
char *res_name;
char *res_class;
- void (*callback)(
-#if NeedNestedPrototype
- Display* /* display */,
- XPointer /* client_data */,
- XPointer /* call_data */
-#endif
- );
- XPointer *client_data;
+ XIDProc callback;
+ XPointer client_data;
struct _XimInstCallback *next;
} XimInstCallbackRec, *XimInstCallback;
@@ -62,13 +57,7 @@ Private Bool lock = False;
Private void
-#if NeedFunctionPrototypes
MakeLocale( XLCd lcd, char locale[] )
-#else
-MakeLocale( lcd, locale )
- XLCd lcd;
- char locale[];
-#endif
{
char *language, *territory, *codeset;
@@ -88,16 +77,15 @@ MakeLocale( lcd, locale )
Private Bool
-_XimFilterPropertyNotify( display, window, event, client_data )
- Display *display;
- Window window;
- XEvent *event;
- XPointer client_data;
+_XimFilterPropertyNotify(
+ Display *display,
+ Window window,
+ XEvent *event,
+ XPointer client_data)
{
Atom ims, actual_type, *atoms;
int actual_format;
unsigned long nitems, bytes_after;
- Window ims_window;
int ii;
XIM xim;
Bool flag = False;
@@ -121,7 +109,7 @@ _XimFilterPropertyNotify( display, window, event, client_data )
lock = True;
for( ii = 0; ii < nitems; ii++, atoms ) {
- if((ims_window = XGetSelectionOwner (display, atoms[ii]))) {
+ if(XGetSelectionOwner (display, atoms[ii])) {
for( icb = callback_list; icb; icb = icb->next ) {
if( !icb->call && !icb->destroy ) {
xim = (*icb->lcd->methods->open_im)( icb->lcd, display,
@@ -163,14 +151,14 @@ _XimFilterPropertyNotify( display, window, event, client_data )
Public Bool
-_XimRegisterIMInstantiateCallback( lcd, display, rdb, res_name, res_class,
- callback, client_data )
- XLCd lcd;
- Display *display;
- XrmDatabase rdb;
- char *res_name, *res_class;
- XIMProc callback;
- XPointer *client_data;
+_XimRegisterIMInstantiateCallback(
+ XLCd lcd,
+ Display *display,
+ XrmDatabase rdb,
+ char *res_name,
+ char *res_class,
+ XIDProc callback,
+ XPointer client_data)
{
XimInstCallback icb, tmp;
XIM xim;
@@ -226,14 +214,14 @@ _XimRegisterIMInstantiateCallback( lcd, display, rdb, res_name, res_class,
Public Bool
-_XimUnRegisterIMInstantiateCallback( lcd, display, rdb, res_name, res_class,
- callback, client_data )
- XLCd lcd;
- Display *display;
- XrmDatabase rdb;
- char *res_name, *res_class;
- XIMProc callback;
- XPointer *client_data;
+_XimUnRegisterIMInstantiateCallback(
+ XLCd lcd,
+ Display *display,
+ XrmDatabase rdb,
+ char *res_name,
+ char *res_class,
+ XIDProc callback,
+ XPointer client_data)
{
char locale[XIM_MAXLCNAMELEN];
XimInstCallback icb, picb;
@@ -255,8 +243,8 @@ _XimUnRegisterIMInstantiateCallback( lcd, display, rdb, res_name, res_class,
((res_class == NULL && icb->res_class == NULL) ||
(res_class != NULL && icb->res_class != NULL &&
!strcmp( res_class, icb->res_class ))) &&
- callback == icb->callback &&
- client_data == icb->client_data && /* XXXXX */
+ (callback == icb->callback) &&
+ (client_data == icb->client_data) && /* XXXXX */
!icb->destroy ) {
if( lock )
icb->destroy = True;
diff --git a/modules/im/ximcp/imInt.c b/modules/im/ximcp/imInt.c
index 05c4b2b0..492c7253 100644
--- a/modules/im/ximcp/imInt.c
+++ b/modules/im/ximcp/imInt.c
@@ -26,6 +26,7 @@ PERFORMANCE OF THIS SOFTWARE.
fujiwara@a80.tech.yk.fujitsu.co.jp
******************************************************************/
+/* $XFree86: xc/lib/X11/imInt.c,v 3.12 2003/04/17 02:06:32 dawes Exp $ */
#include <X11/Xatom.h>
#include <X11/Xlib.h>
@@ -39,8 +40,8 @@ Private Xim *_XimCurrentIMlist = (Xim *)NULL;
Private int _XimCurrentIMcount = 0;
Private Bool
-_XimSetIMStructureList(im)
- Xim im;
+_XimSetIMStructureList(
+ Xim im)
{
register int i;
Xim *xim;
@@ -103,7 +104,7 @@ _XimServerDestroy(im_2_destroy)
continue;
if (im->core.destroy_callback.callback)
- (*im->core.destroy_callback.callback)(im,
+ (*im->core.destroy_callback.callback)((XIM)im,
im->core.destroy_callback.client_data, NULL);
for (ic = im->core.ic_chain; ic; ic = ic->core.next) {
if (ic->core.destroy_callback.callback) {
@@ -148,8 +149,9 @@ _XimServerReconectableDestroy()
#endif /* XIM_CONNECTABLE */
Private char *
-_XimStrstr(src, dest)
- register char *src, *dest;
+_XimStrstr(
+ register char *src,
+ register char *dest)
{
int len;
@@ -163,8 +165,8 @@ _XimStrstr(src, dest)
}
Private char *
-_XimMakeImName(lcd)
- XLCd lcd;
+_XimMakeImName(
+ XLCd lcd)
{
char* begin = NULL;
char* end = NULL;
@@ -179,13 +181,12 @@ _XimMakeImName(lcd)
end++;
}
}
-
ret = Xmalloc(end - begin + 1);
if (ret != NULL) {
- if (begin != NULL) {
+ if (begin != NULL && end != NULL) {
(void)strncpy(ret, begin, end - begin);
ret[end - begin] = '\0';
- } else {
+ } else {
ret[0] = '\0';
}
}
@@ -194,11 +195,12 @@ _XimMakeImName(lcd)
}
Public XIM
-_XimOpenIM(lcd, dpy, rdb, res_name, res_class)
- XLCd lcd;
- Display *dpy;
- XrmDatabase rdb;
- char *res_name, *res_class;
+_XimOpenIM(
+ XLCd lcd,
+ Display *dpy,
+ XrmDatabase rdb,
+ char *res_name,
+ char *res_class)
{
Xim im;
register int i;
diff --git a/modules/im/ximcp/imLcIc.c b/modules/im/ximcp/imLcIc.c
index 541d2227..1fbb694e 100644
--- a/modules/im/ximcp/imLcIc.c
+++ b/modules/im/ximcp/imLcIc.c
@@ -26,6 +26,7 @@ PERFORMANCE OF THIS SOFTWARE.
fujiwara@a80.tech.yk.fujitsu.co.jp
******************************************************************/
+/* $XFree86: xc/lib/X11/imLcIc.c,v 1.4 2001/01/17 19:41:52 dawes Exp $ */
#include <stdio.h>
#include <X11/Xlib.h>
@@ -35,8 +36,8 @@ PERFORMANCE OF THIS SOFTWARE.
#include "Ximint.h"
Private void
-_XimLocalUnSetFocus(xic)
- XIC xic;
+_XimLocalUnSetFocus(
+ XIC xic)
{
Xic ic = (Xic)xic;
((Xim)ic->core.im)->private.local.current_ic = (XIC)NULL;
@@ -48,13 +49,17 @@ _XimLocalUnSetFocus(xic)
}
Private void
-_XimLocalDestroyIC(xic)
- XIC xic;
+_XimLocalDestroyIC(
+ XIC xic)
{
Xic ic = (Xic)xic;
+
if(((Xim)ic->core.im)->private.local.current_ic == (XIC)ic) {
- _XimLocalUnSetFocus(xic);
+ ((Xim)ic->core.im)->private.local.current_ic = (XIC)NULL;
}
+ if (ic->core.focus_window)
+ _XUnregisterFilter(ic->core.im->core.display,
+ ic->core.focus_window, _XimLocalFilter, (XPointer)ic);
if(ic->private.local.ic_resources) {
Xfree(ic->private.local.ic_resources);
ic->private.local.ic_resources = NULL;
@@ -63,8 +68,8 @@ _XimLocalDestroyIC(xic)
}
Private void
-_XimLocalSetFocus(xic)
- XIC xic;
+_XimLocalSetFocus(
+ XIC xic)
{
Xic ic = (Xic)xic;
XIC current_ic = ((Xim)ic->core.im)->private.local.current_ic;
@@ -84,24 +89,29 @@ _XimLocalSetFocus(xic)
return;
}
-Private char *
-_XimLocalMbReset(xic)
- XIC xic;
+Private void
+_XimLocalReset(
+ XIC xic)
{
Xic ic = (Xic)xic;
ic->private.local.composed = (DefTree *)NULL;
ic->private.local.context = ((Xim)ic->core.im)->private.local.top;
- return((char *)NULL);
+}
+
+Private char *
+_XimLocalMbReset(
+ XIC xic)
+{
+ _XimLocalReset(xic);
+ return (char *)NULL;
}
Private wchar_t *
-_XimLocalWcReset(xic)
- XIC xic;
+_XimLocalWcReset(
+ XIC xic)
{
- Xic ic = (Xic)xic;
- ic->private.local.composed = (DefTree *)NULL;
- ic->private.local.context = ((Xim)ic->core.im)->private.local.top;
- return((wchar_t *)NULL);
+ _XimLocalReset(xic);
+ return (wchar_t *)NULL;
}
Private XICMethodsRec Local_ic_methods = {
@@ -112,14 +122,16 @@ Private XICMethodsRec Local_ic_methods = {
_XimLocalGetICValues, /* get_values */
_XimLocalMbReset, /* mb_reset */
_XimLocalWcReset, /* wc_reset */
+ _XimLocalMbReset, /* utf8_reset */
_XimLocalMbLookupString, /* mb_lookup_string */
_XimLocalWcLookupString, /* wc_lookup_string */
+ _XimLocalUtf8LookupString /* utf8_lookup_string */
};
Public XIC
-_XimLocalCreateIC(im, values)
- XIM im;
- XIMArg *values;
+_XimLocalCreateIC(
+ XIM im,
+ XIMArg *values)
{
Xic ic;
XimDefICValues ic_values;
diff --git a/modules/im/ximcp/imLcIm.c b/modules/im/ximcp/imLcIm.c
index 907b0479..e10ed919 100644
--- a/modules/im/ximcp/imLcIm.c
+++ b/modules/im/ximcp/imLcIm.c
@@ -32,6 +32,7 @@ THIS SOFTWARE.
frankyling@hgrd01.enet.dec.com
******************************************************************/
+/* $XFree86: xc/lib/X11/imLcIm.c,v 1.12 2003/09/06 14:06:32 pascal Exp $ */
#include <stdio.h>
/*
@@ -43,6 +44,7 @@ THIS SOFTWARE.
#include "Xlibint.h"
#include "Xlcint.h"
#include "XlcPublic.h"
+#include "XlcPubI.h"
#include "Ximint.h"
#include <ctype.h>
@@ -72,22 +74,25 @@ _XimCheckIfLocalProcessing(im)
}
Private void
-XimFreeDefaultTree(top)
- DefTree *top;
+XimFreeDefaultTree(
+ DefTree *top)
{
if (!top) return;
if (top->succession) XimFreeDefaultTree(top->succession);
if (top->next) XimFreeDefaultTree(top->next);
if (top->mb) Xfree(top->mb);
if (top->wc) Xfree(top->wc);
+ if (top->utf8) Xfree(top->utf8);
Xfree(top);
}
Public void
-_XimLocalIMFree(im)
- Xim im;
+_XimLocalIMFree(
+ Xim im)
{
XimFreeDefaultTree(im->private.local.top);
+ im->private.local.top = NULL;
+
if(im->core.im_resources) {
Xfree(im->core.im_resources);
im->core.im_resources = NULL;
@@ -120,18 +125,51 @@ _XimLocalIMFree(im)
Xfree(im->core.im_name);
im->core.im_name = NULL;
}
+ if (im->private.local.ctom_conv) {
+ _XlcCloseConverter(im->private.local.ctom_conv);
+ im->private.local.ctom_conv = NULL;
+ }
+ if (im->private.local.ctow_conv) {
+ _XlcCloseConverter(im->private.local.ctow_conv);
+ im->private.local.ctow_conv = NULL;
+ }
+ if (im->private.local.ctoutf8_conv) {
+ _XlcCloseConverter(im->private.local.ctoutf8_conv);
+ im->private.local.ctoutf8_conv = NULL;
+ }
+ if (im->private.local.cstomb_conv) {
+ _XlcCloseConverter(im->private.local.cstomb_conv);
+ im->private.local.cstomb_conv = NULL;
+ }
+ if (im->private.local.cstowc_conv) {
+ _XlcCloseConverter(im->private.local.cstowc_conv);
+ im->private.local.cstowc_conv = NULL;
+ }
+ if (im->private.local.cstoutf8_conv) {
+ _XlcCloseConverter(im->private.local.cstoutf8_conv);
+ im->private.local.cstoutf8_conv = NULL;
+ }
+ if (im->private.local.ucstoc_conv) {
+ _XlcCloseConverter(im->private.local.ucstoc_conv);
+ im->private.local.ucstoc_conv = NULL;
+ }
+ if (im->private.local.ucstoutf8_conv) {
+ _XlcCloseConverter(im->private.local.ucstoutf8_conv);
+ im->private.local.ucstoutf8_conv = NULL;
+ }
return;
}
Private Status
-_XimLocalCloseIM(xim)
- XIM xim;
+_XimLocalCloseIM(
+ XIM xim)
{
Xim im = (Xim)xim;
XIC ic;
XIC next;
ic = im->core.ic_chain;
+ im->core.ic_chain = NULL;
while (ic) {
(*ic->methods->destroy) (ic);
next = ic->core.next;
@@ -144,9 +182,9 @@ _XimLocalCloseIM(xim)
}
Public char *
-_XimLocalGetIMValues(xim, values)
- XIM xim;
- XIMArg *values;
+_XimLocalGetIMValues(
+ XIM xim,
+ XIMArg *values)
{
Xim im = (Xim)xim;
XimDefIMValues im_values;
@@ -157,9 +195,9 @@ _XimLocalGetIMValues(xim, values)
}
Public char *
-_XimLocalSetIMValues(xim, values)
- XIM xim;
- XIMArg *values;
+_XimLocalSetIMValues(
+ XIM xim,
+ XIMArg *values)
{
Xim im = (Xim)xim;
XimDefIMValues im_values;
@@ -173,20 +211,46 @@ _XimLocalSetIMValues(xim, values)
}
Private void
-_XimCreateDefaultTree(im)
- Xim im;
+_XimCreateDefaultTree(
+ Xim im)
{
- FILE *fp;
- char *name;
-
- name = _XlcFileName(im->core.lcd, COMPOSE_FILE);
- if (name == (char *)NULL)
- return;
- fp = _XFopenFile (name, "r");
- Xfree(name);
- if (fp == (FILE *)NULL)
- return;
- _XimParseStringFile(fp, &im->private.local.top);
+ FILE *fp = NULL;
+ char *name, *tmpname = NULL;
+
+ name = getenv("XCOMPOSEFILE");
+
+ if (name == (char *) NULL) {
+ char *home = getenv("HOME");
+ if (home != (char *) NULL) {
+ int hl = strlen(home);
+ tmpname = name = Xmalloc(hl + 10 + 1);
+ if (name != (char *) NULL) {
+ strcpy(name, home);
+ strcpy(name + hl, "/.XCompose");
+ fp = _XFopenFile (name, "r");
+ if (fp == (FILE *) NULL) {
+ Xfree(name);
+ name = tmpname = NULL;
+ }
+ }
+ }
+ }
+
+ if (name == (char *) NULL) {
+ tmpname = name = _XlcFileName(im->core.lcd, COMPOSE_FILE);
+ }
+
+ if (name == (char *) NULL)
+ return;
+ if (fp == (FILE *) NULL) {
+ fp = _XFopenFile (name, "r");
+ }
+ if (tmpname != (char *) NULL) {
+ Xfree(tmpname);
+ }
+ if (fp == (FILE *) NULL)
+ return;
+ _XimParseStringFile(fp, im);
fclose(fp);
}
@@ -196,17 +260,18 @@ Private XIMMethodsRec Xim_im_local_methods = {
_XimLocalGetIMValues, /* get_values */
_XimLocalCreateIC, /* create_ic */
_XimLcctstombs, /* ctstombs */
- _XimLcctstowcs /* ctstowcs */
+ _XimLcctstowcs, /* ctstowcs */
+ _XimLcctstoutf8 /* ctstoutf8 */
};
Public Bool
-_XimLocalOpenIM(im)
- Xim im;
+_XimLocalOpenIM(
+ Xim im)
{
XLCd lcd = im->core.lcd;
- XlcConv ctom_conv;
- XlcConv ctow_conv;
+ XlcConv conv;
XimDefIMValues im_values;
+ XimLocalPrivateRec* private = &im->private.local;
_XimInitialResourceInfo();
if(_XimSetIMResourceList(&im->core.im_resources,
@@ -227,48 +292,46 @@ _XimLocalOpenIM(im)
}
_XimSetCurrentIMValues(im, &im_values);
- _XimCreateDefaultTree(im);
+ if (!(conv = _XlcOpenConverter(lcd, XlcNCompoundText, lcd, XlcNMultiByte)))
+ goto Open_Error;
+ private->ctom_conv = conv;
+
+ if (!(conv = _XlcOpenConverter(lcd, XlcNCompoundText, lcd, XlcNWideChar)))
+ goto Open_Error;
+ private->ctow_conv = conv;
+
+ if (!(conv = _XlcOpenConverter(lcd, XlcNCompoundText, lcd, XlcNUtf8String)))
+ goto Open_Error;
+ private->ctoutf8_conv = conv;
+
+ if (!(conv = _XlcOpenConverter(lcd, XlcNCharSet, lcd, XlcNMultiByte)))
+ goto Open_Error;
+ private->cstomb_conv = conv;
- if (!(ctom_conv = _XlcOpenConverter(lcd,
- XlcNCompoundText, lcd, XlcNMultiByte)))
+ if (!(conv = _XlcOpenConverter(lcd, XlcNCharSet, lcd, XlcNWideChar)))
goto Open_Error;
- if (!(ctow_conv = _XlcOpenConverter(lcd,
- XlcNCompoundText, lcd, XlcNWideChar)))
+ private->cstowc_conv = conv;
+
+ if (!(conv = _XlcOpenConverter(lcd, XlcNCharSet, lcd, XlcNUtf8String)))
+ goto Open_Error;
+ private->cstoutf8_conv = conv;
+
+ if (!(conv = _XlcOpenConverter(lcd, XlcNUcsChar, lcd, XlcNChar)))
+ goto Open_Error;
+ private->ucstoc_conv = conv;
+
+ if (!(conv = _XlcOpenConverter(lcd, XlcNUcsChar, lcd, XlcNUtf8String)))
goto Open_Error;
+ private->ucstoutf8_conv = conv;
+
+ _XimCreateDefaultTree(im);
im->methods = &Xim_im_local_methods;
- im->private.local.current_ic = (XIC)NULL;
- im->private.local.ctom_conv = ctom_conv;
- im->private.local.ctow_conv = ctow_conv;
+ private->current_ic = (XIC)NULL;
return(True);
Open_Error :
- if (im->core.im_resources) {
- Xfree(im->core.im_resources);
- im->core.im_resources = NULL;
- }
- if (im->core.ic_resources) {
- Xfree(im->core.ic_resources);
- im->core.ic_resources = NULL;
- }
- if (im->core.im_values_list) {
- Xfree(im->core.im_values_list);
- im->core.im_values_list = NULL;
- }
- if (im->core.ic_values_list) {
- Xfree(im->core.ic_values_list);
- im->core.ic_values_list = NULL;
- }
- if (im->core.styles) {
- Xfree(im->core.styles);
- im->core.styles = NULL;
- }
- if (im->private.local.ctom_conv) {
- _XlcCloseConverter(im->private.local.ctom_conv);
- }
- if (im->private.local.ctow_conv) {
- _XlcCloseConverter(im->private.local.ctow_conv);
- }
+ _XimLocalIMFree(im);
return(False);
}
diff --git a/modules/im/ximcp/imLcLkup.c b/modules/im/ximcp/imLcLkup.c
index fa92701d..f21e5c56 100644
--- a/modules/im/ximcp/imLcLkup.c
+++ b/modules/im/ximcp/imLcLkup.c
@@ -29,6 +29,7 @@ PERFORMANCE OF THIS SOFTWARE.
fujiwara@a80.tech.yk.fujitsu.co.jp
******************************************************************/
+/* $XFree86: xc/lib/X11/imLcLkup.c,v 3.8 2003/06/23 17:35:43 eich Exp $ */
#include <stdio.h>
#include <X11/Xatom.h>
@@ -56,7 +57,7 @@ _XimLocalMbLookupString(xic, ev, buffer, bytes, keysym, status)
if(status) *status = XLookupNone;
return(0);
}
- if(ev->keycode == 0) { /* Composed Event */
+ if(ev->keycode == 0 && ic->private.local.composed != NULL) { /* Composed Event */
ret = strlen(ic->private.local.composed->mb);
if(ret > bytes) {
if(status) *status = XBufferOverflow;
@@ -65,7 +66,7 @@ _XimLocalMbLookupString(xic, ev, buffer, bytes, keysym, status)
memcpy(buffer, ic->private.local.composed->mb, ret);
if(keysym) *keysym = ic->private.local.composed->ks;
if (ret > 0) {
- if(keysym && *keysym != NoSymbol) {
+ if (keysym && *keysym != NoSymbol) {
if(status) *status = XLookupBoth;
} else {
if(status) *status = XLookupChars;
@@ -81,7 +82,9 @@ _XimLocalMbLookupString(xic, ev, buffer, bytes, keysym, status)
} else { /* Throughed Event */
ret = _XimLookupMBText(ic, ev, buffer, bytes, keysym, NULL);
if(ret > 0) {
- if(keysym && *keysym != NoSymbol) {
+ if (ret > bytes) {
+ if (status) *status = XBufferOverflow;
+ } else if (keysym && *keysym != NoSymbol) {
if(status) *status = XLookupBoth;
} else {
if(status) *status = XLookupChars;
@@ -123,7 +126,7 @@ _XimLocalWcLookupString(xic, ev, buffer, wlen, keysym, status)
ret * sizeof(wchar_t));
if(keysym) *keysym = ic->private.local.composed->ks;
if (ret > 0) {
- if(keysym && *keysym != NoSymbol) {
+ if (keysym && *keysym != NoSymbol) {
if(status) *status = XLookupBoth;
} else {
if(status) *status = XLookupChars;
@@ -139,7 +142,9 @@ _XimLocalWcLookupString(xic, ev, buffer, wlen, keysym, status)
} else { /* Throughed Event */
ret = _XimLookupWCText(ic, ev, buffer, wlen, keysym, NULL);
if(ret > 0) {
- if(keysym && *keysym != NoSymbol) {
+ if (ret > wlen) {
+ if (status) *status = XBufferOverflow;
+ } else if (keysym && *keysym != NoSymbol) {
if(status) *status = XLookupBoth;
} else {
if(status) *status = XLookupChars;
@@ -155,21 +160,74 @@ _XimLocalWcLookupString(xic, ev, buffer, wlen, keysym, status)
return (ret);
}
-#ifndef MAXINT
-#define MAXINT (~((unsigned int)1 << (8 * sizeof(int)) - 1))
-#endif /* !MAXINT */
-
Public int
-_XimLcctstombs(xim, from, from_len, to, to_len, state)
- XIM xim;
- char *from;
- int from_len;
- char *to;
- int to_len;
- Status *state;
+_XimLocalUtf8LookupString(xic, ev, buffer, bytes, keysym, status)
+ XIC xic;
+ XKeyEvent *ev;
+ char *buffer;
+ int bytes;
+ KeySym *keysym;
+ Status *status;
+{
+ Xic ic = (Xic)xic;
+ int ret;
+
+ if(ev->type != KeyPress) {
+ if(status) *status = XLookupNone;
+ return(0);
+ }
+ if(ev->keycode == 0) { /* Composed Event */
+ ret = strlen(ic->private.local.composed->utf8);
+ if(ret > bytes) {
+ if(status) *status = XBufferOverflow;
+ return (ret);
+ }
+ memcpy(buffer, ic->private.local.composed->utf8, ret);
+ if(keysym) *keysym = ic->private.local.composed->ks;
+ if (ret > 0) {
+ if (keysym && *keysym != NoSymbol) {
+ if(status) *status = XLookupBoth;
+ } else {
+ if(status) *status = XLookupChars;
+ }
+ } else {
+ if(keysym && *keysym != NoSymbol) {
+ if(status) *status = XLookupKeySym;
+ } else {
+ if(status) *status = XLookupNone;
+ }
+ }
+ return (ret);
+ } else { /* Throughed Event */
+ ret = _XimLookupUTF8Text(ic, ev, buffer, bytes, keysym, NULL);
+ if(ret > 0) {
+ if (ret > bytes) {
+ if (status) *status = XBufferOverflow;
+ } else if (keysym && *keysym != NoSymbol) {
+ if(status) *status = XLookupBoth;
+ } else {
+ if(status) *status = XLookupChars;
+ }
+ } else {
+ if(keysym && *keysym != NoSymbol) {
+ if(status) *status = XLookupKeySym;
+ } else {
+ if(status) *status = XLookupNone;
+ }
+ }
+ }
+ return (ret);
+}
+
+Private int
+_XimLcctsconvert(
+ XlcConv conv,
+ char *from,
+ int from_len,
+ char *to,
+ int to_len,
+ Status *state)
{
- Xim im = (Xim)xim;
- XlcConv conv = im->private.local.ctom_conv;
int from_left;
int to_left;
int from_savelen;
@@ -178,6 +236,7 @@ _XimLcctstombs(xim, from, from_len, to, to_len, state)
int to_cnvlen;
char *from_buf;
char *to_buf;
+ char scratchbuf[BUFSIZ];
Status tmp_state;
if (!state)
@@ -188,63 +247,58 @@ _XimLcctstombs(xim, from, from_len, to, to_len, state)
return 0;
}
- if (to && to_len) {
- from_left = from_len;
- to_left = to_len;
- from_cnvlen = 0;
- to_cnvlen = 0;
- for (;;) {
- from_savelen = from_left;
- to_savelen = to_left;
- from_buf = &from[from_cnvlen];
- to_buf = &to[to_cnvlen];
- if (_XlcConvert(conv, (XPointer *)&from_buf, &from_left,
- (XPointer *)&to_buf, &to_left, NULL, 0) < 0) {
- *state = XLookupNone;
- return 0;
- }
- from_cnvlen += (from_savelen - from_left);
- to_cnvlen += (to_savelen - to_left);
- if (from_left == 0) {
- if (to_cnvlen > 0) {
- *state = XLookupChars;
- } else {
- *state = XLookupNone;
- }
- return to_cnvlen;
- }
- if (to_left == 0)
- break;
- }
- }
+ /* Reset the converter. The CompoundText at 'from' starts in
+ initial state. */
+ _XlcResetConverter(conv);
from_left = from_len;
+ to_left = BUFSIZ;
from_cnvlen = 0;
to_cnvlen = 0;
- to_buf = NULL;
for (;;) {
- from_savelen = from_left;
- to_left = MAXINT;
from_buf = &from[from_cnvlen];
+ from_savelen = from_left;
+ to_buf = &scratchbuf[to_cnvlen];
+ to_savelen = to_left;
if (_XlcConvert(conv, (XPointer *)&from_buf, &from_left,
(XPointer *)&to_buf, &to_left, NULL, 0) < 0) {
*state = XLookupNone;
return 0;
}
from_cnvlen += (from_savelen - from_left);
- to_cnvlen += (MAXINT - to_left);
+ to_cnvlen += (to_savelen - to_left);
if (from_left == 0) {
- if (to_cnvlen > 0)
- *state = XBufferOverflow;
- else
+ if (!to_cnvlen) {
*state = XLookupNone;
- break;
+ return 0;
+ }
+ break;
}
}
+
+ if (!to || !to_len || (to_len < to_cnvlen)) {
+ *state = XBufferOverflow;
+ } else {
+ memcpy(to, scratchbuf, to_cnvlen);
+ *state = XLookupChars;
+ }
return to_cnvlen;
}
Public int
+_XimLcctstombs(xim, from, from_len, to, to_len, state)
+ XIM xim;
+ char *from;
+ int from_len;
+ char *to;
+ int to_len;
+ Status *state;
+{
+ return _XimLcctsconvert(((Xim)xim)->private.local.ctom_conv,
+ from, from_len, to, to_len, state);
+}
+
+Public int
_XimLcctstowcs(xim, from, from_len, to, to_len, state)
XIM xim;
char *from;
@@ -263,6 +317,7 @@ _XimLcctstowcs(xim, from, from_len, to, to_len, state)
int to_cnvlen;
char *from_buf;
wchar_t *to_buf;
+ wchar_t scratchbuf[BUFSIZ];
Status tmp_state;
if (!state)
@@ -273,58 +328,53 @@ _XimLcctstowcs(xim, from, from_len, to, to_len, state)
return 0;
}
- if (to && to_len) {
- from_left = from_len;
- to_left = to_len;
- from_cnvlen = 0;
- to_cnvlen = 0;
- for (;;) {
- from_savelen = from_left;
- to_savelen = to_left;
- from_buf = &from[from_cnvlen];
- to_buf = &to[to_cnvlen];
- if (_XlcConvert(conv, (XPointer *)&from_buf, &from_left,
- (XPointer *)&to_buf, &to_left, NULL, 0) < 0) {
- *state = XLookupNone;
- return 0;
- }
- from_cnvlen += (from_savelen - from_left);
- to_cnvlen += (to_savelen - to_left);
- if (from_left == 0) {
- if (to_cnvlen > 0) {
- *state = XLookupChars;
- } else {
- *state = XLookupNone;
- }
- return to_cnvlen;
- }
- if (to_left == 0)
- break;
- }
- }
+ /* Reset the converter. The CompoundText at 'from' starts in
+ initial state. */
+ _XlcResetConverter(conv);
from_left = from_len;
+ to_left = BUFSIZ;
from_cnvlen = 0;
to_cnvlen = 0;
- to_buf = (wchar_t *)NULL;
for (;;) {
- from_savelen = from_left;
- to_left = MAXINT;
from_buf = &from[from_cnvlen];
+ from_savelen = from_left;
+ to_buf = &scratchbuf[to_cnvlen];
+ to_savelen = to_left;
if (_XlcConvert(conv, (XPointer *)&from_buf, &from_left,
(XPointer *)&to_buf, &to_left, NULL, 0) < 0) {
*state = XLookupNone;
return 0;
}
from_cnvlen += (from_savelen - from_left);
- to_cnvlen += (MAXINT - to_left);
+ to_cnvlen += (to_savelen - to_left);
if (from_left == 0) {
- if (to_cnvlen > 0)
- *state = XBufferOverflow;
- else
+ if (!to_cnvlen){
*state = XLookupNone;
+ return 0;
+ }
break;
}
}
+
+ if (!to || !to_len || (to_len < to_cnvlen)) {
+ *state = XBufferOverflow;
+ } else {
+ memcpy(to, scratchbuf, to_cnvlen * sizeof(wchar_t));
+ *state = XLookupChars;
+ }
return to_cnvlen;
}
+
+Public int
+_XimLcctstoutf8(xim, from, from_len, to, to_len, state)
+ XIM xim;
+ char *from;
+ int from_len;
+ char *to;
+ int to_len;
+ Status *state;
+{
+ return _XimLcctsconvert(((Xim)xim)->private.local.ctoutf8_conv,
+ from, from_len, to, to_len, state);
+}
diff --git a/modules/im/ximcp/imLcPrs.c b/modules/im/ximcp/imLcPrs.c
index d3e5813d..ee2c4b8d 100644
--- a/modules/im/ximcp/imLcPrs.c
+++ b/modules/im/ximcp/imLcPrs.c
@@ -30,6 +30,8 @@ OR PERFORMANCE OF THIS SOFTWARE.
******************************************************************/
+/* $XFree86: xc/lib/X11/imLcPrs.c,v 1.10 2003/09/06 14:06:32 pascal Exp $ */
+
#include <X11/Xlib.h>
#include <X11/Xmd.h>
#include <X11/Xos.h>
@@ -40,11 +42,15 @@ OR PERFORMANCE OF THIS SOFTWARE.
#include <stdio.h>
extern int _Xmbstowcs(
-#if NeedFunctionPrototypes
wchar_t *wstr,
char *str,
int len
-#endif
+);
+
+extern int _Xmbstoutf8(
+ char *ustr,
+ const char *str,
+ int len
);
/*
@@ -70,9 +76,9 @@ extern int _Xmbstowcs(
*/
static int
-nextch(fp, lastch)
- FILE *fp;
- int *lastch;
+nextch(
+ FILE *fp,
+ int *lastch)
{
int c;
@@ -95,9 +101,9 @@ nextch(fp, lastch)
}
static void
-putbackch(c, lastch)
- int c;
- int *lastch;
+putbackch(
+ int c,
+ int *lastch)
{
*lastch = c;
}
@@ -121,10 +127,10 @@ putbackch(c, lastch)
#endif
static int
-nexttoken(fp, tokenbuf, lastch)
- FILE *fp;
- char *tokenbuf;
- int *lastch;
+nexttoken(
+ FILE *fp,
+ char *tokenbuf,
+ int *lastch)
{
int c;
int token;
@@ -169,6 +175,15 @@ nexttoken(fp, tokenbuf, lastch)
case '"':
*p++ = c;
break;
+ case 'n':
+ *p++ = '\n';
+ break;
+ case 'r':
+ *p++ = '\r';
+ break;
+ case 't':
+ *p++ = '\t';
+ break;
case '0':
case '1':
case '2':
@@ -190,30 +205,27 @@ nexttoken(fp, tokenbuf, lastch)
case 'X':
case 'x':
i = 0;
- c = nextch(fp, lastch);
-#define ishexch(c) (((c) >= '0' && (c) <= '9') || \
- ((c) >= 'A' && (c) <= 'F') || \
- ((c) >= 'a' && (c) <= 'f'))
- for (j = 0; j < 2 && ishexch(c); j++) {
- i <<= 4;
+ for (j = 0; j < 2; j++) {
+ c = nextch(fp, lastch);
+ i <<= 4;
if (c >= '0' && c <= '9') {
i += c - '0';
} else if (c >= 'A' && c <= 'F') {
i += c - 'A' + 10;
- } else {
+ } else if (c >= 'a' && c <= 'f') {
i += c - 'a' + 10;
- }
- c = nextch(fp, lastch);
+ } else {
+ putbackch(c, lastch);
+ i >>= 4;
+ break;
+ }
}
if (j == 0) {
token = ERROR;
goto string_error;
}
- putbackch(c, lastch);
*p++ = (char)i;
-#undef ishexch
break;
- case '\n':
case EOF:
putbackch(c, lastch);
token = ERROR;
@@ -260,8 +272,8 @@ string_error:
}
static long
-modmask(name)
- char *name;
+modmask(
+ char *name)
{
long mask;
@@ -291,28 +303,136 @@ modmask(name)
return(mask);
}
+static char*
+TransFileName(Xim im, char *name)
+{
+ char *home = NULL, *lcCompose = NULL;
+ char *i = name, *ret, *j;
+ int l = 0;
+
+ while (*i) {
+ if (*i == '%') {
+ i++;
+ switch (*i) {
+ case '%':
+ l++;
+ break;
+ case 'H':
+ home = getenv("HOME");
+ if (home)
+ l += strlen(home);
+ break;
+ case 'L':
+ lcCompose = _XlcFileName(im->core.lcd, COMPOSE_FILE);
+ if (lcCompose)
+ l += strlen(lcCompose);
+ break;
+ }
+ } else {
+ l++;
+ }
+ i++;
+ }
+
+ j = ret = Xmalloc(l+1);
+ if (ret == NULL)
+ return ret;
+ i = name;
+ while (*i) {
+ if (*i == '%') {
+ i++;
+ switch (*i) {
+ case '%':
+ *j++ = '%';
+ break;
+ case 'H':
+ if (home) {
+ strcpy(j, home);
+ j += strlen(home);
+ }
+ break;
+ case 'L':
+ if (lcCompose) {
+ strcpy(j, lcCompose);
+ j += strlen(lcCompose);
+ Xfree(lcCompose);
+ }
+ break;
+ }
+ i++;
+ } else {
+ *j++ = *i++;
+ }
+ }
+ *j = '\0';
+ return ret;
+}
+
+#ifndef MB_LEN_MAX
+#define MB_LEN_MAX 6
+#endif
+
+static int
+get_mb_string (Xim im, char *buf, KeySym ks)
+{
+ XPointer from, to;
+ int from_len, to_len, len;
+ XPointer args[1];
+ XlcCharSet charset;
+ char local_buf[MB_LEN_MAX];
+ unsigned int ucs;
+ ucs = KeySymToUcs4(ks);
+
+ from = (XPointer) &ucs;
+ to = (XPointer) local_buf;
+ from_len = 1;
+ to_len = MB_LEN_MAX;
+ args[0] = (XPointer) &charset;
+ if (_XlcConvert(im->private.local.ucstoc_conv,
+ &from, &from_len, &to, &to_len, args, 1 ) != 0) {
+ return 0;
+ }
+
+ from = (XPointer) local_buf;
+ to = (XPointer) buf;
+ from_len = MB_LEN_MAX - to_len;
+ to_len = MB_LEN_MAX + 1;
+ args[0] = (XPointer) charset;
+ if (_XlcConvert(im->private.local.cstomb_conv,
+ &from, &from_len, &to, &to_len, args, 1 ) != 0) {
+ return 0;
+ }
+ len = MB_LEN_MAX + 1 - to_len;
+ buf[len] = '\0';
+ return len;
+}
+
#define AllMask (ShiftMask | LockMask | ControlMask | Mod1Mask)
#define LOCAL_WC_BUFSIZE 128
+#define LOCAL_UTF8_BUFSIZE 256
#define SEQUENCE_MAX 10
static int
-parseline(fp, top, tokenbuf)
- FILE *fp;
- DefTree **top;
- char* tokenbuf;
+parseline(
+ FILE *fp,
+ Xim im,
+ char* tokenbuf)
{
int token;
unsigned modifier_mask;
unsigned modifier;
unsigned tmp;
KeySym keysym = NoSymbol;
- DefTree *p;
+ DefTree **top = &im->private.local.top;
+ DefTree *p = NULL;
Bool exclam, tilde;
- KeySym rhs_keysym;
+ KeySym rhs_keysym = 0;
char *rhs_string_mb;
int l;
int lastch = 0;
+ char local_mb_buf[MB_LEN_MAX+1];
wchar_t local_wc_buf[LOCAL_WC_BUFSIZE], *rhs_string_wc;
+ char local_utf8_buf[LOCAL_UTF8_BUFSIZE], *rhs_string_utf8;
struct DefBuffer {
unsigned modifier_mask;
@@ -333,7 +453,21 @@ parseline(fp, top, tokenbuf)
n = 0;
do {
- if ((token == KEY) && (strcmp("None", tokenbuf) == 0)) {
+ if ((token == KEY) && (strcmp("include", tokenbuf) == 0)) {
+ char *filename;
+ FILE *infp;
+ token = nexttoken(fp, tokenbuf, &lastch);
+ if (token != KEY && token != STRING)
+ goto error;
+ if ((filename = TransFileName(im, tokenbuf)) == NULL)
+ goto error;
+ infp = _XFopenFile(filename, "r");
+ Xfree(filename);
+ if (infp == NULL)
+ goto error;
+ _XimParseStringFile(infp, im);
+ return (0);
+ } else if ((token == KEY) && (strcmp("None", tokenbuf) == 0)) {
modifier = 0;
modifier_mask = AllMask;
token = nexttoken(fp, tokenbuf, &lastch);
@@ -347,12 +481,11 @@ parseline(fp, top, tokenbuf)
while (token == TILDE || token == KEY) {
tilde = False;
if (token == TILDE) {
- token = nexttoken(fp, tokenbuf, &lastch);
tilde = True;
+ token = nexttoken(fp, tokenbuf, &lastch);
if (token != KEY)
goto error;
}
- token = nexttoken(fp, tokenbuf, &lastch);
tmp = modmask(tokenbuf);
if (!tmp) {
goto error;
@@ -363,6 +496,7 @@ parseline(fp, top, tokenbuf)
} else {
modifier |= tmp;
}
+ token = nexttoken(fp, tokenbuf, &lastch);
}
if (exclam) {
modifier_mask = AllMask;
@@ -424,11 +558,18 @@ parseline(fp, top, tokenbuf)
if (token != ENDOFLINE && token != ENDOFFILE) {
goto error;
}
- if( (rhs_string_mb = Xmalloc(1)) == NULL ) {
- Xfree( rhs_string_mb );
+
+ l = get_mb_string(im, local_mb_buf, rhs_keysym);
+ if (l == 0) {
+ rhs_string_mb = Xmalloc(1);
+ } else {
+ rhs_string_mb = Xmalloc(l + 1);
+ }
+ if( rhs_string_mb == NULL ) {
goto error;
}
- rhs_string_mb[0] = '\0';
+ memcpy(rhs_string_mb, local_mb_buf, l);
+ rhs_string_mb[l] = '\0';
} else {
goto error;
}
@@ -443,6 +584,17 @@ parseline(fp, top, tokenbuf)
}
memcpy((char *)rhs_string_wc, (char *)local_wc_buf, (l + 1) * sizeof(wchar_t) );
+ l = _Xmbstoutf8(local_utf8_buf, rhs_string_mb, LOCAL_UTF8_BUFSIZE - 1);
+ if (l == LOCAL_UTF8_BUFSIZE - 1) {
+ local_wc_buf[l] = '\0';
+ }
+ if( (rhs_string_utf8 = (char *)Xmalloc(l + 1)) == NULL ) {
+ Xfree( rhs_string_wc );
+ Xfree( rhs_string_mb );
+ return( 0 );
+ }
+ memcpy(rhs_string_utf8, local_utf8_buf, l + 1);
+
for (i = 0; i < n; i++) {
for (p = *top; p; p = p->next) {
if (buf[i].keysym == p->keysym &&
@@ -465,6 +617,7 @@ parseline(fp, top, tokenbuf)
p->next = *top;
p->mb = NULL;
p->wc = NULL;
+ p->utf8 = NULL;
p->ks = NoSymbol;
*top = p;
top = &p->succession;
@@ -477,6 +630,9 @@ parseline(fp, top, tokenbuf)
if( p->wc != NULL )
Xfree( p->wc );
p->wc = rhs_string_wc;
+ if( p->utf8 != NULL )
+ Xfree( p->utf8 );
+ p->utf8 = rhs_string_utf8;
p->ks = rhs_keysym;
return(n);
error:
@@ -487,21 +643,21 @@ error:
}
void
-_XimParseStringFile(fp, ptop)
- FILE *fp;
- DefTree **ptop;
+_XimParseStringFile(
+ FILE *fp,
+ Xim im)
{
- char tb[65535];
+ char tb[8192];
char* tbp;
struct stat st;
if (fstat (fileno (fp), &st) != -1) {
unsigned long size = (unsigned long) st.st_size;
- if (size < sizeof tb) tbp = tb;
+ if (size <= sizeof tb) tbp = tb;
else tbp = malloc (size);
if (tbp != NULL) {
- while (parseline(fp, ptop, tbp) >= 0) {}
+ while (parseline(fp, im, tbp) >= 0) {}
if (tbp != tb) free (tbp);
}
}
diff --git a/modules/im/ximcp/imRm.c b/modules/im/ximcp/imRm.c
index 0455b39e..db5851e1 100644
--- a/modules/im/ximcp/imRm.c
+++ b/modules/im/ximcp/imRm.c
@@ -30,6 +30,7 @@ PERFORMANCE OF THIS SOFTWARE.
makoto@sm.sony.co.jp
******************************************************************/
+/* $XFree86: xc/lib/X11/imRm.c,v 3.12 2003/04/13 19:22:21 dawes Exp $ */
#include <stdio.h>
#include <X11/Xlib.h>
@@ -43,19 +44,13 @@ typedef struct _XimValueOffsetInfo {
XrmQuark quark;
unsigned int offset;
Bool (*defaults)(
-#if NeedNestedPrototypes
struct _XimValueOffsetInfo *, XPointer, XPointer, unsigned long
-#endif
);
Bool (*encode)(
-#if NeedNestedPrototypes
struct _XimValueOffsetInfo *, XPointer, XPointer
-#endif
);
Bool (*decode)(
-#if NeedNestedPrototypes
struct _XimValueOffsetInfo *, XPointer, XPointer
-#endif
);
} XimValueOffsetInfoRec, *XimValueOffsetInfo;
@@ -258,18 +253,18 @@ static char *supported_local_ic_values_list[] = {
(char *)NULL
};
-static XIMStyle supported_local_styles[] = {
+static XIMStyle const supported_local_styles[] = {
XIMPreeditNone | XIMStatusNone,
XIMPreeditNothing | XIMStatusNothing,
0 /* dummy */
};
Private Bool
-_XimDefaultStyles(info, top, parm, mode)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer parm; /* unused */
- unsigned long mode; /* unused */
+_XimDefaultStyles(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer parm, /* unused */
+ unsigned long mode) /* unused */
{
XIMStyles *styles;
XIMStyles **out;
@@ -301,11 +296,11 @@ _XimDefaultStyles(info, top, parm, mode)
}
Private Bool
-_XimDefaultIMValues(info, top, parm, mode)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer parm; /* unused */
- unsigned long mode; /* unused */
+_XimDefaultIMValues(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer parm, /* unused */
+ unsigned long mode) /* unused */
{
XIMValuesList *values_list;
XIMValuesList **out;
@@ -338,11 +333,11 @@ _XimDefaultIMValues(info, top, parm, mode)
}
Private Bool
-_XimDefaultICValues(info, top, parm, mode)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer parm; /* unused */
- unsigned long mode; /* unused */
+_XimDefaultICValues(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer parm, /* unused */
+ unsigned long mode) /* unused */
{
XIMValuesList *values_list;
XIMValuesList **out;
@@ -375,11 +370,11 @@ _XimDefaultICValues(info, top, parm, mode)
}
Private Bool
-_XimDefaultVisiblePos(info, top, parm, mode)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer parm; /* unused */
- unsigned long mode; /* unused */
+_XimDefaultVisiblePos(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer parm, /* unused */
+ unsigned long mode) /* unused */
{
Bool *out;
@@ -389,11 +384,11 @@ _XimDefaultVisiblePos(info, top, parm, mode)
}
Private Bool
-_XimDefaultFocusWindow(info, top, parm, mode)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer parm;
- unsigned long mode;
+_XimDefaultFocusWindow(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer parm,
+ unsigned long mode)
{
Xic ic = (Xic)parm;
Window *out;
@@ -408,11 +403,11 @@ _XimDefaultFocusWindow(info, top, parm, mode)
}
Private Bool
-_XimDefaultResName(info, top, parm, mode)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer parm;
- unsigned long mode;
+_XimDefaultResName(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer parm,
+ unsigned long mode)
{
Xic ic = (Xic)parm;
Xim im = (Xim)ic->core.im;
@@ -428,11 +423,11 @@ _XimDefaultResName(info, top, parm, mode)
}
Private Bool
-_XimDefaultResClass(info, top, parm, mode)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer parm;
- unsigned long mode;
+_XimDefaultResClass(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer parm,
+ unsigned long mode)
{
Xic ic = (Xic)parm;
Xim im = (Xim)ic->core.im;
@@ -448,11 +443,11 @@ _XimDefaultResClass(info, top, parm, mode)
}
Private Bool
-_XimDefaultDestroyCB(info, top, parm, mode)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer parm;
- unsigned long mode;
+_XimDefaultDestroyCB(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer parm,
+ unsigned long mode)
{
Xic ic = (Xic)parm;
Xim im = (Xim)ic->core.im;
@@ -464,11 +459,11 @@ _XimDefaultDestroyCB(info, top, parm, mode)
}
Private Bool
-_XimDefaultResetState(info, top, parm, mode)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer parm;
- unsigned long mode;
+_XimDefaultResetState(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer parm,
+ unsigned long mode)
{
XIMResetState *out;
@@ -478,11 +473,11 @@ _XimDefaultResetState(info, top, parm, mode)
}
Private Bool
-_XimDefaultHotKeyState(info, top, parm, mode)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer parm;
- unsigned long mode;
+_XimDefaultHotKeyState(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer parm,
+ unsigned long mode)
{
XIMHotKeyState *out;
@@ -492,11 +487,11 @@ _XimDefaultHotKeyState(info, top, parm, mode)
}
Private Bool
-_XimDefaultArea(info, top, parm, mode)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer parm;
- unsigned long mode;
+_XimDefaultArea(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer parm,
+ unsigned long mode)
{
Xic ic = (Xic)parm;
Xim im = (Xim)ic->core.im;
@@ -528,11 +523,11 @@ _XimDefaultArea(info, top, parm, mode)
}
Private Bool
-_XimDefaultColormap(info, top, parm, mode)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer parm;
- unsigned long mode;
+_XimDefaultColormap(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer parm,
+ unsigned long mode)
{
Xic ic = (Xic)parm;
Xim im = (Xim)ic->core.im;
@@ -553,11 +548,11 @@ _XimDefaultColormap(info, top, parm, mode)
}
Private Bool
-_XimDefaultStdColormap(info, top, parm, mode)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer parm;
- unsigned long mode;
+_XimDefaultStdColormap(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer parm,
+ unsigned long mode)
{
Atom *out;
@@ -567,11 +562,11 @@ _XimDefaultStdColormap(info, top, parm, mode)
}
Private Bool
-_XimDefaultFg(info, top, parm, mode)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer parm;
- unsigned long mode;
+_XimDefaultFg(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer parm,
+ unsigned long mode)
{
Xic ic = (Xic)parm;
Xim im = (Xim)ic->core.im;
@@ -585,11 +580,11 @@ _XimDefaultFg(info, top, parm, mode)
}
Private Bool
-_XimDefaultBg(info, top, parm, mode)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer parm;
- unsigned long mode;
+_XimDefaultBg(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer parm,
+ unsigned long mode)
{
Xic ic = (Xic)parm;
Xim im = (Xim)ic->core.im;
@@ -603,11 +598,11 @@ _XimDefaultBg(info, top, parm, mode)
}
Private Bool
-_XimDefaultBgPixmap(info, top, parm, mode)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer parm;
- unsigned long mode;
+_XimDefaultBgPixmap(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer parm,
+ unsigned long mode)
{
Pixmap *out;
@@ -617,11 +612,11 @@ _XimDefaultBgPixmap(info, top, parm, mode)
}
Private Bool
-_XimDefaultFontSet(info, top, parm, mode)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer parm;
- unsigned long mode;
+_XimDefaultFontSet(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer parm,
+ unsigned long mode)
{
XFontSet *out;
@@ -631,11 +626,11 @@ _XimDefaultFontSet(info, top, parm, mode)
}
Private Bool
-_XimDefaultLineSpace(info, top, parm, mode)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer parm;
- unsigned long mode;
+_XimDefaultLineSpace(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer parm,
+ unsigned long mode)
{
Xic ic = (Xic)parm;
XFontSet fontset;
@@ -660,11 +655,11 @@ _XimDefaultLineSpace(info, top, parm, mode)
}
Private Bool
-_XimDefaultCursor(info, top, parm, mode)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer parm;
- unsigned long mode;
+_XimDefaultCursor(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer parm,
+ unsigned long mode)
{
Cursor *out;
@@ -674,11 +669,11 @@ _XimDefaultCursor(info, top, parm, mode)
}
Private Bool
-_XimDefaultPreeditState(info, top, parm, mode)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer parm;
- unsigned long mode;
+_XimDefaultPreeditState(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer parm,
+ unsigned long mode)
{
XIMPreeditState *out;
@@ -688,20 +683,20 @@ _XimDefaultPreeditState(info, top, parm, mode)
}
Private Bool
-_XimDefaultNest(info, top, parm, mode)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer parm;
- unsigned long mode;
+_XimDefaultNest(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer parm,
+ unsigned long mode)
{
return True;
}
Private Bool
-_XimEncodeCallback(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimEncodeCallback(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
XIMCallback *out;
@@ -711,10 +706,10 @@ _XimEncodeCallback(info, top, val)
}
Private Bool
-_XimEncodeString(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimEncodeString(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
int len;
char *string;
@@ -739,10 +734,10 @@ _XimEncodeString(info, top, val)
}
Private Bool
-_XimEncodeStyle(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimEncodeStyle(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
XIMStyle *out;
@@ -752,10 +747,10 @@ _XimEncodeStyle(info, top, val)
}
Private Bool
-_XimEncodeWindow(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimEncodeWindow(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
Window *out;
@@ -765,10 +760,10 @@ _XimEncodeWindow(info, top, val)
}
Private Bool
-_XimEncodeStringConv(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimEncodeStringConv(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
/*
* Not yet
@@ -777,10 +772,10 @@ _XimEncodeStringConv(info, top, val)
}
Private Bool
-_XimEncodeResetState(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimEncodeResetState(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
XIMResetState *out;
@@ -790,10 +785,10 @@ _XimEncodeResetState(info, top, val)
}
Private Bool
-_XimEncodeHotKey(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimEncodeHotKey(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
XIMHotKeyTriggers *hotkey = (XIMHotKeyTriggers *)val;
XIMHotKeyTriggers **out;
@@ -833,10 +828,10 @@ _XimEncodeHotKey(info, top, val)
}
Private Bool
-_XimEncodeHotKetState(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimEncodeHotKetState(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
XIMHotKeyState *out;
@@ -846,10 +841,10 @@ _XimEncodeHotKetState(info, top, val)
}
Private Bool
-_XimEncodeRectangle(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimEncodeRectangle(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
XRectangle *out;
@@ -859,10 +854,10 @@ _XimEncodeRectangle(info, top, val)
}
Private Bool
-_XimEncodeSpot(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimEncodeSpot(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
XPoint *out;
@@ -872,10 +867,10 @@ _XimEncodeSpot(info, top, val)
}
Private Bool
-_XimEncodeColormap(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimEncodeColormap(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
Colormap *out;
@@ -885,10 +880,10 @@ _XimEncodeColormap(info, top, val)
}
Private Bool
-_XimEncodeStdColormap(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimEncodeStdColormap(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
Atom *out;
@@ -898,10 +893,10 @@ _XimEncodeStdColormap(info, top, val)
}
Private Bool
-_XimEncodeLong(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimEncodeLong(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
unsigned long *out;
@@ -911,10 +906,10 @@ _XimEncodeLong(info, top, val)
}
Private Bool
-_XimEncodeBgPixmap(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimEncodeBgPixmap(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
Pixmap *out;
@@ -924,10 +919,10 @@ _XimEncodeBgPixmap(info, top, val)
}
Private Bool
-_XimEncodeFontSet(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimEncodeFontSet(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
XFontSet *out;
@@ -937,23 +932,23 @@ _XimEncodeFontSet(info, top, val)
}
Private Bool
-_XimEncodeLineSpace(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimEncodeLineSpace(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
int *out;
out = (int *)((char *)top + info->offset);
- *out = (int)val;
+ *out = (long)val;
return True;
}
Private Bool
-_XimEncodeCursor(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimEncodeCursor(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
Cursor *out;
@@ -963,10 +958,10 @@ _XimEncodeCursor(info, top, val)
}
Private Bool
-_XimEncodePreeditState(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimEncodePreeditState(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
XIMPreeditState *out;
@@ -976,19 +971,19 @@ _XimEncodePreeditState(info, top, val)
}
Private Bool
-_XimEncodeNest(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimEncodeNest(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
return True;
}
Private Bool
-_XimDecodeStyles(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimDecodeStyles(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
XIMStyles *styles;
XIMStyles *out;
@@ -1024,10 +1019,10 @@ _XimDecodeStyles(info, top, val)
}
Private Bool
-_XimDecodeValues(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimDecodeValues(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
XIMValuesList *values_list;
XIMValuesList *out;
@@ -1063,10 +1058,10 @@ _XimDecodeValues(info, top, val)
}
Private Bool
-_XimDecodeCallback(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimDecodeCallback(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
XIMCallback *in;
XIMCallback *callback;
@@ -1083,10 +1078,10 @@ _XimDecodeCallback(info, top, val)
}
Private Bool
-_XimDecodeString(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimDecodeString(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
int len = 0;
char *in;
@@ -1108,10 +1103,10 @@ _XimDecodeString(info, top, val)
}
Private Bool
-_XimDecodeBool(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimDecodeBool(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
Bool *in;
@@ -1121,10 +1116,10 @@ _XimDecodeBool(info, top, val)
}
Private Bool
-_XimDecodeStyle(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimDecodeStyle(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
XIMStyle *in;
@@ -1134,10 +1129,10 @@ _XimDecodeStyle(info, top, val)
}
Private Bool
-_XimDecodeWindow(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimDecodeWindow(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
Window *in;
@@ -1147,10 +1142,10 @@ _XimDecodeWindow(info, top, val)
}
Private Bool
-_XimDecodeStringConv(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimDecodeStringConv(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
/*
* Not yet
@@ -1159,10 +1154,10 @@ _XimDecodeStringConv(info, top, val)
}
Private Bool
-_XimDecodeResetState(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimDecodeResetState(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
XIMResetState *in;
@@ -1172,10 +1167,10 @@ _XimDecodeResetState(info, top, val)
}
Private Bool
-_XimDecodeHotKey(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimDecodeHotKey(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
XIMHotKeyTriggers *in;
XIMHotKeyTriggers *hotkey;
@@ -1206,10 +1201,10 @@ _XimDecodeHotKey(info, top, val)
}
Private Bool
-_XimDecodeHotKetState(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimDecodeHotKetState(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
XIMHotKeyState *in;
@@ -1219,10 +1214,10 @@ _XimDecodeHotKetState(info, top, val)
}
Private Bool
-_XimDecodeRectangle(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimDecodeRectangle(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
XRectangle *in;
XRectangle *rect;
@@ -1237,10 +1232,10 @@ _XimDecodeRectangle(info, top, val)
}
Private Bool
-_XimDecodeSpot(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimDecodeSpot(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
XPoint *in;
XPoint *spot;
@@ -1255,10 +1250,10 @@ _XimDecodeSpot(info, top, val)
}
Private Bool
-_XimDecodeColormap(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimDecodeColormap(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
Colormap *in;
@@ -1268,10 +1263,10 @@ _XimDecodeColormap(info, top, val)
}
Private Bool
-_XimDecodeStdColormap(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimDecodeStdColormap(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
Atom *in;
@@ -1281,10 +1276,10 @@ _XimDecodeStdColormap(info, top, val)
}
Private Bool
-_XimDecodeLong(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimDecodeLong(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
unsigned long *in;
@@ -1294,10 +1289,10 @@ _XimDecodeLong(info, top, val)
}
Private Bool
-_XimDecodeBgPixmap(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimDecodeBgPixmap(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
Pixmap *in;
@@ -1307,10 +1302,10 @@ _XimDecodeBgPixmap(info, top, val)
}
Private Bool
-_XimDecodeFontSet(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimDecodeFontSet(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
XFontSet *in;
@@ -1320,10 +1315,10 @@ _XimDecodeFontSet(info, top, val)
}
Private Bool
-_XimDecodeLineSpace(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimDecodeLineSpace(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
int *in;
@@ -1333,10 +1328,10 @@ _XimDecodeLineSpace(info, top, val)
}
Private Bool
-_XimDecodeCursor(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimDecodeCursor(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
Cursor *in;
@@ -1346,10 +1341,10 @@ _XimDecodeCursor(info, top, val)
}
Private Bool
-_XimDecodePreeditState(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimDecodePreeditState(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
XIMPreeditState *in;
@@ -1359,10 +1354,10 @@ _XimDecodePreeditState(info, top, val)
}
Private Bool
-_XimDecodeNest(info, top, val)
- XimValueOffsetInfo info;
- XPointer top;
- XPointer val;
+_XimDecodeNest(
+ XimValueOffsetInfo info,
+ XPointer top,
+ XPointer val)
{
return True;
}
@@ -2047,12 +2042,12 @@ static XimICMode ic_mode[] = {
};
Private Bool
-_XimSetResourceList(res_list, list_num, resource, num_resource, id)
- XIMResourceList *res_list;
- unsigned int *list_num;
- XIMResourceList resource;
- unsigned int num_resource;
- unsigned short id;
+_XimSetResourceList(
+ XIMResourceList *res_list,
+ unsigned int *list_num,
+ XIMResourceList resource,
+ unsigned int num_resource,
+ unsigned short id)
{
register int i;
int len;
@@ -2076,46 +2071,46 @@ _XimSetResourceList(res_list, list_num, resource, num_resource, id)
}
Public Bool
-_XimSetIMResourceList(res_list, list_num)
- XIMResourceList *res_list;
- unsigned int *list_num;
+_XimSetIMResourceList(
+ XIMResourceList *res_list,
+ unsigned int *list_num)
{
return _XimSetResourceList(res_list, list_num,
im_resources, XIMNumber(im_resources), 100);
}
Public Bool
-_XimSetICResourceList(res_list, list_num)
- XIMResourceList *res_list;
- unsigned int *list_num;
+_XimSetICResourceList(
+ XIMResourceList *res_list,
+ unsigned int *list_num)
{
return _XimSetResourceList(res_list, list_num,
ic_resources, XIMNumber(ic_resources), 200);
}
Public Bool
-_XimSetInnerIMResourceList(res_list, list_num)
- XIMResourceList *res_list;
- unsigned int *list_num;
+_XimSetInnerIMResourceList(
+ XIMResourceList *res_list,
+ unsigned int *list_num)
{
return _XimSetResourceList(res_list, list_num,
im_inner_resources, XIMNumber(im_inner_resources), 100);
}
Public Bool
-_XimSetInnerICResourceList(res_list, list_num)
- XIMResourceList *res_list;
- unsigned int *list_num;
+_XimSetInnerICResourceList(
+ XIMResourceList *res_list,
+ unsigned int *list_num)
{
return _XimSetResourceList(res_list, list_num,
ic_inner_resources, XIMNumber(ic_inner_resources), 200);
}
Private XIMResourceList
-_XimGetResourceListRecByMode(res_list, list_num, mode)
- XIMResourceList res_list;
- unsigned int list_num;
- unsigned short mode;
+_XimGetResourceListRecByMode(
+ XIMResourceList res_list,
+ unsigned int list_num,
+ unsigned short mode)
{
register int i;
@@ -2128,9 +2123,9 @@ _XimGetResourceListRecByMode(res_list, list_num, mode)
}
Public Bool
-_XimCheckCreateICValues(res_list, list_num)
- XIMResourceList res_list;
- unsigned int list_num;
+_XimCheckCreateICValues(
+ XIMResourceList res_list,
+ unsigned int list_num)
{
if (!_XimGetResourceListRecByMode(res_list, list_num, XIM_MODE_IC_CREATE)) {
return True;
@@ -2139,10 +2134,10 @@ _XimCheckCreateICValues(res_list, list_num)
}
Public XIMResourceList
-_XimGetResourceListRecByQuark(res_list, list_num, quark)
- XIMResourceList res_list;
- unsigned int list_num;
- XrmQuark quark;
+_XimGetResourceListRecByQuark(
+ XIMResourceList res_list,
+ unsigned int list_num,
+ XrmQuark quark)
{
register int i;
@@ -2155,10 +2150,10 @@ _XimGetResourceListRecByQuark(res_list, list_num, quark)
}
Public XIMResourceList
-_XimGetResourceListRec(res_list, list_num, name)
- XIMResourceList res_list;
- unsigned int list_num;
- char *name;
+_XimGetResourceListRec(
+ XIMResourceList res_list,
+ unsigned int list_num,
+ char *name)
{
XrmQuark quark = XrmStringToQuark(name);
@@ -2166,12 +2161,12 @@ _XimGetResourceListRec(res_list, list_num, name)
}
Public char *
-_XimSetIMValueData(im, top, values, res_list, list_num)
- Xim im;
- XPointer top;
- XIMArg *values;
- XIMResourceList res_list;
- unsigned int list_num;
+_XimSetIMValueData(
+ Xim im,
+ XPointer top,
+ XIMArg *values,
+ XIMResourceList res_list,
+ unsigned int list_num)
{
register XIMArg *p;
XIMResourceList res;
@@ -2196,12 +2191,12 @@ _XimSetIMValueData(im, top, values, res_list, list_num)
}
Public char *
-_XimGetIMValueData(im, top, values, res_list, list_num)
- Xim im;
- XPointer top;
- XIMArg *values;
- XIMResourceList res_list;
- unsigned int list_num;
+_XimGetIMValueData(
+ Xim im,
+ XPointer top,
+ XIMArg *values,
+ XIMResourceList res_list,
+ unsigned int list_num)
{
register XIMArg *p;
XIMResourceList res;
@@ -2226,9 +2221,9 @@ _XimGetIMValueData(im, top, values, res_list, list_num)
}
Public void
-_XimSetIMMode(res_list, list_num)
- XIMResourceList res_list;
- unsigned int list_num;
+_XimSetIMMode(
+ XIMResourceList res_list,
+ unsigned int list_num)
{
XIMResourceList res;
unsigned int n = XIMNumber(im_mode);
@@ -2245,8 +2240,8 @@ _XimSetIMMode(res_list, list_num)
}
Private int
-_XimCheckSetIMDefaultsMode(res)
- XIMResourceList res;
+_XimCheckSetIMDefaultsMode(
+ XIMResourceList res)
{
if(res->mode & XIM_MODE_IM_DEFAULT) {
return XIM_CHECK_VALID;
@@ -2255,8 +2250,8 @@ _XimCheckSetIMDefaultsMode(res)
}
Private int
-_XimCheckSetIMValuesMode(res)
- XIMResourceList res;
+_XimCheckSetIMValuesMode(
+ XIMResourceList res)
{
if(res->mode & XIM_MODE_IM_SET) {
return XIM_CHECK_VALID;
@@ -2265,8 +2260,8 @@ _XimCheckSetIMValuesMode(res)
}
Private int
- _XimCheckGetIMValuesMode(res)
- XIMResourceList res;
+ _XimCheckGetIMValuesMode(
+ XIMResourceList res)
{
if(res->mode & XIM_MODE_IM_GET) {
return XIM_CHECK_VALID;
@@ -2275,9 +2270,9 @@ Private int
}
Public int
- _XimCheckIMMode(res, mode)
- XIMResourceList res;
- unsigned long mode;
+ _XimCheckIMMode(
+ XIMResourceList res,
+ unsigned long mode)
{
if(res->mode == 0) {
return XIM_CHECK_INVALID;
@@ -2339,9 +2334,9 @@ _XimSetICMode(res_list, list_num, style)
}
Private int
-_XimCheckSetICDefaultsMode(res, mode)
- XIMResourceList res;
- unsigned long mode;
+_XimCheckSetICDefaultsMode(
+ XIMResourceList res,
+ unsigned long mode)
{
if(mode & XIM_PREEDIT_ATTR) {
if(!(res->mode & XIM_MODE_PRE_MASK)) {
@@ -2382,9 +2377,9 @@ _XimCheckSetICDefaultsMode(res, mode)
}
Private int
-_XimCheckCreateICMode(res, mode)
- XIMResourceList res;
- unsigned long mode;
+_XimCheckCreateICMode(
+ XIMResourceList res,
+ unsigned long mode)
{
if(mode & XIM_PREEDIT_ATTR) {
if(!(res->mode & XIM_MODE_PRE_MASK)) {
@@ -2435,9 +2430,9 @@ _XimCheckCreateICMode(res, mode)
}
Private int
-_XimCheckSetICValuesMode(res, mode)
- XIMResourceList res;
- unsigned long mode;
+_XimCheckSetICValuesMode(
+ XIMResourceList res,
+ unsigned long mode)
{
if(mode & XIM_PREEDIT_ATTR) {
if(!(res->mode & XIM_MODE_PRE_MASK)) {
@@ -2476,9 +2471,9 @@ _XimCheckSetICValuesMode(res, mode)
}
Private int
-_XimCheckGetICValuesMode(res, mode)
- XIMResourceList res;
- unsigned long mode;
+_XimCheckGetICValuesMode(
+ XIMResourceList res,
+ unsigned long mode)
{
if(mode & XIM_PREEDIT_ATTR) {
if(!(res->mode & XIM_MODE_PRE_MASK)) {
@@ -2511,9 +2506,9 @@ _XimCheckGetICValuesMode(res, mode)
}
Public int
- _XimCheckICMode(res, mode)
- XIMResourceList res;
- unsigned long mode;
+ _XimCheckICMode(
+ XIMResourceList res,
+ unsigned long mode)
{
if(mode &XIM_SETICDEFAULTS) {
return _XimCheckSetICDefaultsMode(res, mode);
@@ -2529,11 +2524,11 @@ Public int
}
Public Bool
-_XimSetLocalIMDefaults(im, top, res_list, list_num)
- Xim im;
- XPointer top;
- XIMResourceList res_list;
- unsigned int list_num;
+_XimSetLocalIMDefaults(
+ Xim im,
+ XPointer top,
+ XIMResourceList res_list,
+ unsigned int list_num)
{
XimValueOffsetInfo info;
unsigned int num;
@@ -2568,12 +2563,12 @@ _XimSetLocalIMDefaults(im, top, res_list, list_num)
}
Public Bool
-_XimSetICDefaults(ic, top, mode, res_list, list_num)
- Xic ic;
- XPointer top;
- unsigned long mode;
- XIMResourceList res_list;
- unsigned int list_num;
+_XimSetICDefaults(
+ Xic ic,
+ XPointer top,
+ unsigned long mode,
+ XIMResourceList res_list,
+ unsigned int list_num)
{
unsigned int num;
XimValueOffsetInfo info;
@@ -2633,12 +2628,12 @@ _XimSetICDefaults(ic, top, mode, res_list, list_num)
}
Private Bool
-_XimEncodeAttr(info, num, res, top, val)
- XimValueOffsetInfo info;
- unsigned int num;
- XIMResourceList res;
- XPointer top;
- XPointer val;
+_XimEncodeAttr(
+ XimValueOffsetInfo info,
+ unsigned int num,
+ XIMResourceList res,
+ XPointer top,
+ XPointer val)
{
register int i;
@@ -2654,22 +2649,22 @@ _XimEncodeAttr(info, num, res, top, val)
}
Public Bool
-_XimEncodeLocalIMAttr(res, top, val)
- XIMResourceList res;
- XPointer top;
- XPointer val;
+_XimEncodeLocalIMAttr(
+ XIMResourceList res,
+ XPointer top,
+ XPointer val)
{
return _XimEncodeAttr(im_attr_info, XIMNumber(im_attr_info),
res, top, val);
}
Public Bool
-_XimEncodeLocalICAttr(ic, res, top, arg, mode)
- Xic ic;
- XIMResourceList res;
- XPointer top;
- XIMArg *arg;
- unsigned long mode;
+_XimEncodeLocalICAttr(
+ Xic ic,
+ XIMResourceList res,
+ XPointer top,
+ XIMArg *arg,
+ unsigned long mode)
{
unsigned int num;
XimValueOffsetInfo info;
@@ -2689,11 +2684,11 @@ _XimEncodeLocalICAttr(ic, res, top, arg, mode)
}
Private Bool
-_XimEncodeLocalTopValue(ic, res, val, flag)
- Xic ic;
- XIMResourceList res;
- XPointer val;
- Bool flag;
+_XimEncodeLocalTopValue(
+ Xic ic,
+ XIMResourceList res,
+ XPointer val,
+ Bool flag)
{
XIMArg *p = (XIMArg *)val;
@@ -2725,10 +2720,10 @@ _XimEncodeLocalTopValue(ic, res, val, flag)
}
Private Bool
-_XimEncodeLocalPreeditValue(ic, res, val)
- Xic ic;
- XIMResourceList res;
- XPointer val;
+_XimEncodeLocalPreeditValue(
+ Xic ic,
+ XIMResourceList res,
+ XPointer val)
{
XIMArg *p = (XIMArg *)val;
@@ -2745,10 +2740,10 @@ _XimEncodeLocalPreeditValue(ic, res, val)
}
Private Bool
-_XimEncodeLocalStatusValue(ic, res, val)
- Xic ic;
- XIMResourceList res;
- XPointer val;
+_XimEncodeLocalStatusValue(
+ Xic ic,
+ XIMResourceList res,
+ XPointer val)
{
XIMArg *p = (XIMArg *)val;
@@ -2765,14 +2760,14 @@ _XimEncodeLocalStatusValue(ic, res, val)
}
Public char *
-_XimSetICValueData(ic, top, res_list, list_num, values, mode, flag)
- Xic ic;
- XPointer top;
- XIMResourceList res_list;
- unsigned int list_num;
- XIMArg *values;
- unsigned long mode;
- Bool flag;
+_XimSetICValueData(
+ Xic ic,
+ XPointer top,
+ XIMResourceList res_list,
+ unsigned int list_num,
+ XIMArg *values,
+ unsigned long mode,
+ Bool flag)
{
register XIMArg *p;
XIMResourceList res;
@@ -2830,9 +2825,9 @@ _XimSetICValueData(ic, top, res_list, list_num, values, mode, flag)
}
Private Bool
-_XimCheckInputStyle(styles, style)
- XIMStyles *styles;
- XIMStyle style;
+_XimCheckInputStyle(
+ XIMStyles *styles,
+ XIMStyle style)
{
int num = styles->count_styles;
register int i;
@@ -2846,13 +2841,13 @@ _XimCheckInputStyle(styles, style)
}
Public Bool
-_XimCheckLocalInputStyle(ic, top, values, styles, res_list, list_num)
- Xic ic;
- XPointer top;
- XIMArg *values;
- XIMStyles *styles;
- XIMResourceList res_list;
- unsigned int list_num;
+_XimCheckLocalInputStyle(
+ Xic ic,
+ XPointer top,
+ XIMArg *values,
+ XIMStyles *styles,
+ XIMResourceList res_list,
+ unsigned int list_num)
{
XrmQuark quark = XrmStringToQuark(XNInputStyle);
register XIMArg *p;
@@ -2877,12 +2872,12 @@ _XimCheckLocalInputStyle(ic, top, values, styles, res_list, list_num)
}
Private Bool
-_XimDecodeAttr(info, num, res, top, val)
- XimValueOffsetInfo info;
- unsigned int num;
- XIMResourceList res;
- XPointer top;
- XPointer val;
+_XimDecodeAttr(
+ XimValueOffsetInfo info,
+ unsigned int num,
+ XIMResourceList res,
+ XPointer top,
+ XPointer val)
{
register int i;
@@ -2898,21 +2893,21 @@ _XimDecodeAttr(info, num, res, top, val)
}
Public Bool
-_XimDecodeLocalIMAttr(res, top, val)
- XIMResourceList res;
- XPointer top;
- XPointer val;
+_XimDecodeLocalIMAttr(
+ XIMResourceList res,
+ XPointer top,
+ XPointer val)
{
return _XimDecodeAttr(im_attr_info, XIMNumber(im_attr_info),
res, top, val);
}
Public Bool
-_XimDecodeLocalICAttr(res, top, val, mode)
- XIMResourceList res;
- XPointer top;
- XPointer val;
- unsigned long mode;
+_XimDecodeLocalICAttr(
+ XIMResourceList res,
+ XPointer top,
+ XPointer val,
+ unsigned long mode)
{
unsigned int num;
XimValueOffsetInfo info;
@@ -3041,9 +3036,9 @@ _XimGetCurrentICValues(ic, ic_values)
}
Public void
-_XimSetCurrentICValues(ic, ic_values)
- Xic ic;
- XimDefICValues *ic_values;
+_XimSetCurrentICValues(
+ Xic ic,
+ XimDefICValues *ic_values)
{
ic->core.input_style = ic_values->input_style;
ic->core.client_window = ic_values->client_window;
@@ -3065,7 +3060,7 @@ _XimSetCurrentICValues(ic, ic_values)
}
Private void
-_XimInitialIMOffsetInfo()
+_XimInitialIMOffsetInfo(void)
{
unsigned int n = XIMNumber(im_attr_info);
register int i;
@@ -3076,7 +3071,7 @@ _XimInitialIMOffsetInfo()
}
Private void
-_XimInitialICOffsetInfo()
+_XimInitialICOffsetInfo(void)
{
unsigned int n;
register int i;
@@ -3098,7 +3093,7 @@ _XimInitialICOffsetInfo()
}
Private void
-_XimInitialIMMode()
+_XimInitialIMMode(void)
{
unsigned int n = XIMNumber(im_mode);
register int i;
@@ -3109,7 +3104,7 @@ _XimInitialIMMode()
}
Private void
-_XimInitialICMode()
+_XimInitialICMode(void)
{
unsigned int n = XIMNumber(ic_mode);
register int i;
@@ -3120,7 +3115,7 @@ _XimInitialICMode()
}
Public void
-_XimInitialResourceInfo()
+_XimInitialResourceInfo(void)
{
static Bool init_flag = False;
diff --git a/modules/im/ximcp/imRmAttr.c b/modules/im/ximcp/imRmAttr.c
index bcf3a1b7..4f18bee4 100644
--- a/modules/im/ximcp/imRmAttr.c
+++ b/modules/im/ximcp/imRmAttr.c
@@ -26,24 +26,26 @@ PERFORMANCE OF THIS SOFTWARE.
fujiwara@a80.tech.yk.fujitsu.co.jp
******************************************************************/
+/* $XFree86: xc/lib/X11/imRmAttr.c,v 1.7 2003/04/13 19:22:21 dawes Exp $ */
#include "Xlibint.h"
#include "Xlcint.h"
#include "Ximint.h"
+
Private XIMResourceList
-_XimGetNestedListSeparator(res_list, res_num)
- XIMResourceList res_list; /* LISTofIMATTR or IMATTR */
- unsigned int res_num;
+_XimGetNestedListSeparator(
+ XIMResourceList res_list, /* LISTofIMATTR or IMATTR */
+ unsigned int res_num)
{
return _XimGetResourceListRec(res_list, res_num, XNSeparatorofNestedList);
}
Private Bool
-_XimCheckInnerIMAttributes(im, arg, mode)
- Xim im;
- XIMArg *arg;
- unsigned long mode;
+_XimCheckInnerIMAttributes(
+ Xim im,
+ XIMArg *arg,
+ unsigned long mode)
{
XIMResourceList res;
int check;
@@ -62,14 +64,14 @@ _XimCheckInnerIMAttributes(im, arg, mode)
}
Public char *
-_XimMakeIMAttrIDList(im, res_list, res_num, arg, buf, len, mode)
- Xim im;
- XIMResourceList res_list;
- unsigned int res_num;
- XIMArg *arg;
- CARD16 *buf;
- INT16 *len;
- unsigned long mode;
+_XimMakeIMAttrIDList(
+ Xim im,
+ XIMResourceList res_list,
+ unsigned int res_num,
+ XIMArg *arg,
+ CARD16 *buf,
+ INT16 *len,
+ unsigned long mode)
{
register XIMArg *p;
XIMResourceList res;
@@ -100,10 +102,10 @@ _XimMakeIMAttrIDList(im, res_list, res_num, arg, buf, len, mode)
}
Private Bool
-_XimCheckInnerICAttributes(ic, arg, mode)
- Xic ic;
- XIMArg *arg;
- unsigned long mode;
+_XimCheckInnerICAttributes(
+ Xic ic,
+ XIMArg *arg,
+ unsigned long mode)
{
XIMResourceList res;
int check;
@@ -122,14 +124,14 @@ _XimCheckInnerICAttributes(ic, arg, mode)
}
Public char *
-_XimMakeICAttrIDList(ic, res_list, res_num, arg, buf, len, mode)
- Xic ic;
- XIMResourceList res_list;
- unsigned int res_num;
- XIMArg *arg;
- CARD16 *buf;
- INT16 *len;
- unsigned long mode;
+_XimMakeICAttrIDList(
+ Xic ic,
+ XIMResourceList res_list,
+ unsigned int res_num,
+ XIMArg *arg,
+ CARD16 *buf,
+ INT16 *len,
+ unsigned long mode)
{
register XIMArg *p;
XIMResourceList res;
@@ -204,13 +206,13 @@ _XimMakeICAttrIDList(ic, res_list, res_num, arg, buf, len, mode)
}
Private Bool
-_XimAttributeToValue(ic, res, data, data_len, value, mode)
- Xic ic;
- XIMResourceList res;
- CARD16 *data;
- INT16 data_len;
- XPointer value;
- BITMASK32 mode;
+_XimAttributeToValue(
+ Xic ic,
+ XIMResourceList res,
+ CARD16 *data,
+ INT16 data_len,
+ XPointer value,
+ BITMASK32 mode)
{
switch (res->resource_size) {
case XimType_SeparatorOfNestedList:
@@ -393,9 +395,9 @@ _XimAttributeToValue(ic, res, data, data_len, value, mode)
}
Private Bool
-_XimDecodeInnerIMATTRIBUTE(im, arg)
- Xim im;
- XIMArg *arg;
+_XimDecodeInnerIMATTRIBUTE(
+ Xim im,
+ XIMArg *arg)
{
XIMResourceList res;
XimDefIMValues im_values;
@@ -409,7 +411,6 @@ _XimDecodeInnerIMATTRIBUTE(im, arg)
}
Public char *
-#if NeedFunctionPrototypes
_XimDecodeIMATTRIBUTE(
Xim im,
XIMResourceList res_list,
@@ -418,16 +419,6 @@ _XimDecodeIMATTRIBUTE(
INT16 data_len,
XIMArg *arg,
BITMASK32 mode)
-#else
-_XimDecodeIMATTRIBUTE(im, res_list, res_num, data, data_len, arg, mode)
- Xim im;
- XIMResourceList res_list;
- unsigned int res_num;
- CARD16 *data;
- INT16 data_len;
- XIMArg *arg;
- BITMASK32 mode;
-#endif /* NeedFunctionPrototypes */
{
register XIMArg *p;
XIMResourceList res;
@@ -473,10 +464,10 @@ _XimDecodeIMATTRIBUTE(im, res_list, res_num, data, data_len, arg, mode)
}
Private Bool
-_XimDecodeInnerICATTRIBUTE(ic, arg, mode)
- Xic ic;
- XIMArg *arg;
- unsigned long mode;
+_XimDecodeInnerICATTRIBUTE(
+ Xic ic,
+ XIMArg *arg,
+ unsigned long mode)
{
XIMResourceList res;
XimDefICValues ic_values;
@@ -493,7 +484,6 @@ _XimDecodeInnerICATTRIBUTE(ic, arg, mode)
}
Public char *
-#if NeedFunctionPrototypes
_XimDecodeICATTRIBUTE(
Xic ic,
XIMResourceList res_list,
@@ -502,16 +492,6 @@ _XimDecodeICATTRIBUTE(
INT16 data_len,
XIMArg *arg,
BITMASK32 mode)
-#else
-_XimDecodeICATTRIBUTE(ic, res_list, res_num, data, data_len, arg, mode)
- Xic ic;
- XIMResourceList res_list;
- unsigned int res_num;
- CARD16 *data;
- INT16 data_len;
- XIMArg *arg;
- BITMASK32 mode;
-#endif /* NeedFunctionPrototypes */
{
register XIMArg *p;
XIMResourceList res;
@@ -580,14 +560,14 @@ _XimDecodeICATTRIBUTE(ic, res_list, res_num, data, data_len, arg, mode)
}
Private Bool
-_XimValueToAttribute(res, buf, buf_size, value, len, mode, param)
- XIMResourceList res;
- XPointer buf;
- int buf_size;
- XPointer value;
- int *len;
- unsigned long mode;
- XPointer param;
+_XimValueToAttribute(
+ XIMResourceList res,
+ XPointer buf,
+ int buf_size,
+ XPointer value,
+ int *len,
+ unsigned long mode,
+ XPointer param)
{
int ret_len;
@@ -628,7 +608,7 @@ _XimValueToAttribute(res, buf, buf_size, value, len, mode, param)
return False;
}
- *((CARD32 *)buf) = (CARD32)value;
+ *((CARD32 *)buf) = (CARD32)(long)value;
*len = ret_len;
break;
@@ -703,7 +683,7 @@ _XimValueToAttribute(res, buf, buf_size, value, len, mode, param)
XFontSet font = (XFontSet)value;
Xic ic = (Xic)param;
char *base_name = NULL;
- int length;
+ int length = 0;
CARD16 *buf_s = (CARD16 *)buf;
if (!font) {
@@ -788,11 +768,11 @@ _XimValueToAttribute(res, buf, buf_size, value, len, mode, param)
}
Private Bool
-_XimSetInnerIMAttributes(im, top, arg, mode)
- Xim im;
- XPointer top;
- XIMArg *arg;
- unsigned long mode;
+_XimSetInnerIMAttributes(
+ Xim im,
+ XPointer top,
+ XIMArg *arg,
+ unsigned long mode)
{
XIMResourceList res;
int check;
@@ -811,17 +791,17 @@ _XimSetInnerIMAttributes(im, top, arg, mode)
}
Public char *
-_XimEncodeIMATTRIBUTE(im, res_list, res_num, arg, arg_ret, buf, size, ret_len, top, mode)
- Xim im;
- XIMResourceList res_list;
- unsigned int res_num;
- XIMArg *arg;
- XIMArg **arg_ret;
- char *buf;
- int size;
- int *ret_len;
- XPointer top;
- unsigned long mode;
+_XimEncodeIMATTRIBUTE(
+ Xim im,
+ XIMResourceList res_list,
+ unsigned int res_num,
+ XIMArg *arg,
+ XIMArg **arg_ret,
+ char *buf,
+ int size,
+ int *ret_len,
+ XPointer top,
+ unsigned long mode)
{
register XIMArg *p;
XIMResourceList res;
@@ -875,16 +855,16 @@ _XimEncodeIMATTRIBUTE(im, res_list, res_num, arg, arg_ret, buf, size, ret_len,
#ifdef XIM_CONNECTABLE
Public Bool
-_XimEncodeSavedIMATTRIBUTE(im, res_list, res_num, idx, buf, size, ret_len, top, mode)
- Xim im;
- XIMResourceList res_list;
- unsigned int res_num;
- int *idx;
- char *buf;
- int size;
- int *ret_len;
- XPointer top;
- unsigned long mode;
+_XimEncodeSavedIMATTRIBUTE(
+ Xim im,
+ XIMResourceList res_list,
+ unsigned int res_num,
+ int *idx,
+ char *buf,
+ int size,
+ int *ret_len,
+ XPointer top,
+ unsigned long mode)
{
register int i;
int num = im->private.proto.num_saved_imvalues;
@@ -938,10 +918,10 @@ _XimEncodeSavedIMATTRIBUTE(im, res_list, res_num, idx, buf, size, ret_len, top,
#endif /* XIM_CONNECTABLE */
Private Bool
-_XimEncodeTopValue(ic, res, p)
- Xic ic;
- XIMResourceList res;
- XIMArg *p;
+_XimEncodeTopValue(
+ Xic ic,
+ XIMResourceList res,
+ XIMArg *p)
{
if (res->xrm_name == XrmStringToQuark(XNClientWindow)) {
ic->core.client_window = (Window)p->value;
@@ -961,10 +941,10 @@ _XimEncodeTopValue(ic, res, p)
}
Private Bool
-_XimEncodePreeditValue(ic, res, p)
- Xic ic;
- XIMResourceList res;
- XIMArg *p;
+_XimEncodePreeditValue(
+ Xic ic,
+ XIMResourceList res,
+ XIMArg *p)
{
if (res->xrm_name == XrmStringToQuark(XNStdColormap)) {
XStandardColormap *colormap_ret;
@@ -1012,10 +992,10 @@ _XimEncodePreeditValue(ic, res, p)
}
Private Bool
-_XimEncodeStatusValue(ic, res, p)
- Xic ic;
- XIMResourceList res;
- XIMArg *p;
+_XimEncodeStatusValue(
+ Xic ic,
+ XIMResourceList res,
+ XIMArg *p)
{
if (res->xrm_name == XrmStringToQuark(XNStdColormap)) {
XStandardColormap *colormap_ret;
@@ -1063,11 +1043,11 @@ _XimEncodeStatusValue(ic, res, p)
}
Private Bool
-_XimSetInnerICAttributes(ic, top, arg, mode)
- Xic ic;
- XPointer top;
- XIMArg *arg;
- unsigned long mode;
+_XimSetInnerICAttributes(
+ Xic ic,
+ XPointer top,
+ XIMArg *arg,
+ unsigned long mode)
{
XIMResourceList res;
int check;
@@ -1086,18 +1066,18 @@ _XimSetInnerICAttributes(ic, top, arg, mode)
}
Public char *
-_XimEncodeICATTRIBUTE(ic, res_list, res_num, arg, arg_ret, buf, size, ret_len, top, flag, mode)
- Xic ic;
- XIMResourceList res_list;
- unsigned int res_num;
- XIMArg *arg;
- XIMArg **arg_ret;
- char *buf;
- int size;
- int *ret_len;
- XPointer top;
- BITMASK32 *flag;
- unsigned long mode;
+_XimEncodeICATTRIBUTE(
+ Xic ic,
+ XIMResourceList res_list,
+ unsigned int res_num,
+ XIMArg *arg,
+ XIMArg **arg_ret,
+ char *buf,
+ int size,
+ int *ret_len,
+ XPointer top,
+ BITMASK32 *flag,
+ unsigned long mode)
{
register XIMArg *p;
XIMResourceList res;
@@ -1198,10 +1178,10 @@ _XimEncodeICATTRIBUTE(ic, res_list, res_num, arg, arg_ret, buf, size, ret_len, t
#ifdef XIM_CONNECTABLE
Private Bool
-_XimEncodeSavedPreeditValue(ic, res, value)
- Xic ic;
- XIMResourceList res;
- XPointer value;
+_XimEncodeSavedPreeditValue(
+ Xic ic,
+ XIMResourceList res,
+ XPointer value)
{
int list_ret;
XFontStruct **struct_list;
@@ -1240,10 +1220,10 @@ _XimEncodeSavedPreeditValue(ic, res, value)
}
Private Bool
-_XimEncodeSavedStatusValue(ic, res, value)
- Xic ic;
- XIMResourceList res;
- XPointer value;
+_XimEncodeSavedStatusValue(
+ Xic ic,
+ XIMResourceList res,
+ XPointer value)
{
int list_ret;
XFontStruct **struct_list;
@@ -1282,16 +1262,16 @@ _XimEncodeSavedStatusValue(ic, res, value)
}
Public Bool
-_XimEncodeSavedICATTRIBUTE(ic, res_list, res_num, idx, buf, size, ret_len, top, mode)
- Xic ic;
- XIMResourceList res_list;
- unsigned int res_num;
- int *idx;
- char *buf;
- int size;
- int *ret_len;
- XPointer top;
- unsigned long mode;
+_XimEncodeSavedICATTRIBUTE(
+ Xic ic,
+ XIMResourceList res_list,
+ unsigned int res_num,
+ int *idx,
+ char *buf,
+ int size,
+ int *ret_len,
+ XPointer top,
+ unsigned long mode)
{
int i;
int num = ic->private.proto.num_saved_icvalues;
@@ -1393,10 +1373,10 @@ _XimEncodeSavedICATTRIBUTE(ic, res_list, res_num, idx, buf, size, ret_len, top,
#endif /* XIM_CONNECTABLE */
Private unsigned int
-_XimCountNumberOfAttr(total, attr, names_len)
- INT16 total;
- CARD16 *attr;
- int *names_len;
+_XimCountNumberOfAttr(
+ INT16 total,
+ CARD16 *attr,
+ int *names_len)
{
unsigned int n;
INT16 len;
@@ -1418,9 +1398,9 @@ _XimCountNumberOfAttr(total, attr, names_len)
}
Public Bool
-_XimGetAttributeID(im, buf)
- Xim im;
- CARD16 *buf;
+_XimGetAttributeID(
+ Xim im,
+ CARD16 *buf)
{
unsigned int n;
XIMResourceList res;
diff --git a/modules/im/ximcp/imThaiFlt.c b/modules/im/ximcp/imThaiFlt.c
index fb609ef3..ae546175 100644
--- a/modules/im/ximcp/imThaiFlt.c
+++ b/modules/im/ximcp/imThaiFlt.c
@@ -45,6 +45,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.
******************************************************************/
+/* $XFree86: xc/lib/X11/imThaiFlt.c,v 3.22tsi Exp $ */
/*
**++
@@ -72,13 +73,15 @@ SOFTWARE.
#include "Xlcint.h"
#include "Ximint.h"
#include "XimThai.h"
+#include "XlcPubI.h"
+
#define SPACE 32
/* character classification table */
#define TACTIS_CHARS 256
Private
-char tactis_chtype[TACTIS_CHARS] = {
+char const tactis_chtype[TACTIS_CHARS] = {
CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, /* 0 - 7 */
CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, /* 8 - 15 */
CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, CTRL, /* 16 - 23 */
@@ -124,7 +127,7 @@ char tactis_chtype[TACTIS_CHARS] = {
#define CH_CLASSES 17 /* 17 classes of chars */
Private
-char write_rules_lookup[CH_CLASSES][CH_CLASSES] = {
+char const write_rules_lookup[CH_CLASSES][CH_CLASSES] = {
/* Table 0: writing/outputing rules */
/* row: leading char, column: following char */
/* CTRL NON CONS LV FV1 FV2 FV3 BV1 BV2 BD TONE AD1 AD2 AD3 AV1 AV2 AV3 */
@@ -148,7 +151,7 @@ char write_rules_lookup[CH_CLASSES][CH_CLASSES] = {
};
Private
-char wtt_isc1_lookup[CH_CLASSES][CH_CLASSES] = {
+char const wtt_isc1_lookup[CH_CLASSES][CH_CLASSES] = {
/* Table 1: WTT default input sequence check rules */
/* row: leading char, column: following char */
/* CTRL NON CONS LV FV1 FV2 FV3 BV1 BV2 BD TONE AD1 AD2 AD3 AV1 AV2 AV3 */
@@ -172,7 +175,7 @@ char wtt_isc1_lookup[CH_CLASSES][CH_CLASSES] = {
};
Private
-char wtt_isc2_lookup[CH_CLASSES][CH_CLASSES] = {
+char const wtt_isc2_lookup[CH_CLASSES][CH_CLASSES] = {
/* Table 2: WTT strict input sequence check rules */
/* row: leading char, column: following char */
/* CTRL NON CONS LV FV1 FV2 FV3 BV1 BV2 BD TONE AD1 AD2 AD3 AV1 AV2 AV3 */
@@ -196,7 +199,7 @@ char wtt_isc2_lookup[CH_CLASSES][CH_CLASSES] = {
};
Private
-char thaicat_isc_lookup[CH_CLASSES][CH_CLASSES] = {
+char const thaicat_isc_lookup[CH_CLASSES][CH_CLASSES] = {
/* Table 3: Thaicat input sequence check rules */
/* row: leading char, column: following char */
/* CTRL NON CONS LV FV1 FV2 FV3 BV1 BV2 BD TONE AD1 AD2 AD3 AV1 AV2 AV3 */
@@ -222,25 +225,15 @@ char thaicat_isc_lookup[CH_CLASSES][CH_CLASSES] = {
/* returns classification of a char */
Private int
-#if NeedFunctionPrototypes
THAI_chtype (unsigned char ch)
-#else
-THAI_chtype (ch)
- unsigned char ch;
-#endif
{
return tactis_chtype[ch];
}
-
+#ifdef UNUSED
/* returns the display level */
Private int
-#if NeedFunctionPrototypes
THAI_chlevel (unsigned char ch)
-#else
-THAI_chlevel (ch)
- unsigned char ch;
-#endif
{
int chlevel;
@@ -281,12 +274,7 @@ THAI_chlevel (ch)
/* return True if char is non-spacing */
Private Bool
-#if NeedFunctionPrototypes
THAI_isdead (unsigned char ch)
-#else
-THAI_isdead (ch)
- unsigned char ch;
-#endif
{
return ((tactis_chtype[ch] == CTRL) || (tactis_chtype[ch] == BV1) ||
(tactis_chtype[ch] == BV2) || (tactis_chtype[ch] == BD) ||
@@ -299,12 +287,7 @@ THAI_isdead (ch)
/* return True if char is consonant */
Private Bool
-#if NeedFunctionPrototypes
THAI_iscons (unsigned char ch)
-#else
-THAI_iscons (ch)
- unsigned char ch;
-#endif
{
return (tactis_chtype[ch] == CONS);
}
@@ -312,12 +295,7 @@ THAI_iscons (ch)
/* return True if char is vowel */
Private Bool
-#if NeedFunctionPrototypes
THAI_isvowel (unsigned char ch)
-#else
-THAI_isvowel (ch)
- unsigned char ch;
-#endif
{
return ((tactis_chtype[ch] == LV) || (tactis_chtype[ch] == FV1) ||
(tactis_chtype[ch] == FV2) || (tactis_chtype[ch] == FV3) ||
@@ -329,27 +307,16 @@ THAI_isvowel (ch)
/* return True if char is tonemark */
Private Bool
-#if NeedFunctionPrototypes
THAI_istone (unsigned char ch)
-#else
-THAI_istone (ch)
- unsigned char ch;
-#endif
{
return (tactis_chtype[ch] == TONE);
}
-
+#endif
Private Bool
-#if NeedFunctionPrototypes
THAI_iscomposible (
unsigned char follow_ch,
unsigned char lead_ch)
-#else
-THAI_iscomposible (follow_ch, lead_ch)
- unsigned char follow_ch;
- unsigned char lead_ch;
-#endif
{/* "Can follow_ch be put in the same display cell as lead_ch?" */
return (write_rules_lookup[THAI_chtype(lead_ch)][THAI_chtype(follow_ch)]
@@ -357,17 +324,10 @@ THAI_iscomposible (follow_ch, lead_ch)
}
Private Bool
-#if NeedFunctionPrototypes
THAI_isaccepted (
unsigned char follow_ch,
unsigned char lead_ch,
unsigned char mode)
-#else
-THAI_isaccepted (follow_ch, lead_ch, mode)
- unsigned char follow_ch;
- unsigned char lead_ch;
- unsigned char mode;
-#endif
{
Bool iskeyvalid; /* means "Can follow_ch be keyed in after lead_ch?" */
@@ -393,20 +353,13 @@ THAI_isaccepted (follow_ch, lead_ch, mode)
return iskeyvalid;
}
+#ifdef UNUSED
Private void
-#if NeedFunctionPrototypes
THAI_apply_write_rules(
unsigned char *instr,
unsigned char *outstr,
unsigned char insert_ch,
int *num_insert_ch)
-#else
-THAI_apply_write_rules(instr, outstr, insert_ch, num_insert_ch)
- unsigned char *instr;
- unsigned char *outstr;
- unsigned char insert_ch;
- int *num_insert_ch;
-#endif
{
/*
Input parameters:
@@ -448,15 +401,9 @@ Output parameters:
}
Private int
-#if NeedFunctionPrototypes
THAI_find_chtype (
unsigned char *instr,
int chtype)
-#else
-THAI_find_chtype (instr, chtype)
- unsigned char *instr;
- int chtype;
-#endif
{
/*
Input parameters:
@@ -483,21 +430,12 @@ Output parameters:
Private int
-#if NeedFunctionPrototypes
THAI_apply_scm(
unsigned char *instr,
unsigned char *outstr,
unsigned char spec_ch,
int num_sp,
unsigned char insert_ch)
-#else
-THAI_apply_scm(instr, outstr, spec_ch, num_sp, insert_ch)
- unsigned char *instr;
- unsigned char *outstr;
- unsigned char spec_ch;
- int num_sp;
- unsigned char insert_ch;
-#endif
{
unsigned char *scan, *outch;
int i, dead_count, found_count;
@@ -524,24 +462,40 @@ THAI_apply_scm(instr, outstr, spec_ch, num_sp, insert_ch)
return 0; /* probably not right but better than returning garbage */
}
+
/* The following functions are copied from XKeyBind.c */
Private void ComputeMaskFromKeytrans();
-Private int IsCancelComposeKey();
-Private void SetLed();
+Private int IsCancelComposeKey(KeySym *symbol, XKeyEvent *event);
+Private void SetLed(Display *dpy, int num, int state);
Private CARD8 FindKeyCode();
+
/* The following functions are specific to this module */
Private int XThaiTranslateKey();
Private int XThaiTranslateKeySym();
-Private KeySym HexIMNormalKey();
-Private KeySym HexIMFirstComposeKey();
-Private KeySym HexIMSecondComposeKey();
-Private KeySym HexIMComposeSequence();
-Private void InitIscMode();
-Private Bool ThaiComposeConvert();
+
+Private KeySym HexIMNormalKey(
+ XicThaiPart *thai_part,
+ KeySym symbol,
+ XKeyEvent *event);
+Private KeySym HexIMFirstComposeKey(
+ XicThaiPart *thai_part,
+ KeySym symbol,
+ XKeyEvent *event);
+Private KeySym HexIMSecondComposeKey(
+ XicThaiPart *thai_part,
+ KeySym symbol
+ XKeyEvent *event);
+Private KeySym HexIMComposeSequence(KeySym ks1, KeySym ks2);
+Private void InitIscMode(Xic ic);
+Private Bool ThaiComposeConvert(
+ Display *dpy,
+ KeySym insym,
+ KeySym *outsym, KeySym *lower, KeySym *upper);
+#endif
/*
* Definitions
@@ -549,13 +503,111 @@ Private Bool ThaiComposeConvert();
#define BellVolume 0
+#define ucs2tis(wc) \
+ (unsigned char) ( \
+ (0<=(wc)&&(wc)<=0x7F) ? \
+ (wc) : \
+ ((0x0E01<=(wc)&&(wc)<=0x0E5F) ? ((wc)-0x0E00+0xA0) : 0))
+/* "c" is an unsigned char */
+#define tis2ucs(c) \
+ ( \
+ ((c)<=0x7F) ? \
+ (wchar_t)(c) : \
+ ((0x0A1<=(c)) ? ((wchar_t)(c)-0xA0+0x0E00) : 0))
+
/*
* Macros to save and recall last input character in XIC
*/
#define IC_SavePreviousChar(ic,ch) \
- *((ic)->private.local.context->mb) = (char) (ch)
-#define IC_GetPreviousChar(ic,ch) \
- (ch) = (unsigned char) *((ic)->private.local.context->mb)
+ (*((ic)->private.local.context->mb) = (char) (ch))
+#define IC_ClearPreviousChar(ic) \
+ (*((ic)->private.local.context->mb) = 0)
+#define IC_GetPreviousChar(ic) \
+ (IC_RealGetPreviousChar(ic,1))
+#define IC_GetContextChar(ic) \
+ (IC_RealGetPreviousChar(ic,2))
+#define IC_DeletePreviousChar(ic) \
+ (IC_RealDeletePreviousChar(ic))
+
+Private unsigned char
+IC_RealGetPreviousChar(Xic ic, unsigned short pos)
+{
+ XICCallback* cb = &ic->core.string_conversion_callback;
+
+ if (cb && cb->callback) {
+ XIMStringConversionCallbackStruct screc;
+ unsigned char c;
+
+ /* Use a safe value of position = 0 and stretch the range to desired
+ * place, as XIM protocol is unclear here whether it could be negative
+ */
+ screc.position = 0;
+ screc.direction = XIMBackwardChar;
+ screc.operation = XIMStringConversionRetrieval;
+ screc.factor = pos;
+ screc.text = 0;
+
+ (cb->callback)((XIC)ic, cb->client_data, (XPointer)&screc);
+ if (!screc.text)
+ return (unsigned char) *((ic)->private.local.context->mb);
+ if ((screc.text->feedback &&
+ *screc.text->feedback == XIMStringConversionLeftEdge) ||
+ screc.text->length < 1)
+ {
+ c = 0;
+ } else {
+ if (screc.text->encoding_is_wchar) {
+ c = ucs2tis(screc.text->string.wcs[0]);
+ XFree(screc.text->string.wcs);
+ } else {
+ c = screc.text->string.mbs[0];
+ XFree(screc.text->string.mbs);
+ }
+ }
+ XFree(screc.text);
+ return c;
+ } else {
+ return (unsigned char) *((ic)->private.local.context->mb);
+ }
+}
+
+Private unsigned char
+IC_RealDeletePreviousChar(Xic ic)
+{
+ XICCallback* cb = &ic->core.string_conversion_callback;
+
+ if (cb && cb->callback) {
+ XIMStringConversionCallbackStruct screc;
+ unsigned char c;
+
+ screc.position = 0;
+ screc.direction = XIMBackwardChar;
+ screc.operation = XIMStringConversionSubstitution;
+ screc.factor = 1;
+ screc.text = 0;
+
+ (cb->callback)((XIC)ic, cb->client_data, (XPointer)&screc);
+ if (!screc.text) { return 0; }
+ if ((screc.text->feedback &&
+ *screc.text->feedback == XIMStringConversionLeftEdge) ||
+ screc.text->length < 1)
+ {
+ c = 0;
+ } else {
+ if (screc.text->encoding_is_wchar) {
+ c = ucs2tis(screc.text->string.wcs[0]);
+ XFree(screc.text->string.wcs);
+ } else {
+ c = screc.text->string.mbs[0];
+ XFree(screc.text->string.mbs);
+ }
+ }
+ XFree(screc.text);
+ return c;
+ } else {
+ return 0;
+ }
+}
/*
* Input sequence check mode in XIC
*/
@@ -582,13 +634,18 @@ Private Bool ThaiComposeConvert();
#define IsISOControlKey(ks) ((ks) >= XK_2 && (ks) <= XK_8)
-#define IsValidControlKey(ks) (((ks)>=XK_A && (ks)<=XK_asciitilde || \
+#define IsValidControlKey(ks) (((((ks)>=XK_A && (ks)<=XK_asciitilde) || \
(ks)==XK_space || (ks)==XK_Delete) && \
- ((ks)!=0))
+ ((ks)!=0)))
#define COMPOSE_LED 2
-typedef KeySym (*StateProc)();
+#ifdef UNUSED
+typedef KeySym (*StateProc)(
+ XicThaiPart *thai_part,
+ KeySym symbol,
+ XKeyEvent *event);
+
/*
* macros to classify XKeyEvent state field
@@ -613,17 +670,19 @@ typedef KeySym (*StateProc)();
!IsShift((event)->state)) \
? True : False)
+
/*
* State handler to implement the Thai hex input method.
*/
-Private int nstate_handlers = 3;
+Private int const nstate_handlers = 3;
Private StateProc state_handler[] = {
HexIMNormalKey,
HexIMFirstComposeKey,
HexIMSecondComposeKey
};
+
/*
* Table for 'Thai Compose' character input.
* The current implementation uses latin-1 keysyms.
@@ -633,7 +692,7 @@ struct _XMapThaiKey {
KeySym to;
};
-Private struct _XMapThaiKey ThaiComposeTable[] = {
+Private struct _XMapThaiKey const ThaiComposeTable[] = {
{ /* 0xa4 */ XK_currency, /* 0xa5 */ XK_yen },
{ /* 0xa2 */ XK_cent, /* 0xa3 */ XK_sterling },
{ /* 0xe6 */ XK_ae, /* 0xef */ XK_idiaeresis },
@@ -654,15 +713,16 @@ struct _XKeytrans {
int mlen; /* length of modifier list */
};
+
/* Convert keysym to 'Thai Compose' keysym */
/* The current implementation use latin-1 keysyms */
Private Bool
-ThaiComposeConvert(dpy, insym, outsym ,lower, upper)
- Display *dpy;
- KeySym insym;
- KeySym *outsym,*lower,*upper;
+ThaiComposeConvert(
+ Display *dpy,
+ KeySym insym,
+ KeySym *outsym, KeySym *lower, KeySym *upper)
{
- struct _XMapThaiKey *table_entry = ThaiComposeTable;
+ struct _XMapThaiKey const *table_entry = ThaiComposeTable;
while (table_entry->from != XK_VoidSymbol) {
if (table_entry->from == insym) {
@@ -677,13 +737,14 @@ ThaiComposeConvert(dpy, insym, outsym ,lower, upper)
}
Private int
-XThaiTranslateKey(dpy, keycode, modifiers, modifiers_return, keysym_return,
- lsym_return, usym_return)
- register Display *dpy;
- KeyCode keycode;
- register unsigned int modifiers;
- unsigned int *modifiers_return;
- KeySym *keysym_return,*lsym_return,*usym_return;
+XThaiTranslateKey(
+ register Display *dpy,
+ KeyCode keycode,
+ register unsigned int modifiers,
+ unsigned int *modifiers_return,
+ KeySym *keysym_return,
+ KeySym *lsym_return,
+ KeySym *usym_return)
{
int per;
register KeySym *syms;
@@ -761,14 +822,16 @@ XThaiTranslateKey(dpy, keycode, modifiers, modifiers_return, keysym_return,
* standard.
*/
Private int
-XThaiTranslateKeySym(dpy, symbol, lsym, usym, modifiers, buffer, nbytes)
- Display *dpy;
- register KeySym symbol, lsym, usym;
- unsigned int modifiers;
- char *buffer;
- int nbytes;
+XThaiTranslateKeySym(
+ Display *dpy,
+ register KeySym symbol,
+ register KeySym lsym,
+ register KeySym usym,
+ unsigned int modifiers,
+ unsigned char *buffer,
+ int nbytes)
{
- KeySym ckey;
+ KeySym ckey = 0;
register struct _XKeytrans *p;
int length;
unsigned long hiBytes;
@@ -868,9 +931,9 @@ XThaiTranslateKeySym(dpy, symbol, lsym, usym, modifiers, buffer, nbytes)
* given a KeySym, returns the first keycode containing it, if any.
*/
Private CARD8
-FindKeyCode(dpy, code)
- register Display *dpy;
- register KeySym code;
+FindKeyCode(
+ register Display *dpy,
+ register KeySym code)
{
register KeySym *kmax = dpy->keysyms +
@@ -885,7 +948,6 @@ FindKeyCode(dpy, code)
return 0;
}
-
/*
* given a list of modifiers, computes the mask necessary for later matching.
* This routine must lookup the key in the Keymap and then search to see
@@ -893,9 +955,9 @@ FindKeyCode(dpy, code)
* can't map some keysym to a modifier.
*/
Private void
-ComputeMaskFromKeytrans(dpy, p)
- Display *dpy;
- register struct _XKeytrans *p;
+ComputeMaskFromKeytrans(
+ Display *dpy,
+ register struct _XKeytrans *p)
{
register int i;
register CARD8 code;
@@ -920,7 +982,6 @@ ComputeMaskFromKeytrans(dpy, p)
p->state &= AllMods;
}
-
/************************************************************************
*
*
@@ -934,11 +995,10 @@ ComputeMaskFromKeytrans(dpy, p)
#define SECOND_COMPOSE_KEY_STATE 2
Private
-KeySym HexIMNormalKey (thai_part, symbol, event)
- XicThaiPart *thai_part;
- KeySym symbol;
- XKeyEvent *event;
-
+KeySym HexIMNormalKey(
+ XicThaiPart *thai_part,
+ KeySym symbol,
+ XKeyEvent *event)
{
if (IsComposeKey (symbol, event)) /* start compose sequence */
{
@@ -951,11 +1011,10 @@ KeySym HexIMNormalKey (thai_part, symbol, event)
Private
-KeySym HexIMFirstComposeKey (thai_part, symbol, event)
- XicThaiPart *thai_part;
- KeySym symbol;
- XKeyEvent *event;
-
+KeySym HexIMFirstComposeKey(
+ XicThaiPart *thai_part,
+ KeySym symbol,
+ XKeyEvent *event)
{
if (IsModifierKey (symbol)) return symbol; /* ignore shift etc. */
if (IsCancelComposeKey (&symbol, event)) /* cancel sequence */
@@ -975,11 +1034,10 @@ KeySym HexIMFirstComposeKey (thai_part, symbol, event)
}
Private
-KeySym HexIMSecondComposeKey (thai_part, symbol, event)
- XicThaiPart *thai_part;
- KeySym symbol;
- XKeyEvent *event;
-
+KeySym HexIMSecondComposeKey(
+ XicThaiPart *thai_part,
+ KeySym symbol,
+ XKeyEvent *event)
{
if (IsModifierKey (symbol)) return symbol; /* ignore shift etc. */
if (IsComposeKey (symbol, event)) /* restart sequence ? */
@@ -1011,9 +1069,7 @@ KeySym HexIMSecondComposeKey (thai_part, symbol, event)
*/
Private
-KeySym HexIMComposeSequence (ks1, ks2)
-
-KeySym ks1, ks2;
+KeySym HexIMComposeSequence(KeySym ks1, KeySym ks2)
{
int hi_digit;
int lo_digit;
@@ -1050,9 +1106,9 @@ int tactis_code;
*/
Private
-int IsCancelComposeKey(symbol, event)
- KeySym *symbol;
- XKeyEvent *event;
+int IsCancelComposeKey(
+ KeySym *symbol,
+ XKeyEvent *event)
{
if (*symbol==XK_Delete && !IsControl(event->state) &&
!IsMod1(event->state)) {
@@ -1071,7 +1127,7 @@ int IsCancelComposeKey(symbol, event)
#endif
IsPFKey (*symbol) ||
IsCursorKey (*symbol) ||
- *symbol >= XK_Tab && *symbol < XK_Multi_key
+ (*symbol >= XK_Tab && *symbol < XK_Multi_key)
? True : False); /* cancel compose sequence and pass */
/* cancelling key through */
}
@@ -1082,10 +1138,10 @@ int IsCancelComposeKey(symbol, event)
*/
Private
-void SetLed (dpy, num, state)
- Display *dpy;
- int num;
- int state;
+void SetLed(
+ Display *dpy,
+ int num,
+ int state)
{
XKeyboardControl led_control;
@@ -1093,13 +1149,12 @@ void SetLed (dpy, num, state)
led_control.led = num;
XChangeKeyboardControl (dpy, KBLed | KBLedMode, &led_control);
}
-
+#endif
/*
* Initialize ISC mode from im modifier
*/
-Private void InitIscMode(ic)
-Xic ic;
+Private void InitIscMode(Xic ic)
{
Xim im;
char *im_modifier_name;
@@ -1130,6 +1185,51 @@ Xic ic;
}
/*
+ * Helper functions for _XimThaiFilter()
+ */
+Private Bool
+ThaiFltAcceptInput(Xic ic, unsigned char new_char, KeySym symbol)
+{
+ ic->private.local.composed->wc[0] = tis2ucs(new_char);
+ ic->private.local.composed->wc[1] = '\0';
+
+ if ((new_char <= 0x1f) || (new_char == 0x7f))
+ ic->private.local.composed->keysym = symbol;
+ else
+ ic->private.local.composed->keysym = NoSymbol;
+
+ return True;
+}
+
+Private Bool
+ThaiFltReorderInput(Xic ic, unsigned char previous_char, unsigned char new_char)
+{
+ if (!IC_DeletePreviousChar(ic)) return False;
+ ic->private.local.composed->wc[0] = tis2ucs(new_char);
+ ic->private.local.composed->wc[1] = tis2ucs(previous_char);
+ ic->private.local.composed->wc[2] = '\0';
+
+ ic->private.local.composed->keysym = NoSymbol;
+
+ return True;
+}
+
+Private Bool
+ThaiFltReplaceInput(Xic ic, unsigned char new_char, KeySym symbol)
+{
+ if (!IC_DeletePreviousChar(ic)) return False;
+ ic->private.local.composed->wc[0] = tis2ucs(new_char);
+ ic->private.local.composed->wc[1] = '\0';
+
+ if ((new_char <= 0x1f) || (new_char == 0x7f))
+ ic->private.local.composed->keysym = symbol;
+ else
+ ic->private.local.composed->keysym = NoSymbol;
+
+ return True;
+}
+
+/*
* Filter function for TACTIS
*/
Bool
@@ -1140,16 +1240,19 @@ XEvent *ev;
XPointer client_data;
{
Xic ic = (Xic)client_data;
- unsigned int modifiers;
KeySym symbol;
- KeySym lsym,usym;
- int count;
int isc_mode; /* Thai Input Sequence Check mode */
unsigned char previous_char; /* Last inputted Thai char */
+ unsigned char new_char;
+#ifdef UNUSED
+ unsigned int modifiers;
+ KeySym lsym,usym;
int state;
XicThaiPart *thai_part;
char buf[10];
- int i;
+#endif
+ wchar_t wbuf[10];
+ Bool isReject;
if ((ev->type != KeyPress)
|| (ev->xkey.keycode == 0))
@@ -1157,6 +1260,37 @@ XPointer client_data;
if (!IC_IscMode(ic)) InitIscMode(ic);
+ XwcLookupString((XIC)ic, &ev->xkey, wbuf, sizeof(wbuf) / sizeof(wbuf[0]),
+ &symbol, NULL);
+
+ if ((ev->xkey.state & (AllMods & ~ShiftMask)) ||
+ ((symbol >> 8 == 0xFF) &&
+ ((XK_BackSpace <= symbol && symbol <= XK_Clear) ||
+ (symbol == XK_Return) ||
+ (symbol == XK_Pause) ||
+ (symbol == XK_Scroll_Lock) ||
+ (symbol == XK_Sys_Req) ||
+ (symbol == XK_Escape) ||
+ (symbol == XK_Delete) ||
+ IsCursorKey(symbol) ||
+ IsKeypadKey(symbol) ||
+ IsMiscFunctionKey(symbol) ||
+ IsFunctionKey(symbol))))
+ {
+ IC_ClearPreviousChar(ic);
+ return False;
+ }
+ if (((symbol >> 8 == 0xFF) &&
+ IsModifierKey(symbol)) ||
+#ifdef XK_XKB_KEYS
+ ((symbol >> 8 == 0xFE) &&
+ (XK_ISO_Lock <= symbol && symbol <= XK_ISO_Last_Group_Lock)) ||
+#endif
+ (symbol == NoSymbol))
+ {
+ return False;
+ }
+#ifdef UNUSED
if (! XThaiTranslateKey(ev->xkey.display, ev->xkey.keycode, ev->xkey.state,
&modifiers, &symbol, &lsym, &usym))
return False;
@@ -1184,31 +1318,54 @@ XPointer client_data;
/* Return symbol if cannot convert to character */
if (!count)
return False;
+#endif
/*
* Thai Input sequence check
*/
isc_mode = IC_IscMode(ic);
- if ((IC_GetPreviousChar(ic, previous_char))) {
- if (!THAI_isaccepted(buf[0],previous_char, isc_mode)) {
- /* reject character */
- XBell(ev->xkey.display, BellVolume);
- return True;
+ if (!(previous_char = IC_GetPreviousChar(ic))) previous_char = ' ';
+ new_char = ucs2tis(wbuf[0]);
+ isReject = True;
+ if (THAI_isaccepted(new_char, previous_char, isc_mode)) {
+ ThaiFltAcceptInput(ic, new_char, symbol);
+ isReject = False;
+ } else {
+ unsigned char context_char;
+
+ context_char = IC_GetContextChar(ic);
+ if (context_char) {
+ if (THAI_iscomposible(new_char, context_char)) {
+ if (THAI_iscomposible(previous_char, new_char)) {
+ isReject = !ThaiFltReorderInput(ic, previous_char, new_char);
+ } else if (THAI_iscomposible(previous_char, context_char)) {
+ isReject = !ThaiFltReplaceInput(ic, new_char, symbol);
+ } else if (THAI_chtype(previous_char) == FV1
+ && THAI_chtype(new_char) == TONE) {
+ isReject = !ThaiFltReorderInput(ic, previous_char, new_char);
+ }
+ } else if (THAI_isaccepted(new_char, context_char, isc_mode)) {
+ isReject = !ThaiFltReplaceInput(ic, new_char, symbol);
+ }
}
}
- /* Remember the last character inputted. */
- IC_SavePreviousChar(ic, buf[count-1]);
- for (i=0; i<count; i++)
- ic->private.local.composed->mb[i] = buf[i];
- ic->private.local.composed->mb[count] = '\0';
-
- i = _Xlcmbstowcs(ic->core.im->core.lcd, ic->private.local.composed->wc,
- ic->private.local.composed->mb, count);
-
- if (!((buf[0] > 0 && buf[0] <= 0x1f) || (buf[0] == 0) || (buf[0] == 0x7f)))
- ic->private.local.composed->keysym = NoSymbol;
- else
- ic->private.local.composed->keysym = symbol;
+ if (isReject) {
+ /* reject character */
+ XBell(ev->xkey.display, BellVolume);
+ return True;
+ }
+
+ _Xlcwcstombs(ic->core.im->core.lcd, ic->private.local.composed->mb,
+ ic->private.local.composed->wc, 10);
+
+ _Xlcmbstoutf8(ic->core.im->core.lcd, ic->private.local.composed->utf8,
+ ic->private.local.composed->mb, 10);
+
+ /* Remember the last character inputted
+ * (as fallback in case StringConversionCallback is not provided)
+ */
+ IC_SavePreviousChar(ic, new_char);
+
ev->xkey.keycode = 0;
XPutBackEvent(d, ev);
return True;
diff --git a/modules/im/ximcp/imThaiIc.c b/modules/im/ximcp/imThaiIc.c
index bead0285..997ee8b4 100644
--- a/modules/im/ximcp/imThaiIc.c
+++ b/modules/im/ximcp/imThaiIc.c
@@ -32,6 +32,7 @@ THIS SOFTWARE.
frankyling@hgrd01.enet.dec.com
******************************************************************/
+/* $XFree86: xc/lib/X11/imThaiIc.c,v 1.4 2001/01/17 19:41:52 dawes Exp $ */
#include <stdio.h>
#include <X11/Xlib.h>
@@ -41,8 +42,8 @@ THIS SOFTWARE.
#include "Ximint.h"
Private void
-_XimThaiUnSetFocus(xic)
- XIC xic;
+_XimThaiUnSetFocus(
+ XIC xic)
{
Xic ic = (Xic)xic;
((Xim)ic->core.im)->private.local.current_ic = (XIC)NULL;
@@ -54,8 +55,8 @@ _XimThaiUnSetFocus(xic)
}
Private void
-_XimThaiDestroyIC(xic)
- XIC xic;
+_XimThaiDestroyIC(
+ XIC xic)
{
Xic ic = (Xic)xic;
if(((Xim)ic->core.im)->private.local.current_ic == (XIC)ic) {
@@ -68,16 +69,18 @@ _XimThaiDestroyIC(xic)
Xfree(ic->private.local.context->mb);
Xfree(ic->private.local.context->wc);
+ Xfree(ic->private.local.context->utf8);
Xfree(ic->private.local.context);
Xfree(ic->private.local.composed->mb);
Xfree(ic->private.local.composed->wc);
+ Xfree(ic->private.local.composed->utf8);
Xfree(ic->private.local.composed);
return;
}
Private void
-_XimThaiSetFocus(xic)
- XIC xic;
+_XimThaiSetFocus(
+ XIC xic)
{
Xic ic = (Xic)xic;
XIC current_ic = ((Xim)ic->core.im)->private.local.current_ic;
@@ -96,28 +99,32 @@ _XimThaiSetFocus(xic)
return;
}
-Private char *
-_XimThaiMbReset(xic)
- XIC xic;
+Private void
+_XimThaiReset(
+ XIC xic)
{
Xic ic = (Xic)xic;
ic->private.local.thai.comp_state = 0;
ic->private.local.thai.keysym = 0;
ic->private.local.composed->mb[0] = '\0';
ic->private.local.composed->wc[0] = 0;
- return((char *)NULL);
+ ic->private.local.composed->utf8[0] = '\0';
+}
+
+Private char *
+_XimThaiMbReset(
+ XIC xic)
+{
+ _XimThaiReset(xic);
+ return (char *)NULL;
}
Private wchar_t *
-_XimThaiWcReset(xic)
- XIC xic;
+_XimThaiWcReset(
+ XIC xic)
{
- Xic ic = (Xic)xic;
- ic->private.local.thai.comp_state = 0;
- ic->private.local.thai.keysym = 0;
- ic->private.local.composed->mb[0] = '\0';
- ic->private.local.composed->wc[0] = 0;
- return((wchar_t *)NULL);
+ _XimThaiReset(xic);
+ return (wchar_t *)NULL;
}
Private XICMethodsRec Thai_ic_methods = {
@@ -128,14 +135,16 @@ Private XICMethodsRec Thai_ic_methods = {
_XimLocalGetICValues, /* get_values */
_XimThaiMbReset, /* mb_reset */
_XimThaiWcReset, /* wc_reset */
+ _XimThaiMbReset, /* utf8_reset */
_XimLocalMbLookupString, /* mb_lookup_string */
_XimLocalWcLookupString, /* wc_lookup_string */
+ _XimLocalUtf8LookupString /* utf8_lookup_string */
};
XIC
-_XimThaiCreateIC(im, values)
- XIM im;
- XIMArg *values;
+_XimThaiCreateIC(
+ XIM im,
+ XIMArg *values)
{
Xic ic;
XimDefICValues ic_values;
@@ -160,6 +169,9 @@ _XimThaiCreateIC(im, values)
if ((ic->private.local.context->wc = (wchar_t *)Xmalloc(10*sizeof(wchar_t)))
== (wchar_t *)NULL)
goto Set_Error;
+ if ((ic->private.local.context->utf8 = (char *)Xmalloc(10))
+ == (char *)NULL)
+ goto Set_Error;
if ((ic->private.local.composed = (DefTree *)Xmalloc(sizeof(DefTree)))
== (DefTree *)NULL)
goto Set_Error;
@@ -169,6 +181,9 @@ _XimThaiCreateIC(im, values)
if ((ic->private.local.composed->wc = (wchar_t *)Xmalloc(10*sizeof(wchar_t)))
== (wchar_t *)NULL)
goto Set_Error;
+ if ((ic->private.local.composed->utf8 = (char *)Xmalloc(10))
+ == (char *)NULL)
+ goto Set_Error;
ic->private.local.thai.comp_state = 0;
ic->private.local.thai.keysym = 0;
diff --git a/modules/im/ximcp/imThaiIm.c b/modules/im/ximcp/imThaiIm.c
index faa8d846..5a3c0faf 100644
--- a/modules/im/ximcp/imThaiIm.c
+++ b/modules/im/ximcp/imThaiIm.c
@@ -32,6 +32,7 @@ THIS SOFTWARE.
frankyling@hgrd01.enet.dec.com
******************************************************************/
+/* $XFree86: xc/lib/X11/imThaiIm.c,v 1.7 2001/01/17 19:41:52 dawes Exp $ */
#include <stdio.h>
#include <X11/Xlib.h>
@@ -41,6 +42,7 @@ THIS SOFTWARE.
#include "Xlibint.h"
#include "Xlcint.h"
#include "XlcPublic.h"
+#include "XlcPubI.h"
#include "Ximint.h"
Private XIMMethodsRec Xim_im_thai_methods = {
@@ -49,7 +51,8 @@ Private XIMMethodsRec Xim_im_thai_methods = {
_XimLocalGetIMValues, /* get_values */
_XimThaiCreateIC, /* create_ic */
_XimLcctstombs, /* ctstombs */
- _XimLcctstowcs /* ctstowcs */
+ _XimLcctstowcs, /* ctstowcs */
+ _XimLcctstoutf8 /* ctstoutf8 */
};
#define THAI_LANGUAGE_NAME "th"
@@ -72,9 +75,9 @@ _XimThaiOpenIM(im)
Xim im;
{
XLCd lcd = im->core.lcd;
- XlcConv ctom_conv;
- XlcConv ctow_conv;
+ XlcConv conv;
XimDefIMValues im_values;
+ XimLocalPrivateRec* private = &im->private.local;
_XimInitialResourceInfo();
if(_XimSetIMResourceList(&im->core.im_resources,
@@ -95,47 +98,45 @@ _XimThaiOpenIM(im)
}
_XimSetCurrentIMValues(im, &im_values);
- if (!(ctom_conv = _XlcOpenConverter(lcd,
- XlcNCompoundText, lcd, XlcNMultiByte)))
+ if (!(conv = _XlcOpenConverter(lcd, XlcNCompoundText, lcd, XlcNMultiByte)))
goto Open_Error;
- if (!(ctow_conv = _XlcOpenConverter(lcd,
- XlcNCompoundText, lcd, XlcNWideChar)))
+ private->ctom_conv = conv;
+
+ if (!(conv = _XlcOpenConverter(lcd, XlcNCompoundText, lcd, XlcNWideChar)))
+ goto Open_Error;
+ private->ctow_conv = conv;
+
+ if (!(conv = _XlcOpenConverter(lcd, XlcNCompoundText, lcd, XlcNUtf8String)))
+ goto Open_Error;
+ private->ctoutf8_conv = conv;
+
+ if (!(conv = _XlcOpenConverter(lcd, XlcNCharSet, lcd, XlcNMultiByte)))
+ goto Open_Error;
+ private->cstomb_conv = conv;
+
+ if (!(conv = _XlcOpenConverter(lcd, XlcNCharSet, lcd, XlcNWideChar)))
+ goto Open_Error;
+ private->cstowc_conv = conv;
+
+ if (!(conv = _XlcOpenConverter(lcd, XlcNCharSet, lcd, XlcNUtf8String)))
+ goto Open_Error;
+ private->cstoutf8_conv = conv;
+
+ if (!(conv = _XlcOpenConverter(lcd, XlcNUcsChar, lcd, XlcNChar)))
+ goto Open_Error;
+ private->ucstoc_conv = conv;
+
+ if (!(conv = _XlcOpenConverter(lcd, XlcNUcsChar, lcd, XlcNUtf8String)))
goto Open_Error;
+ private->ucstoutf8_conv = conv;
im->methods = &Xim_im_thai_methods;
- im->private.local.current_ic = (XIC)NULL;
- im->private.local.ctom_conv = ctom_conv;
- im->private.local.ctow_conv = ctow_conv;
+ private->current_ic = (XIC)NULL;
return(True);
Open_Error :
- if (im->core.im_resources) {
- Xfree(im->core.im_resources);
- im->core.im_resources = NULL;
- }
- if (im->core.ic_resources) {
- Xfree(im->core.ic_resources);
- im->core.ic_resources = NULL;
- }
- if (im->core.im_values_list) {
- Xfree(im->core.im_values_list);
- im->core.im_values_list = NULL;
- }
- if (im->core.ic_values_list) {
- Xfree(im->core.ic_values_list);
- im->core.ic_values_list = NULL;
- }
- if (im->core.styles) {
- Xfree(im->core.styles);
- im->core.styles = NULL;
- }
- if (im->private.local.ctom_conv) {
- _XlcCloseConverter(im->private.local.ctom_conv);
- }
- if (im->private.local.ctow_conv) {
- _XlcCloseConverter(im->private.local.ctow_conv);
- }
+ _XimThaiIMFree(im);
return(False);
}
@@ -175,6 +176,38 @@ _XimThaiIMFree(im)
Xfree(im->core.im_name);
im->core.im_name = NULL;
}
+ if (im->private.local.ctom_conv) {
+ _XlcCloseConverter(im->private.local.ctom_conv);
+ im->private.local.ctom_conv = NULL;
+ }
+ if (im->private.local.ctow_conv) {
+ _XlcCloseConverter(im->private.local.ctow_conv);
+ im->private.local.ctow_conv = NULL;
+ }
+ if (im->private.local.ctoutf8_conv) {
+ _XlcCloseConverter(im->private.local.ctoutf8_conv);
+ im->private.local.ctoutf8_conv = NULL;
+ }
+ if (im->private.local.cstomb_conv) {
+ _XlcCloseConverter(im->private.local.cstomb_conv);
+ im->private.local.cstomb_conv = NULL;
+ }
+ if (im->private.local.cstowc_conv) {
+ _XlcCloseConverter(im->private.local.cstowc_conv);
+ im->private.local.cstowc_conv = NULL;
+ }
+ if (im->private.local.cstoutf8_conv) {
+ _XlcCloseConverter(im->private.local.cstoutf8_conv);
+ im->private.local.cstoutf8_conv = NULL;
+ }
+ if (im->private.local.ucstoc_conv) {
+ _XlcCloseConverter(im->private.local.ucstoc_conv);
+ im->private.local.ucstoc_conv = NULL;
+ }
+ if (im->private.local.ucstoutf8_conv) {
+ _XlcCloseConverter(im->private.local.ucstoutf8_conv);
+ im->private.local.ucstoutf8_conv = NULL;
+ }
return;
}
@@ -187,6 +220,7 @@ _XimThaiCloseIM(xim)
XIC next;
ic = im->core.ic_chain;
+ im->core.ic_chain = NULL;
while (ic) {
(*ic->methods->destroy) (ic);
next = ic->core.next;
diff --git a/modules/im/ximcp/imTrX.c b/modules/im/ximcp/imTrX.c
index 01bc8286..c226cc69 100644
--- a/modules/im/ximcp/imTrX.c
+++ b/modules/im/ximcp/imTrX.c
@@ -28,6 +28,7 @@ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
fujiwara@a80.tech.yk.fujitsu.co.jp
******************************************************************/
+/* $XFree86: xc/lib/X11/imTrX.c,v 1.3 2003/04/13 19:22:21 dawes Exp $ */
#include <string.h>
#include <X11/Xatom.h>
@@ -39,14 +40,12 @@ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include "XimTrX.h"
Private Bool
-_XimXRegisterDispatcher(im, callback, call_data)
- Xim im;
+_XimXRegisterDispatcher(
+ Xim im,
Bool (*callback)(
-#if NeedNestedPrototypes
Xim, INT16, XPointer, XPointer
-#endif
- );
- XPointer call_data;
+ ),
+ XPointer call_data)
{
XIntrCallbackPtr rec;
XSpecRec *spec = (XSpecRec *)im->private.proto.spec;
@@ -62,8 +61,8 @@ _XimXRegisterDispatcher(im, callback, call_data)
}
Private void
-_XimXFreeIntrCallback(im)
- Xim im;
+_XimXFreeIntrCallback(
+ Xim im)
{
XSpecRec *spec = (XSpecRec *)im->private.proto.spec;
register XIntrCallbackPtr rec, next;
@@ -77,14 +76,7 @@ _XimXFreeIntrCallback(im)
}
Private Bool
-#if NeedFunctionPrototypes
_XimXCallDispatcher(Xim im, INT16 len, XPointer data)
-#else
-_XimXCallDispatcher(im, len, data)
- Xim im;
- INT16 len;
- XPointer data;
-#endif
{
register XIntrCallbackRec *rec;
XSpecRec *spec = (XSpecRec *)im->private.proto.spec;
@@ -97,11 +89,11 @@ _XimXCallDispatcher(im, len, data)
}
Private Bool
-_XimXFilterWaitEvent(d, w, ev, arg)
- Display *d;
- Window w;
- XEvent *ev;
- XPointer arg;
+_XimXFilterWaitEvent(
+ Display *d,
+ Window w,
+ XEvent *ev,
+ XPointer arg)
{
Xim im = (Xim)arg;
XSpecRec *spec = (XSpecRec *)im->private.proto.spec;
@@ -125,10 +117,10 @@ _XimXFilterWaitEvent(d, w, ev, arg)
}
Private Bool
-_CheckConnect(display, event, xim)
- Display *display;
- XEvent *event;
- XPointer xim;
+_CheckConnect(
+ Display *display,
+ XEvent *event,
+ XPointer xim)
{
Xim im = (Xim)xim;
XSpecRec *spec = (XSpecRec *)im->private.proto.spec;
@@ -141,12 +133,7 @@ _CheckConnect(display, event, xim)
}
Private Bool
-#if NeedFunctionPrototypes
_XimXConnect(Xim im)
-#else
-_XimXConnect(im)
- Xim im;
-#endif
{
XEvent event;
XSpecRec *spec = (XSpecRec *)im->private.proto.spec;
@@ -215,12 +202,7 @@ _XimXConnect(im)
}
Private Bool
-#if NeedFunctionPrototypes
_XimXShutdown(Xim im)
-#else
-_XimXShutdown(im)
- Xim im;
-#endif
{
XSpecRec *spec = (XSpecRec *)im->private.proto.spec;
@@ -240,8 +222,8 @@ _XimXShutdown(im)
}
Private char *
-_NewAtom(atomName)
- char *atomName;
+_NewAtom(
+ char *atomName)
{
static int sequence = 0;
@@ -251,14 +233,7 @@ _NewAtom(atomName)
}
Private Bool
-#if NeedFunctionPrototypes
_XimXWrite(Xim im, INT16 len, XPointer data)
-#else
-_XimXWrite(im, len, data)
- Xim im;
- INT16 len;
- XPointer data;
-#endif
{
Atom atom;
char atomName[16];
@@ -319,12 +294,12 @@ _XimXWrite(im, len, data)
}
Private Bool
-_XimXGetReadData(im, buf, buf_len, ret_len, event)
- Xim im;
- char *buf;
- int buf_len;
- int *ret_len;
- XEvent *event;
+_XimXGetReadData(
+ Xim im,
+ char *buf,
+ int buf_len,
+ int *ret_len,
+ XEvent *event)
{
char *data;
int len;
@@ -340,8 +315,15 @@ _XimXGetReadData(im, buf, buf_len, ret_len, event)
unsigned long bytes_after_ret;
unsigned char *prop_ret;
- if ((event->type == ClientMessage) && (event->xclient.format == 8)) {
- data = event->xclient.data.b;
+ if ((event->type == ClientMessage) &&
+ !((event->xclient.message_type == spec->improtocolid) ||
+ (event->xclient.message_type == spec->immoredataid))) {
+ /* This event has nothing to do with us,
+ * FIXME should not have gotten here then...
+ */
+ return False;
+ } else if ((event->type == ClientMessage) && (event->xclient.format == 8)) {
+ data = event->xclient.data.b;
if (buf_len >= XIM_CM_DATA_SIZE) {
(void)memcpy(buf, data, XIM_CM_DATA_SIZE);
*ret_len = XIM_CM_DATA_SIZE;
@@ -426,10 +408,10 @@ _XimXGetReadData(im, buf, buf_len, ret_len, event)
}
Private Bool
-_CheckCMEvent(display, event, xim)
- Display *display;
- XEvent *event;
- XPointer xim;
+_CheckCMEvent(
+ Display *display,
+ XEvent *event,
+ XPointer xim)
{
Xim im = (Xim)xim;
XSpecRec *spec = (XSpecRec *)im->private.proto.spec;
@@ -447,15 +429,7 @@ _CheckCMEvent(display, event, xim)
}
Private Bool
-#if NeedFunctionPrototypes
_XimXRead(Xim im, XPointer recv_buf, int buf_len, int *ret_len)
-#else
-_XimXRead(im, recv_buf, buf_len, ret_len)
- Xim im;
- XPointer recv_buf;
- int buf_len;
- int *ret_len;
-#endif
{
XEvent *ev;
XEvent event;
@@ -478,12 +452,7 @@ _XimXRead(im, recv_buf, buf_len, ret_len)
}
Private void
-#if NeedFunctionPrototypes
_XimXFlush(Xim im)
-#else
-_XimXFlush(im)
- Xim im;
-#endif
{
XFlush(im->core.display);
return;
diff --git a/modules/im/ximcp/imTrans.c b/modules/im/ximcp/imTrans.c
index 53ca201c..6857231e 100644
--- a/modules/im/ximcp/imTrans.c
+++ b/modules/im/ximcp/imTrans.c
@@ -28,6 +28,7 @@ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
fujiwara@a80.tech.yk.fujitsu.co.jp
******************************************************************/
+/* $XFree86: xc/lib/X11/imTrans.c,v 1.3 2003/04/17 02:06:32 dawes Exp $ */
#include <stdio.h>
#include <X11/Xatom.h>
@@ -38,6 +39,7 @@ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include "Xlcint.h"
#include "Ximint.h"
#include "XimTrans.h"
+#include "XimTrInt.h"
#ifndef XIM_CONNECTION_RETRIES
@@ -46,8 +48,8 @@ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Private Bool
-_XimTransConnect(im)
- Xim im;
+_XimTransConnect(
+ Xim im)
{
TransSpecRec *spec = (TransSpecRec *)im->private.proto.spec;
int connect_stat, retry;
@@ -99,8 +101,8 @@ _XimTransConnect(im)
Private Bool
-_XimTransShutdown(im)
- Xim im;
+_XimTransShutdown(
+ Xim im)
{
TransSpecRec *spec = (TransSpecRec *)im->private.proto.spec;
@@ -119,21 +121,12 @@ _XimTransShutdown(im)
Public Bool
-#if NeedFunctionPrototypes
_XimTransRegisterDispatcher(
Xim im,
Bool (*callback)(
-#if NeedNestedPrototypes
Xim, INT16, XPointer, XPointer
-#endif
),
XPointer call_data)
-#else
-_XimTransRegisterDispatcher(im, callback, call_data)
- Xim im;
- Bool (*callback)();
- XPointer call_data;
-#endif
{
TransSpecRec *spec = (TransSpecRec *)im->private.proto.spec;
TransIntrCallbackPtr rec;
@@ -150,8 +143,8 @@ _XimTransRegisterDispatcher(im, callback, call_data)
Public void
-_XimFreeTransIntrCallback(im)
- Xim im;
+_XimFreeTransIntrCallback(
+ Xim im)
{
TransSpecRec *spec = (TransSpecRec *)im->private.proto.spec;
register TransIntrCallbackPtr rec, next;
@@ -166,14 +159,7 @@ _XimFreeTransIntrCallback(im)
Public Bool
-#if NeedFunctionPrototypes
_XimTransCallDispatcher(Xim im, INT16 len, XPointer data)
-#else
-_XimTransCallDispatcher(im, len, data)
- Xim im;
- INT16 len;
- XPointer data;
-#endif
{
TransSpecRec *spec = (TransSpecRec *)im->private.proto.spec;
TransIntrCallbackRec *rec;
@@ -187,11 +173,11 @@ _XimTransCallDispatcher(im, len, data)
Public Bool
-_XimTransFilterWaitEvent(d, w, ev, arg)
- Display *d;
- Window w;
- XEvent *ev;
- XPointer arg;
+_XimTransFilterWaitEvent(
+ Display *d,
+ Window w,
+ XEvent *ev,
+ XPointer arg)
{
Xim im = (Xim)arg;
TransSpecRec *spec = (TransSpecRec *)im->private.proto.spec;
@@ -202,10 +188,10 @@ _XimTransFilterWaitEvent(d, w, ev, arg)
Public void
-_XimTransInternalConnection(d, fd, arg)
- Display *d;
- int fd;
- XPointer arg;
+_XimTransInternalConnection(
+ Display *d,
+ int fd,
+ XPointer arg)
{
Xim im = (Xim)arg;
XEvent ev;
@@ -228,14 +214,7 @@ _XimTransInternalConnection(d, fd, arg)
Public Bool
-#if NeedFunctionPrototypes
_XimTransWrite(Xim im, INT16 len, XPointer data)
-#else
-_XimTransWrite(im, len, data)
- Xim im;
- INT16 len;
- XPointer data;
-#endif
{
TransSpecRec *spec = (TransSpecRec *)im->private.proto.spec;
char *buf = (char *)data;
@@ -252,11 +231,11 @@ _XimTransWrite(im, len, data)
Public Bool
-_XimTransRead(im, recv_buf, buf_len, ret_len)
- Xim im;
- XPointer recv_buf;
- int buf_len;
- int *ret_len;
+_XimTransRead(
+ Xim im,
+ XPointer recv_buf,
+ int buf_len,
+ int *ret_len)
{
TransSpecRec *spec = (TransSpecRec *)im->private.proto.spec;
int len;
@@ -273,8 +252,8 @@ _XimTransRead(im, recv_buf, buf_len, ret_len)
Public void
-_XimTransFlush(im)
- Xim im;
+_XimTransFlush(
+ Xim im)
{
return;
}
@@ -282,9 +261,9 @@ _XimTransFlush(im)
Public Bool
-_XimTransConf(im, address)
- Xim im;
- char *address;
+_XimTransConf(
+ Xim im,
+ char *address)
{
char *paddr;
TransSpecRec *spec;
diff --git a/modules/im/ximcp/imTransR.c b/modules/im/ximcp/imTransR.c
index 01681bf6..3fea1b3f 100644
--- a/modules/im/ximcp/imTransR.c
+++ b/modules/im/ximcp/imTransR.c
@@ -28,6 +28,7 @@ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
fujiwara@a80.tech.yk.fujitsu.co.jp
******************************************************************/
+/* $XFree86: xc/lib/X11/imTransR.c,v 3.6 2003/04/17 02:39:56 dawes Exp $ */
#include "Xlibint.h"
#include "Xlcint.h"
@@ -35,21 +36,21 @@ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include "Ximint.h"
Public TransportSW _XimTransportRec[] = {
- "X", _XimXConf, /* 1st entry must be X.
+ { "X", _XimXConf }, /* 1st entry must be X.
This will be a fallback */
#ifdef TCPCONN
- "tcp", _XimTransConf, /* use X transport lib */
+ { "tcp", _XimTransConf }, /* use X transport lib */
#endif /* TCPCONN */
-#ifdef UNIXCONN
- "local", _XimTransConf, /* use X transport lib */
+#if defined(UNIXCONN) || defined(LOCALCONN)
+ { "local", _XimTransConf }, /* use X transport lib */
#endif /* UNIXCONN */
#ifdef DNETCONN
- "dnet", _XimTransConf, /* use X transport lib */
+ { "dnet", _XimTransConf }, /* use X transport lib */
#endif /* DNETCONN */
#ifdef STREAMSCONN
- "streams", _XimTransConf, /* use X transport lib */
+ { "streams", _XimTransConf }, /* use X transport lib */
#endif /* STREAMSCONN */
- (char *)NULL, (Bool (*)())NULL,
+ { (char *)NULL, (Bool (*)(Xim, char *))NULL },
};
Public Bool
@@ -67,22 +68,15 @@ _XimShutdown(im)
}
Public Bool
-#if NeedFunctionPrototypes
_XimWrite(Xim im, INT16 len, XPointer data)
-#else
-_XimWrite(im, len, data)
- Xim im;
- INT16 len;
- XPointer data;
-#endif
{
return im->private.proto.write(im, len, data);
}
Private int
-_CheckProtocolData(im, recv_buf)
- Xim im;
- char *recv_buf;
+_CheckProtocolData(
+ Xim im,
+ char *recv_buf)
{
int data_len;
@@ -91,11 +85,11 @@ _CheckProtocolData(im, recv_buf)
}
Private int
-_XimReadData(im, len, buf, buf_size)
- Xim im;
- INT16 *len;
- XPointer buf;
- int buf_size;
+_XimReadData(
+ Xim im,
+ INT16 *len,
+ XPointer buf,
+ int buf_size)
{
char *hold_buf;
char *tmp;
@@ -208,10 +202,10 @@ _XimReadData(im, len, buf, buf_size)
}
Private Bool
-_XimCallDispatcher(im, len, data)
- Xim im;
- INT16 len;
- XPointer data;
+_XimCallDispatcher(
+ Xim im,
+ INT16 len,
+ XPointer data)
{
return im->private.proto.call_dispatcher(im, len, data);
}
@@ -223,9 +217,7 @@ _XimRead(im, len, buf, buf_size, predicate, arg)
XPointer buf;
int buf_size;
Bool (*predicate)(
-#if NeedNestedPrototypes
Xim, INT16, XPointer, XPointer
-#endif
);
XPointer arg;
{
@@ -248,14 +240,12 @@ _XimRead(im, len, buf, buf_size, predicate, arg)
}
Public Bool
-_XimRegisterDispatcher(im, callback, call_data)
- Xim im;
+_XimRegisterDispatcher(
+ Xim im,
Bool (*callback)(
-#if NeedNestedPrototypes
Xim, INT16, XPointer, XPointer
-#endif
- );
- XPointer call_data;
+ ),
+ XPointer call_data)
{
return im->private.proto.register_dispatcher(im, callback, call_data);
}
diff --git a/modules/lc/Utf8/lcUTF8Load.c b/modules/lc/Utf8/lcUTF8Load.c
index e4fffac0..30e48dd1 100644
--- a/modules/lc/Utf8/lcUTF8Load.c
+++ b/modules/lc/Utf8/lcUTF8Load.c
@@ -24,7 +24,7 @@ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
******************************************************************/
-/* $XFree86: xc/lib/X11/lcUTF8Load.c,v 1.1 2001/11/16 14:40:46 dawes Exp $ */
+/* $XFree86: xc/lib/X11/lcUTF8.c,v 1.12 2001/02/09 00:02:53 dawes Exp $ */
/*
* This file contains the UTF-8 locale loader.
diff --git a/modules/lc/def/lcDefConv.c b/modules/lc/def/lcDefConv.c
index 156bbe1a..4bcbe6bf 100644
--- a/modules/lc/def/lcDefConv.c
+++ b/modules/lc/def/lcDefConv.c
@@ -23,206 +23,544 @@
* Author: Katsuhisa Yano TOSHIBA Corp.
* mopi@osa.ilab.toshiba.co.jp
*/
+/*
+ * 2000
+ * Modifier: Ivan Pascal The XFree86 Project
+ */
+/* $XFree86: xc/lib/X11/lcDefConv.c,v 1.6 2001/01/17 19:41:53 dawes Exp $ */
+
+/*
+ * The default locale loader.
+ * Supports: one byte per char (iso8859 like) locales.
+ * How: converts bytes to wide characters in a 1:1 manner.
+ * Platforms: all systems.
+ */
#include "Xlibint.h"
-#include "XlcPubI.h"
+#include "XlcGeneric.h"
+
+#ifndef MB_LEN_MAX
+#define MB_LEN_MAX 6
+#endif
+#if !defined(macII) && !defined(Lynx_22) && !defined(X_LOCALE)
+#define STDCVT
+#endif
+
+#define GR 0x80
+#define GL 0x7f
+
+typedef struct _StateRec *State;
typedef struct _StateRec {
- XlcCharSet charset;
- XlcCharSet GL_charset;
- XlcCharSet GR_charset;
- XlcConv ct_conv;
- int (*to_converter)();
-} StateRec, *State;
+ CodeSet GL_codeset;
+ CodeSet GR_codeset;
+ wchar_t wc_mask;
+ wchar_t wc_encode_mask;
+ Bool (*MBtoWC) (State state, const char *ch, wchar_t *wc);
+ Bool (*WCtoMB) (State state, wchar_t wc, char *ch);
+} StateRec;
+
+static
+Bool MBtoWCdef(
+ State state,
+ const char *ch,
+ wchar_t *wc)
+{
+ wchar_t wc_encoding;
+ CodeSet codeset = (*ch & GR) ? state->GR_codeset : state->GL_codeset;
+ if (!codeset)
+ return False;
+ wc_encoding = codeset->wc_encoding;
+ *wc = ((wchar_t) *ch & state->wc_mask) | wc_encoding;
+ return True;
+}
+
+#ifdef STDCVT
+static
+Bool MBtoWCstd(
+ State state,
+ const char *ch,
+ wchar_t *wc)
+{
+ return (mbtowc(wc, ch, 1) == 1);
+}
+#endif
+
+static
+Bool WCtoMBdef(
+ State state,
+ wchar_t wc,
+ char *ch)
+{
+ wchar_t wc_encoding = wc & state->wc_encode_mask;
+ CodeSet codeset;
+
+ codeset = state->GL_codeset;
+ if (codeset && (wc_encoding == codeset->wc_encoding)) {
+ *ch = wc & state->wc_mask;
+ return True;
+ }
+ codeset = state->GR_codeset;
+ if (codeset && (wc_encoding == codeset->wc_encoding)) {
+ *ch = (wc & state->wc_mask) | GR;
+ return True;
+ }
+ return False;
+}
+
+#ifdef STDCVT
+static
+Bool WCtoMBstd(
+ State state,
+ wchar_t wc,
+ char *ch)
+{
+ return (wctomb(ch, wc) == 1);
+}
+#endif
+
+static
+XlcCharSet get_charset(
+ State state,
+ char side)
+{
+ CodeSet codeset = side ? state->GR_codeset : state->GL_codeset;
+ if (codeset) {
+ int i;
+ XlcCharSet charset;
+ for (i = 0; i < codeset->num_charsets; i++) {
+ charset = codeset->charset_list[i];
+ if (*charset->ct_sequence != '\0')
+ return charset;
+ }
+ return *(codeset->charset_list);
+ }
+ return (XlcCharSet) NULL;
+}
static int
-strtostr(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+def_mbstowcs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
- register char *src, *dst;
- unsigned char side;
- register int length;
+ const char *src = (const char *) *from;
+ wchar_t *dst = (wchar_t *) * to;
+ State state = (State) conv->state;
+ int unconv = 0;
if (from == NULL || *from == NULL)
return 0;
- src = (char *) *from;
- dst = (char *) *to;
+ while (*from_left && *to_left) {
+ (*from_left)--;
+ if (state->MBtoWC (state, src++, dst)) {
+ dst++;
+ (*to_left)--;
+ } else {
+ unconv++;
+ }
+ }
+ *from = (XPointer) src;
+ *to = (XPointer) dst;
+ return unconv;
+}
- length = min(*from_left, *to_left);
+static int
+def_wcstombs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
+{
+ const wchar_t *src = (const wchar_t *) * from;
+ char *dst = (char *) *to;
+ State state = (State) conv->state;
+ char ch[MB_LEN_MAX];
+ int unconv = 0;
- if (num_args > 0) {
- side = (length > 0) ? *((unsigned char *) src) & 0x80 : 0;
- while (length-- > 0 && side == (*((unsigned char *) src) & 0x80))
- *dst++ = *src++;
- } else {
- while (length-- > 0)
- *dst++ = *src++;
+ if (from == NULL || *from == NULL)
+ return 0;
+
+ while (*from_left && *to_left) {
+ (*from_left)--;
+ if (state->WCtoMB (state, *src++, ch)) {
+ *dst++ = *ch;
+ (*to_left)--;
+ } else {
+ unconv++;
+ }
}
-
- *from_left -= src - (char *) *from;
*from = (XPointer) src;
- *to_left -= dst - (char *) *to;
*to = (XPointer) dst;
+ return unconv;
+}
- if (num_args > 0) {
- State state = (State) conv->state;
+static int
+mbstostr(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
+{
+ const char *src = (const char *) *from;
+ char *dst = (char *) *to;
+ CodeSet codeset;
+ State state = (State) conv->state;
+ char ch;
+ int unconv = 0;
- *((XlcCharSet *)args[0]) = side ? state->GR_charset : state->GL_charset;
- }
+ if (from == NULL || *from == NULL)
+ return 0;
- return 0;
+ while (*from_left && *to_left) {
+ ch = *src++;
+ (*from_left)--;
+
+ codeset = (ch & GR) ? state->GR_codeset : state->GL_codeset;
+ if (codeset && codeset->string_encoding) {
+ *dst++ = ch;
+ (*to_left)--;
+ } else {
+ unconv++;
+ }
+ }
+ *from = (XPointer) src;
+ *to = (XPointer) dst;
+ return unconv;
}
static int
-wcstostr(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+wcstostr(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
- register wchar_t *src, side;
- register char *dst;
- register int length;
+ const wchar_t *src = (const wchar_t *) *from;
+ char *dst = (char *) *to;
+ CodeSet codeset;
+ State state = (State) conv->state;
+ char ch[MB_LEN_MAX];
+ int unconv = 0;
if (from == NULL || *from == NULL)
return 0;
- src = (wchar_t *) *from;
- dst = (char *) *to;
+ while (*from_left && *to_left) {
+ (*from_left)--;
+ if (state->WCtoMB (state, *src++, ch)) {
+ codeset = (*ch & GR) ? state->GR_codeset : state->GL_codeset;
+ if (codeset && codeset->string_encoding) {
+ *dst++ = *ch;
+ (*to_left)--;
+ } else {
+ unconv++;
+ }
+ } else {
+ unconv++;
+ }
+ }
+ *from = (XPointer) src;
+ *to = (XPointer) dst;
+ return unconv;
+}
+
+static int
+mbstocs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
+{
+ const char *src = (const char *) *from;
+ char *dst = (char *) *to;
+ int length;
+ State state = (State) conv->state;
+ char cur_side;
+ int unconv = 0;
+
+ if (from == NULL || *from == NULL)
+ return 0;
length = min(*from_left, *to_left);
+ cur_side = *src & GR;
+ while (length) {
+ if ((char) (*src & GR) != cur_side)
+ break;
+ *dst++ = *src++;
+ length--;
+ }
+
if (num_args > 0) {
- side = (length > 0) ? *src & 0x80 : 0;
- while (length-- > 0 && side == (*src & 0x80))
- *dst++ = *src++;
- } else {
- while (length-- > 0)
- *dst++ = *src++;
+ XlcCharSet charset = get_charset(state, cur_side);
+ if (charset) {
+ *((XlcCharSet *) args[0]) = charset;
+ } else {
+ dst = *to;
+ unconv = -1;
+ }
}
-
- *from_left -= src - (wchar_t *) *from;
- *from = (XPointer) src;
+ *from_left -= src - (char *) *from;
*to_left -= dst - (char *) *to;
+ *from = (XPointer) src;
*to = (XPointer) dst;
+ return unconv;
+}
- if (num_args > 0) {
- State state = (State) conv->state;
+static int
+wcstocs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
+{
+ const wchar_t *src = (const wchar_t *) * from;
+ char *dst = (char *) *to;
+ State state = (State) conv->state;
+ char cur_side = 0, ch[MB_LEN_MAX];
+ int unconv = 0;
+ Bool found = False;
- *((XlcCharSet *)args[0]) = side ? state->GR_charset : state->GL_charset;
+ if (from == NULL || *from == NULL)
+ return 0;
+
+ while (*from_left) {
+ if ((found = state->WCtoMB (state, *src, ch)))
+ break;
+ unconv++;
+ src++;
+ (*from_left)--;
}
- return 0;
+ if (found) {
+ cur_side = *ch & GR;
+ while (*from_left && *to_left) {
+ (*from_left)--;
+ if (state->WCtoMB (state, *src++, ch)) {
+ if ((char) (*ch & GR) != cur_side) {
+ src--;
+ (*from_left)++;
+ break;
+ } else {
+ *dst++ = *ch;
+ (*to_left)--;
+ }
+ } else {
+ unconv++;
+ }
+ }
+ } else {
+ unconv++;
+ }
+
+ if (num_args > 0) {
+ XlcCharSet charset = get_charset(state, cur_side);
+ if (charset) {
+ *((XlcCharSet *) args[0]) = charset;
+ } else {
+ unconv = -1;
+ }
+ }
+ *from = (XPointer) src;
+ *to = (XPointer) dst;
+ return unconv;
}
static int
-cstostr(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+cstombs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
- register char *src, *dst;
- unsigned char side;
- register int length;
+ const char *src = (const char *) *from;
+ char *dst = (char *) *to;
+ CodeSet codeset;
+ XlcCharSet charset;
+ State state = (State) conv->state;
+ unsigned char cur_side = 0;
+ int i;
+ Bool found = False;
if (from == NULL || *from == NULL)
return 0;
if (num_args > 0) {
- State state = (State) conv->state;
- XlcCharSet charset = (XlcCharSet) args[0];
-
- if (charset != state->GL_charset && charset != state->GR_charset)
+ charset = (XlcCharSet) args[0];
+ if (charset == NULL)
return -1;
+ } else {
+ return -1;
}
- src = (char *) *from;
- dst = (char *) *to;
-
- length = min(*from_left, *to_left);
-
- if (num_args > 0) {
- side = (length > 0) ? *((unsigned char *) src) & 0x80 : 0;
- while (length-- > 0 && side == (*((unsigned char *) src) & 0x80))
- *dst++ = *src++;
+ if ((charset->side == XlcGL) || (charset->side == XlcGLGR)) {
+ codeset = state->GL_codeset;
+ if (codeset) {
+ for (i = 0; i < codeset->num_charsets; i++)
+ if (charset == codeset->charset_list[i]) {
+ found = True;
+ cur_side = 0;
+ break;
+ }
+ }
+ }
+ if (!found && ((charset->side == XlcGR) || (charset->side == XlcGLGR))) {
+ codeset = state->GR_codeset;
+ if (codeset) {
+ for (i = 0; i < codeset->num_charsets; i++)
+ if (charset == codeset->charset_list[i]) {
+ found = True;
+ cur_side = GR;
+ break;
+ }
+ }
+ }
+ if (found) {
+ int length = min(*from_left, *to_left);
+ while (length) {
+ *dst++ = *src++ | cur_side;
+ length--;
+ }
} else {
- while (length-- > 0)
- *dst++ = *src++;
+ return -1;
}
-
+
*from_left -= src - (char *) *from;
- *from = (XPointer) src;
*to_left -= dst - (char *) *to;
+ *from = (XPointer) src;
*to = (XPointer) dst;
-
- if (num_args > 0) {
- State state = (State) conv->state;
-
- *((XlcCharSet *)args[0]) = side ? state->GR_charset : state->GL_charset;
- }
-
return 0;
}
static int
-strtowcs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+cstowcs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
- register char *src;
- register wchar_t *dst;
- register int length;
+ const char *src = (const char *) *from;
+ wchar_t *dst = (wchar_t *) * to;
+ CodeSet codeset;
+ XlcCharSet charset;
+ State state = (State) conv->state;
+ Bool found = False;
+ int i, unconv = 0;
+ unsigned char cur_side = 0;
if (from == NULL || *from == NULL)
return 0;
if (num_args > 0) {
- State state = (State) conv->state;
- XlcCharSet charset = (XlcCharSet) args[0];
-
- if (charset != state->GL_charset && charset != state->GR_charset)
+ charset = (XlcCharSet) args[0];
+ if (charset == NULL)
return -1;
+ } else {
+ return -1;
+ }
+
+ if ((charset->side == XlcGL) || (charset->side == XlcGLGR)) {
+ codeset = state->GL_codeset;
+ if (codeset) {
+ for (i = 0; i < codeset->num_charsets; i++)
+ if (charset == codeset->charset_list[i]) {
+ found = True;
+ cur_side = 0;
+ break;
+ }
+ }
}
+ if (!found && ((charset->side == XlcGR) || (charset->side == XlcGLGR))) {
+ codeset = state->GR_codeset;
+ if (codeset) {
+ for (i = 0; i < codeset->num_charsets; i++)
+ if (charset == codeset->charset_list[i]) {
+ found = True;
+ cur_side = GR;
+ break;
+ }
+ }
+ }
+ if (found) {
+ char ch;
+ while (*from_left && *to_left) {
+ ch = *src++ | cur_side;
+ (*from_left)--;
+ if (state->MBtoWC (state, &ch, dst)) {
+ dst++;
+ (*to_left)--;
+ } else {
+ unconv++;
+ }
+ }
+ } else {
+ return -1;
+ }
+ *from = (XPointer) src;
+ *to = (XPointer) dst;
+ return unconv;
+}
- src = (char *) *from;
- dst = (wchar_t *) *to;
+static int
+strtombs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
+{
+ const char *src = (const char *) *from;
+ char *dst = (char *) *to;
+ int length;
+
+ if (from == NULL || *from == NULL)
+ return 0;
length = min(*from_left, *to_left);
+ while (length) {
+ *dst++ = *src++;
+ length--;
+ }
- while (length-- > 0)
- *dst++ = (wchar_t) *src++;
-
*from_left -= src - (char *) *from;
+ *to_left -= dst - (char *) *to;
*from = (XPointer) src;
- *to_left -= dst - (wchar_t *) *to;
*to = (XPointer) dst;
-
return 0;
}
-
static void
-close_converter(conv)
- XlcConv conv;
+close_converter(
+ XlcConv conv)
{
if (conv->state)
Xfree((char *) conv->state);
@@ -231,132 +569,222 @@ close_converter(conv)
}
static XlcConv
-create_conv(methods)
- XlcConvMethods methods;
+create_conv(
+ XLCd lcd,
+ XlcConvMethods methods)
{
- register XlcConv conv;
+ XlcConv conv;
State state;
- static XlcCharSet GL_charset = NULL;
- static XlcCharSet GR_charset = NULL;
-
- if (GL_charset == NULL) {
- GL_charset = _XlcGetCharSet("ISO8859-1:GL");
- GR_charset = _XlcGetCharSet("ISO8859-1:GR");
- }
conv = (XlcConv) Xmalloc(sizeof(XlcConvRec));
if (conv == NULL)
return (XlcConv) NULL;
state = (State) Xmalloc(sizeof(StateRec));
- if (state == NULL)
- goto err;
-
- state->GL_charset = state->charset = GL_charset;
- state->GR_charset = GR_charset;
+ if (state == NULL) {
+ close_converter(conv);
+ return (XlcConv) NULL;
+ }
+ state->GL_codeset = XLC_GENERIC(lcd, initial_state_GL);
+ state->GR_codeset = XLC_GENERIC(lcd, initial_state_GR);
+ state->wc_mask = (1 << XLC_GENERIC(lcd, wc_shift_bits)) - 1;
+ state->wc_encode_mask = XLC_GENERIC(lcd, wc_encode_mask);
+
+#ifdef STDCVT
+ if (XLC_GENERIC(lcd, use_stdc_env) == True)
+ state->MBtoWC = &MBtoWCstd;
+ else
+#endif
+ state->MBtoWC = &MBtoWCdef;
+
+#ifdef STDCVT
+ if (XLC_GENERIC(lcd, use_stdc_env) == True)
+ state->WCtoMB = &WCtoMBstd;
+ else
+#endif
+ state->WCtoMB = &WCtoMBdef;
conv->methods = methods;
conv->state = (XPointer) state;
return conv;
+}
-err:
- close_converter(conv);
+static XlcConvMethodsRec mbstowcs_methods = {
+ close_converter,
+ def_mbstowcs,
+ NULL
+};
- return (XlcConv) NULL;
+static XlcConv
+open_mbstowcs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
+{
+ return create_conv(from_lcd, &mbstowcs_methods);
}
-static XlcConvMethodsRec strtostr_methods = {
+static XlcConvMethodsRec mbstostr_methods = {
close_converter,
- strtostr,
+ mbstostr,
NULL
-} ;
+};
static XlcConv
-open_strtostr(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_mbstostr(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
- return create_conv(&strtostr_methods);
+ return create_conv(from_lcd, &mbstostr_methods);
+}
+
+static XlcConvMethodsRec mbstocs_methods = {
+ close_converter,
+ mbstocs,
+ NULL
+};
+
+static XlcConv
+open_mbstocs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
+{
+ return create_conv(from_lcd, &mbstocs_methods);
+}
+
+static XlcConvMethodsRec wcstombs_methods = {
+ close_converter,
+ def_wcstombs,
+ NULL
+};
+
+static XlcConv
+open_wcstombs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
+{
+ return create_conv(from_lcd, &wcstombs_methods);
}
static XlcConvMethodsRec wcstostr_methods = {
close_converter,
wcstostr,
NULL
-} ;
+};
+
+static XlcConv
+open_wcstostr(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
+{
+ return create_conv(from_lcd, &wcstostr_methods);
+}
+
+static XlcConvMethodsRec wcstocs_methods = {
+ close_converter,
+ wcstocs,
+ NULL
+};
+
+static XlcConv
+open_wcstocs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
+{
+ return create_conv(from_lcd, &wcstocs_methods);
+}
+
+static XlcConvMethodsRec strtombs_methods = {
+ close_converter,
+ strtombs,
+ NULL
+};
static XlcConv
-open_wcstostr(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_strtombs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
- return create_conv(&wcstostr_methods);
+ return create_conv(from_lcd, &strtombs_methods);
}
-static XlcConvMethodsRec cstostr_methods = {
+static XlcConvMethodsRec cstombs_methods = {
close_converter,
- cstostr,
+ cstombs,
NULL
-} ;
+};
static XlcConv
-open_cstostr(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_cstombs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
- return create_conv(&cstostr_methods);
+ return create_conv(from_lcd, &cstombs_methods);
}
-static XlcConvMethodsRec strtowcs_methods = {
+static XlcConvMethodsRec cstowcs_methods = {
close_converter,
- strtowcs,
+ cstowcs,
NULL
-} ;
+};
static XlcConv
-open_strtowcs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_cstowcs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
- return create_conv(&strtowcs_methods);
+ return create_conv(from_lcd, &cstowcs_methods);
}
XLCd
-_XlcDefaultLoader(name)
- char *name;
+_XlcDefaultLoader(
+ const char *name)
{
XLCd lcd;
- if (strcmp(name, "C"))
- return (XLCd) NULL;
+ lcd = _XlcCreateLC(name, _XlcGenericMethods);
+ if (lcd == NULL)
+ return lcd;
- lcd = _XlcCreateLC(name, _XlcPublicMethods);
+ if (XLC_PUBLIC(lcd, mb_cur_max) != 1){
+ _XlcDestroyLC(lcd);
+ return (XLCd) NULL;
+ }
- _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNWideChar, open_strtowcs);
- _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNCompoundText, open_strtostr);
- _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNString, open_strtostr);
- _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNCharSet, open_strtostr);
- _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNChar, open_strtostr);/* XXX */
+ _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNWideChar, open_mbstowcs);
+ _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNString, open_mbstostr);
+ _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNCharSet, open_mbstocs);
+ _XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNChar, open_mbstocs);
- _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNMultiByte, open_wcstostr);
- _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNCompoundText, open_wcstostr);
+ _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNMultiByte, open_wcstombs);
_XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNString, open_wcstostr);
- _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNCharSet, open_wcstostr);
+ _XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNCharSet, open_wcstocs);
+
+ _XlcSetConverter(lcd, XlcNString, lcd, XlcNMultiByte, open_strtombs);
+ _XlcSetConverter(lcd, XlcNString, lcd, XlcNWideChar, open_mbstowcs);
- _XlcSetConverter(lcd, XlcNString, lcd, XlcNMultiByte, open_strtostr);
- _XlcSetConverter(lcd, XlcNString, lcd, XlcNWideChar, open_strtowcs);
+ _XlcSetConverter(lcd, XlcNCharSet, lcd, XlcNMultiByte, open_cstombs);
+ _XlcSetConverter(lcd, XlcNCharSet, lcd, XlcNWideChar, open_cstowcs);
- _XlcSetConverter(lcd, XlcNCharSet, lcd, XlcNMultiByte, open_cstostr);
- _XlcSetConverter(lcd, XlcNCharSet, lcd, XlcNWideChar, open_strtowcs);
+ _XlcAddUtf8Converters(lcd);
return lcd;
}
diff --git a/modules/lc/gen/lcGenConv.c b/modules/lc/gen/lcGenConv.c
index 39405609..1720a8f2 100644
--- a/modules/lc/gen/lcGenConv.c
+++ b/modules/lc/gen/lcGenConv.c
@@ -31,13 +31,28 @@
* Modifier: Masayoshi Shimamura FUJITSU LIMITED
*
*/
+/*
+ * 2000
+ * Modifier: Ivan Pascal The XFree86 Project
+ */
+/* $XFree86: xc/lib/X11/lcGenConv.c,v 3.27tsi Exp $ */
+/*
+ * A generic locale loader for all kinds of ISO-2022 based codesets.
+ * Supports: all locales.
+ * How: Provides generic converters for ISO-2022 based codesets. Extensible as
+ * far as ISO-2022 is extensible: codesets can be given by name in the
+ * stream. Overall distinction between GL (0x00..0x7f) and GR (0x80..0xff).
+ * In every chunk between escape sequences, the number of bytes per
+ * character (char_size) is constant.
+ * Platforms: all systems.
+ */
#include "Xlibint.h"
#include "XlcGeneric.h"
#include <stdio.h>
-#if !defined(X_NOT_STDC_ENV) && !defined(macII) && !defined(X_LOCALE)
+#if !defined(macII) && !defined(Lynx_22) && !defined(X_LOCALE)
#define STDCVT
#endif
@@ -46,9 +61,6 @@ typedef struct _CTDataRec {
char *encoding; /* Compound Text encoding */
} CTDataRec, *CTData;
-extern CTDataRec *default_ct_data_list();
-extern size_t default_ct_data_list_num();
-
static CTDataRec directionality_data[] =
{
{ "BEGIN_LEFT-TO-RIGHT_TEXT", "\2331]" },
@@ -58,9 +70,13 @@ static CTDataRec directionality_data[] =
typedef struct _StateRec {
XLCd lcd;
+ /* CT state */
XlcCharSet charset; /* charset of current state */
XlcCharSet GL_charset; /* charset of initial state in GL */
XlcCharSet GR_charset; /* charset of initial state in GR */
+ /* MB shift state */
+ CodeSet GL_codeset;
+ CodeSet GR_codeset;
} StateRec, *State;
#define GR 0x80 /* begins right-side (non-ascii) region */
@@ -69,26 +85,28 @@ typedef struct _StateRec {
#define CSI 0x9b
#define STX 0x02
-#define isleftside(c) (((c) & GR) ? 0 : 1)
-#define isrightside(c) (!isleftside(c))
-
+#define isrightside(c) ((c) & GR)
+#define isleftside(c) (!isrightside(c))
/* Forward declarations for local routines. */
-static int mbstocts();
-static int ctstombs();
-
+static int mbstocts (XlcConv conv, XPointer *from, int *from_left,
+ XPointer *to, int *to_left, XPointer *args, int num_args);
+static int ctstombs (XlcConv conv, XPointer *from, int *from_left,
+ XPointer *to, int *to_left, XPointer *args, int num_args);
+static int cstombs (XlcConv conv, XPointer *from, int *from_left,
+ XPointer *to, int *to_left, XPointer *args, int num_args);
/* ------------------------------------------------------------------------- */
/* Misc */
/* ------------------------------------------------------------------------- */
static int
-compare(src, encoding, length)
- register char *src;
- register char *encoding;
- register int length;
+compare(
+ const char *src,
+ const char *encoding,
+ int length)
{
- char *start = src;
+ const char *start = src;
while (length-- > 0) {
if (*src++ != *encoding++)
@@ -101,9 +119,9 @@ compare(src, encoding, length)
}
static unsigned long
-conv_to_dest(conv, code)
- Conversion conv;
- unsigned long code;
+conv_to_dest(
+ Conversion conv,
+ unsigned long code)
{
int i;
int conv_num = conv->conv_num;
@@ -126,9 +144,9 @@ conv_to_dest(conv, code)
}
static unsigned long
-conv_to_source(conv, code)
- Conversion conv;
- unsigned long code;
+conv_to_source(
+ Conversion conv,
+ unsigned long code)
{
int i;
int conv_num;
@@ -145,17 +163,16 @@ conv_to_source(conv, code)
convlist = conv->convlist;
for (i = 0; i < conv_num; i++) {
- start_p = convlist[i].start + convlist[i].shift;
- start_m = convlist[i].start - convlist[i].shift;
- end_p = convlist[i].end + convlist[i].shift;
- end_m = convlist[i].end - convlist[i].shift;
-
switch (convlist[i].shift_direction) {
case '+':
+ start_p = convlist[i].start + convlist[i].shift;
+ end_p = convlist[i].end + convlist[i].shift;
if (start_p <= code && code <= end_p)
return(code - convlist[i].shift);
break;
case '-':
+ start_m = convlist[i].start - convlist[i].shift;
+ end_m = convlist[i].end - convlist[i].shift;
if (start_m <= code && code <= end_m)
return(code + convlist[i].shift);
break;
@@ -168,9 +185,9 @@ conv_to_source(conv, code)
}
static unsigned long
-mb_to_gi(mb, codeset)
- unsigned long mb;
- CodeSet codeset;
+mb_to_gi(
+ unsigned long mb,
+ CodeSet codeset)
{
int i;
unsigned long mb_tmp, mask = 0;
@@ -193,9 +210,9 @@ mb_to_gi(mb, codeset)
}
static unsigned long
-gi_to_mb(glyph_index, codeset)
- unsigned long glyph_index;
- CodeSet codeset;
+gi_to_mb(
+ unsigned long glyph_index,
+ CodeSet codeset)
{
int i;
unsigned long mask = 0;
@@ -213,19 +230,18 @@ gi_to_mb(glyph_index, codeset)
}
static Bool
-gi_to_wc(lcd, glyph_index, codeset, wc)
- XLCd lcd;
- unsigned long glyph_index;
- CodeSet codeset;
- wchar_t *wc;
+gi_to_wc(
+ XLCd lcd,
+ unsigned long glyph_index,
+ CodeSet codeset,
+ wchar_t *wc)
{
unsigned char mask = 0;
unsigned long wc_encoding = codeset->wc_encoding;
- int i, length = codeset->length;
+ int length = codeset->length;
unsigned long wc_shift_bits = XLC_GENERIC(lcd, wc_shift_bits);
- for (i = wc_shift_bits; i > 0; i--)
- mask = (mask << 1) | 0x01;
+ mask = (1 << wc_shift_bits) - 1 ;
for (*wc = 0, length--; length >= 0; length--)
*wc = (*wc << wc_shift_bits) | ((glyph_index >> (length * 8 )) & mask);
@@ -236,11 +252,11 @@ gi_to_wc(lcd, glyph_index, codeset, wc)
}
static Bool
-wc_to_gi(lcd, wc, glyph_index, codeset)
- XLCd lcd;
- wchar_t wc;
- unsigned long *glyph_index;
- CodeSet *codeset;
+wc_to_gi(
+ XLCd lcd,
+ wchar_t wc,
+ unsigned long *glyph_index,
+ CodeSet *codeset)
{
int i;
unsigned char mask = 0;
@@ -260,8 +276,7 @@ wc_to_gi(lcd, wc, glyph_index, codeset)
if (*codeset == NULL)
return(False);
- for (i = wc_shift_bits; i > 0; i--)
- mask = (mask << 1) | 0x01;
+ mask = (1 << wc_shift_bits) - 1 ;
wc = wc & ~wc_encode_mask;
for (*glyph_index = 0, i = (*codeset)->length - 1; i >= 0; i--)
@@ -272,9 +287,40 @@ wc_to_gi(lcd, wc, glyph_index, codeset)
}
static CodeSet
-byteM_parse_codeset(lcd, inbufptr)
- XLCd lcd;
- XPointer inbufptr;
+mb_parse_codeset(
+ State state,
+ int num,
+ const char **inbufptr,
+ int *from_left)
+{
+ int len;
+ int from_len = (*from_left) + 1;
+ const char *src = (*inbufptr) - 1;
+ ParseInfo *mb_parse_list = XLC_GENERIC(state->lcd, mb_parse_list);
+ ParseInfo parse_info;
+ CodeSet codeset;
+
+ for (--num ; (parse_info = mb_parse_list[num]) != NULL; num++) {
+ len = compare(src, parse_info->encoding, from_len);
+ if (len > 0) {
+ codeset = parse_info->codeset;
+ if (parse_info->type == E_LSL)
+ state->GL_codeset = codeset;
+ else if (parse_info->type == E_LSR)
+ state->GR_codeset = codeset;
+ --len;
+ *inbufptr += len;
+ *from_left -= len;
+ return codeset;
+ }
+ }
+ return (CodeSet) NULL;
+}
+
+static CodeSet
+byteM_parse_codeset(
+ XLCd lcd,
+ const char *inbufptr)
{
unsigned char ch;
CodeSet codeset;
@@ -282,7 +328,7 @@ byteM_parse_codeset(lcd, inbufptr)
ByteInfoListRec byteM_rec;
ByteInfo byteinfo;
ByteInfoRec byteinfo_rec;
- Bool hit;
+ Bool hit = False;
int i, j, k;
int codeset_num = XLC_GENERIC(lcd, codeset_num);
@@ -299,7 +345,7 @@ byteM_parse_codeset(lcd, inbufptr)
byteM_rec = byteM[j];
byteinfo = byteM_rec.byteinfo;
- for (hit=False,k=0; k < byteM_rec.byteinfo_num; k++) {
+ for (hit = False, k = 0; k < byteM_rec.byteinfo_num; k++) {
byteinfo_rec = byteinfo[k];
if (byteinfo_rec.start <= ch && ch <= byteinfo_rec.end) {
hit = True;
@@ -318,51 +364,22 @@ byteM_parse_codeset(lcd, inbufptr)
return(NULL);
}
-static CodeSet
-GLGR_parse_codeset(lcd, ch)
- XLCd lcd;
- unsigned char ch;
-{
- int i;
- CodeSet initial_state_GL = XLC_GENERIC(lcd, initial_state_GL);
- CodeSet initial_state_GR = XLC_GENERIC(lcd, initial_state_GR);
- CodeSet *codeset_list = XLC_GENERIC(lcd, codeset_list);
- int codeset_num = XLC_GENERIC(lcd, codeset_num);
-
- XlcSide side = XlcGL;
- CodeSet codeset = initial_state_GL;
-
- if (isrightside(ch)) {
- side = XlcGR;
- codeset = initial_state_GR;
- }
-
- if (codeset)
- return(codeset);
-
- for (i = 0; i < codeset_num; i++) {
- codeset = codeset_list[i];
- if (codeset->side == side)
- return(codeset);
- }
-
- return(NULL);
-}
+#define GLGR_parse_codeset(ch) \
+ (isrightside(ch) ? (state->GR_codeset) : \
+ (state->GL_codeset) )
static XlcCharSet
-gi_parse_charset(glyph_index, codeset)
- unsigned long glyph_index;
- CodeSet codeset;
+gi_parse_charset(
+ unsigned long glyph_index,
+ CodeSet codeset)
{
int i;
XlcCharSet *charset_list = codeset->charset_list;
int num_charsets = codeset->num_charsets;
ExtdSegment ctextseg = codeset->ctextseg;
- XlcCharSet charset;
+ XlcCharSet charset = NULL;
int area_num;
FontScope area;
- CTDataRec *default_ct_data = default_ct_data_list();
- size_t table_size = default_ct_data_list_num();
/* lockup ct sequence */
for (i = 0; i < num_charsets; i++) {
@@ -373,15 +390,9 @@ gi_parse_charset(glyph_index, codeset)
if (i >= num_charsets)
return(NULL);
- /* Standard Character Set Encoding ? */
- for (i = 0; i < table_size; i++)
- if (compare(charset->ct_sequence,
- default_ct_data[i].encoding, strlen(charset->ct_sequence)))
- goto check_extended_seg;
-
- return(charset);
+ if (charset->source != CSsrcStd)
+ return (charset);
-check_extended_seg:
if (!ctextseg)
return(charset);
@@ -405,9 +416,9 @@ check_extended_seg:
}
static Bool
-ct_parse_csi(inbufptr, ctr_seq_len)
- XPointer inbufptr;
- int *ctr_seq_len;
+ct_parse_csi(
+ const char *inbufptr,
+ int *ctr_seq_len)
{
int i;
int num = sizeof(directionality_data) / sizeof(directionality_data[0]);
@@ -425,15 +436,14 @@ ct_parse_csi(inbufptr, ctr_seq_len)
}
static int
-cmp_esc_sequence(inbufptr, ct_sequence, encoding_name)
- XPointer inbufptr;
- char *ct_sequence;
- char *encoding_name;
+cmp_esc_sequence(
+ const char *inbufptr,
+ XlcCharSet charset)
{
- int i, seq_len, name_len, total_len;
+ int seq_len, name_len, total_len;
unsigned char byte_m, byte_l;
- CTDataRec *default_ct_data = default_ct_data_list();
- size_t table_size = default_ct_data_list_num();
+ const char *ct_sequence = charset->ct_sequence;
+ const char *encoding_name = charset->encoding_name;
/* check esc sequence */
if ( !(seq_len = strlen(ct_sequence) ) )
@@ -442,49 +452,48 @@ cmp_esc_sequence(inbufptr, ct_sequence, encoding_name)
return(0);
/* Standard Character Set Encoding ? */
- for (i = 0; i < table_size; i++) {
- if (compare(ct_sequence,
- default_ct_data[i].encoding, strlen(ct_sequence)))
- return(seq_len);
- }
+ if (charset->source == CSsrcStd)
+ return(seq_len);
/*
* Non-Standard Character Set Encoding
*
- * +-----+-----+-----+-----+-----+-----+-----+---- ----+-----+-----+
- * | esc sequence | M | L | encoding name | STX |
- * +-----+-----+-----+-----+-----+-----+-----+---- ----+-----+-----+
- * 4bytes 1byte 1byte variable length 1byte
- * | |
- * +-----------------------------------------+
- * name length = ((M - 128) * 128) + (L - 128)
+ * +--- ---+-----+-----+-----+---- ----+-----+-----+------- ------+
+ * | ctseq | M | L | encoding name | STX | contents |
+ * +--- ---+-----+-----+-----+---- ----+-----+-----+------- ------+
+ * 4bytes 1byte 1byte variable length 1byte variable length
+ * | |
+ * +----------------------------------------------+
+ * rest length = ((M - 128) * 128) + (L - 128)
*/
/* get length of encoding name */
inbufptr += seq_len;
byte_m = *inbufptr++;
byte_l = *inbufptr++;
- name_len = ((byte_m - 128) * 128) + (byte_l - 128);
- total_len = seq_len + name_len;
+ name_len = strlen(encoding_name);
- /* compare encoding names */
- if ( strncmp(inbufptr, encoding_name, name_len - 3) != 0 )
+ if (((byte_m - 128) * 128 + (byte_l - 128) - 1) < name_len)
+ return(0);
+
+ if ( _XlcNCompareISOLatin1(inbufptr, encoding_name, name_len) != 0 )
return(0);
/* check STX (Start of Text) */
- inbufptr = inbufptr + name_len - 3;
+ inbufptr = inbufptr + name_len;
if ( *inbufptr != STX )
return(0);
+ total_len = seq_len + name_len + 3;
return(total_len);
}
static Bool
-ct_parse_charset(lcd, inbufptr, charset, ctr_seq_len)
- XLCd lcd;
- XPointer inbufptr;
- XlcCharSet *charset;
- int *ctr_seq_len;
+ct_parse_charset(
+ XLCd lcd,
+ const char *inbufptr,
+ XlcCharSet *charset,
+ int *ctr_seq_len)
{
int i, j;
ExtdSegment ctextseg;
@@ -496,7 +505,6 @@ ct_parse_charset(lcd, inbufptr, charset, ctr_seq_len)
int segment_conv_num = XLC_GENERIC(lcd, segment_conv_num);
SegConv segment_conv = XLC_GENERIC(lcd, segment_conv);
-
/* get charset from XLC_XLOCALE by escape sequence */
for (i = 0; i < codeset_num; i++) {
@@ -508,15 +516,13 @@ ct_parse_charset(lcd, inbufptr, charset, ctr_seq_len)
for (j = 0; j < num_charsets; j++) {
*charset = charset_list[j];
- if (( *ctr_seq_len = cmp_esc_sequence(inbufptr,
- (*charset)->ct_sequence, (*charset)->encoding_name) ))
+ if ((*ctr_seq_len = cmp_esc_sequence(inbufptr, *charset)))
return(True);
}
if (ctextseg) {
*charset = ctextseg->charset;
- if (( *ctr_seq_len = cmp_esc_sequence(inbufptr,
- (*charset)->ct_sequence, (*charset)->encoding_name) ))
+ if ((*ctr_seq_len = cmp_esc_sequence(inbufptr, *charset)))
return(True);
}
}
@@ -528,23 +534,21 @@ ct_parse_charset(lcd, inbufptr, charset, ctr_seq_len)
for (i = 0; i < segment_conv_num; i++) {
*charset = segment_conv[i].source;
- if (( *ctr_seq_len = cmp_esc_sequence(inbufptr,
- (*charset)->ct_sequence, (*charset)->encoding_name) ))
+ if ((*ctr_seq_len = cmp_esc_sequence(inbufptr, *charset)))
return(True);
*charset = segment_conv[i].dest;
- if (( *ctr_seq_len = cmp_esc_sequence(inbufptr,
- (*charset)->ct_sequence, (*charset)->encoding_name) ))
+ if ((*ctr_seq_len = cmp_esc_sequence(inbufptr, *charset)))
return(True);
}
-
+
return(False);
}
static Bool
-segment_conversion(lcd, charset, glyph_index)
- XLCd lcd;
- XlcCharSet *charset;
- unsigned long *glyph_index;
+segment_conversion(
+ XLCd lcd,
+ XlcCharSet *charset,
+ unsigned long *glyph_index)
{
int i;
int segment_conv_num = XLC_GENERIC(lcd, segment_conv_num);
@@ -575,10 +579,10 @@ segment_conversion(lcd, charset, glyph_index)
return(True);
}
-CodeSet
-_XlcGetCodeSetFromName(lcd, name)
- XLCd lcd;
- char *name;
+static CodeSet
+_XlcGetCodeSetFromName(
+ XLCd lcd,
+ const char *name)
{
int i, j;
XlcCharSet charset;
@@ -609,21 +613,19 @@ _XlcGetCodeSetFromName(lcd, name)
}
static Bool
-_XlcGetCodeSetFromCharSet(lcd, charset, codeset, glyph_index)
- XLCd lcd;
- XlcCharSet charset;
- CodeSet *codeset;
- unsigned long *glyph_index;
+_XlcGetCodeSetFromCharSet(
+ XLCd lcd,
+ XlcCharSet charset,
+ CodeSet *codeset,
+ unsigned long *glyph_index)
{
- int i, j, num;
+ int j, num;
CodeSet *codeset_list = XLC_GENERIC(lcd, codeset_list);
XlcCharSet *charset_list;
int codeset_num, num_charsets;
Conversion ctconv;
- unsigned long glyph_index_tmp;
+ unsigned long glyph_index_tmp = 0;
ExtdSegment ctextseg;
- CTDataRec *default_ct_data = default_ct_data_list();
- size_t table_size = default_ct_data_list_num();
codeset_num = XLC_GENERIC(lcd, codeset_num);
@@ -637,14 +639,7 @@ _XlcGetCodeSetFromCharSet(lcd, charset, codeset, glyph_index)
glyph_index_tmp = conv_to_source(ctconv, *glyph_index);
- /* Standard Character Set Encoding ? */
- for (i = 0; i < table_size; i++) {
- if (compare(charset->ct_sequence,
- default_ct_data[i].encoding, strlen(charset->ct_sequence)))
- break;
- }
-
- if (i < table_size) {
+ if (charset->source == CSsrcStd) {
/* Standard Character Set Encoding */
if (glyph_index_tmp == *glyph_index) {
@@ -665,7 +660,7 @@ _XlcGetCodeSetFromCharSet(lcd, charset, codeset, glyph_index)
}
if (glyph_index_tmp != *glyph_index) {
- if (ctextseg->charset == charset) {
+ if (ctextseg && ctextseg->charset == charset) {
goto end_loop;
}
}
@@ -683,37 +678,19 @@ end_loop:
return(False);
}
-static Bool
-check_string_encoding(codeset)
- CodeSet codeset;
-{
- int i;
- XlcCharSet charset;
- XlcCharSet *charset_list = codeset->charset_list;
- int num_charsets = codeset->num_charsets;
-
- for (i = 0; i < num_charsets; i++) {
- charset = charset_list[i];
- if ( strcmp(charset->encoding_name, "ISO8859-1") == 0 ||
- charset->string_encoding)
- return(True);
- }
-
- return(False);
-}
+#define check_string_encoding(codeset) (codeset->string_encoding)
static void
-output_ulong_value(outbufptr, code, length, side)
- XPointer outbufptr;
- unsigned long code;
- int length;
- XlcSide side;
+output_ulong_value(
+ char *outbufptr,
+ unsigned long code,
+ int length,
+ XlcSide side)
{
int i;
- unsigned long mask = 0xff;
- for (i = 0; i < length; i++) {
- *outbufptr = ( code >> (8 * (length - i - 1)) ) & mask;
+ for (i = (length - 1) * 8; i >= 0; i -= 8) {
+ *outbufptr = ( code >> i) & 0xff;
if (side == XlcC0 || side == XlcGL) {
*outbufptr = *outbufptr & GL;
@@ -729,16 +706,23 @@ output_ulong_value(outbufptr, code, length, side)
/* Init */
/* -------------------------------------------------------------------------- */
+static XlcCharSet default_GL_charset = 0;
+static XlcCharSet default_GR_charset = 0;
+
static void
-init_state(conv)
- XlcConv conv;
+init_state(
+ XlcConv conv)
{
- register State state = (State) conv->state;
+ State state = (State) conv->state;
/* for CT */
state->charset = NULL;
- state->GL_charset = _XlcGetCharSet("ISO8859-1:GL");
- state->GR_charset = _XlcGetCharSet("ISO8859-1:GR");
+ state->GL_charset = default_GL_charset;
+ state->GR_charset = default_GR_charset;
+
+ /* for MB shift state */
+ state->GL_codeset = XLC_GENERIC(state->lcd, initial_state_GL);
+ state->GR_codeset = XLC_GENERIC(state->lcd, initial_state_GR);
}
/* -------------------------------------------------------------------------- */
@@ -746,14 +730,14 @@ init_state(conv)
/* -------------------------------------------------------------------------- */
static int
-mbstowcs_org(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+mbstowcs_org(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
State state = (State) conv->state;
XLCd lcd = state->lcd;
@@ -765,18 +749,19 @@ mbstowcs_org(conv, from, from_left, to, to_left, args, num_args)
int length = 0, len_left = 0;
int unconv_num = 0;
int num;
- Bool ss_flag = 0;
CodeSet codeset = NULL;
- ParseInfo parse_info;
- XPointer inbufptr = *from;
+ const char *inbufptr = *from;
wchar_t *outbufptr = (wchar_t *) *to;
int from_size = *from_left;
unsigned char *mb_parse_table = XLC_GENERIC(lcd, mb_parse_table);
- ParseInfo *mb_parse_list = XLC_GENERIC(lcd, mb_parse_list);
+ if (from == NULL || *from == NULL) {
+ _XlcResetConverter(conv);
+ return( 0 );
+ }
if (*from_left > *to_left)
*from_left = *to_left;
@@ -805,25 +790,21 @@ mbstowcs_org(conv, from, from_left, to, to_left, args, num_args)
goto output_one_wc;
/* next mb char data for single shift ? */
- if (mb_parse_table) {
- if ((num = mb_parse_table[ch]) > 0) {
- parse_info = mb_parse_list[num - 1];
-
- codeset = parse_info->codeset;
+ if (mb_parse_table && (num = mb_parse_table[ch]) ) {
+ codeset = mb_parse_codeset(state, num, &inbufptr, from_left);
+ if (codeset != NULL) {
length = len_left = codeset->length;
mb = 0;
- ss_flag = 1;
-
continue;
}
- }
+ }
/* next mb char data for byteM ? */
if ((codeset = byteM_parse_codeset(lcd, (inbufptr - 1))))
goto next_mb_char;
/* next mb char data for GL or GR side ? */
- if ((codeset = GLGR_parse_codeset(lcd, ch)))
+ if ((codeset = GLGR_parse_codeset(ch)))
goto next_mb_char;
/* can't find codeset for the ch */
@@ -833,7 +814,6 @@ mbstowcs_org(conv, from, from_left, to, to_left, args, num_args)
next_mb_char:
length = len_left = codeset->length;
mb = 0;
- ss_flag = 0;
output_one_wc:
mb = (mb << 8) | ch; /* 1 byte left shift */
@@ -850,29 +830,29 @@ output_one_wc:
/* error check on last char */
if (len_left) {
- inbufptr -= (length - len_left + ss_flag);
- (*from_left) += (length - len_left + ss_flag);
- unconv_num += (length - len_left + ss_flag);
+ inbufptr -= (length - len_left);
+ (*from_left) += (length - len_left);
+ unconv_num += (length - len_left);
}
- *from = *from + from_size;
+ *from = (XPointer) ((const char *) *from + from_size);
*from_left = 0;
- *to = (XPointer)outbufptr;
+ *to = (XPointer) outbufptr;
return unconv_num;
}
static int
-stdc_mbstowcs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
-{
- char *src = *((char **) from);
+stdc_mbstowcs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
+{
+ const char *src = *((const char **) from);
wchar_t *dst = *((wchar_t **) to);
int src_left = *from_left;
int dst_left = *to_left;
@@ -911,14 +891,14 @@ stdc_mbstowcs(conv, from, from_left, to, to_left, args, num_args)
}
static int
-wcstombs_org(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+wcstombs_org(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
State state = (State) conv->state;
XLCd lcd = state->lcd;
@@ -932,11 +912,11 @@ wcstombs_org(conv, from, from_left, to, to_left, args, num_args)
CodeSet codeset;
- wchar_t *inbufptr = (wchar_t *) *from;
- XPointer outbufptr = *to;
+ const wchar_t *inbufptr = (const wchar_t *) *from;
+ char *outbufptr = *to;
int from_size = *from_left;
- char *default_string = XLC_PUBLIC(lcd, default_string);
+ const char *default_string = XLC_PUBLIC(lcd, default_string);
int defstr_len = strlen(default_string);
@@ -962,9 +942,10 @@ wcstombs_org(conv, from, from_left, to, to_left, args, num_args)
/* output default_string of XDefaultString() */
if (*to_left < defstr_len)
break;
- if (outbufptr) {strncpy((char *)outbufptr, default_string, defstr_len);}
-
- if (outbufptr) {outbufptr += defstr_len;}
+ if (outbufptr) {
+ strncpy((char *)outbufptr, default_string, defstr_len);
+ outbufptr += defstr_len;
+ }
(*to_left) -= defstr_len;
unconv_num++;
@@ -972,16 +953,37 @@ wcstombs_org(conv, from, from_left, to, to_left, args, num_args)
} else {
mb = gi_to_mb(glyph_index, codeset);
if (codeset->parse_info) {
+ Bool need_shift = False;
+ switch (codeset->parse_info->type) {
+ case E_LSL :
+ if (codeset != state->GL_codeset) {
+ need_shift = True;
+ state->GL_codeset = codeset;
+ }
+ break;
+ case E_LSR :
+ if (codeset != state->GR_codeset) {
+ need_shift = True;
+ state->GR_codeset = codeset;
+ }
+ break;
+ /* case E_SS */
+ default:
+ need_shift = True;
+ }
/* output shift sequence */
- encoding = codeset->parse_info->encoding;
- length = strlen(encoding);
- if (*to_left < length)
- break;
- if (outbufptr) {strncpy((char *)outbufptr, encoding, length);}
-
- if (outbufptr) {outbufptr += length;}
- (*to_left) -= length;
+ if (need_shift) {
+ encoding = codeset->parse_info->encoding;
+ length = strlen(encoding);
+ if (*to_left < length)
+ break;
+ if (outbufptr) {
+ strncpy((char *)outbufptr, encoding, length);
+ outbufptr += length;
+ }
+ (*to_left) -= length;
+ }
}
/* output characters */
@@ -999,24 +1001,24 @@ wcstombs_org(conv, from, from_left, to, to_left, args, num_args)
} /* end of while */
- *from = *from + from_size;
+ *from = (XPointer) ((const wchar_t *) *from + from_size);
*from_left = 0;
- *to = outbufptr;
+ *to = (XPointer) outbufptr;
return unconv_num;
}
static int
-stdc_wcstombs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
-{
- wchar_t *src = *((wchar_t **) from);
+stdc_wcstombs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
+{
+ const wchar_t *src = *((const wchar_t **) from);
char *dst = *((char **) to);
int src_left = *from_left;
int dst_left = *to_left;
@@ -1048,36 +1050,34 @@ stdc_wcstombs(conv, from, from_left, to, to_left, args, num_args)
}
static int
-wcstocts(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+wcstocts(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
State state = (State) conv->state;
XLCd lcd = state->lcd;
- CTDataRec *default_ct_data = default_ct_data_list();
- size_t table_size = default_ct_data_list_num();
unsigned long glyph_index;
wchar_t wc;
- int i, total_len, seq_len, name_len;
+ int total_len, seq_len, name_len;
int unconv_num = 0;
Bool first_flag = True, standard_flag;
XlcSide side;
CodeSet codeset;
XlcCharSet charset, old_charset = NULL;
- char *ct_sequence;
+ const char *ct_sequence;
- wchar_t *inbufptr = (wchar_t *) *from;
- XPointer outbufptr = *to;
+ const wchar_t *inbufptr = (const wchar_t *) *from;
+ char *outbufptr = *to;
int from_size = *from_left;
-
+ char *ext_seg_len = NULL;
if (*from_left > *to_left)
*from_left = *to_left;
@@ -1108,11 +1108,7 @@ wcstocts(conv, from, from_left, to, to_left, args, num_args)
}
/* Standard Character Set Encoding ? */
- standard_flag = False;
- for (i = 0; i < table_size; i++)
- if (compare(charset->ct_sequence,
- default_ct_data[i].encoding, strlen(charset->ct_sequence)))
- standard_flag = True;
+ standard_flag = charset->source == CSsrcStd ? True : False;
/*
* Non-Standard Character Set Encoding
@@ -1129,33 +1125,42 @@ wcstocts(conv, from, from_left, to, to_left, args, num_args)
/* make encoding data */
ct_sequence = charset->ct_sequence;
side = charset->side;
- seq_len = strlen(charset->ct_sequence);
+ seq_len = strlen(ct_sequence);
if (standard_flag) {
name_len = 0;
total_len = seq_len;
} else {
- name_len = 2 + strlen(charset->encoding_name) + 1;
- total_len = seq_len + name_len;
+ name_len = strlen(charset->encoding_name) + 1;
+ total_len = seq_len + name_len + 2;
}
/* output escape sequence of CT */
if ( (charset != old_charset) &&
- !(first_flag && (strcmp(charset->encoding_name,"ISO8859-1")==0))) {
+ !(first_flag && charset->string_encoding) ){
+ if ( (ext_seg_len != NULL) && outbufptr) {
+ int i = (outbufptr - ext_seg_len) - 2;
+ *ext_seg_len++ = i / 128 + 128;
+ *ext_seg_len = i % 128 + 128;
+ ext_seg_len = NULL;
+ }
+
if (*to_left < total_len + 1) {
unconv_num++;
break;
}
if (outbufptr) {
- strcpy((char *)outbufptr, charset->ct_sequence);
+ strcpy((char *)outbufptr, ct_sequence);
outbufptr += seq_len;
if (!standard_flag) {
- *outbufptr++ = name_len / 128 + 128;
- *outbufptr++ = name_len % 128 + 128;
- strcpy((char *)outbufptr, charset->encoding_name);
- outbufptr = outbufptr + name_len - 2 - 1;
+ const char *i = charset->encoding_name;
+ ext_seg_len = outbufptr;
+ outbufptr += 2;
+ for (; *i ; i++)
+ *outbufptr++ = ((*i >= 'A') && (*i <= 'Z')) ?
+ *i - 'A' + 'a' : *i;
*outbufptr++ = STX;
}
}
@@ -1183,27 +1188,33 @@ wcstocts(conv, from, from_left, to, to_left, args, num_args)
} /* end of while */
- *from = *from + from_size;
+ if ( (ext_seg_len != NULL) && outbufptr) {
+ int i = (outbufptr - ext_seg_len) - 2;
+ *ext_seg_len++ = i / 128 + 128;
+ *ext_seg_len = i % 128 + 128;
+ }
+
+ *from = (XPointer) ((const wchar_t *) *from + from_size);
*from_left = 0;
- *to = outbufptr;
+ *to = (XPointer) outbufptr;
return unconv_num;
}
static int
-stdc_wcstocts(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+stdc_wcstocts(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
XPointer buf = Xmalloc((*from_left) * MB_CUR_MAX);
- XPointer buf_ptr1 = buf;
+ char *buf_ptr1 = buf;
int buf_left1 = (*from_left) * MB_CUR_MAX;
- XPointer buf_ptr2 = buf_ptr1;
+ char *buf_ptr2 = buf_ptr1;
int buf_left2;
int unconv_num1 = 0, unconv_num2 = 0;
@@ -1227,14 +1238,14 @@ ret:
}
static int
-ctstowcs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+ctstowcs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
State state = (State) conv->state;
XLCd lcd = state->lcd;
@@ -1249,15 +1260,14 @@ ctstowcs(conv, from, from_left, to, to_left, args, num_args)
CodeSet codeset = NULL;
XlcCharSet charset_tmp;
- XPointer inbufptr = *from;
+ const char *inbufptr = *from;
wchar_t *outbufptr = (wchar_t *) *to;
int from_size = *from_left;
-
- init_state(conv);
+ _XlcResetConverter(conv); /* ??? */
if (from == NULL || *from == NULL) {
- init_state(conv);
+ _XlcResetConverter(conv);
return( 0 );
}
@@ -1292,7 +1302,7 @@ ctstowcs(conv, from, from_left, to, to_left, args, num_args)
if ( !ct_parse_csi(inbufptr - 1, &ctr_seq_len) )
goto skip_the_seg;
- if (*from_left < ctr_seq_len) {
+ if (*from_left + 1 < ctr_seq_len) {
inbufptr--;
(*from_left)++;
unconv_num += *from_left;
@@ -1328,7 +1338,7 @@ ctstowcs(conv, from, from_left, to, to_left, args, num_args)
state->GR_charset = state->charset;
}
- if (*from_left < ctr_seq_len) {
+ if (*from_left + 1 < ctr_seq_len) {
inbufptr--;
(*from_left)++;
unconv_num += *from_left;
@@ -1364,10 +1374,7 @@ output_one_wc:
/* segment conversion */
charset_tmp = state->charset;
- if ( !segment_conversion(lcd, &charset_tmp, &glyph_index) ) {
- unconv_num += gi_len;
- continue;
- }
+ segment_conversion(lcd, &charset_tmp, &glyph_index);
/* get codeset */
if ( !_XlcGetCodeSetFromCharSet(lcd, charset_tmp,
@@ -1411,27 +1418,126 @@ skip_the_seg:
unconv_num += (gi_len - gi_len_left);
}
- *from = *from + from_size;
+ *from = (XPointer) ((const char *) *from + from_size);
*from_left = 0;
- *to = (XPointer)outbufptr;
+ *to = (XPointer) outbufptr;
return unconv_num;
}
static int
-stdc_ctstowcs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+cstowcs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
+{
+ State state = (State) conv->state;
+ XLCd lcd = state->lcd;
+
+ unsigned char ch;
+ unsigned long glyph_index = 0;
+ wchar_t wc;
+ int gi_len_left = 0, gi_len = 0;
+
+ int unconv_num = 0;
+
+ CodeSet codeset = NULL;
+ XlcCharSet charset, charset_tmp;
+
+ const char *inbufptr = *from;
+ wchar_t *outbufptr = (wchar_t *) *to;
+ int from_size = *from_left;
+
+ if (from == NULL || *from == NULL) {
+ return( 0 );
+ }
+
+ charset = (XlcCharSet) args[0];
+
+ while (*from_left && *to_left) {
+
+ if (!gi_len_left) {
+ gi_len_left = gi_len = charset->char_size;
+ glyph_index = 0;
+ }
+
+ ch = *inbufptr++;
+ (*from_left)--;
+
+ /* null ? */
+ if (!ch) {
+ if (outbufptr) {*outbufptr++ = L'\0';}
+ (*to_left)--;
+
+ /* error check */
+ if (gi_len_left) {
+ unconv_num += (gi_len - gi_len_left);
+ gi_len_left = 0;
+ }
+ continue;
+ }
+
+ if (charset->side == XlcC1 || charset->side == XlcGR)
+ glyph_index = (glyph_index << 8) | (ch & GL);
+ else
+ glyph_index = (glyph_index << 8) | ch;
+
+ gi_len_left--;
+
+ /* last of one glyph_index data */
+ if (!gi_len_left) {
+
+ /* segment conversion */
+ charset_tmp = charset;
+ segment_conversion(lcd, &charset_tmp, &glyph_index);
+
+ /* get codeset */
+ if ( !_XlcGetCodeSetFromCharSet(lcd, charset_tmp,
+ &codeset, &glyph_index) ) {
+ unconv_num += gi_len;
+ continue;
+ }
+
+ /* convert glyph index to wicd char */
+ gi_to_wc(lcd, glyph_index, codeset, &wc);
+ if (outbufptr) {*outbufptr++ = wc;}
+ (*to_left)--;
+ }
+
+ } /* end of while */
+
+ /* error check on last char */
+ if (gi_len_left) {
+ inbufptr -= (gi_len - gi_len_left);
+ (*from_left) += (gi_len - gi_len_left);
+ unconv_num += (gi_len - gi_len_left);
+ }
+
+ *from = (XPointer) ((const char *) *from + from_size);
+ *from_left = 0;
+ *to = (XPointer) outbufptr;
+
+ return unconv_num;
+}
+
+static int
+stdc_ctstowcs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
XPointer buf = Xmalloc((*from_left) * MB_CUR_MAX);
- XPointer buf_ptr1 = buf;
+ char *buf_ptr1 = buf;
int buf_left1 = (*from_left) * MB_CUR_MAX;
- XPointer buf_ptr2 = buf_ptr1;
+ char *buf_ptr2 = buf_ptr1;
int buf_left2;
int unconv_num1 = 0, unconv_num2 = 0;
@@ -1455,19 +1561,55 @@ ret:
}
static int
-mbstocts(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+stdc_cstowcs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
+{
+ XPointer buf = Xmalloc((*from_left) * MB_CUR_MAX);
+ char *buf_ptr1 = buf;
+ int buf_left1 = (*from_left) * MB_CUR_MAX;
+ char *buf_ptr2 = buf_ptr1;
+ int buf_left2;
+ int unconv_num1 = 0, unconv_num2 = 0;
+
+ unconv_num1 = cstombs(conv,
+ from, from_left, &buf_ptr1, &buf_left1, args, num_args);
+ if (unconv_num1 < 0)
+ goto ret;
+
+ buf_left2 = buf_ptr1 - buf_ptr2;
+
+ unconv_num2 = stdc_mbstowcs(conv,
+ &buf_ptr2, &buf_left2, to, to_left, args, num_args);
+ if (unconv_num2 < 0)
+ goto ret;
+
+ret:
+ if (buf)
+ Xfree((char *)buf);
+
+ return (unconv_num1 + unconv_num2);
+}
+
+static int
+mbstocts(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
XPointer buf = Xmalloc((*from_left) * sizeof(wchar_t));
- XPointer buf_ptr1 = buf;
+ char *buf_ptr1 = buf;
int buf_left1 = (*from_left);
- XPointer buf_ptr2 = buf_ptr1;
+ char *buf_ptr2 = buf_ptr1;
int buf_left2;
int unconv_num1 = 0, unconv_num2 = 0;
@@ -1491,14 +1633,14 @@ ret:
}
static int
-mbstostr(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+mbstostr(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
State state = (State) conv->state;
XLCd lcd = state->lcd;
@@ -1506,22 +1648,22 @@ mbstostr(conv, from, from_left, to, to_left, args, num_args)
unsigned char ch;
unsigned long mb = 0;
-
int length = 0, len_left = 0;
int unconv_num = 0;
int num;
- Bool ss_flag = 0;
CodeSet codeset = NULL;
- ParseInfo parse_info;
- XPointer inbufptr = *from;
- XPointer outbufptr = *to;
+ const char *inbufptr = *from;
+ char *outbufptr = *to;
int from_size = *from_left;
unsigned char *mb_parse_table = XLC_GENERIC(lcd, mb_parse_table);
- ParseInfo *mb_parse_list = XLC_GENERIC(lcd, mb_parse_list);
+ if (from == NULL || *from == NULL) {
+ _XlcResetConverter(conv);
+ return( 0 );
+ }
if (*from_left > *to_left)
*from_left = *to_left;
@@ -1550,25 +1692,21 @@ mbstostr(conv, from, from_left, to, to_left, args, num_args)
goto output_one_mb;
/* next mb char data for single shift ? */
- if (mb_parse_table) {
- if ((num = mb_parse_table[ch]) > 0) {
- parse_info = mb_parse_list[num - 1];
-
- codeset = parse_info->codeset;
- length = len_left = codeset->length;
- mb = 0;
- ss_flag = 1;
-
- continue;
+ if (mb_parse_table && (num = mb_parse_table[ch]) ) {
+ codeset = mb_parse_codeset(state, num, &inbufptr, from_left);
+ if (codeset != NULL) {
+ length = len_left = codeset->length;
+ mb = 0;
+ continue;
}
- }
-
+ }
+
/* next char data : byteM ? */
if ((codeset = byteM_parse_codeset(lcd, (inbufptr - 1))))
goto next_mb_char;
/* next char data : GL or GR side ? */
- if ((codeset = GLGR_parse_codeset(lcd, ch)))
+ if ((codeset = GLGR_parse_codeset(ch)))
goto next_mb_char;
/* can't find codeset for the ch */
@@ -1578,7 +1716,6 @@ mbstostr(conv, from, from_left, to, to_left, args, num_args)
next_mb_char:
length = len_left = codeset->length;
mb = 0;
- ss_flag = 0;
output_one_mb:
mb = (mb << 8) | ch; /* 1 byte left shift */
@@ -1598,27 +1735,27 @@ output_one_mb:
/* error check on last char */
if (len_left) {
- inbufptr -= (length - len_left + ss_flag);
- (*from_left) += (length - len_left + ss_flag);
- unconv_num += (length - len_left + ss_flag);
+ inbufptr -= (length - len_left);
+ (*from_left) += (length - len_left);
+ unconv_num += (length - len_left);
}
- *from = *from + from_size;
+ *from = (XPointer) ((const char *) *from + from_size);
*from_left = 0;
- *to = (XPointer)outbufptr;
+ *to = (XPointer) outbufptr;
return unconv_num;
}
static int
-mbtocs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+mbtocs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
State state = (State) conv->state;
XLCd lcd = state->lcd;
@@ -1633,17 +1770,18 @@ mbtocs(conv, from, from_left, to, to_left, args, num_args)
XlcSide side;
CodeSet codeset = NULL;
- XlcCharSet charset;
- ParseInfo parse_info;
+ XlcCharSet charset = NULL;
- XPointer inbufptr = *from;
- XPointer outbufptr = *to;
+ const char *inbufptr = *from;
+ char *outbufptr = *to;
int from_size = *from_left;
-
unsigned char *mb_parse_table = XLC_GENERIC(lcd, mb_parse_table);
- ParseInfo *mb_parse_list = XLC_GENERIC(lcd, mb_parse_list);
+ if (from == NULL || *from == NULL) {
+ _XlcResetConverter(conv);
+ return( 0 );
+ }
if (*from_left > *to_left)
*from_left = *to_left;
@@ -1666,24 +1804,21 @@ mbtocs(conv, from, from_left, to, to_left, args, num_args)
goto output;
/* next mb char data for single shift ? */
- if (mb_parse_table) {
- if ((num = mb_parse_table[ch]) > 0) {
- parse_info = mb_parse_list[num - 1];
-
- codeset = parse_info->codeset;
+ if (mb_parse_table && (num = mb_parse_table[ch]) ) {
+ codeset = mb_parse_codeset(state, num, &inbufptr, from_left);
+ if (codeset != NULL) {
length = len_left = codeset->length;
mb = 0;
-
continue;
}
- }
-
+ }
+
/* next mb char data for byteM ? */
if ((codeset = byteM_parse_codeset(lcd, (inbufptr - 1))))
goto next_mb_char;
/* next mb char data for GL or GR side ? */
- if ((codeset = GLGR_parse_codeset(lcd, ch)))
+ if ((codeset = GLGR_parse_codeset(ch)))
goto next_mb_char;
/* can't find codeset for the ch */
@@ -1730,15 +1865,15 @@ output:
/* error end */
if (unconv_num) {
- *from = *from + from_size;
+ *from = (XPointer) ((const char *) *from + from_size);
*from_left = 0;
- *to = outbufptr;
+ *to = (XPointer) outbufptr;
return -1;
}
/* nomal end */
- *from = inbufptr;
- *to = outbufptr;
+ *from = (XPointer) inbufptr;
+ *to = (XPointer) outbufptr;
if (num_args > 0)
*((XlcCharSet *) args[0]) = charset;
@@ -1747,46 +1882,43 @@ output:
}
static int
-mbstocs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+mbstocs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
int ret;
XlcCharSet charset_old, charset = NULL;
XPointer tmp_args[1];
- XPointer inbufptr;
+ const char *inbufptr;
int in_left;
- XPointer outbufptr;
+ char *outbufptr;
int out_left;
tmp_args[0] = (XPointer) &charset;
ret = mbtocs(conv, from, from_left, to, to_left, tmp_args, 1);
charset_old = charset;
- inbufptr = *from;
- in_left = *from_left;
- outbufptr = *to;
- out_left = *to_left;
-
- while ( ret == 0 && *from_left && *to_left && charset_old == charset ) {
- charset_old = charset;
+
+ while ( ret == 0 && *from_left && *to_left) {
inbufptr = *from;
in_left = *from_left;
outbufptr = *to;
out_left = *to_left;
ret = mbtocs(conv, from, from_left, to, to_left, tmp_args, 1);
+ if (charset_old != charset) {
+ *from = (XPointer) inbufptr;
+ *from_left = in_left;
+ *to = (XPointer) outbufptr;
+ *to_left = out_left;
+ break;
+ }
}
- *from = inbufptr;
- *from_left = in_left;
- *to = outbufptr;
- *to_left = out_left;
-
if (num_args > 0)
*((XlcCharSet *) args[0]) = charset_old;
@@ -1798,14 +1930,14 @@ mbstocs(conv, from, from_left, to, to_left, args, num_args)
}
static int
-wcstostr(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+wcstostr(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
State state = (State) conv->state;
XLCd lcd = state->lcd;
@@ -1819,11 +1951,11 @@ wcstostr(conv, from, from_left, to, to_left, args, num_args)
CodeSet codeset;
- wchar_t *inbufptr = (wchar_t *) *from;
- XPointer outbufptr = *to;
+ const wchar_t *inbufptr = (const wchar_t *) *from;
+ char *outbufptr = *to;
int from_size = *from_left;
- char *default_string = XLC_PUBLIC(lcd, default_string);
+ const char *default_string = XLC_PUBLIC(lcd, default_string);
int defstr_len = strlen(default_string);
@@ -1849,34 +1981,57 @@ wcstostr(conv, from, from_left, to, to_left, args, num_args)
/* output default_string of XDefaultString() */
if (*to_left < defstr_len)
break;
- if (outbufptr) {strncpy((char *)outbufptr, default_string, defstr_len);}
-
- if (outbufptr) {outbufptr += defstr_len;}
+ if (outbufptr) {
+ strncpy((char *)outbufptr, default_string, defstr_len);
+ outbufptr += defstr_len;
+ }
(*to_left) -= defstr_len;
unconv_num++;
} else {
mb = gi_to_mb(glyph_index, codeset);
- if (codeset->parse_info) {
- /* output shift sequence */
- encoding = codeset->parse_info->encoding;
- length = strlen(encoding);
- if (*to_left < length)
- break;
- if (check_string_encoding(codeset)) {
- if (outbufptr) {strncpy((char *)outbufptr, encoding, length);}
- if (outbufptr) {outbufptr += length;}
- (*to_left) -= length;
+ if (check_string_encoding(codeset)) {
+ if (codeset->parse_info) {
+ Bool need_shift = False;
+ switch (codeset->parse_info->type) {
+ case E_LSL :
+ if (codeset != state->GL_codeset) {
+ need_shift = True;
+ state->GL_codeset = codeset;
+ }
+ break;
+ case E_LSR :
+ if (codeset != state->GR_codeset) {
+ need_shift = True;
+ state->GR_codeset = codeset;
+ }
+ break;
+ /* case E_SS */
+ default:
+ need_shift = True;
+ }
+
+ /* output shift sequence */
+ if (need_shift) {
+ encoding = codeset->parse_info->encoding;
+ length = strlen(encoding);
+ if (*to_left < length)
+ break;
+
+ if (outbufptr) {
+ strncpy((char *)outbufptr, encoding, length);
+ outbufptr += length;
+ }
+ (*to_left) -= length;
+ }
}
- }
- /* output characters */
- length = codeset->length;
- if (*to_left < length)
- break;
- if (check_string_encoding(codeset)) {
+ /* output characters */
+ length = codeset->length;
+ if (*to_left < length)
+ break;
if (outbufptr) {
output_ulong_value(outbufptr, mb, length, XlcNONE);
@@ -1891,27 +2046,27 @@ wcstostr(conv, from, from_left, to, to_left, args, num_args)
} /* end of while */
- *from = *from + from_size;
+ *from = (XPointer) ((const wchar_t *) *from + from_size);
*from_left = 0;
- *to = outbufptr;
+ *to = (XPointer) outbufptr;
return unconv_num;
}
static int
-stdc_wcstostr(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+stdc_wcstostr(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
XPointer buf = Xmalloc((*from_left) * MB_CUR_MAX);
- XPointer buf_ptr1 = buf;
+ char *buf_ptr1 = buf;
int buf_left1 = (*from_left) * MB_CUR_MAX;
- XPointer buf_ptr2 = buf_ptr1;
+ char *buf_ptr2 = buf_ptr1;
int buf_left2;
int unconv_num1 = 0, unconv_num2 = 0;
@@ -1935,14 +2090,14 @@ ret:
}
static int
-wctocs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+wctocs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
State state = (State) conv->state;
XLCd lcd = state->lcd;
@@ -1955,14 +2110,12 @@ wctocs(conv, from, from_left, to, to_left, args, num_args)
XlcSide side;
CodeSet codeset;
- XlcCharSet charset;
+ XlcCharSet charset = NULL;
- wchar_t *inbufptr = (wchar_t *) *from;
- XPointer outbufptr = *to;
+ const wchar_t *inbufptr = (const wchar_t *) *from;
+ char *outbufptr = *to;
int from_size = *from_left;
-
-
if (*from_left > *to_left)
*from_left = *to_left;
@@ -2011,15 +2164,15 @@ end:
/* error end */
if (unconv_num) {
- *from = *from + from_size;
+ *from = (XPointer) ((const wchar_t *) *from + from_size);
*from_left = 0;
- *to = outbufptr;
+ *to = (XPointer) outbufptr;
return -1;
}
/* nomal end */
- *from = (XPointer)inbufptr;
- *to = outbufptr;
+ *from = (XPointer) inbufptr;
+ *to = (XPointer) outbufptr;
if (num_args > 0)
*((XlcCharSet *) args[0]) = charset;
@@ -2028,16 +2181,17 @@ end:
}
static int
-stdc_wctocs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
-{
- wchar_t wch, *src = *((wchar_t **) from);
+stdc_wctocs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
+{
+ const wchar_t *src = *((const wchar_t **) from);
+ wchar_t wch;
XPointer tmp_from, save_from = *from;
char tmp[32];
int length, ret, src_left = *from_left;
@@ -2065,7 +2219,7 @@ stdc_wctocs(conv, from, from_left, to, to_left, args, num_args)
end:
/* error end */
if (save_from == (XPointer) src) {
- *from = *from + from_size;
+ *from = (XPointer) ((const wchar_t *) *from + from_size);
*from_left = 0;
return -1;
}
@@ -2078,20 +2232,20 @@ end:
}
static int
-wcstocs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+wcstocs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
int ret;
XlcCharSet charset_old, charset = NULL;
XPointer tmp_args[1];
- wchar_t *inbufptr;
+ const wchar_t *inbufptr;
int in_left;
XPointer outbufptr;
int out_left;
@@ -2099,25 +2253,22 @@ wcstocs(conv, from, from_left, to, to_left, args, num_args)
ret = wctocs(conv, from, from_left, to, to_left, tmp_args, 1);
charset_old = charset;
- inbufptr = (wchar_t *)(*from);
- in_left = *from_left;
- outbufptr = *to;
- out_left = *to_left;
-
- while ( ret == 0 && *from_left && *to_left && charset_old == charset ) {
- charset_old = charset;
- inbufptr = (wchar_t *)(*from);
+
+ while ( ret == 0 && *from_left && *to_left) {
+ inbufptr = (const wchar_t *) *from;
in_left = *from_left;
outbufptr = *to;
out_left = *to_left;
ret = wctocs(conv, from, from_left, to, to_left, tmp_args, 1);
+ if (charset_old != charset) {
+ *from = (XPointer) inbufptr;
+ *from_left = in_left;
+ *to = (XPointer) outbufptr;
+ *to_left = out_left;
+ break;
+ }
}
- *from = (XPointer)inbufptr;
- *from_left = in_left;
- *to = outbufptr;
- *to_left = out_left;
-
if (num_args > 0)
*((XlcCharSet *) args[0]) = charset_old;
@@ -2128,21 +2279,23 @@ wcstocs(conv, from, from_left, to, to_left, args, num_args)
return(0);
}
+#ifdef STDCVT
+
static int
-stdc_wcstocs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+stdc_wcstocs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
int ret;
XlcCharSet charset_old, charset = NULL;
XPointer tmp_args[1];
- wchar_t *inbufptr;
+ const wchar_t *inbufptr;
int in_left;
XPointer outbufptr;
int out_left;
@@ -2150,25 +2303,22 @@ stdc_wcstocs(conv, from, from_left, to, to_left, args, num_args)
ret = stdc_wctocs(conv, from, from_left, to, to_left, tmp_args, 1);
charset_old = charset;
- inbufptr = (wchar_t *)(*from);
- in_left = *from_left;
- outbufptr = *to;
- out_left = *to_left;
-
- while ( ret == 0 && *from_left && *to_left && charset_old == charset ) {
- charset_old = charset;
- inbufptr = (wchar_t *)(*from);
+
+ while ( ret == 0 && *from_left && *to_left ) {
+ inbufptr = (const wchar_t *) *from;
in_left = *from_left;
outbufptr = *to;
out_left = *to_left;
ret = stdc_wctocs(conv, from, from_left, to, to_left, tmp_args, 1);
+ if (charset_old != charset) {
+ *from = (XPointer) inbufptr;
+ *from_left = in_left;
+ *to = (XPointer) outbufptr;
+ *to_left = out_left;
+ break;
+ }
}
- *from = (XPointer)inbufptr;
- *from_left = in_left;
- *to = outbufptr;
- *to_left = out_left;
-
if (num_args > 0)
*((XlcCharSet *) args[0]) = charset_old;
@@ -2179,20 +2329,22 @@ stdc_wcstocs(conv, from, from_left, to, to_left, args, num_args)
return(0);
}
+#endif
+
static int
-ctstombs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+ctstombs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
XPointer buf = Xmalloc((*from_left) * sizeof(wchar_t));
- XPointer buf_ptr1 = buf;
+ char *buf_ptr1 = buf;
int buf_left1 = (*from_left);
- XPointer buf_ptr2 = buf_ptr1;
+ char *buf_ptr2 = buf_ptr1;
int buf_left2;
int unconv_num1 = 0, unconv_num2 = 0;
@@ -2216,14 +2368,50 @@ ret:
}
static int
-strtombs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+cstombs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
+{
+ XPointer buf = Xmalloc((*from_left) * sizeof(wchar_t));
+ char *buf_ptr1 = buf;
+ int buf_left1 = (*from_left);
+ char *buf_ptr2 = buf_ptr1;
+ int buf_left2;
+ int unconv_num1 = 0, unconv_num2 = 0;
+
+ unconv_num1 = cstowcs(conv,
+ from, from_left, &buf_ptr1, &buf_left1, args, num_args);
+ if (unconv_num1 < 0)
+ goto ret;
+
+ buf_left2 = (buf_ptr1 - buf_ptr2) / sizeof(wchar_t);
+
+ unconv_num2 += wcstombs_org(conv,
+ &buf_ptr2, &buf_left2, to, to_left, args, num_args);
+ if (unconv_num2 < 0)
+ goto ret;
+
+ret:
+ if (buf)
+ Xfree((char *)buf);
+
+ return (unconv_num1 + unconv_num2);
+}
+
+static int
+strtombs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
State state = (State) conv->state;
XLCd lcd = state->lcd;
@@ -2237,8 +2425,8 @@ strtombs(conv, from, from_left, to, to_left, args, num_args)
CodeSet codeset;
- XPointer inbufptr = *from;
- XPointer outbufptr = *to;
+ const char *inbufptr = *from;
+ char *outbufptr = *to;
int from_size = *from_left;
if (*from_left > *to_left)
@@ -2273,16 +2461,37 @@ strtombs(conv, from, from_left, to, to_left, args, num_args)
mb = gi_to_mb(glyph_index, codeset);
if (codeset->parse_info) {
+ Bool need_shift = False;
+ switch (codeset->parse_info->type) {
+ case E_LSL :
+ if (codeset != state->GL_codeset) {
+ need_shift = True;
+ state->GL_codeset = codeset;
+ }
+ break;
+ case E_LSR :
+ if (codeset != state->GR_codeset) {
+ need_shift = True;
+ state->GR_codeset = codeset;
+ }
+ break;
+ /* case E_SS */
+ default:
+ need_shift = True;
+ }
/* output shift sequence */
- encoding = codeset->parse_info->encoding;
- length = strlen(encoding);
- if (*to_left < length)
- break;
- if (outbufptr) {strncpy((char *)outbufptr, encoding, length);}
-
- if (outbufptr) {outbufptr += length;}
- (*to_left) -= length;
+ if (need_shift) {
+ encoding = codeset->parse_info->encoding;
+ length = strlen(encoding);
+ if (*to_left < length)
+ break;
+ if (outbufptr) {
+ strncpy((char *)outbufptr, encoding, length);
+ outbufptr += length;
+ }
+ (*to_left) -= length;
+ }
}
/* output characters */
@@ -2299,22 +2508,22 @@ strtombs(conv, from, from_left, to, to_left, args, num_args)
} /* end of while */
- *from = *from + from_size;
+ *from = (XPointer) ((const char *) *from + from_size);
*from_left = 0;
- *to = outbufptr;
+ *to = (XPointer) outbufptr;
return unconv_num;
}
static int
-strtowcs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+strtowcs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
State state = (State) conv->state;
XLCd lcd = state->lcd;
@@ -2326,7 +2535,7 @@ strtowcs(conv, from, from_left, to, to_left, args, num_args)
int unconv_num = 0;
CodeSet codeset;
- XPointer inbufptr = *from;
+ const char *inbufptr = *from;
wchar_t *outbufptr = (wchar_t *)*to;
int from_size = *from_left;
@@ -2366,27 +2575,27 @@ strtowcs(conv, from, from_left, to, to_left, args, num_args)
} /* end of while */
- *from = *from + from_size;
+ *from = (XPointer) ((const char *) *from + from_size);
*from_left = 0;
- *to = (XPointer)outbufptr;
+ *to = (XPointer) outbufptr;
return unconv_num;
}
static int
-stdc_strtowcs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+stdc_strtowcs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
XPointer buf = Xmalloc((*from_left) * MB_CUR_MAX);
- XPointer buf_ptr1 = buf;
+ char *buf_ptr1 = buf;
int buf_left1 = (*from_left) * MB_CUR_MAX;
- XPointer buf_ptr2 = buf_ptr1;
+ char *buf_ptr2 = buf_ptr1;
int buf_left2;
int unconv_num1 = 0, unconv_num2 = 0;
@@ -2414,8 +2623,8 @@ ret:
/* -------------------------------------------------------------------------- */
static void
-close_converter(conv)
- XlcConv conv;
+close_converter(
+ XlcConv conv)
{
if (conv->state) {
Xfree((char *) conv->state);
@@ -2433,9 +2642,9 @@ close_converter(conv)
/* -------------------------------------------------------------------------- */
static XlcConv
-create_conv(lcd, methods)
- XLCd lcd;
- XlcConvMethods methods;
+create_conv(
+ XLCd lcd,
+ XlcConvMethods methods)
{
XlcConv conv;
State state;
@@ -2448,8 +2657,7 @@ create_conv(lcd, methods)
if (conv->methods == NULL)
goto err;
*conv->methods = *methods;
- if (XLC_PUBLIC(lcd, is_state_depend))
- conv->methods->reset = init_state;
+ conv->methods->reset = init_state;
conv->state = (XPointer) Xmalloc(sizeof(StateRec));
if (conv->state == NULL)
@@ -2458,7 +2666,8 @@ create_conv(lcd, methods)
state = (State) conv->state;
state->lcd = lcd;
- init_state(conv);
+
+ _XlcResetConverter(conv);
return conv;
@@ -2472,14 +2681,14 @@ static XlcConvMethodsRec mbstocts_methods = {
close_converter,
mbstocts,
NULL
-} ;
+};
static XlcConv
-open_mbstocts(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_mbstocts(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &mbstocts_methods);
}
@@ -2488,14 +2697,14 @@ static XlcConvMethodsRec mbstostr_methods = {
close_converter,
mbstostr,
NULL
-} ;
+};
static XlcConv
-open_mbstostr(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_mbstostr(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &mbstostr_methods);
}
@@ -2504,14 +2713,14 @@ static XlcConvMethodsRec mbstocs_methods = {
close_converter,
mbstocs,
NULL
-} ;
+};
static XlcConv
-open_mbstocs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_mbstocs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &mbstocs_methods);
}
@@ -2520,14 +2729,14 @@ static XlcConvMethodsRec mbtocs_methods = {
close_converter,
mbtocs,
NULL
-} ;
+};
static XlcConv
-open_mbtocs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_mbtocs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &mbtocs_methods);
}
@@ -2536,30 +2745,46 @@ static XlcConvMethodsRec ctstombs_methods = {
close_converter,
ctstombs,
NULL
-} ;
+};
static XlcConv
-open_ctstombs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_ctstombs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &ctstombs_methods);
}
+static XlcConvMethodsRec cstombs_methods = {
+ close_converter,
+ cstombs,
+ NULL
+};
+
+static XlcConv
+open_cstombs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
+{
+ return create_conv(from_lcd, &cstombs_methods);
+}
+
static XlcConvMethodsRec strtombs_methods = {
close_converter,
strtombs,
NULL
-} ;
+};
static XlcConv
-open_strtombs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_strtombs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &strtombs_methods);
}
@@ -2570,14 +2795,14 @@ static XlcConvMethodsRec stdc_mbstowcs_methods = {
close_converter,
stdc_mbstowcs,
NULL
-} ;
+};
static XlcConv
-open_stdc_mbstowcs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_stdc_mbstowcs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &stdc_mbstowcs_methods);
}
@@ -2586,14 +2811,14 @@ static XlcConvMethodsRec stdc_wcstombs_methods = {
close_converter,
stdc_wcstombs,
NULL
-} ;
+};
static XlcConv
-open_stdc_wcstombs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_stdc_wcstombs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &stdc_wcstombs_methods);
}
@@ -2602,14 +2827,14 @@ static XlcConvMethodsRec stdc_wcstocts_methods = {
close_converter,
stdc_wcstocts,
NULL
-} ;
+};
static XlcConv
-open_stdc_wcstocts(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_stdc_wcstocts(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &stdc_wcstocts_methods);
}
@@ -2618,14 +2843,14 @@ static XlcConvMethodsRec stdc_wcstostr_methods = {
close_converter,
stdc_wcstostr,
NULL
-} ;
+};
static XlcConv
-open_stdc_wcstostr(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_stdc_wcstostr(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &stdc_wcstostr_methods);
}
@@ -2634,14 +2859,14 @@ static XlcConvMethodsRec stdc_wcstocs_methods = {
close_converter,
stdc_wcstocs,
NULL
-} ;
+};
static XlcConv
-open_stdc_wcstocs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_stdc_wcstocs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &stdc_wcstocs_methods);
}
@@ -2650,14 +2875,14 @@ static XlcConvMethodsRec stdc_wctocs_methods = {
close_converter,
stdc_wctocs,
NULL
-} ;
+};
static XlcConv
-open_stdc_wctocs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_stdc_wctocs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &stdc_wctocs_methods);
}
@@ -2666,30 +2891,46 @@ static XlcConvMethodsRec stdc_ctstowcs_methods = {
close_converter,
stdc_ctstowcs,
NULL
-} ;
+};
static XlcConv
-open_stdc_ctstowcs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_stdc_ctstowcs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &stdc_ctstowcs_methods);
}
+static XlcConvMethodsRec stdc_cstowcs_methods = {
+ close_converter,
+ stdc_cstowcs,
+ NULL
+};
+
+static XlcConv
+open_stdc_cstowcs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
+{
+ return create_conv(from_lcd, &stdc_cstowcs_methods);
+}
+
static XlcConvMethodsRec stdc_strtowcs_methods = {
close_converter,
stdc_strtowcs,
NULL
-} ;
+};
static XlcConv
-open_stdc_strtowcs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_stdc_strtowcs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &stdc_strtowcs_methods);
}
@@ -2700,14 +2941,14 @@ static XlcConvMethodsRec mbstowcs_methods = {
close_converter,
mbstowcs_org,
NULL
-} ;
+};
static XlcConv
-open_mbstowcs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_mbstowcs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &mbstowcs_methods);
}
@@ -2716,14 +2957,14 @@ static XlcConvMethodsRec wcstombs_methods = {
close_converter,
wcstombs_org,
NULL
-} ;
+};
static XlcConv
-open_wcstombs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_wcstombs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &wcstombs_methods);
}
@@ -2732,14 +2973,14 @@ static XlcConvMethodsRec wcstocts_methods = {
close_converter,
wcstocts,
NULL
-} ;
+};
static XlcConv
-open_wcstocts(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_wcstocts(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &wcstocts_methods);
}
@@ -2748,14 +2989,14 @@ static XlcConvMethodsRec wcstostr_methods = {
close_converter,
wcstostr,
NULL
-} ;
+};
static XlcConv
-open_wcstostr(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_wcstostr(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &wcstostr_methods);
}
@@ -2764,14 +3005,14 @@ static XlcConvMethodsRec wcstocs_methods = {
close_converter,
wcstocs,
NULL
-} ;
+};
static XlcConv
-open_wcstocs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_wcstocs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &wcstocs_methods);
}
@@ -2780,14 +3021,14 @@ static XlcConvMethodsRec wctocs_methods = {
close_converter,
wctocs,
NULL
-} ;
+};
static XlcConv
-open_wctocs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_wctocs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &wctocs_methods);
}
@@ -2796,30 +3037,46 @@ static XlcConvMethodsRec ctstowcs_methods = {
close_converter,
ctstowcs,
NULL
-} ;
+};
static XlcConv
-open_ctstowcs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_ctstowcs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &ctstowcs_methods);
}
+static XlcConvMethodsRec cstowcs_methods = {
+ close_converter,
+ cstowcs,
+ NULL
+};
+
+static XlcConv
+open_cstowcs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
+{
+ return create_conv(from_lcd, &cstowcs_methods);
+}
+
static XlcConvMethodsRec strtowcs_methods = {
close_converter,
strtowcs,
NULL
-} ;
+};
static XlcConv
-open_strtowcs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_strtowcs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &strtowcs_methods);
}
@@ -2829,24 +3086,30 @@ open_strtowcs(from_lcd, from_type, to_lcd, to_type)
/* -------------------------------------------------------------------------- */
XLCd
-_XlcGenericLoader(name)
- char *name;
+_XlcGenericLoader(
+ const char *name)
{
XLCd lcd;
+#ifdef STDCVT
XLCdGenericPart *gen;
+#endif
lcd = _XlcCreateLC(name, _XlcGenericMethods);
if (lcd == NULL)
return lcd;
+ default_GL_charset = _XlcGetCharSet("ISO8859-1:GL");
+ default_GR_charset = _XlcGetCharSet("ISO8859-1:GR");
+
_XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNCompoundText, open_mbstocts);
_XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNString, open_mbstostr);
_XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNCharSet, open_mbstocs);
_XlcSetConverter(lcd, XlcNMultiByte, lcd, XlcNChar, open_mbtocs);
_XlcSetConverter(lcd, XlcNCompoundText, lcd, XlcNMultiByte, open_ctstombs);
_XlcSetConverter(lcd, XlcNString, lcd, XlcNMultiByte, open_strtombs);
-
+ _XlcSetConverter(lcd, XlcNCharSet, lcd, XlcNMultiByte, open_cstombs);
+
#ifdef STDCVT
gen = XLC_GENERIC_PART(lcd);
@@ -2860,6 +3123,7 @@ _XlcGenericLoader(name)
_XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNChar, open_wctocs);
_XlcSetConverter(lcd, XlcNCompoundText, lcd, XlcNWideChar, open_ctstowcs);
_XlcSetConverter(lcd, XlcNString, lcd, XlcNWideChar, open_strtowcs);
+ _XlcSetConverter(lcd, XlcNCharSet, lcd, XlcNWideChar, open_cstowcs);
#ifdef STDCVT
}
#endif
@@ -2874,9 +3138,11 @@ _XlcGenericLoader(name)
_XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNChar, open_stdc_wctocs);
_XlcSetConverter(lcd, XlcNCompoundText, lcd, XlcNWideChar, open_stdc_ctstowcs);
_XlcSetConverter(lcd, XlcNString, lcd, XlcNWideChar, open_stdc_strtowcs);
+ _XlcSetConverter(lcd, XlcNCharSet, lcd, XlcNWideChar, open_stdc_cstowcs);
}
#endif
+ _XlcAddUtf8Converters(lcd);
+
return lcd;
}
-
diff --git a/modules/lc/xlocale/lcEuc.c b/modules/lc/xlocale/lcEuc.c
index 2027302f..023db40f 100644
--- a/modules/lc/xlocale/lcEuc.c
+++ b/modules/lc/xlocale/lcEuc.c
@@ -30,6 +30,14 @@ OF THIS SOFTWARE.
Yoshiyuki Segawa (segawa@ossi.com)
*****************************************************************/
+/* $XFree86: xc/lib/X11/lcEuc.c,v 3.12 2003/01/20 04:05:30 dawes Exp $ */
+
+/*
+ * An EUC locale.
+ * Supports: all locales with codeset eucJP, eucKR, eucCN, eucTW.
+ * How: Provides converters for euc*.
+ * Platforms: Only those defining X_LOCALE (only Lynx, Linux-libc5, OS/2).
+ */
#ifdef X_LOCALE
@@ -68,8 +76,8 @@ typedef unsigned char Uchar;
typedef unsigned long Ulong;
typedef unsigned int Uint;
-static CodeSet GetCodeSetFromCharSet();
-static CodeSet wc_codeset();
+static CodeSet GetCodeSetFromCharSet (XLCd lcd, XlcCharSet charset);
+static CodeSet wc_codeset (XLCd lcd, wchar_t wch);
#define BADCHAR(min_ch, c) (BIT8OFF(c) < (char)min_ch && BIT8OFF(c) != 0x0 && \
BIT8OFF(c) != '\t' && BIT8OFF(c) != '\n' && \
@@ -84,48 +92,41 @@ static CodeSet wc_codeset();
*/
static int
-euc_mbstowcs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+euc_mbstowcs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
-
XLCd lcd = (XLCd)conv->state;
- register Uchar ch;
- register int chr_len = 0;
- register int sshift = False;
- register int shift_mult = 0;
- register Uint chrcode;
+ Uchar ch;
+ int chr_len = 0;
+ int sshift = False;
+ int shift_mult = 0;
+ Uint chrcode;
Uint wc_encode = 0;
Uint wc_tmp = 0;
int cs0flg = False;
int cs1flg = False;
- int length;
- int num_conv;
+ int length = 0;
int unconv_num = 0;
Bool new_char;
- XPointer inbufptr = *from;
+ const char *inbufptr = *from;
wchar_t *outbufptr = (wchar_t *) *to;
- wchar_t *outbuf_base = outbufptr;
CodeSet *codesets = XLC_GENERIC(lcd, codeset_list);
int codeset_num = XLC_GENERIC(lcd, codeset_num);
Ulong wc_shift = XLC_GENERIC(lcd, wc_shift_bits);
-
- if (*from_left > *to_left)
- *from_left = *to_left;
-
- for (new_char = True; *from_left > 0;) {
+ for (new_char = True; *from_left > 0 && *to_left > 0;) {
ch = *inbufptr++;
@@ -142,6 +143,7 @@ euc_mbstowcs(conv, from, from_left, to, to_left, args, num_args)
length = CS0->length;
*outbufptr++ = (wchar_t)ch;
(*from_left)--;
+ (*to_left)--;
continue;
}
else if (ch == SS2) { /* CS2 */
@@ -215,6 +217,7 @@ euc_mbstowcs(conv, from, from_left, to, to_left, args, num_args)
if (--chr_len == 0) {
wc_tmp |= wc_encode;
*outbufptr++ = wc_tmp;
+ (*to_left)--;
new_char = True;
sshift = False;
@@ -230,41 +233,32 @@ euc_mbstowcs(conv, from, from_left, to, to_left, args, num_args)
if (cs0flg == True || cs1flg == True) /* error check on last char */
unconv_num++;
- if ((num_conv = (int)(outbufptr - outbuf_base)) > 0)
- *to_left = (*to_left) - num_conv;
-
return unconv_num;
}
static int
-euc_wcstombs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+euc_wcstombs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
- wchar_t *inbufptr = (wchar_t *) *from;
- register XPointer outbufptr = *to;
- XPointer outbuf_base = outbufptr;
+ const wchar_t *inbufptr = (const wchar_t *) *from;
+ XPointer outbufptr = *to;
wchar_t wch;
- register int length;
+ int length;
Uchar tmp;
- int num_conv;
int unconv_num = 0;
XLCd lcd = (XLCd)conv->state;
CodeSet codeset;
Ulong wc_shift = XLC_GENERIC(lcd, wc_shift_bits);
-
- if (*from_left > *to_left)
- *from_left = *to_left;
-
- for (; *from_left > 0 ; (*from_left)-- ) {
+ for (; *from_left > 0 && *to_left > 0; (*from_left)-- ) {
wch = *inbufptr++;
@@ -277,8 +271,19 @@ euc_wcstombs(conv, from, from_left, to, to_left, args, num_args)
length = codeset->length;
wch ^= (wchar_t)codeset->wc_encoding;
- if (codeset->parse_info) /* put out SS2 or SS3 */
+ if (codeset->parse_info) { /* put out SS2 or SS3 */
+ if (*to_left < length + 1) {
+ unconv_num++;
+ break;
+ }
*outbufptr++ = *codeset->parse_info->encoding;
+ (*to_left)--;
+ } else {
+ if (*to_left < length) {
+ unconv_num++;
+ break;
+ }
+ }
do {
length--;
@@ -288,27 +293,25 @@ euc_wcstombs(conv, from, from_left, to, to_left, args, num_args)
tmp = BIT8ON(tmp);
*outbufptr++ = (Uchar)tmp;
+ (*to_left)--;
} while (length);
}
*to = (XPointer)outbufptr;
- if ((num_conv = (int)(outbufptr - outbuf_base)) > 0)
- *to_left -= num_conv;
-
return unconv_num;
}
static int
-euc_mbtocs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+euc_mbtocs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
XLCd lcd = (XLCd)conv->state;
XlcCharSet charset;
@@ -317,8 +320,8 @@ euc_mbtocs(conv, from, from_left, to, to_left, args, num_args)
int length;
int unconv_num = 0;
int min_ch = 0;
- register char *src = *from, *dst = *to;
-
+ const char *src = *from;
+ char *dst = *to;
if (isleftside(*src)) { /* 7-bit (CS0) */
if (ASCII_CODESET >= codeset_num)
@@ -374,7 +377,7 @@ euc_mbtocs(conv, from, from_left, to, to_left, args, num_args)
} while (--length);
*to = dst;
- *from = src;
+ *from = (XPointer) src;
*from_left -= charset->char_size;
*to_left -= charset->char_size - length;
@@ -386,22 +389,22 @@ euc_mbtocs(conv, from, from_left, to, to_left, args, num_args)
static int
-euc_mbstocs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+euc_mbstocs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
- char *tmp_from, *tmp_to;
+ const char *tmp_from;
+ char *tmp_to;
int tmp_from_left, tmp_to_left;
XlcCharSet charset, tmp_charset;
XPointer tmp_args[1];
int unconv_num = 0, ret;
-
/* Determine the charset of the segment and convert one characater: */
tmp_args[0] = (XPointer) &charset; /* charset from euc_mbtocs() */
@@ -416,12 +419,11 @@ euc_mbstocs(conv, from, from_left, to, to_left, args, num_args)
tmp_to_left = *to_left;
tmp_to = *to;
-
/* Convert remainder of the segment: */
tmp_args[0] = (XPointer) &tmp_charset;
- while( (ret = euc_mbtocs(conv, &tmp_from, &tmp_from_left, &tmp_to,
- &tmp_to_left, tmp_args, 1)) >= 0 ) {
+ while( (ret = euc_mbtocs(conv, (XPointer *) &tmp_from, &tmp_from_left,
+ (XPointer *) &tmp_to, &tmp_to_left, tmp_args, 1)) >= 0 ) {
if (ret > 0) {
unconv_num += ret;
@@ -431,9 +433,9 @@ euc_mbstocs(conv, from, from_left, to, to_left, args, num_args)
if (tmp_charset != charset) /* quit on end of segment */
break;
- *from = tmp_from;
+ *from = (XPointer) tmp_from;
*from_left = tmp_from_left;
- *to = tmp_to;
+ *to = (XPointer) tmp_to;
*to_left = tmp_to_left;
}
@@ -445,26 +447,25 @@ euc_mbstocs(conv, from, from_left, to, to_left, args, num_args)
static int
-euc_wcstocs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+euc_wcstocs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
XLCd lcd = (XLCd)conv->state;
- wchar_t *wcptr = (wchar_t *) *from;
- register char *bufptr = (char *) *to;
+ const wchar_t *wcptr = (const wchar_t *) *from;
+ char *bufptr = (char *) *to;
wchar_t wch;
char *tmpptr;
- register int length;
+ int length;
CodeSet codeset;
Ulong wc_encoding;
int wcstr_len = *from_left, buf_len = *to_left;
-
if (!(codeset = wc_codeset(lcd, *wcptr)))
return -1;
@@ -506,25 +507,24 @@ euc_wcstocs(conv, from, from_left, to, to_left, args, num_args)
static int
-euc_cstombs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+euc_cstombs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
XLCd lcd = (XLCd)conv->state;
- register char *csptr = *from;
- register char *bufptr = *to;
+ const char *csptr = *from;
+ char *bufptr = *to;
int csstr_len = *from_left;
- register int buf_len = *to_left;
+ int buf_len = *to_left;
int length;
CodeSet codeset;
int cvt_length;
-
if (num_args < 1)
return -1;
@@ -556,7 +556,7 @@ euc_cstombs(conv, from, from_left, to, to_left, args, num_args)
}
*from_left -= csptr - *from;
- *from = csptr;
+ *from = (XPointer) csptr;
if (bufptr)
*to += cvt_length;
*to_left -= cvt_length;
@@ -566,26 +566,25 @@ euc_cstombs(conv, from, from_left, to, to_left, args, num_args)
static int
-euc_cstowcs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+euc_cstowcs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
XLCd lcd = (XLCd)conv->state;
- register char *csptr = *from;
+ const char *csptr = *from;
wchar_t *bufptr = (wchar_t *) *to;
wchar_t *toptr = (wchar_t *) *to;
int csstr_len = *from_left;
- register int buf_len = *to_left;
+ int buf_len = *to_left;
wchar_t wch;
int length;
Ulong wc_shift_bits = XLC_GENERIC(lcd, wc_shift_bits);
CodeSet codeset;
-
if (num_args < 1)
return -1;
@@ -617,21 +616,20 @@ euc_cstowcs(conv, from, from_left, to, to_left, args, num_args)
}
}
*from_left -= csptr - *from;
- *from = csptr;
+ *from = (XPointer) csptr;
return 0;
}
static CodeSet
-wc_codeset(lcd, wch)
- XLCd lcd;
- wchar_t wch;
+wc_codeset(
+ XLCd lcd,
+ wchar_t wch)
{
-
- register CodeSet *codesets = XLC_GENERIC(lcd, codeset_list);
- register int end = XLC_GENERIC(lcd, codeset_num);
- register Ulong widech = (Ulong)(wch & XLC_GENERIC(lcd, wc_encode_mask));
+ CodeSet *codesets = XLC_GENERIC(lcd, codeset_list);
+ int end = XLC_GENERIC(lcd, codeset_num);
+ Ulong widech = (Ulong)(wch & XLC_GENERIC(lcd, wc_encode_mask));
for (; --end >= 0; codesets++)
if ( widech == (*codesets)->wc_encoding )
@@ -642,13 +640,13 @@ wc_codeset(lcd, wch)
static CodeSet
-GetCodeSetFromCharSet(lcd, charset)
- XLCd lcd;
- XlcCharSet charset;
+GetCodeSetFromCharSet(
+ XLCd lcd,
+ XlcCharSet charset)
{
- register CodeSet *codeset = XLC_GENERIC(lcd, codeset_list);
- register XlcCharSet *charset_list;
- register int codeset_num, num_charsets;
+ CodeSet *codeset = XLC_GENERIC(lcd, codeset_list);
+ XlcCharSet *charset_list;
+ int codeset_num, num_charsets;
codeset_num = XLC_GENERIC(lcd, codeset_num);
@@ -666,9 +664,9 @@ GetCodeSetFromCharSet(lcd, charset)
static XlcConv
-create_conv(lcd, methods)
- XLCd lcd;
- XlcConvMethods methods;
+create_conv(
+ XLCd lcd,
+ XlcConvMethods methods)
{
XlcConv conv;
@@ -756,8 +754,8 @@ static CTData ctdptr[sizeof(ctdata) / sizeof(CTDataRec)];
* initCTptr(): Set ctdptr[] to point at ctdata[], indexed by codeset_num.
*/
static void
-initCTptr(lcd)
- XLCd lcd;
+initCTptr(
+ XLCd lcd)
{
int num_codesets = XLC_GENERIC(lcd, codeset_num);
int num_charsets;
@@ -810,27 +808,26 @@ initCTptr(lcd)
#define SKIP_P(str) while (*(str) >= 0x30 && *(str) <= 0x3f) (str)++;
static int
-euc_ctstowcs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+euc_ctstowcs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
XLCd lcd = (XLCd)conv->state;
Ulong wc_shift_bits = XLC_GENERIC(lcd, wc_shift_bits);
- register XPointer inbufptr = *from;
- XPointer inbuf_base;
- register wchar_t *outbufptr = (wchar_t *) *to;
+ const char *inbufptr = *from;
+ const char *inbuf_base;
+ wchar_t *outbufptr = (wchar_t *) *to;
wchar_t *outbuf_base = outbufptr;
- register int clen, length;
- int num_conv;
+ int clen, length;
int unconv_num = 0;
unsigned int ct_seglen = 0;
Uchar ct_type = 0;
- register int shift_mult;
+ int shift_mult;
wchar_t wc_tmp;
wchar_t wch;
Ulong wc_encoding;
@@ -939,22 +936,22 @@ euc_ctstowcs(conv, from, from_left, to, to_left, args, num_args)
#define userdef (codeset->cs_num == 3)
static int
-euc_wcstocts(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+euc_wcstocts(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
- register int ct_len = *to_left;
- register wchar_t *inbufptr = (wchar_t *) *from;
- register char *ctptr = *to;
+ int ct_len = *to_left;
+ const wchar_t *inbufptr = (const wchar_t *) *from;
+ char *ctptr = *to;
XPointer ct_base = ctptr;
wchar_t wch;
- register int length;
- register int unconv_num = 0;
+ int length;
+ int unconv_num = 0;
Uchar tmp;
Uchar t1 = 0;
int num_conv;
@@ -965,7 +962,6 @@ euc_wcstocts(conv, from, from_left, to, to_left, args, num_args)
CodeSet codeset;
Ulong wc_shift = XLC_GENERIC(lcd, wc_shift_bits);
-
/* Initial State: */
ct_state.GL_charset = ctdptr[0]; /* Codeset 0 */
ct_state.GR_charset = NULL;
@@ -1077,22 +1073,21 @@ euc_wcstocts(conv, from, from_left, to, to_left, args, num_args)
#define userdef (ctdp == ctdptr[Userdef])
static int
-euc_ctstombs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+euc_ctstombs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
- register XPointer inbufptr = *from;
- register XPointer outbufptr = *to;
- XPointer inbuf_base;
+ char *inbufptr = *from;
+ XPointer outbufptr = *to;
+ const char *inbuf_base;
XPointer outbuf_base = outbufptr;
- register int clen, length;
+ int clen, length;
int unconv_num = 0;
- int num_conv;
unsigned int ct_seglen = 0;
Uchar ct_type = 0;
CTData ctdp = &ctdata[0]; /* default */
@@ -1168,8 +1163,9 @@ euc_ctstombs(conv, from, from_left, to, to_left, args, num_args)
clen = length;
do {
- if (byte1)
+ if (byte1) {
if (kanji) {
+ /* FIXME: assignment of read-only location */
*inbufptr = BIT8ON(*inbufptr);
*(inbufptr+1) = BIT8ON(*(inbufptr+1));
}
@@ -1179,6 +1175,7 @@ euc_ctstombs(conv, from, from_left, to, to_left, args, num_args)
}
(*to_left)--;
}
+ }
if (save_outbuf == True) {
*outbufptr++ = *inbufptr;
}
@@ -1205,22 +1202,22 @@ euc_ctstombs(conv, from, from_left, to, to_left, args, num_args)
static int
-euc_mbstocts(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+euc_mbstocts(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
- register int ct_len = *to_left;
+ int ct_len = *to_left;
int cs_num;
- int clen, length;
+ int clen, length = 0;
int unconv_num = 0;
int num_conv;
- XPointer inbufptr = *from;
- register char *ctptr = *to;
+ const char *inbufptr = *from;
+ char *ctptr = *to;
XPointer ct_base = ctptr;
StateRec ct_state;
@@ -1228,7 +1225,6 @@ euc_mbstocts(conv, from, from_left, to, to_left, args, num_args)
XLCd lcd = (XLCd) conv->state;
int codeset_num = XLC_GENERIC(lcd, codeset_num);
-
/* Initial State: */
ct_state.GL_charset = NULL;
ct_state.GR_charset = NULL;
@@ -1325,8 +1321,8 @@ euc_mbstocts(conv, from, from_left, to, to_left, args, num_args)
static void
-close_converter(conv)
- XlcConv conv;
+close_converter(
+ XlcConv conv)
{
Xfree((char *) conv);
}
@@ -1350,122 +1346,118 @@ static XlcConvMethodsRec conv_methods[] = {
static XlcConv
-open_mbstocs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_mbstocs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &conv_methods[MBSTOCS]);
}
static XlcConv
-open_wcstocs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_wcstocs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &conv_methods[WCSTOCS]);
}
static XlcConv
-open_mbtocs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_mbtocs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &conv_methods[MBTOCS]);
}
static XlcConv
-open_cstombs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_cstombs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &conv_methods[CSTOMBS]);
}
static XlcConv
-open_cstowcs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_cstowcs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &conv_methods[CSTOWCS]);
}
static XlcConv
-open_mbstowcs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_mbstowcs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &conv_methods[MBSTOWCS]);
}
static XlcConv
-open_wcstombs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_wcstombs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &conv_methods[WCSTOMBS]);
}
static XlcConv
-open_ctstowcs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_ctstowcs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &conv_methods[CTSTOWCS]);
}
static XlcConv
-open_ctstombs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_ctstombs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &conv_methods[CTSTOMBS]);
}
static XlcConv
-open_wcstocts(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_wcstocts(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &conv_methods[WCSTOCTS]);
}
static XlcConv
-open_mbstocts(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_mbstocts(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &conv_methods[MBSTOCTS]);
}
XLCd
-#ifdef DYNAMIC_LOAD
-_XlcGenericLoader(name)
-#else
-_XlcEucLoader(name)
-#endif
- char *name;
+_XlcEucLoader(
+ const char *name)
{
XLCd lcd;
@@ -1473,7 +1465,6 @@ _XlcEucLoader(name)
if (lcd == NULL)
return lcd;
-
if (!XLC_PUBLIC_PART(lcd)->codeset ||
(_XlcNCompareISOLatin1(XLC_PUBLIC_PART(lcd)->codeset, "euc", 3))) {
_XlcDestroyLC(lcd);
@@ -1497,6 +1488,8 @@ _XlcEucLoader(name)
_XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNMultiByte, open_wcstombs);
#endif
+ _XlcAddUtf8Converters(lcd);
+
return lcd;
}
diff --git a/modules/lc/xlocale/lcJis.c b/modules/lc/xlocale/lcJis.c
index eae9ee95..9f937737 100644
--- a/modules/lc/xlocale/lcJis.c
+++ b/modules/lc/xlocale/lcJis.c
@@ -23,6 +23,14 @@
* Author: Katsuhisa Yano TOSHIBA Corp.
* mopi@osa.ilab.toshiba.co.jp
*/
+/* $XFree86: xc/lib/X11/lcJis.c,v 1.9 2002/04/10 16:20:06 tsi Exp $ */
+
+/*
+ * A Japanese JIS locale.
+ * Supports: all locales with codeset JIS7.
+ * How: Provides converters for JIS.
+ * Platforms: Only those defining X_LOCALE (only Lynx, Linux-libc5, OS/2).
+ */
#ifdef X_LOCALE
@@ -30,7 +38,7 @@
#include "XlcGeneric.h"
#include <stdio.h>
-#if !defined(X_NOT_STDC_ENV) && !defined(macII) && !defined(X_LOCALE)
+#if !defined(macII) && !defined(X_LOCALE)
#define STDCVT
#endif
@@ -42,12 +50,12 @@ typedef struct _StateRec {
} StateRec, *State;
static void
-init_state(conv)
- XlcConv conv;
+init_state(
+ XlcConv conv)
{
- register State state = (State) conv->state;
- register XLCdGenericPart *gen = XLC_GENERIC_PART(state->lcd);
- register CodeSet codeset;
+ State state = (State) conv->state;
+ XLCdGenericPart *gen = XLC_GENERIC_PART(state->lcd);
+ CodeSet codeset;
codeset = gen->initial_state_GL;
if (codeset && codeset->charset_list)
@@ -57,17 +65,17 @@ init_state(conv)
state->GR_charset = *codeset->charset_list;
if (state->GL_charset == NULL)
- if (codeset = *gen->codeset_list)
+ if ((codeset = *gen->codeset_list) != NULL)
state->GL_charset = *codeset->charset_list;
}
static int
-compare(src, encoding, length)
- register char *src;
- register char *encoding;
- register int length;
+compare(
+ const char *src,
+ const char *encoding,
+ int length)
{
- char *start = src;
+ const char *start = src;
while (length-- > 0) {
if (*src++ != *encoding++)
@@ -80,32 +88,34 @@ compare(src, encoding, length)
}
static int
-mbtocs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+mbtocs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
State state = (State) conv->state;
XLCd lcd = state->lcd;
- register char *src, *dst;
- unsigned char ch, *mb_parse_table;
+ const char *src;
+ char *dst;
+ unsigned char *mb_parse_table;
ParseInfo *parse_list, parse_info;
XlcCharSet charset;
int length, number, encoding_len = 0;
- register int i;
+ int i;
- src = *((char **) from);
+ src = *((const char **) from);
dst = *((char **) to);
- if (mb_parse_table = XLC_GENERIC(lcd, mb_parse_table)) {
+ mb_parse_table = XLC_GENERIC(lcd, mb_parse_table);
+ if (mb_parse_table != NULL) {
number = mb_parse_table[(unsigned char) *src];
if (number > 0) {
parse_list = XLC_GENERIC(lcd, mb_parse_list) + number - 1;
- for ( ; parse_info = *parse_list; parse_list++) {
+ for ( ; (parse_info = *parse_list) != NULL; parse_list++) {
encoding_len = compare(src, parse_info->encoding, *from_left);
if (encoding_len > 0) {
switch (parse_info->type) {
@@ -129,6 +139,8 @@ mbtocs(conv, from, from_left, to, to_left, args, num_args)
case E_GR:
charset = state->GR_charset;
goto found;
+ default:
+ break;
}
}
}
@@ -176,14 +188,14 @@ end:
}
static int
-mbstocs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+mbstocs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
XlcCharSet charset = NULL;
XPointer tmp_args[2], save_from = *from;
@@ -212,13 +224,13 @@ mbstocs(conv, from, from_left, to, to_left, args, num_args)
}
static CodeSet
-wc_parse_codeset(lcd, wcstr)
- XLCd lcd;
- wchar_t *wcstr;
+wc_parse_codeset(
+ XLCd lcd,
+ const wchar_t *wcstr)
{
- register CodeSet *codeset;
+ CodeSet *codeset;
unsigned long wc_encoding;
- register int num;
+ int num;
wc_encoding = *wcstr & XLC_GENERIC(lcd, wc_encode_mask);
num = XLC_GENERIC(lcd, codeset_num);
@@ -233,22 +245,22 @@ wc_parse_codeset(lcd, wcstr)
}
static int
-wcstocs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+wcstocs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
State state = (State) conv->state;
XLCd lcd = state->lcd;
- wchar_t *wcptr;
- register char *bufptr;
- register wchar_t wch;
+ const wchar_t *wcptr;
+ char *bufptr;
+ wchar_t wch;
char *tmpptr;
- register int length;
+ int length;
CodeSet codeset;
unsigned long wc_encoding;
int wcstr_len, buf_len;
@@ -256,7 +268,7 @@ wcstocs(conv, from, from_left, to, to_left, args, num_args)
if (from == NULL || *from == NULL)
return 0;
- wcptr = *((wchar_t **) from);
+ wcptr = *((const wchar_t **) from);
bufptr = *((char **) to);
wcstr_len = *from_left;
buf_len = *to_left;
@@ -309,13 +321,13 @@ wcstocs(conv, from, from_left, to, to_left, args, num_args)
}
static CodeSet
-GetCodeSetFromCharSet(lcd, charset)
- XLCd lcd;
- XlcCharSet charset;
+GetCodeSetFromCharSet(
+ XLCd lcd,
+ XlcCharSet charset)
{
- register CodeSet *codeset = XLC_GENERIC(lcd, codeset_list);
- register XlcCharSet *charset_list;
- register int codeset_num, num_charsets;
+ CodeSet *codeset = XLC_GENERIC(lcd, codeset_list);
+ XlcCharSet *charset_list;
+ int codeset_num, num_charsets;
codeset_num = XLC_GENERIC(lcd, codeset_num);
@@ -332,27 +344,27 @@ GetCodeSetFromCharSet(lcd, charset)
}
static int
-cstombs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+cstombs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
State state = (State) conv->state;
- register char *csptr;
- register char *bufptr;
+ const char *csptr;
+ char *bufptr;
int csstr_len;
- register int buf_len;
+ int buf_len;
int num, encoding_len = 0;
CodeSet codeset;
XlcCharSet charset;
EncodingType type;
int cvt_length;
- csptr = *((char **) from);
+ csptr = *((const char **) from);
bufptr = *((char **) to);
csstr_len = *from_left;
buf_len = *to_left;
@@ -396,6 +408,8 @@ cstombs(conv, from, from_left, to, to_left, args, num_args)
else
state->GR_charset = charset;
break;
+ default:
+ break;
}
}
@@ -436,27 +450,27 @@ cstombs(conv, from, from_left, to, to_left, args, num_args)
}
static int
-cstowcs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+cstowcs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
State state = (State) conv->state;
XLCd lcd = state->lcd;
- register char *csptr;
+ const char *csptr;
wchar_t *bufptr;
int csstr_len;
- register int buf_len;
- register wchar_t wch;
+ int buf_len;
+ wchar_t wch;
unsigned long code_mask, wc_encoding;
int num, length, wc_shift_bits;
CodeSet codeset;
- csptr = *((char **) from);
+ csptr = *((const char **) from);
bufptr = *((wchar_t **) to);
csstr_len = *from_left;
buf_len = *to_left;
@@ -501,8 +515,8 @@ cstowcs(conv, from, from_left, to, to_left, args, num_args)
static void
-close_converter(conv)
- XlcConv conv;
+close_converter(
+ XlcConv conv)
{
if (conv->state) {
Xfree((char *) conv->state);
@@ -512,9 +526,9 @@ close_converter(conv)
}
static XlcConv
-create_conv(lcd, methods)
- XLCd lcd;
- XlcConvMethods methods;
+create_conv(
+ XLCd lcd,
+ XlcConvMethods methods)
{
XlcConv conv;
State state;
@@ -551,14 +565,14 @@ static XlcConvMethodsRec mbstocs_methods = {
close_converter,
mbstocs,
NULL
-} ;
+};
static XlcConv
-open_mbstocs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_mbstocs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &mbstocs_methods);
}
@@ -567,14 +581,14 @@ static XlcConvMethodsRec wcstocs_methods = {
close_converter,
wcstocs,
NULL
-} ;
+};
static XlcConv
-open_wcstocs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_wcstocs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &wcstocs_methods);
}
@@ -583,14 +597,14 @@ static XlcConvMethodsRec mbtocs_methods = {
close_converter,
mbtocs,
NULL
-} ;
+};
static XlcConv
-open_mbtocs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_mbtocs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &mbtocs_methods);
}
@@ -599,14 +613,14 @@ static XlcConvMethodsRec cstombs_methods = {
close_converter,
cstombs,
NULL
-} ;
+};
static XlcConv
-open_cstombs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_cstombs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &cstombs_methods);
}
@@ -615,30 +629,30 @@ static XlcConvMethodsRec cstowcs_methods = {
close_converter,
cstowcs,
NULL
-} ;
+};
static XlcConv
-open_cstowcs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_cstowcs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &cstowcs_methods);
}
#ifdef STDCVT
static int
-stdc_mbstowcs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+stdc_mbstowcs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
- char *src = *((char **) from);
+ const char *src = *((const char **) from);
wchar_t *dst = *((wchar_t **) to);
int src_left = *from_left;
int dst_left = *to_left;
@@ -675,16 +689,16 @@ stdc_mbstowcs(conv, from, from_left, to, to_left, args, num_args)
}
static int
-stdc_wcstombs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+stdc_wcstombs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
- wchar_t *src = *((wchar_t **) from);
+ const wchar_t *src = *((const wchar_t **) from);
char *dst = *((char **) to);
int src_left = *from_left;
int dst_left = *to_left;
@@ -719,16 +733,17 @@ stdc_wcstombs(conv, from, from_left, to, to_left, args, num_args)
}
static int
-stdc_wcstocs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+stdc_wcstocs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
- wchar_t wch, *src = *((wchar_t **) from);
+ const wchar_t *src = *((const wchar_t **) from);
+ wchar_t wch;
XlcCharSet charset = NULL;
XPointer tmp_args[2], tmp_from, save_from = *from;
char tmp[32];
@@ -779,14 +794,14 @@ stdc_wcstocs(conv, from, from_left, to, to_left, args, num_args)
#define FreeLocalBuf(ptr) if (ptr != local_buf) Xfree(ptr)
static int
-stdc_cstowcs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+stdc_cstowcs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
XLCd lcd = ((State) conv->state)->lcd;
DefineLocalBuf;
@@ -817,14 +832,14 @@ static XlcConvMethodsRec stdc_mbstowcs_methods = {
close_converter,
stdc_mbstowcs,
NULL
-} ;
+};
static XlcConv
-open_stdc_mbstowcs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_stdc_mbstowcs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &stdc_mbstowcs_methods);
}
@@ -833,14 +848,14 @@ static XlcConvMethodsRec stdc_wcstombs_methods = {
close_converter,
stdc_wcstombs,
NULL
-} ;
+};
static XlcConv
-open_stdc_wcstombs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_stdc_wcstombs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &stdc_wcstombs_methods);
}
@@ -849,14 +864,14 @@ static XlcConvMethodsRec stdc_wcstocs_methods = {
close_converter,
stdc_wcstocs,
NULL
-} ;
+};
static XlcConv
-open_stdc_wcstocs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_stdc_wcstocs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &stdc_wcstocs_methods);
}
@@ -865,25 +880,27 @@ static XlcConvMethodsRec stdc_cstowcs_methods = {
close_converter,
stdc_cstowcs,
NULL
-} ;
+};
static XlcConv
-open_stdc_cstowcs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_stdc_cstowcs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &stdc_cstowcs_methods);
}
#endif /* STDCVT */
XLCd
-_XlcJisLoader(name)
- char *name;
+_XlcJisLoader(
+ const char *name)
{
XLCd lcd;
+#ifdef STDCVT
XLCdGenericPart *gen;
+#endif
lcd = _XlcCreateLC(name, _XlcGenericMethods);
if (lcd == NULL)
@@ -917,6 +934,8 @@ _XlcJisLoader(name)
}
#endif
+ _XlcAddUtf8Converters(lcd);
+
return lcd;
}
diff --git a/modules/lc/xlocale/lcSjis.c b/modules/lc/xlocale/lcSjis.c
index 95d9ed8d..1bbed862 100644
--- a/modules/lc/xlocale/lcSjis.c
+++ b/modules/lc/xlocale/lcSjis.c
@@ -35,6 +35,14 @@ OR PERFORMANCE OF THIS SOFTWARE.
makoto@sm.sony.co.jp
*****************************************************************/
+/* $XFree86: xc/lib/X11/lcSjis.c,v 3.9 2002/04/10 16:20:06 tsi Exp $ */
+
+/*
+ * A Japanese SJIS locale.
+ * Supports: all locales with codeset SJIS.
+ * How: Provides converters for SJIS.
+ * Platforms: Only those defining X_LOCALE (only Lynx, Linux-libc5, OS/2).
+ */
#ifdef X_LOCALE
@@ -92,9 +100,9 @@ typedef unsigned int Uint;
#define BIT8ON(c) ((c) | GR)
-static void jis_to_sjis();
-static void sjis_to_jis();
-static CodeSet wc_codeset();
+static void jis_to_sjis (Uchar *p1, Uchar *p2);
+static void sjis_to_jis (Uchar *p1, Uchar *p2);
+static CodeSet wc_codeset (XLCd lcd, wchar_t wch);
/*
@@ -114,21 +122,21 @@ static CodeSet wc_codeset();
static int
-sjis_mbstowcs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+sjis_mbstowcs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
XLCd lcd = (XLCd)conv->state;
- register int chr_len = 0;
- register int shift_mult = 0;
- register Uint chrcode = 0;
+ int chr_len = 0;
+ int shift_mult = 0;
+ Uint chrcode = 0;
Uchar ch, ch2;
Uint wc_encode = 0;
@@ -137,11 +145,11 @@ sjis_mbstowcs(conv, from, from_left, to, to_left, args, num_args)
Bool new_char;
int firstbyte;
- int length;
+ int length = 0;
int num_conv;
int unconv_num = 0;
- XPointer inbufptr = *from;
+ const char *inbufptr = *from;
wchar_t *outbufptr = (wchar_t *) *to;
wchar_t *outbuf_base = outbufptr;
@@ -149,7 +157,6 @@ sjis_mbstowcs(conv, from, from_left, to, to_left, args, num_args)
int codeset_num = XLC_GENERIC(lcd, codeset_num);
Ulong wc_shift = XLC_GENERIC(lcd, wc_shift_bits);
-
if (*from_left > *to_left)
*from_left = *to_left;
@@ -254,20 +261,20 @@ sjis_mbstowcs(conv, from, from_left, to, to_left, args, num_args)
#define byte2 (byte1 == 0)
static int
-sjis_wcstombs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+sjis_wcstombs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
- register wchar_t *inbufptr = (wchar_t *) *from;
- register XPointer outbufptr = *to;
+ const wchar_t *inbufptr = (const wchar_t *) *from;
+ XPointer outbufptr = *to;
XPointer outbuf_base = outbufptr;
wchar_t wch;
- register int length;
+ int length;
Uchar tmp;
Uchar t1, t2;
int num_conv;
@@ -277,8 +284,6 @@ sjis_wcstombs(conv, from, from_left, to, to_left, args, num_args)
CodeSet codeset;
Ulong wc_shift = XLC_GENERIC(lcd, wc_shift_bits);
-
-
if (*from_left > *to_left)
*from_left = *to_left;
@@ -333,43 +338,43 @@ sjis_wcstombs(conv, from, from_left, to, to_left, args, num_args)
* sjis<->jis conversion for widechar kanji (See Note at top of file)
*/
static void
-sjis_to_jis(p1, p2)
- Uchar *p1;
- Uchar *p2;
+sjis_to_jis(
+ Uchar *p1,
+ Uchar *p2)
{
- register Uchar c1 = *p1;
- register Uchar c2 = *p2;
- register Uchar adjust = c2 < 0x9f;
- register Uchar rowOffset = c1 < 0xa0 ? 0x70 : 0xb0;
- register Uchar cellOffset = adjust ? (0x1f + (c2 > 0x7f)) : 0x7e;
+ Uchar c1 = *p1;
+ Uchar c2 = *p2;
+ Uchar adjust = c2 < 0x9f;
+ Uchar rowOffset = c1 < 0xa0 ? 0x70 : 0xb0;
+ Uchar cellOffset = adjust ? (0x1f + (c2 > 0x7f)) : 0x7e;
*p1 = ((c1 - rowOffset) << 1) - adjust;
*p2 -= cellOffset;
}
static void
-jis_to_sjis(p1, p2)
- Uchar *p1;
- Uchar *p2;
+jis_to_sjis(
+ Uchar *p1,
+ Uchar *p2)
{
- register Uchar c1 = *p1;
- register Uchar c2 = *p2;
- register Uchar rowOffset = c1 < 0x5f ? 0x70 : 0xb0;
- register Uchar cellOffset = c1 % 2 ? 0x1f + (c2 > 0x5f) : 0x7e;
+ Uchar c1 = *p1;
+ Uchar c2 = *p2;
+ Uchar rowOffset = c1 < 0x5f ? 0x70 : 0xb0;
+ Uchar cellOffset = c1 % 2 ? 0x1f + (c2 > 0x5f) : 0x7e;
*p1 = ((Uchar)(c1 + 1) >> 1) + rowOffset;
*p2 = c2 + cellOffset;
}
static CodeSet
-wc_codeset(lcd, wch)
- XLCd lcd;
- wchar_t wch;
+wc_codeset(
+ XLCd lcd,
+ wchar_t wch)
{
- register CodeSet *codesets = XLC_GENERIC(lcd, codeset_list);
+ CodeSet *codesets = XLC_GENERIC(lcd, codeset_list);
#if !defined(__sony_news) || defined(SVR4)
- register int end = XLC_GENERIC(lcd, codeset_num);
- register Ulong widech = (Ulong)(wch & XLC_GENERIC(lcd, wc_encode_mask));
+ int end = XLC_GENERIC(lcd, codeset_num);
+ Ulong widech = (Ulong)(wch & XLC_GENERIC(lcd, wc_encode_mask));
for (; --end >= 0; codesets++)
if ( widech == (*codesets)->wc_encoding )
@@ -387,24 +392,24 @@ wc_codeset(lcd, wch)
static int
-sjis_mbtocs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+sjis_mbtocs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
XLCd lcd = (XLCd)conv->state;
XlcCharSet charset = NULL;
int char_size = 0;
int unconv_num = 0;
- register char *src = *from, *dst = *to;
+ const char *src = *from;
+ char *dst = *to;
CodeSet *codesets = XLC_GENERIC(lcd, codeset_list);
int codeset_num = XLC_GENERIC(lcd, codeset_num);
-
if (iskanji(*src)) {
if (KANJI_CODESET >= codeset_num)
return -1;
@@ -463,8 +468,8 @@ sjis_mbtocs(conv, from, from_left, to, to_left, args, num_args)
*from_left -= char_size;
*to_left -= char_size;
- *to = dst;
- *from = src;
+ *to = (XPointer) dst;
+ *from = (XPointer) src;
if (num_args > 0)
*((XlcCharSet *) args[0]) = charset;
@@ -474,23 +479,22 @@ sjis_mbtocs(conv, from, from_left, to, to_left, args, num_args)
static int
-sjis_mbstocs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+sjis_mbstocs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
- char *tmp_from, *tmp_to;
+ const char *tmp_from;
+ char *tmp_to;
int tmp_from_left, tmp_to_left;
XlcCharSet charset, tmp_charset;
XPointer tmp_args[1];
int unconv_num = 0, ret;
-
-
/* Determine the charset of the segment and convert one character: */
tmp_args[0] = (XPointer) &charset; /* charset from sjis_mbtocs() */
@@ -508,8 +512,8 @@ sjis_mbstocs(conv, from, from_left, to, to_left, args, num_args)
/* Convert remainder of the segment: */
tmp_args[0] = (XPointer) &tmp_charset;
- while( (ret = sjis_mbtocs(conv, &tmp_from, &tmp_from_left, &tmp_to,
- &tmp_to_left, tmp_args, 1)) >= 0 ) {
+ while( (ret = sjis_mbtocs(conv, (XPointer *) &tmp_from, &tmp_from_left,
+ (XPointer *) &tmp_to, &tmp_to_left, tmp_args, 1)) >= 0 ) {
if (ret > 0) {
unconv_num += ret;
@@ -519,9 +523,9 @@ sjis_mbstocs(conv, from, from_left, to, to_left, args, num_args)
if (tmp_charset != charset) /* quit on end of segment */
break;
- *from = tmp_from;
+ *from = (XPointer) tmp_from;
*from_left = tmp_from_left;
- *to = tmp_to;
+ *to = (XPointer) tmp_to;
*to_left = tmp_to_left;
}
@@ -532,27 +536,26 @@ sjis_mbstocs(conv, from, from_left, to, to_left, args, num_args)
}
static int
-sjis_wcstocs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+sjis_wcstocs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
XLCd lcd = (XLCd) conv->state;
- wchar_t *wcptr = *((wchar_t **)from);
- register char *bufptr = *((char **) to);
+ const wchar_t *wcptr = *((const wchar_t **)from);
+ char *bufptr = *((char **) to);
wchar_t wch;
char *tmpptr;
- register int length;
+ int length;
CodeSet codeset;
Ulong wc_encoding;
int buf_len = *to_left;
int wcstr_len = *from_left;
-
if (!(codeset = wc_codeset(lcd, *wcptr)))
return -1;
@@ -612,13 +615,13 @@ sjis_wcstocs(conv, from, from_left, to, to_left, args, num_args)
}
static CodeSet
-GetCodeSetFromCharSet(lcd, charset)
- XLCd lcd;
- XlcCharSet charset;
+GetCodeSetFromCharSet(
+ XLCd lcd,
+ XlcCharSet charset)
{
- register CodeSet *codeset = XLC_GENERIC(lcd, codeset_list);
- register XlcCharSet *charset_list;
- register int codeset_num, num_charsets;
+ CodeSet *codeset = XLC_GENERIC(lcd, codeset_list);
+ XlcCharSet *charset_list;
+ int codeset_num, num_charsets;
codeset_num = XLC_GENERIC(lcd, codeset_num);
@@ -636,26 +639,24 @@ GetCodeSetFromCharSet(lcd, charset)
static int
-sjis_cstombs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- char **from;
- int *from_left;
- char **to;
- int *to_left;
- XPointer *args;
- int num_args;
+sjis_cstombs(
+ XlcConv conv,
+ char **from,
+ int *from_left,
+ char **to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
XLCd lcd = (XLCd) conv->state;
- register char *csptr = *from;
- register char *bufptr = *to;
+ const char *csptr = *from;
+ char *bufptr = *to;
int csstr_len = *from_left;
- register int buf_len = *to_left;
+ int buf_len = *to_left;
int length;
CodeSet codeset;
- EncodingType type;
int cvt_length = 0;
-
if (num_args < 1)
return -1;
@@ -682,7 +683,7 @@ sjis_cstombs(conv, from, from_left, to, to_left, args, num_args)
}
*from_left -= csptr - *from;
- *from = csptr;
+ *from = (XPointer) csptr;
if (bufptr)
*to += cvt_length;
@@ -693,27 +694,26 @@ sjis_cstombs(conv, from, from_left, to, to_left, args, num_args)
}
static int
-sjis_cstowcs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+sjis_cstowcs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
XLCd lcd = (XLCd) conv->state;
- register char *csptr = (char *) *from;
+ const char *csptr = (const char *) *from;
wchar_t *bufptr = (wchar_t *) *to;
wchar_t *toptr = (wchar_t *) *to;
int csstr_len = *from_left;
- register int buf_len = *to_left;
+ int buf_len = *to_left;
wchar_t wch;
int length;
Ulong wc_shift_bits = (int)XLC_GENERIC(lcd, wc_shift_bits);
CodeSet codeset;
-
if (num_args < 1)
return -1;
@@ -745,7 +745,7 @@ sjis_cstowcs(conv, from, from_left, to, to_left, args, num_args)
}
*from_left -= csptr - *from;
- *from = csptr;
+ *from = (XPointer) csptr;
return 0;
}
@@ -828,8 +828,8 @@ static CTData ctd_endp = ctdata + ((sizeof(ctdata) / sizeof(CTDataRec))) - 1;
* initCTptr(): Set ctptr[] to point at ctdata[], indexed by codeset_num.
*/
static void
-initCTptr(lcd)
- XLCd lcd;
+initCTptr(
+ XLCd lcd)
{
int num_codesets = XLC_GENERIC(lcd, codeset_num);
int num_charsets;
@@ -874,36 +874,34 @@ initCTptr(lcd)
static int
-sjis_mbstocts(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+sjis_mbstocts(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
- register int ct_len = *to_left;
+ int ct_len = *to_left;
int cs_num;
int clen;
int unconv_num = 0;
int num_conv;
- XPointer inbufptr = *from;
- register char *ctptr = *to;
+ const char *inbufptr = *from;
+ char *ctptr = *to;
XPointer ct_base = ctptr;
StateRec ct_state;
- CTData charset;
+ CTData charset = NULL;
XLCd lcd = (XLCd) conv->state;
int codeset_num = XLC_GENERIC(lcd, codeset_num);
-
/* Initial State: */
ct_state.GL_charset = ctdptr[Ascii];
ct_state.GR_charset = NULL;
-
if (*from_left > *to_left)
*from_left = *to_left;
@@ -1009,21 +1007,21 @@ sjis_mbstocts(conv, from, from_left, to, to_left, args, num_args)
#define byte2 (byte1 == 0)
static int
-sjis_wcstocts(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+sjis_wcstocts(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
- register int ct_len = *to_left;
- register wchar_t *inbufptr = (wchar_t *) *from;
- register char *ctptr = *to;
+ int ct_len = *to_left;
+ const wchar_t *inbufptr = (const wchar_t *) *from;
+ char *ctptr = *to;
XPointer ct_base = ctptr;
wchar_t wch;
- register int length;
+ int length;
Uchar tmp;
Uchar t1 = 0;
int num_conv;
@@ -1130,27 +1128,26 @@ sjis_wcstocts(conv, from, from_left, to, to_left, args, num_args)
#define SKIP_P(str) while (*(str) >= 0x30 && *(str) <= 0x3f) (str)++;
static int
-sjis_ctstombs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+sjis_ctstombs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
- register XPointer inbufptr = *from;
- register XPointer outbufptr = *to;
- XPointer inbuf_base;
+ const char *inbufptr = *from;
+ XPointer outbufptr = *to;
+ const char *inbuf_base;
XPointer outbuf_base = outbufptr;
- register int clen, length;
+ int clen, length;
int unconv_num = 0;
int num_conv;
unsigned int ct_seglen = 0;
Uchar ct_type;
CTData ctdp = ctdata; /* default */
-
if (*from_left > *to_left)
*from_left = *to_left;
@@ -1243,33 +1240,32 @@ sjis_ctstombs(conv, from, from_left, to, to_left, args, num_args)
static int
-sjis_ctstowcs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+sjis_ctstowcs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
XLCd lcd = (XLCd)conv->state;
Ulong wc_shift_bits = XLC_GENERIC(lcd, wc_shift_bits);
- register XPointer inbufptr = *from;
- XPointer inbuf_base;
- register wchar_t *outbufptr = (wchar_t *) *to;
+ const char *inbufptr = *from;
+ const char *inbuf_base;
+ wchar_t *outbufptr = (wchar_t *) *to;
wchar_t *outbuf_base = outbufptr;
- register int clen, length;
+ int clen, length;
int num_conv;
int unconv_num = 0;
unsigned int ct_seglen = 0;
Uchar ct_type = 0;
- register int shift_mult;
+ int shift_mult;
wchar_t wc_tmp;
wchar_t wch;
Ulong wc_encoding;
CTData ctdp = ctdata;
-
if (*from_left > *to_left)
*from_left = *to_left;
@@ -1375,17 +1371,17 @@ sjis_ctstowcs(conv, from, from_left, to, to_left, args, num_args)
#undef BADCHAR
static void
-close_converter(conv)
- XlcConv conv;
+close_converter(
+ XlcConv conv)
{
Xfree((char *) conv);
}
static XlcConv
-create_conv(lcd, methods)
- XLCd lcd;
- XlcConvMethods methods;
+create_conv(
+ XLCd lcd,
+ XlcConvMethods methods)
{
XlcConv conv;
@@ -1418,118 +1414,118 @@ static XlcConvMethodsRec conv_methods[] = {
static XlcConv
-open_mbstocs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_mbstocs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &conv_methods[MBSTOCS]);
}
static XlcConv
-open_wcstocs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_wcstocs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &conv_methods[WCSTOCS]);
}
static XlcConv
-open_mbtocs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_mbtocs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &conv_methods[MBTOCS]);
}
static XlcConv
-open_cstombs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_cstombs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &conv_methods[CSTOMBS]);
}
static XlcConv
-open_cstowcs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_cstowcs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &conv_methods[CSTOWCS]);
}
static XlcConv
-open_mbstowcs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_mbstowcs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &conv_methods[MBSTOWCS]);
}
static XlcConv
-open_wcstombs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_wcstombs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &conv_methods[WCSTOMBS]);
}
static XlcConv
-open_wcstocts(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_wcstocts(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &conv_methods[WCSTOCTS]);
}
static XlcConv
-open_mbstocts(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_mbstocts(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &conv_methods[MBSTOCTS]);
}
static XlcConv
-open_ctstombs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_ctstombs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &conv_methods[CTSTOMBS]);
}
static XlcConv
-open_ctstowcs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_ctstowcs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(from_lcd, &conv_methods[CTSTOWCS]);
}
XLCd
-_XlcSjisLoader(name)
- char *name;
+_XlcSjisLoader(
+ const char *name)
{
XLCd lcd;
@@ -1560,6 +1556,7 @@ _XlcSjisLoader(name)
_XlcSetConverter(lcd, XlcNWideChar, lcd, XlcNMultiByte, open_wcstombs);
#endif
+ _XlcAddUtf8Converters(lcd);
return lcd;
}
diff --git a/modules/om/generic/omDefault.c b/modules/om/generic/omDefault.c
index 5d913464..a4765b53 100644
--- a/modules/om/generic/omDefault.c
+++ b/modules/om/generic/omDefault.c
@@ -28,6 +28,7 @@
* This is source code modified by FUJITSU LIMITED under the Joint
* Development Agreement for the CDE/Motif PST.
*/
+/* $XFree86: xc/lib/X11/omDefault.c,v 1.6 2003/04/13 19:22:22 dawes Exp $ */
#include "Xlibint.h"
#include "XomGeneric.h"
@@ -40,55 +41,59 @@
#define FreeLocalBuf(ptr) if (ptr != local_buf) Xfree(ptr)
static Bool
-wcs_to_mbs(oc, to, from, length)
- XOC oc;
- char *to;
- wchar_t *from;
- int length;
+wcs_to_mbs(
+ XOC oc,
+ char *to,
+ _Xconst wchar_t *from,
+ int length)
{
- XlcConv conv = XOC_GENERIC(oc)->wcs_to_cs;
- XLCd lcd;
- int ret, to_left = length;
-
- if (conv == NULL) {
- lcd = oc->core.om->core.lcd;
- conv = _XlcOpenConverter(lcd, XlcNWideChar, lcd, XlcNMultiByte);
- if (conv == NULL)
- return False;
- XOC_GENERIC(oc)->wcs_to_cs = conv;
- } else
- _XlcResetConverter(conv);
+ XlcConv conv;
+ int to_left, ret;
+ conv = _XomInitConverter(oc, XOMWideChar);
+ if (conv == NULL)
+ return False;
+
+ to_left = length;
+ ret = _XlcConvert(conv, (XPointer *) &from, &length, (XPointer *) &to,
+ &to_left, NULL, 0);
+ if (ret != 0 || length > 0)
+ return False;
+
+ return True;
+}
+
+static Bool
+utf8_to_mbs(
+ XOC oc,
+ char *to,
+ _Xconst char *from,
+ int length)
+{
+ XlcConv conv;
+ int to_left, ret;
+
+ conv = _XomInitConverter(oc, XOMUtf8String);
+ if (conv == NULL)
+ return False;
+
+ to_left = length;
ret = _XlcConvert(conv, (XPointer *) &from, &length, (XPointer *) &to,
&to_left, NULL, 0);
if (ret != 0 || length > 0)
return False;
-
+
return True;
}
int
-#if NeedFunctionPrototypes
_XmbDefaultTextEscapement(XOC oc, _Xconst char *text, int length)
-#else
-_XmbDefaultTextEscapement(oc, text, length)
- XOC oc;
- char *text;
- int length;
-#endif
{
return XTextWidth(*oc->core.font_info.font_struct_list, text, length);
}
int
-#if NeedFunctionPrototypes
_XwcDefaultTextEscapement(XOC oc, _Xconst wchar_t *text, int length)
-#else
-_XwcDefaultTextEscapement(oc, text, length)
- XOC oc;
- wchar_t *text;
- int length;
-#endif
{
DefineLocalBuf;
char *buf = AllocLocalBuf(length);
@@ -97,8 +102,33 @@ _XwcDefaultTextEscapement(oc, text, length)
if (buf == NULL)
return 0;
- if (wcs_to_mbs(oc, buf, text, length) == False)
+ if (wcs_to_mbs(oc, buf, text, length) == False) {
+ ret = 0;
goto err;
+ }
+
+ ret = _XmbDefaultTextEscapement(oc, buf, length);
+
+err:
+ FreeLocalBuf(buf);
+
+ return ret;
+}
+
+int
+_Xutf8DefaultTextEscapement(XOC oc, _Xconst char *text, int length)
+{
+ DefineLocalBuf;
+ char *buf = AllocLocalBuf(length);
+ int ret;
+
+ if (buf == NULL)
+ return 0;
+
+ if (utf8_to_mbs(oc, buf, text, length) == False) {
+ ret = 0;
+ goto err;
+ }
ret = _XmbDefaultTextEscapement(oc, buf, length);
@@ -109,17 +139,8 @@ err:
}
int
-#if NeedFunctionPrototypes
_XmbDefaultTextExtents(XOC oc, _Xconst char *text, int length,
XRectangle *overall_ink, XRectangle *overall_logical)
-#else
-_XmbDefaultTextExtents(oc, text, length, overall_ink, overall_logical)
- XOC oc;
- char *text;
- int length;
- XRectangle *overall_ink;
- XRectangle *overall_logical;
-#endif
{
int direction, logical_ascent, logical_descent;
XCharStruct overall;
@@ -145,17 +166,8 @@ _XmbDefaultTextExtents(oc, text, length, overall_ink, overall_logical)
}
int
-#if NeedFunctionPrototypes
_XwcDefaultTextExtents(XOC oc, _Xconst wchar_t *text, int length,
XRectangle *overall_ink, XRectangle *overall_logical)
-#else
-_XwcDefaultTextExtents(oc, text, length, overall_ink, overall_logical)
- XOC oc;
- wchar_t *text;
- int length;
- XRectangle *overall_ink;
- XRectangle *overall_logical;
-#endif
{
DefineLocalBuf;
char *buf = AllocLocalBuf(length);
@@ -164,8 +176,34 @@ _XwcDefaultTextExtents(oc, text, length, overall_ink, overall_logical)
if (buf == NULL)
return 0;
- if (wcs_to_mbs(oc, buf, text, length) == False)
+ if (wcs_to_mbs(oc, buf, text, length) == False) {
+ ret = 0;
+ goto err;
+ }
+
+ ret = _XmbDefaultTextExtents(oc, buf, length, overall_ink, overall_logical);
+
+err:
+ FreeLocalBuf(buf);
+
+ return ret;
+}
+
+int
+_Xutf8DefaultTextExtents(XOC oc, _Xconst char *text, int length,
+ XRectangle *overall_ink, XRectangle *overall_logical)
+{
+ DefineLocalBuf;
+ char *buf = AllocLocalBuf(length);
+ int ret;
+
+ if (buf == NULL)
+ return 0;
+
+ if (utf8_to_mbs(oc, buf, text, length) == False) {
+ ret = 0;
goto err;
+ }
ret = _XmbDefaultTextExtents(oc, buf, length, overall_ink, overall_logical);
@@ -176,25 +214,11 @@ err:
}
Status
-#if NeedFunctionPrototypes
_XmbDefaultTextPerCharExtents(XOC oc, _Xconst char *text, int length,
XRectangle *ink_buf, XRectangle *logical_buf,
int buf_size, int *num_chars,
XRectangle *overall_ink,
XRectangle *overall_logical)
-#else
-_XmbDefaultTextPerCharExtents(oc, text, length, ink_buf, logical_buf, buf_size,
- num_chars, overall_ink, overall_logical)
- XOC oc;
- char *text;
- int length;
- XRectangle *ink_buf;
- XRectangle *logical_buf;
- int buf_size;
- int *num_chars;
- XRectangle *overall_ink;
- XRectangle *overall_logical;
-#endif
{
XFontStruct *font = *oc->core.font_info.font_struct_list;
XCharStruct *def, *cs, overall;
@@ -260,25 +284,11 @@ _XmbDefaultTextPerCharExtents(oc, text, length, ink_buf, logical_buf, buf_size,
}
Status
-#if NeedFunctionPrototypes
_XwcDefaultTextPerCharExtents(XOC oc, _Xconst wchar_t *text, int length,
XRectangle *ink_buf, XRectangle *logical_buf,
int buf_size, int *num_chars,
XRectangle *overall_ink,
XRectangle *overall_logical)
-#else
-_XwcDefaultTextPerCharExtents(oc, text, length, ink_buf, logical_buf, buf_size,
- num_chars, overall_ink, overall_logical)
- XOC oc;
- wchar_t *text;
- int length;
- XRectangle *ink_buf;
- XRectangle *logical_buf;
- int buf_size;
- int *num_chars;
- XRectangle *overall_ink;
- XRectangle *overall_logical;
-#endif
{
DefineLocalBuf;
char *buf = AllocLocalBuf(length);
@@ -287,8 +297,39 @@ _XwcDefaultTextPerCharExtents(oc, text, length, ink_buf, logical_buf, buf_size,
if (buf == NULL)
return 0;
- if (wcs_to_mbs(oc, buf, text, length) == False)
+ if (wcs_to_mbs(oc, buf, text, length) == False) {
+ ret = 0;
goto err;
+ }
+
+ ret = _XmbDefaultTextPerCharExtents(oc, buf, length, ink_buf, logical_buf,
+ buf_size, num_chars, overall_ink,
+ overall_logical);
+
+err:
+ FreeLocalBuf(buf);
+
+ return ret;
+}
+
+Status
+_Xutf8DefaultTextPerCharExtents(XOC oc, _Xconst char *text, int length,
+ XRectangle *ink_buf, XRectangle *logical_buf,
+ int buf_size, int *num_chars,
+ XRectangle *overall_ink,
+ XRectangle *overall_logical)
+{
+ DefineLocalBuf;
+ char *buf = AllocLocalBuf(length);
+ Status ret;
+
+ if (buf == NULL)
+ return 0;
+
+ if (utf8_to_mbs(oc, buf, text, length) == False) {
+ ret = 0;
+ goto err;
+ }
ret = _XmbDefaultTextPerCharExtents(oc, buf, length, ink_buf, logical_buf,
buf_size, num_chars, overall_ink,
@@ -301,19 +342,8 @@ err:
}
int
-#if NeedFunctionPrototypes
_XmbDefaultDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
_Xconst char *text, int length)
-#else
-_XmbDefaultDrawString(dpy, d, oc, gc, x, y, text, length)
- Display *dpy;
- Drawable d;
- XOC oc;
- GC gc;
- int x, y;
- char *text;
- int length;
-#endif
{
XFontStruct *font = *oc->core.font_info.font_struct_list;
@@ -324,19 +354,8 @@ _XmbDefaultDrawString(dpy, d, oc, gc, x, y, text, length)
}
int
-#if NeedFunctionPrototypes
_XwcDefaultDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
_Xconst wchar_t *text, int length)
-#else
-_XwcDefaultDrawString(dpy, d, oc, gc, x, y, text, length)
- Display *dpy;
- Drawable d;
- XOC oc;
- GC gc;
- int x, y;
- wchar_t *text;
- int length;
-#endif
{
DefineLocalBuf;
char *buf = AllocLocalBuf(length);
@@ -345,8 +364,34 @@ _XwcDefaultDrawString(dpy, d, oc, gc, x, y, text, length)
if (buf == NULL)
return 0;
- if (wcs_to_mbs(oc, buf, text, length) == False)
+ if (wcs_to_mbs(oc, buf, text, length) == False) {
+ ret = 0;
goto err;
+ }
+
+ ret = _XmbDefaultDrawString(dpy, d, oc, gc, x, y, buf, length);
+
+err:
+ FreeLocalBuf(buf);
+
+ return ret;
+}
+
+int
+_Xutf8DefaultDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
+ _Xconst char *text, int length)
+{
+ DefineLocalBuf;
+ char *buf = AllocLocalBuf(length);
+ int ret;
+
+ if (buf == NULL)
+ return 0;
+
+ if (utf8_to_mbs(oc, buf, text, length) == False) {
+ ret = 0;
+ goto err;
+ }
ret = _XmbDefaultDrawString(dpy, d, oc, gc, x, y, buf, length);
@@ -357,38 +402,16 @@ err:
}
void
-#if NeedFunctionPrototypes
_XmbDefaultDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
int y, _Xconst char *text, int length)
-#else
-_XmbDefaultDrawImageString(dpy, d, oc, gc, x, y, text, length)
- Display *dpy;
- Drawable d;
- XOC oc;
- GC gc;
- int x, y;
- char *text;
- int length;
-#endif
{
XSetFont(dpy, gc, (*oc->core.font_info.font_struct_list)->fid);
XDrawImageString(dpy, d, gc, x, y, text, length);
}
void
-#if NeedFunctionPrototypes
_XwcDefaultDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
int y, _Xconst wchar_t *text, int length)
-#else
-_XwcDefaultDrawImageString(dpy, d, oc, gc, x, y, text, length)
- Display *dpy;
- Drawable d;
- XOC oc;
- GC gc;
- int x, y;
- wchar_t *text;
- int length;
-#endif
{
DefineLocalBuf;
char *buf = AllocLocalBuf(length);
@@ -404,3 +427,22 @@ _XwcDefaultDrawImageString(dpy, d, oc, gc, x, y, text, length)
err:
FreeLocalBuf(buf);
}
+
+void
+_Xutf8DefaultDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
+ int y, _Xconst char *text, int length)
+{
+ DefineLocalBuf;
+ char *buf = AllocLocalBuf(length);
+
+ if (buf == NULL)
+ return;
+
+ if (utf8_to_mbs(oc, buf, text, length) == False)
+ goto err;
+
+ _XmbDefaultDrawImageString(dpy, d, oc, gc, x, y, buf, length);
+
+err:
+ FreeLocalBuf(buf);
+}
diff --git a/modules/om/generic/omGeneric.c b/modules/om/generic/omGeneric.c
index a4fdb02f..452f0ef2 100644
--- a/modules/om/generic/omGeneric.c
+++ b/modules/om/generic/omGeneric.c
@@ -1,4 +1,5 @@
/* $Xorg: omGeneric.c,v 1.6 2000/08/17 19:45:21 cpqbld Exp $ */
+/* #define FONTDEBUG */
/*
* Copyright 1992, 1993 by TOSHIBA Corp.
*
@@ -31,6 +32,8 @@
* Modifier: Takanori Tateno FUJITSU LIMITED
*
*/
+/* $XFree86: xc/lib/X11/omGeneric.c,v 3.27 2003/05/27 22:26:27 tsi Exp $ */
+
/*
* Fixed the algorithms in parse_fontname() and parse_fontdata()
* to improve the logic for determining which font should be
@@ -41,9 +44,14 @@
*
* Modifiers: Jeff Walls, Paul Anderson: HEWLETT-PACKARD
*/
+/*
+ * Cleaned up mess, removed some blabla
+ * Egbert Eich, SuSE Linux AG
+ */
#include "Xlibint.h"
#include "XomGeneric.h"
+#include "XlcGeneric.h"
#include <X11/Xos.h>
#include <X11/Xatom.h>
#include <stdio.h>
@@ -54,27 +62,40 @@
#define PIXEL_SIZE_FIELD 7
#define POINT_SIZE_FIELD 8
#define CHARSET_ENCODING_FIELD 14
+#define XLFD_MAX_LEN 255
-extern int _XmbDefaultTextEscapement(), _XwcDefaultTextEscapement();
-extern int _XmbDefaultTextExtents(), _XwcDefaultTextExtents();
-extern Status _XmbDefaultTextPerCharExtents(), _XwcDefaultTextPerCharExtents();
-extern int _XmbDefaultDrawString(), _XwcDefaultDrawString();
-extern void _XmbDefaultDrawImageString(), _XwcDefaultDrawImageString();
-
-extern int _XmbGenericTextEscapement(), _XwcGenericTextEscapement();
-extern int _XmbGenericTextExtents(), _XwcGenericTextExtents();
-extern Status _XmbGenericTextPerCharExtents(), _XwcGenericTextPerCharExtents();
-extern int _XmbGenericDrawString(), _XwcGenericDrawString();
-extern void _XmbGenericDrawImageString(), _XwcGenericDrawImageString();
-
-extern void _XlcDbg_printValue();
+#if 0
+extern int _XmbDefaultTextEscapement(), _XwcDefaultTextEscapement(),
+ _Xutf8DefaultTextEscapement();
+extern int _XmbDefaultTextExtents(), _XwcDefaultTextExtents(),
+ _Xutf8DefaultTextExtents();
+extern Status _XmbDefaultTextPerCharExtents(), _XwcDefaultTextPerCharExtents(),
+ _Xutf8DefaultTextPerCharExtents();
+extern int _XmbDefaultDrawString(), _XwcDefaultDrawString(),
+ _Xutf8DefaultDrawString();
+extern void _XmbDefaultDrawImageString(), _XwcDefaultDrawImageString(),
+ _Xutf8DefaultDrawImageString();
+
+extern int _XmbGenericTextEscapement(), _XwcGenericTextEscapement(),
+ _Xutf8GenericTextEscapement();
+extern int _XmbGenericTextExtents(), _XwcGenericTextExtents(),
+ _Xutf8GenericTextExtents();
+extern Status _XmbGenericTextPerCharExtents(), _XwcGenericTextPerCharExtents(),
+ _Xutf8GenericTextPerCharExtents();
+extern int _XmbGenericDrawString(), _XwcGenericDrawString(),
+ _Xutf8GenericDrawString();
+extern void _XmbGenericDrawImageString(), _XwcGenericDrawImageString(),
+ _Xutf8GenericDrawImageString();
+
+extern void _XlcDbg_printValue (const char *str, char **value, int num);
+#endif
/* For VW/UDC start */
static FontData
-init_fontdata(font_data, font_data_count)
- FontData font_data;
- int font_data_count;
+init_fontdata(
+ FontData font_data,
+ int font_data_count)
{
FontData fd;
int i;
@@ -91,12 +112,12 @@ init_fontdata(font_data, font_data_count)
}
static VRotate
-init_vrotate(font_data, font_data_count, type, code_range, code_range_num)
- FontData font_data;
- int font_data_count;
- int type;
- CodeRange code_range;
- int code_range_num;
+init_vrotate(
+ FontData font_data,
+ int font_data_count,
+ int type,
+ CodeRange code_range,
+ int code_range_num)
{
VRotate vrotate;
int i;
@@ -122,8 +143,8 @@ init_vrotate(font_data, font_data_count, type, code_range, code_range_num)
}
static Bool
-init_fontset(oc)
- XOC oc;
+init_fontset(
+ XOC oc)
{
XOCGenericPart *gen;
FontSet font_set;
@@ -192,9 +213,9 @@ err:
/* For VW/UDC end */
static char *
-get_prop_name(dpy, fs)
- Display *dpy;
- XFontStruct *fs;
+get_prop_name(
+ Display *dpy,
+ XFontStruct *fs)
{
unsigned long fp;
@@ -207,10 +228,10 @@ get_prop_name(dpy, fs)
/* For VW/UDC start */
static Bool
-load_fontdata(oc, font_data, font_data_num)
- XOC oc;
- FontData font_data;
- int font_data_num;
+load_fontdata(
+ XOC oc,
+ FontData font_data,
+ int font_data_num)
{
Display *dpy = oc->core.om->core.display;
FontData fd = font_data;
@@ -228,9 +249,9 @@ load_fontdata(oc, font_data, font_data_num)
}
static Bool
-load_fontset_data(oc, font_set)
- XOC oc;
- FontSet font_set;
+load_fontset_data(
+ XOC oc,
+ FontSet font_set)
{
Display *dpy = oc->core.om->core.display;
@@ -250,8 +271,8 @@ load_fontset_data(oc, font_set)
}
static Bool
-load_font(oc)
- XOC oc;
+load_font(
+ XOC oc)
{
XOCGenericPart *gen = XOC_GENERIC(oc);
FontSet font_set = gen->font_set;
@@ -263,7 +284,7 @@ load_font(oc)
if (load_fontset_data (oc, font_set) != True)
return False;
-
+#ifndef TESTVERSION
if(load_fontdata(oc, font_set->font_data,
font_set->font_data_count) != True)
return False;
@@ -271,35 +292,6 @@ load_font(oc)
if(load_fontdata(oc, font_set->substitute,
font_set->substitute_num) != True)
return False;
-
-#if 0
- /* ### This code is no longer needed. This block essentially
- * ### took the font used for this FontSet and figured out
- * ### which font structure to use. This is now accomplished
- * ### via load_fontset_data(), which takes the *best* font
- * ### for this FontSet and performs an XLoadQueryFont() to
- * ### obtain the font structure. Note that this should work
- * ### for either Primary or Substitute fonts.
- * ### -- jjw/pma (HP)
- */
- if(font_set->font_data_count > 0 && font_set->font_data->font ) {
- for (i=0; i<font_set->font_data_count; i++)
- {
- if (!strcmp (font_set->font_data[i].xlfd_name,
- font_set->font_name))
- {
- font_set->font = font_set->font_data[i].font;
- break;
- }
- }
- } else if(font_set->substitute_num > 0 ) {
- for(i=0;i<font_set->substitute_num;i++){
- if(font_set->substitute[i].font != NULL){
- font_set->font = font_set->substitute[i].font;
- break ;
- }
- }
- }
#endif
/* Add 1996.05.20 */
@@ -325,8 +317,8 @@ load_font(oc)
/* For VW/UDC end */
static Bool
-load_font_info(oc)
- XOC oc;
+load_font_info(
+ XOC oc)
{
Display *dpy = oc->core.om->core.display;
XOCGenericPart *gen = XOC_GENERIC(oc);
@@ -354,10 +346,11 @@ load_font_info(oc)
/* For Vertical Writing start */
static void
-check_fontset_extents(overall, logical_ascent, logical_descent, font)
- XCharStruct *overall;
- int *logical_ascent, *logical_descent;
- XFontStruct *font;
+check_fontset_extents(
+ XCharStruct *overall,
+ int *logical_ascent,
+ int *logical_descent,
+ XFontStruct *font)
{
overall->lbearing = min(overall->lbearing, font->min_bounds.lbearing);
overall->rbearing = max(overall->rbearing, font->max_bounds.rbearing);
@@ -371,8 +364,8 @@ check_fontset_extents(overall, logical_ascent, logical_descent, font)
/* For Vertical Writing end */
static void
-set_fontset_extents(oc)
- XOC oc;
+set_fontset_extents(
+ XOC oc)
{
XRectangle *ink = &oc->core.font_set_extents.max_ink_extent;
XRectangle *logical = &oc->core.font_set_extents.max_logical_extent;
@@ -445,8 +438,8 @@ set_fontset_extents(oc)
}
static Bool
-init_core_part(oc)
- XOC oc;
+init_core_part(
+ XOC oc)
{
XOCGenericPart *gen = XOC_GENERIC(oc);
FontSet font_set;
@@ -464,6 +457,7 @@ init_core_part(oc)
continue;
length += strlen(font_set->font_name) + 1;
+
count++;
}
if (count == 0)
@@ -488,7 +482,7 @@ init_core_part(oc)
font_set = gen->font_set;
font_set_num = gen->font_set_num;
- for (count = 0; font_set_num-- > 0; font_set++, count++) {
+ for (count = 0; font_set_num-- > 0; font_set++) {
if (font_set->font_name == NULL)
continue;
@@ -501,6 +495,8 @@ init_core_part(oc)
Xfree(font_set->font_name);
*font_name_list++ = font_set->font_name = font_name_buf;
font_name_buf += strlen(font_name_buf) + 1;
+
+ count++;
}
set_fontset_extents(oc);
@@ -516,9 +512,9 @@ err:
}
static char *
-get_font_name(oc, pattern)
- XOC oc;
- char *pattern;
+get_font_name(
+ XOC oc,
+ char *pattern)
{
char **list, *name;
int count = 0;
@@ -538,9 +534,9 @@ get_font_name(oc, pattern)
/* For VW/UDC start*/
-static char
-*get_rotate_fontname(font_name)
- char *font_name;
+static char *
+get_rotate_fontname(
+ char *font_name)
{
char *pattern = NULL, *ptr = NULL;
char *fields[CHARSET_ENCODING_FIELD];
@@ -549,7 +545,8 @@ static char
int pixel_size = 0;
int field_num = 0, len = 0;
- if(font_name == (char *) NULL || (len = strlen(font_name)) <= 0 || len > 255)
+ if(font_name == (char *) NULL || (len = strlen(font_name)) <= 0
+ || len > XLFD_MAX_LEN)
return NULL;
pattern = (char *)Xmalloc(len + 1);
@@ -568,7 +565,7 @@ static char
for(field_num = 0 ; field_num < CHARSET_ENCODING_FIELD && ptr && *ptr ;
ptr++, field_num++) {
fields[field_num] = ptr;
-
+
if((ptr = strchr(ptr, '-'))) {
*ptr = '\0';
}
@@ -598,18 +595,21 @@ static char
fields[POINT_SIZE_FIELD - 1] = str_point;
len = 0;
- for(field_num = 0 ; field_num < CHARSET_ENCODING_FIELD &&
- fields[field_num] ; field_num++)
- len += 1 + strlen (fields[field_num]);
+ for (field_num = 0; field_num < CHARSET_ENCODING_FIELD &&
+ fields[field_num]; field_num++) {
+ len += 1 + strlen(fields[field_num]);
+ }
- if (len > 255)
+ /* Max XLFD length is 255 */
+ if (len > XLFD_MAX_LEN)
return NULL;
rotate_font_ptr = (char *)Xmalloc(len + 1);
if(!rotate_font_ptr)
return NULL;
- *rotate_font_ptr = '\0';
+ rotate_font_ptr[0] = '\0';
+
for(field_num = 0 ; field_num < CHARSET_ENCODING_FIELD &&
fields[field_num] ; field_num++) {
sprintf(rotate_font_ptr, "%s-%s", rotate_font_ptr, fields[field_num]);
@@ -622,9 +622,9 @@ static char
}
static Bool
-is_match_charset(font_data, font_name)
- FontData font_data;
- char *font_name;
+is_match_charset(
+ FontData font_data,
+ char *font_name)
{
char *last;
int length, name_len;
@@ -642,11 +642,12 @@ is_match_charset(font_data, font_name)
return False;
}
+#if 0
static char *
-get_font_name_from_list(oc, pattern, font_data)
- XOC oc;
- char *pattern;
- FontData font_data;
+get_font_name_from_list(
+ XOC oc,
+ char *pattern,
+ FontData font_data)
{
char **list, *name = (char *)NULL, *fname;
int count = 0, i;
@@ -669,12 +670,13 @@ get_font_name_from_list(oc, pattern, font_data)
return name;
}
+#endif
static int
-parse_all_name(oc, font_data, pattern)
- XOC oc;
- FontData font_data;
- char *pattern;
+parse_all_name(
+ XOC oc,
+ FontData font_data,
+ char *pattern)
{
#ifdef OLDCODE
@@ -693,11 +695,16 @@ parse_all_name(oc, font_data, pattern)
int list_num;
XFontStruct *fs_list;
if(is_match_charset(font_data, pattern) != True) {
+ /*
+ * pattern should not contain any wildcard (execpt '?')
+ * this was probably added to make this case insensitive.
+ */
if ((fn_list = XListFontsWithInfo(dpy, pattern,
MAXFONTS,
&list_num, &fs_list)) == NULL) {
return False;
- }
+ }
+ /* shouldn't we loop here ? */
else if ((prop_fname = get_prop_name(dpy, fs_list)) == NULL) {
XFreeFontInfo(fn_list, fs_list, list_num);
return False;
@@ -724,18 +731,18 @@ parse_all_name(oc, font_data, pattern)
}
static int
-parse_omit_name(oc, font_data, pattern)
- XOC oc;
- FontData font_data;
- char *pattern;
+parse_omit_name(
+ XOC oc,
+ FontData font_data,
+ char *pattern)
{
char* last = (char *) NULL;
char* base_name;
- char buf[BUFSIZE]; /* no XLFD name should be this long */
+ char buf[XLFD_MAX_LEN + 1];
int length = 0;
int num_fields;
-
- /* If the font specified by "pattern" is expandable to be
+ /*
+ * If the font specified by "pattern" is expandable to be
* a member of "font_data"'s FontSet, we've found a match.
*/
if(is_match_charset(font_data, pattern) == True) {
@@ -744,39 +751,11 @@ parse_omit_name(oc, font_data, pattern)
}
}
- /* If an XLFD name is arbitrarily (too) long, allocate a buffer,
- * and some extra space to tack stuff on the end.
- *
- * ### This is a hack. What happens is, we substitute pattern's
- * ### encoding with the default encoding for the FontSet and
- * ### try to find a match. For example, we may change pattern
- * ### from:
- * ### -*-*-*-*-*-*-14-*-*-*-*-*-jisx0212.1990-0 to
- * ### -*-*-*-*-*-*-14-*-*-*-*-*-JISX0208.1990-0
- * ### So, the length of the original pattern may not be enough
- * ### to store the "new" encoding (e.g., going from ISO8859-1 to
- * ### JISX0208.1990-0), so the author decided to simply allocate
- * ### a *bunch* of extra space to handle the potentially longer
- * ### encoding.
- * ###
- * ### The real way to do this would be to figure out the length
- * ### of the original encoding and the length of the new encoding.
- * ### Re-alloc the array with the difference. Since it doesn't
- * ### hurt anything keeping the extra-large buffer, I'll leave
- * ### it the way it is. --jjw/pma (HP)
- * ###
- */
-
- /*
- * since BUFSIZE is much bigger than any legal XLFD name
- * we'll allow the first half for the XLFD pattern, and the
- * second half for the charset-plus-encoding. If we wanted to
- * be accomodating, we could allocate memory, but that's
- * overkill for this. Hackers who are trying to do bad things
- * don't deserve to be accomodated like that.
- */
- if ((length = strlen (pattern)) > BUFSIZE/2) return -1;
+ length = strlen (pattern);
+ if (length > XLFD_MAX_LEN)
+ return -1;
+
strcpy(buf, pattern);
last = buf + length - 1;
@@ -796,6 +775,13 @@ parse_omit_name(oc, font_data, pattern)
* then append the encoding to get:
* -*-*-*-*-*-*-14-*-*-*-*-*-JISX0208.1990-0
*/
+ /*
+ * Take care of:
+ * -*-*-*-*-*-*-14-*-*-*-*-
+ */
+ if (*(last) == '-')
+ *++last = '*';
+
*++last = '-';
break;
case 13:
@@ -825,18 +811,10 @@ parse_omit_name(oc, font_data, pattern)
num_fields = 12;
break;
default:
- /* punt */
- if (length > 1 && *last == '*' && *(last - 1) == '-') {
- if (length > 3 && *(last - 2) == '*' && *(last - 3) == '-')
- last -= 3;
- else
- last--;
- } else {
+ if (*last != '-')
*++last = '-';
- }
break;
}
- last++;
/* At this point, "last" is pointing to the last "-" in the
* xlfd, and all xlfd's at this point take a form similar to:
@@ -848,44 +826,29 @@ parse_omit_name(oc, font_data, pattern)
* If the modified font is found in the current FontSet,
* we've found a match.
*/
+
+ last++;
- /* don't let hackers trounce the stack... */
- if (strlen (font_data->name) > BUFSIZE/2)
+ if ((last - buf) + strlen(font_data->name) > XLFD_MAX_LEN)
return -1;
- /* ...otherwise there's plenty of room to tack on the charset/encoding */
strcpy(last, font_data->name);
if ((font_data->xlfd_name = get_font_name(oc, buf)) != NULL)
return True;
- /* This happens if the client specifies less than 12 fields
- * (e.g., -*-*-*) for some reason. We'll keep appending
- * "-*" until we find something that matches. This "feels"
- * as if we're being overly nice to "lazy" client programs,
- * but that's the way X is...nice :-)
- */
+ /* This may mot be needed anymore as XListFonts() takes care of this */
while (num_fields < 12) {
+ if ((last - buf) > (XLFD_MAX_LEN - 2))
+ return -1;
*last = '*';
*(last + 1) = '-';
strcpy(last + 2, font_data->name);
num_fields++;
last+=2;
if ((font_data->xlfd_name = get_font_name(oc, buf)) != NULL)
- return True;
+ return True;
}
-
-/*
- I'm not sure what Teeks was trying to do here. It
- seems to me that if "get_font_name()" fails,
- "get_font_name_from_list()" would also fail. I wouldn't
- put this in the SI until I understood it better.
- -- jjw/pma (HP)
-
- Couldn't resolve the wild base fontname !
- - Teeks
-*/
- if ((font_data->xlfd_name = get_font_name_from_list(oc, buf, font_data)) != NULL)
- return True;
+
return False;
}
@@ -894,16 +857,15 @@ parse_omit_name(oc, font_data, pattern)
typedef enum{C_PRIMARY, C_SUBSTITUTE, C_VMAP, C_VROTATE } ClassType;
static int
-parse_fontdata(oc, font_set, font_data, font_data_count, name_list, name_list_count,
- class, font_data_return)
- XOC oc;
- FontSet font_set;
- FontData font_data;
- int font_data_count;
- char **name_list;
- int name_list_count;
- ClassType class;
- FontDataRec *font_data_return;
+parse_fontdata(
+ XOC oc,
+ FontSet font_set,
+ FontData font_data,
+ int font_data_count,
+ char **name_list,
+ int name_list_count,
+ ClassType class,
+ FontDataRec *font_data_return)
{
char **cur_name_list = name_list;
@@ -911,7 +873,6 @@ parse_fontdata(oc, font_set, font_data, font_data_count, name_list, name_list_co
char *pattern = (char *) NULL;
int found_num = 0, ret = 0;
int count = name_list_count;
- Bool is_found = False;
if(name_list == NULL || count <= 0) {
return False;
@@ -920,44 +881,53 @@ parse_fontdata(oc, font_set, font_data, font_data_count, name_list, name_list_co
if(font_data == NULL || font_data_count <= 0) {
return False;
}
-
- /* Loop through each FontSet defined in the "font_data" CharSet. */
+
+ /* Loop through each font encoding defined in the "font_data" FontSet. */
for ( ; font_data_count-- > 0; font_data++) {
- is_found = False;
+ Bool is_found = False;
font_name = (char *) NULL;
count = name_list_count;
cur_name_list = name_list;
- /* Loop through each font specified by the user in the call to XCreateFontset(). */
+ /*
+ * Loop through each font specified by the user
+ * in the call to XCreateFontset().
+ */
while (count-- > 0) {
pattern = *cur_name_list++;
if (pattern == NULL || *pattern == '\0')
continue;
-
-
- /* If the current font is fully specified (i.e., the xlfd contains
- * no wildcards) and the font exists on the X Server, we have a match.
+#ifdef FONTDEBUG
+ fprintf(stderr,"Font pattern: %s %s\n",
+ pattern,font_data->name);
+#endif
+
+ /*
+ * If the current font is fully specified (i.e., the
+ * xlfd contains no wildcards) and the font exists on
+ * the X Server, we have a match.
*/
if (strchr(pattern, '*') == NULL &&
(font_name = get_font_name(oc, pattern))) {
-
- /* Find the full xlfd name for this font. If the font is already
- * in xlfd format, it is simply returned. If the font is an
- * alias for another font, the xlfd of the aliased font is returned.
+ /*
+ * Find the full xlfd name for this font. If the font is
+ * already in xlfd format, it is simply returned. If the
+ * font is an alias for another font, the xlfd of the
+ * aliased font is returned.
*/
ret = parse_all_name(oc, font_data, font_name);
Xfree(font_name);
if (ret == -1) return -1;
if (ret == False) continue;
-
- /* Since there was an exact match of a fully-specified font
+ /*
+ * Since there was an exact match of a fully-specified font
* or a font alias, we can return now since the desired font
- * was found for the current FontSet for this CharSet.
+ * was found for the current font encoding for this FontSet.
*
* Previous implementations of this algorithm would
* not return here. Instead, they continued searching
- * through the FontSets for this CharSet. The side-effect
+ * through the font encodings for this FontSet. The side-effect
* of that behavior is you may return a "substitute" match
* instead of an "exact" match. We believe there should be a
* preference on exact matches. Therefore, as soon as we
@@ -965,7 +935,7 @@ parse_fontdata(oc, font_set, font_data, font_data_count, name_list, name_list_co
*
* Also, previous implementations seemed to think it was
* important to find either a primary or substitute font
- * for each FontSet in the CharSet before returning an
+ * for each Font encoding in the FontSet before returning an
* acceptable font. We don't believe this is necessary.
* All the client cares about is finding a reasonable font
* for what was passed in. If we find an exact match,
@@ -973,19 +943,25 @@ parse_fontdata(oc, font_set, font_data, font_data_count, name_list, name_list_co
*
* -- jjw/pma (HP)
*/
- font_data_return->xlfd_name = (char *)Xmalloc
+ if (font_data_return) {
+ font_data_return->xlfd_name = (char *)Xmalloc
(strlen(font_data->xlfd_name) + 1);
- if (!font_data_return->xlfd_name) return -1;
+ if (!font_data_return->xlfd_name) return -1;
- strcpy (font_data_return->xlfd_name, font_data->xlfd_name);
+ strcpy (font_data_return->xlfd_name, font_data->xlfd_name);
- font_data_return->side = font_data->side;
+ font_data_return->side = font_data->side;
+ }
+#ifdef FONTDEBUG
+ fprintf(stderr,"XLFD name: %s\n",font_data->xlfd_name);
+#endif
return True;
}
-
- /* If the font name is not fully specified (i.e., it has wildcards),
- * we have more work to do. See the comments in parse_omit_name()
+ /*
+ * If the font name is not fully specified
+ * (i.e., it has wildcards), we have more work to do.
+ * See the comments in parse_omit_name()
* for the list of things to do.
*/
ret = parse_omit_name(oc, font_data, pattern);
@@ -993,7 +969,8 @@ parse_fontdata(oc, font_set, font_data, font_data_count, name_list, name_list_co
if (ret == -1) return -1;
if (ret == False) continue;
- /* A font which matched the wild-carded specification was found.
+ /*
+ * A font which matched the wild-carded specification was found.
* Only update the return data if a font has not yet been found.
* This maintains the convention that FontSets listed higher in
* a CodeSet in the Locale Database have higher priority than
@@ -1012,9 +989,11 @@ parse_fontdata(oc, font_set, font_data, font_data_count, name_list, name_list_co
* higher priority than a font found in the JISX0208.1983-0
* FontSet.
*/
- if (font_data_return->xlfd_name == NULL)
- {
-
+ if (font_data_return && font_data_return->xlfd_name == NULL) {
+
+#ifdef FONTDEBUG
+ fprintf(stderr,"XLFD name: %s\n",font_data->xlfd_name);
+#endif
font_data_return->xlfd_name = (char *)Xmalloc
(strlen(font_data->xlfd_name) + 1);
if (!font_data_return->xlfd_name) return -1;
@@ -1025,16 +1004,22 @@ parse_fontdata(oc, font_set, font_data, font_data_count, name_list, name_list_co
found_num++;
is_found = True;
+
+ break;
}
switch(class) {
case C_PRIMARY:
- if(is_found == False)
- {
- /* Did not find a font for the current FontSet. Check the
+ if(is_found == False) {
+ /*
+ * Did not find a font for the current FontSet. Check the
* FontSet's "substitute" font for a match. If we find a
* match, we'll keep searching in hopes of finding an exact
* match later down the FontSet list.
+ *
+ * when we return and we have found a font font_data_return
+ * contains the first (ie. best) match no matter if this
+ * is a C_PRIMARY or a C_SUBSTITUTE font
*/
ret = parse_fontdata(oc, font_set, font_set->substitute,
font_set->substitute_num, name_list,
@@ -1046,7 +1031,10 @@ parse_fontdata(oc, font_set, font_data, font_data_count, name_list, name_list_co
found_num++;
is_found = True;
}
-
+#ifdef TESTVERSION
+ else
+ return True;
+#endif
break;
case C_SUBSTITUTE:
@@ -1059,8 +1047,8 @@ parse_fontdata(oc, font_set, font_data, font_data_count, name_list, name_list_co
if(is_found == True) {
char *rotate_name;
- if((rotate_name = get_rotate_fontname(font_data->xlfd_name)) !=
- NULL) {
+ if((rotate_name = get_rotate_fontname(font_data->xlfd_name))
+ != NULL) {
Xfree(font_data->xlfd_name);
font_data->xlfd_name = rotate_name;
@@ -1081,27 +1069,27 @@ parse_fontdata(oc, font_set, font_data, font_data_count, name_list, name_list_co
static int
-parse_vw(oc, font_set, name_list, count)
- XOC oc;
- FontSet font_set;
- char **name_list;
- int count;
+parse_vw(
+ XOC oc,
+ FontSet font_set,
+ char **name_list,
+ int count)
{
FontData vmap = font_set->vmap;
- FontDataRec font_data_return;
VRotate vrotate = font_set->vrotate;
int vmap_num = font_set->vmap_num;
int vrotate_num = font_set->vrotate_num;
int ret = 0, i = 0;
if(vmap_num > 0) {
- if(parse_fontdata(oc, font_set, vmap, vmap_num, name_list, count, C_VMAP) == -1)
+ if(parse_fontdata(oc, font_set, vmap, vmap_num, name_list,
+ count, C_VMAP,NULL) == -1)
return (-1);
}
if(vrotate_num > 0) {
ret = parse_fontdata(oc, font_set, (FontData) vrotate, vrotate_num,
- name_list, count, C_VROTATE, &font_data_return);
+ name_list, count, C_VROTATE, NULL);
if(ret == -1) {
return (-1);
} else if(ret == False) {
@@ -1109,8 +1097,8 @@ parse_vw(oc, font_set, name_list, count)
int num_cr;
int sub_num = font_set->substitute_num;
- code_range = vrotate[i].code_range;
- num_cr = vrotate[i].num_cr;
+ code_range = vrotate[0].code_range; /* ? */
+ num_cr = vrotate[0].num_cr; /* ? */
for(i = 0 ; i < vrotate_num ; i++) {
if(vrotate[i].xlfd_name)
Xfree(vrotate[i].xlfd_name);
@@ -1122,7 +1110,8 @@ parse_vw(oc, font_set, name_list, count)
(sizeof(VRotateRec) * sub_num);
if(font_set->vrotate == (VRotate)NULL)
return (-1);
-
+ memset(font_set->vrotate, 0x00, sizeof(VRotateRec) * sub_num);
+
for(i = 0 ; i < sub_num ; i++) {
vrotate[i].charset_name = font_set->substitute[i].name;
vrotate[i].side = font_set->substitute[i].side;
@@ -1131,11 +1120,11 @@ parse_vw(oc, font_set, name_list, count)
}
vrotate_num = font_set->vrotate_num = sub_num;
} else {
- font_set->vrotate = (VRotate)NULL;
+ vrotate = font_set->vrotate = (VRotate)NULL;
}
ret = parse_fontdata(oc, font_set, (FontData) vrotate, vrotate_num,
- name_list, count, C_VROTATE, &font_data_return);
+ name_list, count, C_VROTATE, NULL);
if(ret == -1)
return (-1);
}
@@ -1145,8 +1134,8 @@ parse_vw(oc, font_set, name_list, count)
}
static int
-parse_fontname(oc)
- XOC oc;
+parse_fontname(
+ XOC oc)
{
XOCGenericPart *gen = XOC_GENERIC(oc);
FontSet font_set;
@@ -1174,22 +1163,18 @@ parse_fontname(oc)
if(font_set->font_data_count > 0) {
- /* If there are a non-zero number of FontSets defined
+ /*
+ * If there are a non-zero number of FontSets defined
* for this CharSet.
- */
- font_data_return.name = NULL;
- font_data_return.side = XlcUnknown;
- font_data_return.scopes_num = 0;
- font_data_return.scopes = NULL;
- font_data_return.xlfd_name = NULL;
- font_data_return.font = NULL;
-
- /* Try to find a font for this CharSet. If we find an
+ * Try to find a font for this CharSet. If we find an
* acceptable font, we save the information for return
* to the client. If we do not find an acceptable font,
* a "missing_charset" will be reported to the client
* for this CharSet.
*/
+ font_data_return. xlfd_name = NULL;
+ font_data_return.side = XlcUnknown;
+
ret = parse_fontdata(oc, font_set, font_set->font_data,
font_set->font_data_count,
name_list, count, C_PRIMARY,
@@ -1197,6 +1182,13 @@ parse_fontname(oc)
if(ret == -1) {
goto err;
} else if(ret == True) {
+ /*
+ * We can't just loop thru fontset->font_data to
+ * find the first (ie. best) match: parse_fontdata
+ * will try a substitute font if no primary one could
+ * be matched. It returns the required information in
+ * font_data_return.
+ */
font_set->font_name = (char *)Xmalloc
(strlen(font_data_return.xlfd_name) + 1);
if(font_set->font_name == (char *) NULL)
@@ -1205,6 +1197,7 @@ parse_fontname(oc)
font_set->side = font_data_return.side;
Xfree (font_data_return.xlfd_name);
+ font_data_return.xlfd_name = NULL;
if(parse_vw(oc, font_set, name_list, count) == -1)
goto err;
@@ -1212,20 +1205,13 @@ parse_fontname(oc)
}
} else if(font_set->substitute_num > 0) {
-
- /* If there are no FontSets defined for this
+ /*
+ * If there are no FontSets defined for this
* CharSet. We can only find "substitute" fonts.
*/
- font_data_return.name = NULL;
- font_data_return.side = XlcUnknown;
- font_data_return.scopes_num = 0;
- font_data_return.scopes = NULL;
- font_data_return.xlfd_name = NULL;
- font_data_return.font = NULL;
-
ret = parse_fontdata(oc, font_set, font_set->substitute,
font_set->substitute_num,
- name_list, count, C_SUBSTITUTE, &font_data_return);
+ name_list, count, C_SUBSTITUTE, NULL);
if(ret == -1) {
goto err;
} else if(ret == True) {
@@ -1255,12 +1241,14 @@ parse_fontname(oc)
strcpy(base_name, oc->core.base_name_list);
oc->core.base_name_list = base_name;
- XFreeStringList(name_list);
+ XFreeStringList(name_list);
return found_num;
err:
- XFreeStringList(name_list);
+ XFreeStringList(name_list);
+ /* Prevent this from being freed twice */
+ oc->core.base_name_list = NULL;
return -1;
}
@@ -1268,8 +1256,8 @@ err:
/* For VW/UDC end*/
static Bool
-set_missing_list(oc)
- XOC oc;
+set_missing_list(
+ XOC oc)
{
XOCGenericPart *gen = XOC_GENERIC(oc);
FontSet font_set;
@@ -1364,8 +1352,8 @@ set_missing_list(oc)
}
static Bool
-create_fontset(oc)
- XOC oc;
+create_fontset(
+ XOC oc)
{
XOMGenericPart *gen = XOM_GENERIC(oc->core.om);
int found_num;
@@ -1399,10 +1387,10 @@ create_fontset(oc)
/* For VW/UDC start */
static void
-free_fontdataOC(dpy,font_data, font_data_count)
- Display *dpy;
- FontData font_data;
- int font_data_count;
+free_fontdataOC(
+ Display *dpy,
+ FontData font_data,
+ int font_data_count)
{
for( ; font_data_count-- ; font_data++) {
if(font_data->xlfd_name){
@@ -1416,9 +1404,13 @@ free_fontdataOC(dpy,font_data, font_data_count)
XFreeFontInfo(NULL, font_data->font, 1);/* Add 1996.01.23 */
font_data->font = NULL;
}
-/* XOM to kyoutuu shite shiyou sushiteiru ryouiki
- kokoha free_fontdataOM() de free sareru
-
+/*
+ * font_data->name and font_data->scopes belong to the OM not OC.
+ * To save space this data is shared between OM and OC. We are
+ * not allowed to free it here.
+ * It has been moved to free_fontdataOM()
+ */
+/*
if(font_data->scopes){
Xfree(font_data->scopes);
font_data->scopes = NULL;
@@ -1430,9 +1422,10 @@ free_fontdataOC(dpy,font_data, font_data_count)
*/
}
}
-void destroy_fontdata(gen,dpy)
- XOCGenericPart *gen ;
- Display *dpy ;
+
+static void destroy_fontdata(
+ XOCGenericPart *gen,
+ Display *dpy)
{
FontSet font_set = (FontSet) NULL;
int font_set_num = 0;
@@ -1441,7 +1434,16 @@ void destroy_fontdata(gen,dpy)
font_set = gen->font_set;
font_set_num = gen->font_set_num;
for( ; font_set_num-- ; font_set++) {
+ if (font_set->font) {
+ if(font_set->font->fid)
+ XFreeFont(dpy,font_set->font);
+ else
+ XFreeFontInfo(NULL, font_set->font, 1);
+ font_set->font = NULL;
+ }
if(font_set->font_data) {
+ if (font_set->info)
+ XFreeFontInfo(NULL, font_set->info, 1);
free_fontdataOC(dpy,
font_set->font_data, font_set->font_data_count);
Xfree(font_set->font_data);
@@ -1474,12 +1476,11 @@ void destroy_fontdata(gen,dpy)
/* For VW/UDC end */
static void
-destroy_oc(oc)
- XOC oc;
+destroy_oc(
+ XOC oc)
{
Display *dpy = oc->core.om->core.display;
XOCGenericPart *gen = XOC_GENERIC(oc);
- XFontStruct **font_list;
if (gen->mbs_to_cs)
_XlcCloseConverter(gen->mbs_to_cs);
@@ -1487,6 +1488,9 @@ destroy_oc(oc)
if (gen->wcs_to_cs)
_XlcCloseConverter(gen->wcs_to_cs);
+ if (gen->utf8_to_cs)
+ _XlcCloseConverter(gen->utf8_to_cs);
+
/* For VW/UDC start */ /* Change 1996.01.8 */
destroy_fontdata(gen,dpy);
/*
@@ -1499,7 +1503,7 @@ destroy_oc(oc)
if (oc->core.font_info.font_name_list)
XFreeStringList(oc->core.font_info.font_name_list);
- if ((font_list = oc->core.font_info.font_struct_list)) {
+ if (oc->core.font_info.font_struct_list) {
Xfree(oc->core.font_info.font_struct_list);
}
@@ -1517,10 +1521,10 @@ destroy_oc(oc)
}
static char *
-set_oc_values(oc, args, num_args)
- XOC oc;
- XlcArgList args;
- int num_args;
+set_oc_values(
+ XOC oc,
+ XlcArgList args,
+ int num_args)
{
XOCGenericPart *gen = XOC_GENERIC(oc);
FontSet font_set = gen->font_set;
@@ -1553,10 +1557,10 @@ set_oc_values(oc, args, num_args)
}
static char *
-get_oc_values(oc, args, num_args)
- XOC oc;
- XlcArgList args;
- int num_args;
+get_oc_values(
+ XOC oc,
+ XlcArgList args,
+ int num_args)
{
if (oc->core.resources == NULL)
return NULL;
@@ -1578,7 +1582,12 @@ static XOCMethodsRec oc_default_methods = {
_XwcDefaultTextExtents,
_XwcDefaultTextPerCharExtents,
_XwcDefaultDrawString,
- _XwcDefaultDrawImageString
+ _XwcDefaultDrawImageString,
+ _Xutf8DefaultTextEscapement,
+ _Xutf8DefaultTextExtents,
+ _Xutf8DefaultTextPerCharExtents,
+ _Xutf8DefaultDrawString,
+ _Xutf8DefaultDrawImageString
};
static XOCMethodsRec oc_generic_methods = {
@@ -1594,7 +1603,12 @@ static XOCMethodsRec oc_generic_methods = {
_XwcGenericTextExtents,
_XwcGenericTextPerCharExtents,
_XwcGenericDrawString,
- _XwcGenericDrawImageString
+ _XwcGenericDrawImageString,
+ _Xutf8GenericTextEscapement,
+ _Xutf8GenericTextExtents,
+ _Xutf8GenericTextPerCharExtents,
+ _Xutf8GenericDrawString,
+ _Xutf8GenericDrawImageString
};
typedef struct _XOCMethodsListRec {
@@ -1627,10 +1641,10 @@ static XlcResource oc_resources[] = {
};
static XOC
-create_oc(om, args, num_args)
- XOM om;
- XlcArgList args;
- int num_args;
+create_oc(
+ XOM om,
+ XlcArgList args,
+ int num_args)
{
XOC oc;
XOMGenericPart *gen = XOM_GENERIC(om);
@@ -1682,9 +1696,9 @@ err:
}
static void
-free_fontdataOM(font_data, font_data_count)
- FontData font_data;
- int font_data_count;
+free_fontdataOM(
+ FontData font_data,
+ int font_data_count)
{
for( ; font_data_count-- ; font_data++) {
if(font_data->name){
@@ -1699,8 +1713,8 @@ free_fontdataOM(font_data, font_data_count)
}
static Status
-close_om(om)
- XOM om;
+close_om(
+ XOM om)
{
XOMGenericPart *gen = XOM_GENERIC(om);
OMData data;
@@ -1772,10 +1786,10 @@ close_om(om)
}
static char *
-set_om_values(om, args, num_args)
- XOM om;
- XlcArgList args;
- int num_args;
+set_om_values(
+ XOM om,
+ XlcArgList args,
+ int num_args)
{
if (om->core.resources == NULL)
return NULL;
@@ -1785,10 +1799,10 @@ set_om_values(om, args, num_args)
}
static char *
-get_om_values(om, args, num_args)
- XOM om;
- XlcArgList args;
- int num_args;
+get_om_values(
+ XOM om,
+ XlcArgList args,
+ int num_args)
{
if (om->core.resources == NULL)
return NULL;
@@ -1816,12 +1830,12 @@ static XlcResource om_resources[] = {
};
static XOM
-create_om(lcd, dpy, rdb, res_name, res_class)
- XLCd lcd;
- Display *dpy;
- XrmDatabase rdb;
- char *res_name;
- char *res_class;
+create_om(
+ XLCd lcd,
+ Display *dpy,
+ XrmDatabase rdb,
+ _Xconst char *res_name,
+ _Xconst char *res_class)
{
XOM om;
@@ -1862,8 +1876,8 @@ err:
}
static OMData
-add_data(om)
- XOM om;
+add_data(
+ XOM om)
{
XOMGenericPart *gen = XOM_GENERIC(om);
OMData new;
@@ -1888,12 +1902,10 @@ add_data(om)
/* For VW/UDC */
-extern FontScope _XlcParse_scopemaps();
-
FontData
-read_EncodingInfo(count,value)
-int count;
-char **value;
+read_EncodingInfo(
+ int count,
+ char **value)
{
FontData font_data,ret;
char *buf, *bufptr,*scp;
@@ -1912,7 +1924,8 @@ char **value;
if ((bufptr = strchr(buf, ':'))) {
len = (int)(bufptr - buf);
bufptr++ ;
- }
+ } else
+ len = strlen(buf);
font_data->name = (char *) Xmalloc(len + 1);
if (font_data->name == NULL)
return NULL;
@@ -1932,11 +1945,11 @@ char **value;
return(ret);
}
-static CodeRange read_vrotate(count,value,type,vrotate_num)
-int count;
-char **value;
-int *type;
-int *vrotate_num;
+static CodeRange read_vrotate(
+ int count,
+ char **value,
+ int *type,
+ int *vrotate_num)
{
CodeRange range;
if(!strcmp(value[0],"all")){
@@ -1954,10 +1967,10 @@ int *vrotate_num;
}
}
-static void read_vw(lcd,font_set,num)
-XLCd lcd;
-OMData font_set;
-int num;
+static void read_vw(
+ XLCd lcd,
+ OMData font_set,
+ int num)
{
char **value, buf[BUFSIZ];
int count;
@@ -1980,8 +1993,8 @@ int num;
}
/* VW/UDC end */
static Bool
-init_om(om)
- XOM om;
+init_om(
+ XOM om)
{
XLCd lcd = om->core.lcd;
XOMGenericPart *gen = XOM_GENERIC(om);
@@ -2039,7 +2052,8 @@ init_om(om)
if (udc == NULL)
return False;
for(i=0;i<count;i++){
- sscanf(value[i],"\\x%x,\\x%x", &(udc[i].start), &(udc[i].end));
+ sscanf(value[i],"\\x%lx,\\x%lx", &(udc[i].start),
+ &(udc[i].end));
}
for(i=0;i<data->charset_count;i++){
if(data->charset_list[i]->udc_area == NULL){
@@ -2139,17 +2153,8 @@ init_om(om)
}
XOM
-#if NeedFunctionPrototypes
_XomGenericOpenOM(XLCd lcd, Display *dpy, XrmDatabase rdb,
_Xconst char *res_name, _Xconst char *res_class)
-#else
-_XomGenericOpenOM(lcd, dpy, rdb, res_name, res_class)
- XLCd lcd;
- Display *dpy;
- XrmDatabase rdb;
- char *res_name;
- char *res_class;
-#endif
{
XOM om;
@@ -2169,8 +2174,8 @@ err:
}
Bool
-_XInitOM(lcd)
- XLCd lcd;
+_XInitOM(
+ XLCd lcd)
{
lcd->methods->open_om = _XomGenericOpenOM;
diff --git a/modules/om/generic/omImText.c b/modules/om/generic/omImText.c
index 2e3ab708..25ee615d 100644
--- a/modules/om/generic/omImText.c
+++ b/modules/om/generic/omImText.c
@@ -23,25 +23,28 @@
* Author: Katsuhisa Yano TOSHIBA Corp.
* mopi@osa.ilab.toshiba.co.jp
*/
+/* $XFree86: xc/lib/X11/omImText.c,v 1.5 2003/04/13 19:22:22 dawes Exp $ */
#include "Xlibint.h"
#include "XomGeneric.h"
+#if 0
extern int _XomGenericTextExtents(), _XomGenericDrawString();
+#endif
#define GET_VALUE_MASK (GCFunction | GCForeground | GCBackground | GCFillStyle)
#define SET_VALUE_MASK (GCFunction | GCForeground | GCFillStyle)
static void
-_XomGenericDrawImageString(dpy, d, oc, gc, x, y, type, text, length)
- Display *dpy;
- Drawable d;
- XOC oc;
- GC gc;
- int x, y;
- XOMTextType type;
- XPointer text;
- int length;
+_XomGenericDrawImageString(
+ Display *dpy,
+ Drawable d,
+ XOC oc,
+ GC gc,
+ int x, int y,
+ XOMTextType type,
+ XPointer text,
+ int length)
{
XGCValues values;
XRectangle extent;
@@ -62,39 +65,25 @@ _XomGenericDrawImageString(dpy, d, oc, gc, x, y, type, text, length)
}
void
-#if NeedFunctionPrototypes
_XmbGenericDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
int y, _Xconst char *text, int length)
-#else
-_XmbGenericDrawImageString(dpy, d, oc, gc, x, y, text, length)
- Display *dpy;
- Drawable d;
- XOC oc;
- GC gc;
- int x, y;
- char *text;
- int length;
-#endif
{
_XomGenericDrawImageString(dpy, d, oc, gc, x, y, XOMMultiByte,
(XPointer) text, length);
}
void
-#if NeedFunctionPrototypes
_XwcGenericDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
int y, _Xconst wchar_t *text, int length)
-#else
-_XwcGenericDrawImageString(dpy, d, oc, gc, x, y, text, length)
- Display *dpy;
- Drawable d;
- XOC oc;
- GC gc;
- int x, y;
- wchar_t *text;
- int length;
-#endif
{
_XomGenericDrawImageString(dpy, d, oc, gc, x, y, XOMWideChar,
(XPointer) text, length);
}
+
+void
+_Xutf8GenericDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
+ int y, _Xconst char *text, int length)
+{
+ _XomGenericDrawImageString(dpy, d, oc, gc, x, y, XOMUtf8String,
+ (XPointer) text, length);
+}
diff --git a/modules/om/generic/omText.c b/modules/om/generic/omText.c
index c95d8407..28c49b76 100644
--- a/modules/om/generic/omText.c
+++ b/modules/om/generic/omText.c
@@ -23,6 +23,7 @@
* Author: Katsuhisa Yano TOSHIBA Corp.
* mopi@osa.ilab.toshiba.co.jp
*/
+/* $XFree86: xc/lib/X11/omText.c,v 1.9 2003/04/22 13:57:45 pascal Exp $ */
/*
* Copyright 1995 by FUJITSU LIMITED
* This is source code modified by FUJITSU LIMITED under the Joint
@@ -39,9 +40,9 @@
/* For VW/UDC */
static int
-is_rotate(oc, font)
- XOC oc;
- XFontStruct *font;
+is_rotate(
+ XOC oc,
+ XFontStruct *font)
{
XOCGenericPart *gen = XOC_GENERIC(oc);
FontSet font_set;
@@ -64,9 +65,9 @@ is_rotate(oc, font)
}
static int
-is_codemap(oc, font)
- XOC oc;
- XFontStruct *font;
+is_codemap(
+ XOC oc,
+ XFontStruct *font)
{
XOCGenericPart *gen = XOC_GENERIC(oc);
FontSet font_set;
@@ -89,16 +90,16 @@ is_codemap(oc, font)
}
static int
-draw_vertical(dpy, d, oc, gc, font, is_xchar2b, x, y, text, length)
- Display *dpy;
- Drawable d;
- XOC oc;
- GC gc;
- XFontStruct *font;
- Bool is_xchar2b;
- int x, y;
- XPointer text;
- int length;
+draw_vertical(
+ Display *dpy,
+ Drawable d,
+ XOC oc,
+ GC gc,
+ XFontStruct *font,
+ Bool is_xchar2b,
+ int x, int y,
+ XPointer text,
+ int length)
{
XChar2b *buf2b;
char *buf;
@@ -157,32 +158,30 @@ draw_vertical(dpy, d, oc, gc, font, is_xchar2b, x, y, text, length)
#define VROTATE 1
#define FONTSCOPE 2
-extern FontData _XomGetFontDataFromFontSet();
-
static int
-DrawStringWithFontSet(dpy, d, oc, fs, gc, x, y, text, length)
- Display *dpy;
- Drawable d;
- XOC oc;
- FontSet fs;
- GC gc;
- int x, y;
- XPointer text;
- int length;
+DrawStringWithFontSet(
+ Display *dpy,
+ Drawable d,
+ XOC oc,
+ FontSet fs,
+ GC gc,
+ int x, int y,
+ XPointer text,
+ int length)
{
XFontStruct *font;
Bool is_xchar2b;
unsigned char *ptr;
int ptr_len, char_len = 0;
FontData fd;
- int ret;
+ int ret = 0;
ptr = (unsigned char *)text;
is_xchar2b = fs->is_xchar2b;
while (length > 0) {
fd = _XomGetFontDataFromFontSet(fs,
- (char *)ptr,length,&ptr_len,is_xchar2b,FONTSCOPE);
+ ptr,length,&ptr_len,is_xchar2b,FONTSCOPE);
if(ptr_len <= 0)
break;
@@ -195,10 +194,10 @@ DrawStringWithFontSet(dpy, d, oc, fs, gc, x, y, text, length)
* *always* contain good data. We should probably remove
* the check for "fd->font", but we won't :-) -- jjw/pma (HP)
*/
- if(fd == (FontData) NULL ||
- (font = fs->font) == (XFontStruct *) NULL){
+ if((font = fs->font) == (XFontStruct *) NULL){
- if((font = fd->font) == (XFontStruct *) NULL)
+ if(fd == (FontData) NULL ||
+ (font = fd->font) == (XFontStruct *) NULL)
break;
}
@@ -221,7 +220,7 @@ DrawStringWithFontSet(dpy, d, oc, fs, gc, x, y, text, length)
case XOMOrientation_TTB_LTR:
if(fs->font == font) {
fd = _XomGetFontDataFromFontSet(fs,
- (char *)ptr,length,&ptr_len,is_xchar2b,VMAP);
+ ptr,length,&ptr_len,is_xchar2b,VMAP);
if(ptr_len <= 0)
break;
if(fd == (FontData) NULL ||
@@ -230,7 +229,7 @@ DrawStringWithFontSet(dpy, d, oc, fs, gc, x, y, text, length)
if(is_codemap(oc, fd->font) == False) {
fd = _XomGetFontDataFromFontSet(fs,
- (char *)ptr,length,&ptr_len,is_xchar2b,VROTATE);
+ ptr,length,&ptr_len,is_xchar2b,VROTATE);
if(ptr_len <= 0)
break;
if(fd == (FontData) NULL ||
@@ -247,6 +246,10 @@ DrawStringWithFontSet(dpy, d, oc, fs, gc, x, y, text, length)
y = draw_vertical(dpy, d, oc, gc, font, is_xchar2b, x, y,
(char *)ptr, char_len);
break;
+
+ case XOMOrientation_Context:
+ /* never used? */
+ break;
}
if(char_len <= 0)
@@ -264,6 +267,10 @@ DrawStringWithFontSet(dpy, d, oc, fs, gc, x, y, text, length)
case XOMOrientation_TTB_RTL:
case XOMOrientation_TTB_LTR:
ret = y;
+ break;
+ case XOMOrientation_Context:
+ /* not used? */
+ break;
}
return ret;
}
@@ -271,15 +278,15 @@ DrawStringWithFontSet(dpy, d, oc, fs, gc, x, y, text, length)
/* For VW/UDC */
int
-_XomGenericDrawString(dpy, d, oc, gc, x, y, type, text, length)
- Display *dpy;
- Drawable d;
- XOC oc;
- GC gc;
- int x, y;
- XOMTextType type;
- XPointer text;
- int length;
+_XomGenericDrawString(
+ Display *dpy,
+ Drawable d,
+ XOC oc,
+ GC gc,
+ int x, int y,
+ XOMTextType type,
+ XPointer text,
+ int length)
{
XlcConv conv;
XFontStruct *font;
@@ -324,6 +331,9 @@ _XomGenericDrawString(dpy, d, oc, gc, x, y, type, text, length)
case XOMOrientation_TTB_LTR:
y = next;
break;
+ case XOMOrientation_Context:
+ /* not used */
+ break;
}
/* For VW/UDC */
}
@@ -335,39 +345,25 @@ _XomGenericDrawString(dpy, d, oc, gc, x, y, type, text, length)
}
int
-#if NeedFunctionPrototypes
_XmbGenericDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
_Xconst char *text, int length)
-#else
-_XmbGenericDrawString(dpy, d, oc, gc, x, y, text, length)
- Display *dpy;
- Drawable d;
- XOC oc;
- GC gc;
- int x, y;
- char *text;
- int length;
-#endif
{
return _XomGenericDrawString(dpy, d, oc, gc, x, y, XOMMultiByte,
(XPointer) text, length);
}
int
-#if NeedFunctionPrototypes
_XwcGenericDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
_Xconst wchar_t *text, int length)
-#else
-_XwcGenericDrawString(dpy, d, oc, gc, x, y, text, length)
- Display *dpy;
- Drawable d;
- XOC oc;
- GC gc;
- int x, y;
- wchar_t *text;
- int length;
-#endif
{
return _XomGenericDrawString(dpy, d, oc, gc, x, y, XOMWideChar,
(XPointer) text, length);
}
+
+int
+_Xutf8GenericDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
+ _Xconst char *text, int length)
+{
+ return _XomGenericDrawString(dpy, d, oc, gc, x, y, XOMUtf8String,
+ (XPointer) text, length);
+}
diff --git a/modules/om/generic/omTextEsc.c b/modules/om/generic/omTextEsc.c
index 7bc73259..f9b9ebd8 100644
--- a/modules/om/generic/omTextEsc.c
+++ b/modules/om/generic/omTextEsc.c
@@ -23,6 +23,7 @@
* Author: Katsuhisa Yano TOSHIBA Corp.
* mopi@osa.ilab.toshiba.co.jp
*/
+/* $XFree86: xc/lib/X11/omTextEsc.c,v 1.6 2003/04/13 19:22:22 dawes Exp $ */
/*
* Copyright 1995 by FUJITSU LIMITED
* This is source code modified by FUJITSU LIMITED under the Joint
@@ -40,9 +41,9 @@
#define FONTSCOPE 2
static int
-is_rotate(oc, font)
- XOC oc;
- XFontStruct *font;
+is_rotate(
+ XOC oc,
+ XFontStruct *font)
{
XOCGenericPart *gen = XOC_GENERIC(oc);
FontSet font_set;
@@ -65,9 +66,9 @@ is_rotate(oc, font)
}
static int
-is_codemap(oc, font)
- XOC oc;
- XFontStruct *font;
+is_codemap(
+ XOC oc,
+ XFontStruct *font)
{
XOCGenericPart *gen = XOC_GENERIC(oc);
FontSet font_set;
@@ -90,12 +91,12 @@ is_codemap(oc, font)
}
static int
-escapement_vertical(oc, font, is_xchar2b, text, length)
- XOC oc;
- XFontStruct *font;
- Bool is_xchar2b;
- XPointer text;
- int length;
+escapement_vertical(
+ XOC oc,
+ XFontStruct *font,
+ Bool is_xchar2b,
+ XPointer text,
+ int length)
{
XChar2b *buf2b;
char *buf;
@@ -124,14 +125,12 @@ escapement_vertical(oc, font, is_xchar2b, text, length)
}
-extern FontData _XomGetFontDataFromFontSet();
-
static int
-TextWidthWithFontSet(font_set, oc, text, length)
- FontSet font_set;
- XOC oc;
- XPointer text;
- int length;
+TextWidthWithFontSet(
+ FontSet font_set,
+ XOC oc,
+ XPointer text,
+ int length)
{
FontData fd;
XFontStruct *font;
@@ -150,10 +149,29 @@ TextWidthWithFontSet(font_set, oc, text, length)
is_xchar2b, FONTSCOPE);
if(ptr_len <= 0)
break;
+
+ /*
+ * First, see if the "Best Match" font for the FontSet was set.
+ * If it was, use that font. If it was not set, then use the
+ * font defined by font_set->font_data[0] (which is what
+ * _XomGetFontDataFromFontSet() always seems to return for
+ * non-VW text). Note that given the new algorithm in
+ * parse_fontname() and parse_fontdata(), fs->font will
+ * *always* contain good data. We should probably remove
+ * the check for "fd->font", but we won't :-) -- jjw/pma (HP)
+ *
+ * Above comment and way this is done propagated from omText.c
+ * Note that fd->font is junk so using the result of the
+ * above call /needs/ to be ignored.
+ *
+ * Owen Taylor <otaylor@redhat.com> 12 Jul 2000
+ *
+ */
+
if(fd == (FontData) NULL ||
- (font = fd->font) == (XFontStruct *) NULL) {
+ (font = font_set->font) == (XFontStruct *) NULL) {
- if((font = font_set->font) == (XFontStruct *) NULL)
+ if((font = fd->font) == (XFontStruct *) NULL)
break;
}
@@ -198,6 +216,11 @@ TextWidthWithFontSet(font_set, oc, text, length)
char_len = ptr_len;
escapement += escapement_vertical(oc, font, is_xchar2b,
(XPointer) ptr, char_len);
+ break;
+
+ case XOMOrientation_Context:
+ /* not used? */
+ break;
}
if(char_len <= 0)
@@ -213,11 +236,11 @@ TextWidthWithFontSet(font_set, oc, text, length)
/* For VW/UDC end */
static int
-_XomGenericTextEscapement(oc, type, text, length)
- XOC oc;
- XOMTextType type;
- XPointer text;
- int length;
+_XomGenericTextEscapement(
+ XOC oc,
+ XOMTextType type,
+ XPointer text,
+ int length)
{
XlcConv conv;
XFontStruct *font;
@@ -257,27 +280,20 @@ _XomGenericTextEscapement(oc, type, text, length)
}
int
-#if NeedFunctionPrototypes
_XmbGenericTextEscapement(XOC oc, _Xconst char *text, int length)
-#else
-_XmbGenericTextEscapement(oc, text, length)
- XOC oc;
- char *text;
- int length;
-#endif
{
return _XomGenericTextEscapement(oc, XOMMultiByte, (XPointer) text, length);
}
int
-#if NeedFunctionPrototypes
_XwcGenericTextEscapement(XOC oc, _Xconst wchar_t *text, int length)
-#else
-_XwcGenericTextEscapement(oc, text, length)
- XOC oc;
- wchar_t *text;
- int length;
-#endif
{
return _XomGenericTextEscapement(oc, XOMWideChar, (XPointer) text, length);
}
+
+int
+_Xutf8GenericTextEscapement(XOC oc, _Xconst char *text, int length)
+{
+ return _XomGenericTextEscapement(oc, XOMUtf8String, (XPointer) text,
+ length);
+}
diff --git a/modules/om/generic/omTextExt.c b/modules/om/generic/omTextExt.c
index 24563167..8186f963 100644
--- a/modules/om/generic/omTextExt.c
+++ b/modules/om/generic/omTextExt.c
@@ -23,20 +23,20 @@
* Author: Katsuhisa Yano TOSHIBA Corp.
* mopi@osa.ilab.toshiba.co.jp
*/
+/* $XFree86: xc/lib/X11/omTextExt.c,v 1.5 2003/04/13 19:22:22 dawes Exp $ */
#include "Xlibint.h"
#include "XomGeneric.h"
#include <stdio.h>
int
-_XomGenericTextExtents(oc, type, text, length, overall_ink,
- overall_logical)
- XOC oc;
- XOMTextType type;
- XPointer text;
- int length;
- XRectangle *overall_ink;
- XRectangle *overall_logical;
+_XomGenericTextExtents(
+ XOC oc,
+ XOMTextType type,
+ XPointer text,
+ int length,
+ XRectangle *overall_ink,
+ XRectangle *overall_logical)
{
XlcConv conv;
XFontStruct *font;
@@ -110,35 +110,25 @@ _XomGenericTextExtents(oc, type, text, length, overall_ink,
}
int
-#if NeedFunctionPrototypes
_XmbGenericTextExtents(XOC oc, _Xconst char *text, int length,
XRectangle *overall_ink, XRectangle *overall_logical)
-#else
-_XmbGenericTextExtents(oc, text, length, overall_ink, overall_logical)
- XOC oc;
- char *text;
- int length;
- XRectangle *overall_ink;
- XRectangle *overall_logical;
-#endif
{
return _XomGenericTextExtents(oc, XOMMultiByte, (XPointer) text, length,
overall_ink, overall_logical);
}
int
-#if NeedFunctionPrototypes
_XwcGenericTextExtents(XOC oc, _Xconst wchar_t *text, int length,
XRectangle *overall_ink, XRectangle *overall_logical)
-#else
-_XwcGenericTextExtents(oc, text, length, overall_ink, overall_logical)
- XOC oc;
- wchar_t *text;
- int length;
- XRectangle *overall_ink;
- XRectangle *overall_logical;
-#endif
{
return _XomGenericTextExtents(oc, XOMWideChar, (XPointer) text, length,
overall_ink, overall_logical);
}
+
+int
+_Xutf8GenericTextExtents(XOC oc, _Xconst char *text, int length,
+ XRectangle *overall_ink, XRectangle *overall_logical)
+{
+ return _XomGenericTextExtents(oc, XOMUtf8String, (XPointer) text, length,
+ overall_ink, overall_logical);
+}
diff --git a/modules/om/generic/omTextPer.c b/modules/om/generic/omTextPer.c
index 7f7217e7..816c9f52 100644
--- a/modules/om/generic/omTextPer.c
+++ b/modules/om/generic/omTextPer.c
@@ -23,31 +23,31 @@
* Author: Katsuhisa Yano TOSHIBA Corp.
* mopi@osa.ilab.toshiba.co.jp
*/
+/* $XFree86: xc/lib/X11/omTextPer.c,v 1.6 2003/04/13 19:22:22 dawes Exp $ */
#include "Xlibint.h"
#include "XomGeneric.h"
#include <stdio.h>
static Status
-_XomGenericTextPerCharExtents(oc, type, text, length, ink_buf, logical_buf,
- buf_size, num_chars, overall_ink, overall_logical)
- XOC oc;
- XOMTextType type;
- XPointer text;
- int length;
- XRectangle *ink_buf;
- XRectangle *logical_buf;
- int buf_size;
- int *num_chars;
- XRectangle *overall_ink;
- XRectangle *overall_logical;
+_XomGenericTextPerCharExtents(
+ XOC oc,
+ XOMTextType type,
+ XPointer text,
+ int length,
+ XRectangle *ink_buf,
+ XRectangle *logical_buf,
+ int buf_size,
+ int *num_chars,
+ XRectangle *overall_ink,
+ XRectangle *overall_logical)
{
XlcConv conv;
XFontStruct *font;
Bool is_xchar2b;
XPointer args[2];
XChar2b xchar2b_buf[BUFSIZ], *xchar2b_ptr;
- char *xchar_ptr;
+ char *xchar_ptr = NULL;
XCharStruct *def, *cs, overall;
int buf_len, left, require_num;
int logical_ascent, logical_descent;
@@ -162,25 +162,11 @@ _XomGenericTextPerCharExtents(oc, type, text, length, ink_buf, logical_buf,
}
Status
-#if NeedFunctionPrototypes
_XmbGenericTextPerCharExtents(XOC oc, _Xconst char *text, int length,
XRectangle *ink_buf, XRectangle *logical_buf,
int buf_size, int *num_chars,
XRectangle *overall_ink,
XRectangle *overall_logical)
-#else
-_XmbGenericTextPerCharExtents(oc, text, length, ink_buf, logical_buf,
- buf_size, num_chars, overall_ink, overall_logical)
- XOC oc;
- char *text;
- int length;
- XRectangle *ink_buf;
- XRectangle *logical_buf;
- int buf_size;
- int *num_chars;
- XRectangle *overall_ink;
- XRectangle *overall_logical;
-#endif
{
return _XomGenericTextPerCharExtents(oc, XOMMultiByte, (XPointer) text,
length, ink_buf, logical_buf, buf_size,
@@ -189,28 +175,27 @@ _XmbGenericTextPerCharExtents(oc, text, length, ink_buf, logical_buf,
}
Status
-#if NeedFunctionPrototypes
_XwcGenericTextPerCharExtents(XOC oc, _Xconst wchar_t *text, int length,
XRectangle *ink_buf, XRectangle *logical_buf,
int buf_size, int *num_chars,
XRectangle *overall_ink,
XRectangle *overall_logical)
-#else
-_XwcGenericTextPerCharExtents(oc, text, length, ink_buf, logical_buf,
- buf_size, num_chars, overall_ink, overall_logical)
- XOC oc;
- wchar_t *text;
- int length;
- XRectangle *ink_buf;
- XRectangle *logical_buf;
- int buf_size;
- int *num_chars;
- XRectangle *overall_ink;
- XRectangle *overall_logical;
-#endif
{
return _XomGenericTextPerCharExtents(oc, XOMWideChar, (XPointer) text,
length, ink_buf, logical_buf, buf_size,
num_chars, overall_ink,
overall_logical);
}
+
+Status
+_Xutf8GenericTextPerCharExtents(XOC oc, _Xconst char *text, int length,
+ XRectangle *ink_buf, XRectangle *logical_buf,
+ int buf_size, int *num_chars,
+ XRectangle *overall_ink,
+ XRectangle *overall_logical)
+{
+ return _XomGenericTextPerCharExtents(oc, XOMUtf8String, (XPointer) text,
+ length, ink_buf, logical_buf, buf_size,
+ num_chars, overall_ink,
+ overall_logical);
+}
diff --git a/modules/om/generic/omXChar.c b/modules/om/generic/omXChar.c
index eb47e66d..73b7708d 100644
--- a/modules/om/generic/omXChar.c
+++ b/modules/om/generic/omXChar.c
@@ -34,6 +34,7 @@
/*
* Modifiers: Jeff Walls, Paul Anderson (HEWLETT-PACKARD)
*/
+/* $XFree86: xc/lib/X11/omXChar.c,v 1.6tsi Exp $ */
#include "Xlibint.h"
#include "XlcPublic.h"
@@ -42,12 +43,12 @@
/* for VW/UDC start */
static Bool
-ismatch_scopes(fontdata,value, is_shift)
- FontData fontdata;
- unsigned long *value;
- Bool is_shift;
+ismatch_scopes(
+ FontData fontdata,
+ unsigned long *value,
+ Bool is_shift)
{
- register int side, scopes_num = fontdata->scopes_num;
+ register int scopes_num = fontdata->scopes_num;
FontScope scopes = fontdata->scopes;
if (!scopes_num)
return False;
@@ -55,8 +56,6 @@ ismatch_scopes(fontdata,value, is_shift)
if(fontdata->font == NULL)
return False;
- side = fontdata->side;
-
for(;scopes_num--;scopes++)
if ((scopes->start <= (*value & 0x7f7f)) &&
((scopes->end) >= (*value & 0x7f7f))){
@@ -76,8 +75,8 @@ ismatch_scopes(fontdata,value, is_shift)
}
static int
-check_vertical_fonttype(name)
- char *name;
+check_vertical_fonttype(
+ char *name)
{
char *ptr;
int type = 0;
@@ -113,13 +112,13 @@ check_vertical_fonttype(name)
#define FONTSCOPE 2
FontData
-_XomGetFontDataFromFontSet(fs,str,len,len_ret,is2b,type)
-FontSet fs;
-unsigned char *str;
-int len;
-int *len_ret;
-int is2b;
-int type; /* VMAP , VROTATE , else */
+_XomGetFontDataFromFontSet(
+ FontSet fs,
+ unsigned char *str,
+ int len,
+ int *len_ret,
+ int is2b,
+ int type) /* VMAP , VROTATE , else */
{
unsigned long value;
int num,i,hit,csize;
@@ -242,9 +241,9 @@ int type; /* VMAP , VROTATE , else */
/* for VW/UDC end */
static FontSet
-_XomGetFontSetFromCharSet(oc, charset)
- XOC oc;
- XlcCharSet charset;
+_XomGetFontSetFromCharSet(
+ XOC oc,
+ XlcCharSet charset)
{
register FontSet font_set = XOC_GENERIC(oc)->font_set;
register int num = XOC_GENERIC(oc)->font_set_num;
@@ -264,10 +263,10 @@ _XomGetFontSetFromCharSet(oc, charset)
#ifdef MUSTCOPY
static void
-cs_to_xchar2b(from, to, length)
- register char *from;
- register XChar2b *to;
- register length;
+cs_to_xchar2b(
+ register char *from,
+ register XChar2b *to,
+ register length)
{
while (length-- > 0) {
to->byte1 = *from++;
@@ -277,10 +276,10 @@ cs_to_xchar2b(from, to, length)
}
static void
-cs_to_xchar2b_gl(from, to, length)
- register char *from;
- register XChar2b *to;
- register length;
+cs_to_xchar2b_gl(
+ register char *from,
+ register XChar2b *to,
+ register length)
{
while (length-- > 0) {
to->byte1 = *from++ & 0x7f;
@@ -290,10 +289,10 @@ cs_to_xchar2b_gl(from, to, length)
}
static void
-cs_to_xchar2b_gr(from, to, length)
- register char *from;
- register XChar2b *to;
- register length;
+cs_to_xchar2b_gr(
+ register char *from,
+ register XChar2b *to,
+ register length)
{
while (length-- > 0) {
to->byte1 = *from++ | 0x80;
@@ -304,27 +303,27 @@ cs_to_xchar2b_gr(from, to, length)
#endif
static void
-shift_to_gl(text, length)
- register char *text;
- register int length;
+shift_to_gl(
+ register char *text,
+ register int length)
{
while (length-- > 0)
*text++ &= 0x7f;
}
static void
-shift_to_gr(text, length)
- register char *text;
- register int length;
+shift_to_gr(
+ register char *text,
+ register int length)
{
while (length-- > 0)
*text++ |= 0x80;
}
static Bool
-load_font(oc, font_set)
- XOC oc;
- FontSet font_set;
+load_font(
+ XOC oc,
+ FontSet font_set)
{
font_set->font = XLoadQueryFont(oc->core.om->core.display,
oc->core.font_info.font_name_list[font_set->id]);
@@ -344,15 +343,15 @@ load_font(oc, font_set)
}
int
-_XomConvert(oc, conv, from, from_left, to, to_left, args, num_args)
- XOC oc;
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+_XomConvert(
+ XOC oc,
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
XPointer cs, lc_args[1];
XlcCharSet charset;
@@ -430,23 +429,34 @@ _XomConvert(oc, conv, from, from_left, to, to_left, args, num_args)
}
XlcConv
-_XomInitConverter(oc, type)
- XOC oc;
- XOMTextType type;
+_XomInitConverter(
+ XOC oc,
+ XOMTextType type)
{
XOCGenericPart *gen = XOC_GENERIC(oc);
- XlcConv conv;
+ XlcConv *convp;
char *conv_type;
+ XlcConv conv;
XLCd lcd;
- if (type == XOMWideChar) {
- conv = gen->wcs_to_cs;
+ switch (type) {
+ case XOMWideChar:
+ convp = &gen->wcs_to_cs;
conv_type = XlcNWideChar;
- } else {
- conv = gen->mbs_to_cs;
+ break;
+ case XOMMultiByte:
+ convp = &gen->mbs_to_cs;
conv_type = XlcNMultiByte;
+ break;
+ case XOMUtf8String:
+ convp = &gen->utf8_to_cs;
+ conv_type = XlcNUtf8String;
+ break;
+ default:
+ return (XlcConv) NULL;
}
+ conv = *convp;
if (conv) {
_XlcResetConverter(conv);
return conv;
@@ -454,14 +464,13 @@ _XomInitConverter(oc, type)
lcd = oc->core.om->core.lcd;
- conv = _XlcOpenConverter(lcd, conv_type, lcd, XlcNCharSet);
- if (conv == (XlcConv) NULL)
- return (XlcConv) NULL;
-
- if (type == XOMWideChar)
- gen->wcs_to_cs = conv;
- else
- gen->mbs_to_cs = conv;
+ conv = _XlcOpenConverter(lcd, conv_type, lcd, XlcNFontCharSet);
+ if (conv == (XlcConv) NULL) {
+ conv = _XlcOpenConverter(lcd, conv_type, lcd, XlcNCharSet);
+ if (conv == (XlcConv) NULL)
+ return (XlcConv) NULL;
+ }
+ *convp = conv;
return conv;
}
diff --git a/nls/C/XLC_LOCALE.pre b/nls/C/XLC_LOCALE.pre
index 7198f5a1..384f9d68 100644
--- a/nls/C/XLC_LOCALE.pre
+++ b/nls/C/XLC_LOCALE.pre
@@ -1,5 +1,6 @@
XCOMM $Xorg: C,v 1.3 2000/08/17 19:46:59 cpqbld Exp $
XCOMM XLocale Database Sample for C.
+XCOMM $XFree86: xc/nls/XLC_LOCALE/C,v 1.3 2000/02/25 21:02:32 dawes Exp $
XCOMM
XCOMM
@@ -47,4 +48,16 @@ cs0 {
ct_encoding ISO8859-1:GL
}
+XCOMM cs1 class
+cs1 {
+ side GR:Default
+ length 1
+#if WCHAR32
+ wc_encoding \x30000000
+#else
+ wc_encoding \x00008080
+#endif
+ ct_encoding ISO8859-1:GR
+}
+
END XLC_XLOCALE
diff --git a/nls/armscii-8/Compose.pre b/nls/armscii-8/Compose.pre
index 08e7fe3a..5437cea2 100644
--- a/nls/armscii-8/Compose.pre
+++ b/nls/armscii-8/Compose.pre
@@ -3,7 +3,7 @@ XCOMM ARMSCII-8 Compose Sequence
XCOMM
XCOMM Sequence Definition
XCOMM
-XCOMM $XFree86: xc/nls/Compose/armscii-8,v 1.2 2001/04/26 21:09:40 dawes Exp $
+XCOMM $XFree86: xc/nls/Compose/armscii-8,v 1.1 1999/08/28 09:00:33 dawes Exp $
XCOMM
XCOMM This file currently has no entries. It appears that a compose file (even
XCOMM just an empty one) is required for the appropriate keysyms to work for
diff --git a/nls/armscii-8/XLC_LOCALE.pre b/nls/armscii-8/XLC_LOCALE.pre
index 7fb19f74..9d58c21e 100644
--- a/nls/armscii-8/XLC_LOCALE.pre
+++ b/nls/armscii-8/XLC_LOCALE.pre
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/nls/XLC_LOCALE/armscii-8,v 1.2 2000/12/01 17:43:02 dawes Exp $
+XCOMM $XFree86: xc/nls/XLC_LOCALE/armscii-8,v 1.1 1999/06/06 14:05:58 dawes Exp $
XCOMM XLocale Database Sample for armscii-8.
XCOMM
diff --git a/nls/compose.dir.pre b/nls/compose.dir.pre
index 25ed582d..035fa475 100644
--- a/nls/compose.dir.pre
+++ b/nls/compose.dir.pre
@@ -1,93 +1,351 @@
-XCOMM $Xorg: compose.dir,v 1.4 2000/12/12 13:00:42 coskrey Exp $
+XCOMM $Xorg: compose.dir,v 1.3 2000/08/17 19:46:48 cpqbld Exp $
XCOMM
XCOMM This file contains compose table file name.
XCOMM The first word is the compose table file name and
XCOMM the second word is full locale name.
XCOMM
-iso8859-1/Compose: C
-iso8859-1/Compose: af_ZA.ISO8859-1
-iso8859-1/Compose: ca_ES.ISO8859-1
-iso8859-1/Compose: da_DK.ISO8859-1
-iso8859-1/Compose: de_AT.ISO8859-1
-iso8859-1/Compose: de_CH.ISO8859-1
-iso8859-1/Compose: de_DE.ISO8859-1
-iso8859-1/Compose: de_LI.ISO8859-1
-iso8859-1/Compose: de_LU.ISO8859-1
-iso8859-1/Compose: en_AU.ISO8859-1
-iso8859-1/Compose: en_BZ.ISO8859-1
-iso8859-1/Compose: en_CA.ISO8859-1
-iso8859-1/Compose: en_GB.ISO8859-1
-iso8859-1/Compose: en_IE.ISO8859-1
-iso8859-1/Compose: en_JM.ISO8859-1
-iso8859-1/Compose: en_NZ.ISO8859-1
-iso8859-1/Compose: en_TT.ISO8859-1
-iso8859-1/Compose: en_UK.ISO8859-1
-iso8859-1/Compose: en_US.ISO8859-1
-iso8859-1/Compose: en_ZA.ISO8859-1
-iso8859-1/Compose: es_AR.ISO8859-1
-iso8859-1/Compose: es_BO.ISO8859-1
-iso8859-1/Compose: es_CL.ISO8859-1
-iso8859-1/Compose: es_CO.ISO8859-1
-iso8859-1/Compose: es_CR.ISO8859-1
-iso8859-1/Compose: es_DO.ISO8859-1
-iso8859-1/Compose: es_EC.ISO8859-1
-iso8859-1/Compose: es_ES.ISO8859-1
-iso8859-1/Compose: es_GT.ISO8859-1
-iso8859-1/Compose: es_HN.ISO8859-1
-iso8859-1/Compose: es_MX.ISO8859-1
-iso8859-1/Compose: es_NI.ISO8859-1
-iso8859-1/Compose: es_PA.ISO8859-1
-iso8859-1/Compose: es_PE.ISO8859-1
-iso8859-1/Compose: es_PR.ISO8859-1
-iso8859-1/Compose: es_PY.ISO8859-1
-iso8859-1/Compose: es_SV.ISO8859-1
-iso8859-1/Compose: es_UY.ISO8859-1
-iso8859-1/Compose: es_VE.ISO8859-1
-iso8859-1/Compose: eu_ES.ISO8859-1
-iso8859-1/Compose: fi_FI.ISO8859-1
-iso8859-1/Compose: fo_FO.ISO8859-1
-iso8859-1/Compose: fr_BE.ISO8859-1
-iso8859-1/Compose: fr_CA.ISO8859-1
-iso8859-1/Compose: fr_CH.ISO8859-1
-iso8859-1/Compose: fr_FR.ISO8859-1
-iso8859-1/Compose: fr_LU.ISO8859-1
-iso8859-1/Compose: id_ID.ISO8859-1
-iso8859-1/Compose: is_IS.ISO8859-1
-iso8859-1/Compose: it_CH.ISO8859-1
-iso8859-1/Compose: it_IT.ISO8859-1
-iso8859-1/Compose: lt_LN.ISO8859-1
-iso8859-1/Compose: nl_BE.ISO8859-1
-iso8859-1/Compose: nl_NL.ISO8859-1
-iso8859-1/Compose: no_NO.ISO8859-1
-iso8859-1/Compose: pt_BR.ISO8859-1
-iso8859-1/Compose: pt_PT.ISO8859-1
-iso8859-1/Compose: sv_FI.ISO8859-1
-iso8859-1/Compose: sv_SE.ISO8859-1
-iso8859-2/Compose: cs_CZ.ISO8859-2
-iso8859-2/Compose: cz_CZ.ISO8859-2
-iso8859-2/Compose: hr_HR.ISO8859-2
-iso8859-2/Compose: hu_HU.ISO8859-2
-iso8859-2/Compose: pl_PL.ISO8859-2
-iso8859-2/Compose: ro_RO.ISO8859-2
-iso8859-2/Compose: sh_YU.ISO8859-2
-iso8859-2/Compose: sk_SK.ISO8859-2
-iso8859-2/Compose: sl_CS.ISO8859-2
-iso8859-2/Compose: sl_SI.ISO8859-2
-iso8859-2/Compose: sq_AL.ISO8859-2
-iso8859-2/Compose: sr_SP.ISO8859-2
-iso8859-2/Compose: sr_YU.ISO8859-2
-en_US.utf/Compose: en_US.utf
-
-XCOMM Added by Sun
-en_US.UTF-8/Compose: en_US.UTF-8
-
-iso8859-5/Compose: sr_SP.ISO8859-5
-iso8859-5/Compose: bg_BG.ISO8859-5
-iso8859-5/Compose: mk_MK.ISO8859-5
-iso8859-5/Compose: ru.ISO8859-5
-
-iso8859-7/Compose: el.ISO8859-7
-
-iso8859-13/Compose: lt.ISO8859-13
-iso8859-13/Compose: lv.ISO8859-13
-
+XCOMM $XFree86: xc/nls/compose.dir,v 1.24 2003/08/06 14:04:00 eich Exp $
+XCOMM
+iso8859-1/Compose: C
+iso8859-1/Compose: af_ZA.ISO8859-1
+iso8859-6/Compose: ar_AA.ISO8859-6
+iso8859-6/Compose: ar_BH.ISO8859-6
+iso8859-6/Compose: ar_DZ.ISO8859-6
+iso8859-6/Compose: ar_EG.ISO8859-6
+iso8859-6/Compose: ar_IQ.ISO8859-6
+iso8859-6/Compose: ar_JO.ISO8859-6
+iso8859-6/Compose: ar_KW.ISO8859-6
+iso8859-6/Compose: ar_LB.ISO8859-6
+iso8859-6/Compose: ar_LY.ISO8859-6
+iso8859-6/Compose: ar_MA.ISO8859-6
+iso8859-6/Compose: ar_OM.ISO8859-6
+iso8859-6/Compose: ar_QA.ISO8859-6
+iso8859-6/Compose: ar_SA.ISO8859-6
+iso8859-6/Compose: ar_TN.ISO8859-6
+iso8859-6/Compose: ar_YE.ISO8859-6
+iso8859-9e/Compose: az_AZ.ISO8859-9E
+koi8-c/Compose: a3_AZ.KOI8-C
+microsoft-cp1251/Compose: be_BY.CP1251
+iso8859-5/Compose: bg_BG.ISO8859-5
+microsoft-cp1251/Compose: bg_BG.CP1251
+iso8859-1/Compose: br_FR.ISO8859-1
+iso8859-14/Compose: br_FR.ISO8859-14
+iso8859-15/Compose: br_FR.ISO8859-15
+iso8859-1/Compose: ca_ES.ISO8859-1
+iso8859-15/Compose: ca_ES.ISO8859-15
+iso8859-2/Compose: cs_CZ.ISO8859-2
+iso8859-1/Compose: cy_GB.ISO8859-1
+iso8859-14/Compose: cy_GB.ISO8859-14
+iso8859-15/Compose: cy_GB.ISO8859-15
+iso8859-1/Compose: da_DK.ISO8859-1
+iso8859-15/Compose: da_DK.ISO8859-15
+iso8859-1/Compose: de_AT.ISO8859-1
+iso8859-15/Compose: de_AT.ISO8859-15
+iso8859-1/Compose: de_CH.ISO8859-1
+iso8859-15/Compose: de_CH.ISO8859-15
+iso8859-1/Compose: de_DE.ISO8859-1
+iso8859-15/Compose: de_DE.ISO8859-15
+iso8859-1/Compose: de_LI.ISO8859-1
+iso8859-15/Compose: de_LI.ISO8859-15
+iso8859-1/Compose: de_LU.ISO8859-1
+iso8859-15/Compose: de_LU.ISO8859-15
+iso8859-7/Compose: el_GR.ISO8859-7
+iso8859-1/Compose: en_AU.ISO8859-1
+iso8859-1/Compose: en_BZ.ISO8859-1
+iso8859-1/Compose: en_CA.ISO8859-1
+iso8859-1/Compose: en_GB.ISO8859-1
+iso8859-15/Compose: en_GB.ISO8859-15
+iso8859-1/Compose: en_IE.ISO8859-1
+iso8859-15/Compose: en_IE.ISO8859-15
+iso8859-1/Compose: en_JM.ISO8859-1
+iso8859-1/Compose: en_NZ.ISO8859-1
+iso8859-1/Compose: en_TT.ISO8859-1
+iso8859-1/Compose: en_UK.ISO8859-1
+iso8859-15/Compose: en_UK.ISO8859-15
+iso8859-1/Compose: en_US.ISO8859-1
+iso8859-15/Compose: en_US.ISO8859-15
+iso8859-1/Compose: en_ZA.ISO8859-1
+iso8859-15/Compose: en_ZA.ISO8859-15
+iso8859-3/Compose: eo_XX.ISO8859-3
+iso8859-1/Compose: es_AR.ISO8859-1
+iso8859-1/Compose: es_BO.ISO8859-1
+iso8859-1/Compose: es_CL.ISO8859-1
+iso8859-1/Compose: es_CO.ISO8859-1
+iso8859-1/Compose: es_CR.ISO8859-1
+iso8859-1/Compose: es_DO.ISO8859-1
+iso8859-1/Compose: es_EC.ISO8859-1
+iso8859-1/Compose: es_ES.ISO8859-1
+iso8859-15/Compose: es_ES.ISO8859-15
+iso8859-1/Compose: es_GT.ISO8859-1
+iso8859-1/Compose: es_HN.ISO8859-1
+iso8859-1/Compose: es_MX.ISO8859-1
+iso8859-1/Compose: es_NI.ISO8859-1
+iso8859-1/Compose: es_PA.ISO8859-1
+iso8859-1/Compose: es_PE.ISO8859-1
+iso8859-1/Compose: es_PR.ISO8859-1
+iso8859-1/Compose: es_PY.ISO8859-1
+iso8859-1/Compose: es_SV.ISO8859-1
+iso8859-1/Compose: es_UY.ISO8859-1
+iso8859-1/Compose: es_VE.ISO8859-1
+iso8859-1/Compose: et_EE.ISO8859-1
+iso8859-4/Compose: et_EE.ISO8859-4
+iso8859-13/Compose: et_EE.ISO8859-13
+iso8859-15/Compose: et_EE.ISO8859-15
+iso8859-1/Compose: eu_ES.ISO8859-1
+iso8859-15/Compose: eu_ES.ISO8859-15
+isiri-3342/Compose: fa_IR.ISIRI-3342
+iso8859-1/Compose: fi_FI.ISO8859-1
+iso8859-15/Compose: fi_FI.ISO8859-15
+iso8859-1/Compose: fo_FO.ISO8859-1
+iso8859-15/Compose: fo_FO.ISO8859-15
+iso8859-1/Compose: fr_BE.ISO8859-1
+iso8859-15/Compose: fr_BE.ISO8859-15
+iso8859-1/Compose: fr_CA.ISO8859-1
+iso8859-15/Compose: fr_CA.ISO8859-15
+iso8859-1/Compose: fr_CH.ISO8859-1
+iso8859-15/Compose: fr_CH.ISO8859-15
+iso8859-1/Compose: fr_FR.ISO8859-1
+iso8859-15/Compose: fr_FR.ISO8859-15
+iso8859-1/Compose: fr_LU.ISO8859-1
+iso8859-15/Compose: fr_LU.ISO8859-15
+iso8859-1/Compose: ga_IE.ISO8859-1
+iso8859-14/Compose: ga_IE.ISO8859-14
+iso8859-15/Compose: ga_IE.ISO8859-15
+iso8859-1/Compose: gd_GB.ISO8859-1
+iso8859-14/Compose: gd_GB.ISO8859-14
+iso8859-15/Compose: gd_GB.ISO8859-15
+iso8859-1/Compose: gl_ES.ISO8859-1
+iso8859-15/Compose: gl_ES.ISO8859-15
+iso8859-1/Compose: gv_GB.ISO8859-1
+iso8859-14/Compose: gv_GB.ISO8859-14
+iso8859-15/Compose: gv_GB.ISO8859-15
+iso8859-8/Compose: he_IL.ISO8859-8
+microsoft-cp1255/Compose: he_IL.CP1255
+iscii-dev/Compose: hi_IN.ISCII-DEV
+iso8859-2/Compose: hr_HR.ISO8859-2
+iso8859-2/Compose: hu_HU.ISO8859-2
+armscii-8/Compose: hy_AM.ARMSCII-8
+iso8859-1/Compose: id_ID.ISO8859-1
+iso8859-15/Compose: id_ID.ISO8859-15
+iso8859-1/Compose: is_IS.ISO8859-1
+iso8859-15/Compose: is_IS.ISO8859-15
+iso8859-1/Compose: it_CH.ISO8859-1
+iso8859-15/Compose: it_CH.ISO8859-15
+iso8859-1/Compose: it_IT.ISO8859-1
+iso8859-15/Compose: it_IT.ISO8859-15
+ja/Compose: ja_JP.eucJP
+ja.SJIS/Compose: ja_JP.SJIS
+ja.JIS/Compose: ja_JP.JIS7
+georgian-academy/Compose: ka_GE.GEORGIAN-ACADEMY
+georgian-ps/Compose: ka_GE.GEORGIAN-PS
+iso8859-1/Compose: kl_GL.ISO8859-1
+iso8859-15/Compose: kl_GL.ISO8859-15
+iso8859-1/Compose: kw_GB.ISO8859-1
+iso8859-14/Compose: kw_GB.ISO8859-14
+iso8859-15/Compose: kw_GB.ISO8859-15
+ko/Compose: ko_KR.eucKR
+ibm-cp1133/Compose: lo_LA.IBM-CP1133
+mulelao-1/Compose: lo_LA.MULELAO-1
+iso8859-1/Compose: lt_LN.ISO8859-1
+iso8859-4/Compose: lt_LT.ISO8859-4
+iso8859-13/Compose: lt_LT.ISO8859-13
+iso8859-4/Compose: lv_LV.ISO8859-4
+iso8859-13/Compose: lv_LV.ISO8859-13
+iso8859-13/Compose: mi_NZ.ISO8859-13
+iso8859-5/Compose: mk_MK.ISO8859-5
+XCOMM mk_MK.UTF-8/Compose: mk_MK.UTF-8
+microsoft-cp1251/Compose: mk_MK.CP1251
+iso8859-1/Compose: ms_MY.ISO8859-1
+iso8859-3/Compose: mt_MT.ISO8859-3
+iso8859-1/Compose: nl_BE.ISO8859-1
+iso8859-15/Compose: nl_BE.ISO8859-15
+iso8859-1/Compose: nl_NL.ISO8859-1
+iso8859-15/Compose: nl_NL.ISO8859-15
+iso8859-1/Compose: no_NO.ISO8859-1
+iso8859-15/Compose: no_NO.ISO8859-15
+iso8859-1/Compose: nb_NO.ISO8859-1
+iso8859-15/Compose: nb_NO.ISO8859-15
+iso8859-1/Compose: nn_NO.ISO8859-1
+iso8859-15/Compose: nn_NO.ISO8859-15
+iso8859-1/Compose: ny_NO.ISO8859-1
+iso8859-15/Compose: ny_NO.ISO8859-15
+iso8859-1/Compose: oc_FR.ISO8859-1
+iso8859-15/Compose: oc_FR.ISO8859-15
+iso8859-1/Compose: pd_DE.ISO8859-1
+iso8859-1/Compose: pd_US.ISO8859-1
+iso8859-1/Compose: ph_PH.ISO8859-1
+iso8859-2/Compose: pl_PL.ISO8859-2
+iso8859-1/Compose: pp_AN.ISO8859-1
+iso8859-1/Compose: pt_BR.ISO8859-1
+iso8859-15/Compose: pt_BR.ISO8859-15
+iso8859-1/Compose: pt_PT.ISO8859-1
+iso8859-15/Compose: pt_PT.ISO8859-15
+iso8859-2/Compose: ro_RO.ISO8859-2
+koi8-r/Compose: ru_RU.KOI8-R
+iso8859-5/Compose: ru_RU.ISO8859-5
+microsoft-cp1251/Compose: ru_RU.CP1251
+koi8-u/Compose: ru_UA.KOI8-U
+iso8859-2/Compose: sh_YU.ISO8859-2
+iso8859-2/Compose: sk_SK.ISO8859-2
+iso8859-2/Compose: sl_CS.ISO8859-2
+iso8859-2/Compose: sl_SI.ISO8859-2
+iso8859-5/Compose: sp_YU.ISO8859-5
+iso8859-2/Compose: sq_AL.ISO8859-2
+iso8859-2/Compose: sr_SP.ISO8859-2
+iso8859-2/Compose: sr_YU.ISO8859-2
+iso8859-5/Compose: sr_YU.ISO8859-5
+iso8859-1/Compose: sv_FI.ISO8859-1
+iso8859-15/Compose: sv_FI.ISO8859-15
+iso8859-1/Compose: sv_SE.ISO8859-1
+iso8859-15/Compose: sv_SE.ISO8859-15
+tscii-0/Compose: ta_IN.TSCII-0
+koi8-c/Compose: tg_TJ.KOI8-C
+iso8859-1/Compose: tl_PH.ISO8859-1
+iso8859-9/Compose: tr_TR.ISO8859-9
+tatar-cyr/Compose: tt_RU.TATAR-CYR
+koi8-c/Compose: tt_RU.KOI8-C
+koi8-u/Compose: uk_UA.KOI8-U
+microsoft-cp1256/Compose: ur_PK.CP1256
+vi_VN.viscii/Compose: vi_VN.VISCII
+vi_VN.tcvn/Compose: vi_VN.TCVN
+iso8859-1/Compose: wa_BE.ISO8859-1
+microsoft-cp1255/Compose: yi_US.CP1256
+zh_CN/Compose: zh_CN.eucCN
+zh_CN/Compose: zh_CN.GB2312
+zh_CN.gbk/Compose: zh_CN.GBK
+zh_TW.big5/Compose: zh_TW.big5
+zh_TW.big5/Compose: zh_TW.Big5
+zh_TW/Compose: zh_TW.eucTW
+XCOMM
+XCOMM
+en_US.UTF-8/Compose: af_ZA.UTF-8
+en_US.UTF-8/Compose: ar_AA.UTF-8
+en_US.UTF-8/Compose: ar_BH.UTF-8
+en_US.UTF-8/Compose: ar_DZ.UTF-8
+en_US.UTF-8/Compose: ar_EG.UTF-8
+en_US.UTF-8/Compose: ar_IQ.UTF-8
+en_US.UTF-8/Compose: ar_JO.UTF-8
+en_US.UTF-8/Compose: ar_KW.UTF-8
+en_US.UTF-8/Compose: ar_LB.UTF-8
+en_US.UTF-8/Compose: ar_LY.UTF-8
+en_US.UTF-8/Compose: ar_MA.UTF-8
+en_US.UTF-8/Compose: ar_OM.UTF-8
+en_US.UTF-8/Compose: ar_QA.UTF-8
+en_US.UTF-8/Compose: ar_SA.UTF-8
+en_US.UTF-8/Compose: ar_TN.UTF-8
+en_US.UTF-8/Compose: ar_YE.UTF-8
+en_US.UTF-8/Compose: az_AZ.UTF-8
+en_US.UTF-8/Compose: a3_AZ.UTF-8
+en_US.UTF-8/Compose: be_BY.UTF-8
+en_US.UTF-8/Compose: bg_BG.UTF-8
+en_US.UTF-8/Compose: br_FR.UTF-8
+en_US.UTF-8/Compose: ca_ES.UTF-8
+en_US.UTF-8/Compose: cs_CZ.UTF-8
+en_US.UTF-8/Compose: cy_GB.UTF-8
+en_US.UTF-8/Compose: cz_CZ.UTF-8
+en_US.UTF-8/Compose: da_DK.UTF-8
+en_US.UTF-8/Compose: de_AT.UTF-8
+en_US.UTF-8/Compose: de_BE.UTF-8
+en_US.UTF-8/Compose: de_CH.UTF-8
+en_US.UTF-8/Compose: de_DE.UTF-8
+en_US.UTF-8/Compose: de_LI.UTF-8
+en_US.UTF-8/Compose: de_LU.UTF-8
+el_GR.UTF-8/Compose: el_GR.UTF-8
+en_US.UTF-8/Compose: en_AU.UTF-8
+en_US.UTF-8/Compose: en_BZ.UTF-8
+en_US.UTF-8/Compose: en_CA.UTF-8
+en_US.UTF-8/Compose: en_GB.UTF-8
+en_US.UTF-8/Compose: en_IE.UTF-8
+en_US.UTF-8/Compose: en_JM.UTF-8
+en_US.UTF-8/Compose: en_NZ.UTF-8
+en_US.UTF-8/Compose: en_TT.UTF-8
+en_US.UTF-8/Compose: en_UK.UTF-8
+en_US.UTF-8/Compose: en_US.UTF-8
+en_US.UTF-8/Compose: en_ZA.UTF-8
+en_US.UTF-8/Compose: eo_XX.UTF-8
+en_US.UTF-8/Compose: es_AR.UTF-8
+en_US.UTF-8/Compose: es_BO.UTF-8
+en_US.UTF-8/Compose: es_CL.UTF-8
+en_US.UTF-8/Compose: es_CO.UTF-8
+en_US.UTF-8/Compose: es_CR.UTF-8
+en_US.UTF-8/Compose: es_DO.UTF-8
+en_US.UTF-8/Compose: es_EC.UTF-8
+en_US.UTF-8/Compose: es_ES.UTF-8
+en_US.UTF-8/Compose: es_GT.UTF-8
+en_US.UTF-8/Compose: es_HN.UTF-8
+en_US.UTF-8/Compose: es_MX.UTF-8
+en_US.UTF-8/Compose: es_NI.UTF-8
+en_US.UTF-8/Compose: es_PA.UTF-8
+en_US.UTF-8/Compose: es_PE.UTF-8
+en_US.UTF-8/Compose: es_PR.UTF-8
+en_US.UTF-8/Compose: es_PY.UTF-8
+en_US.UTF-8/Compose: es_SV.UTF-8
+en_US.UTF-8/Compose: es_UY.UTF-8
+en_US.UTF-8/Compose: es_VE.UTF-8
+en_US.UTF-8/Compose: et_EE.UTF-8
+en_US.UTF-8/Compose: eu_ES.UTF-8
+en_US.UTF-8/Compose: fa_IR.UTF-8
+en_US.UTF-8/Compose: fi_FI.UTF-8
+en_US.UTF-8/Compose: fo_FO.UTF-8
+en_US.UTF-8/Compose: fr_BE.UTF-8
+en_US.UTF-8/Compose: fr_CA.UTF-8
+en_US.UTF-8/Compose: fr_CH.UTF-8
+en_US.UTF-8/Compose: fr_FR.UTF-8
+en_US.UTF-8/Compose: fr_LU.UTF-8
+en_US.UTF-8/Compose: ga_IE.UTF-8
+en_US.UTF-8/Compose: gd_GB.UTF-8
+en_US.UTF-8/Compose: gl_ES.UTF-8
+en_US.UTF-8/Compose: gv_GB.UTF-8
+en_US.UTF-8/Compose: he_IL.UTF-8
+en_US.UTF-8/Compose: hi_IN.UTF-8
+en_US.UTF-8/Compose: hr_HR.UTF-8
+en_US.UTF-8/Compose: hu_HU.UTF-8
+en_US.UTF-8/Compose: hy_AM.UTF-8
+en_US.UTF-8/Compose: id_ID.UTF-8
+en_US.UTF-8/Compose: is_IS.UTF-8
+en_US.UTF-8/Compose: it_CH.UTF-8
+en_US.UTF-8/Compose: it_IT.UTF-8
+en_US.UTF-8/Compose: iu_CA.UTF-8
+en_US.UTF-8/Compose: ka_GE.UTF-8
+en_US.UTF-8/Compose: kl_GL.UTF-8
+en_US.UTF-8/Compose: kw_GB.UTF-8
+en_US.UTF-8/Compose: lo_LA.UTF-8
+en_US.UTF-8/Compose: lt_LT.UTF-8
+en_US.UTF-8/Compose: lv_LV.UTF-8
+en_US.UTF-8/Compose: mi_NZ.UTF-8
+en_US.UTF-8/Compose: mk_MK.UTF-8
+en_US.UTF-8/Compose: ms_MY.UTF-8
+en_US.UTF-8/Compose: nl_BE.UTF-8
+en_US.UTF-8/Compose: nl_NL.UTF-8
+en_US.UTF-8/Compose: no_NO.UTF-8
+en_US.UTF-8/Compose: nb_NO.UTF-8
+en_US.UTF-8/Compose: ny_NO.UTF-8
+en_US.UTF-8/Compose: oc_FR.UTF-8
+en_US.UTF-8/Compose: pd_DE.UTF-8
+en_US.UTF-8/Compose: pd_US.UTF-8
+en_US.UTF-8/Compose: ph_PH.UTF-8
+en_US.UTF-8/Compose: pl_PL.UTF-8
+en_US.UTF-8/Compose: pp_AN.UTF-8
+en_US.UTF-8/Compose: pt_BR.UTF-8
+en_US.UTF-8/Compose: pt_PT.UTF-8
+en_US.UTF-8/Compose: ro_RO.UTF-8
+en_US.UTF-8/Compose: ru_RU.UTF-8
+en_US.UTF-8/Compose: ru_UA.UTF-8
+en_US.UTF-8/Compose: sk_SK.UTF-8
+en_US.UTF-8/Compose: sl_SI.UTF-8
+en_US.UTF-8/Compose: sq_AL.UTF-8
+en_US.UTF-8/Compose: sr_YU.UTF-8
+en_US.UTF-8/Compose: sv_FI.UTF-8
+en_US.UTF-8/Compose: sv_SE.UTF-8
+en_US.UTF-8/Compose: ta_IN.UTF-8
+en_US.UTF-8/Compose: tg_TJ.UTF-8
+en_US.UTF-8/Compose: th_TH.UTF-8
+en_US.UTF-8/Compose: tl_PH.UTF-8
+en_US.UTF-8/Compose: tr_TR.UTF-8
+en_US.UTF-8/Compose: tt_RU.UTF-8
+en_US.UTF-8/Compose: uk_UA.UTF-8
+en_US.UTF-8/Compose: ur_PK.UTF-8
+en_US.UTF-8/Compose: uz_UZ.UTF-8
+en_US.UTF-8/Compose: vi_VN.UTF-8
+en_US.UTF-8/Compose: wa_BE.UTF-8
+en_US.UTF-8/Compose: yi_US.UTF-8
diff --git a/nls/el_GR.UTF-8/Compose.pre b/nls/el_GR.UTF-8/Compose.pre
index 1e26cd13..b7effb31 100644
--- a/nls/el_GR.UTF-8/Compose.pre
+++ b/nls/el_GR.UTF-8/Compose.pre
@@ -1,5 +1,5 @@
XCOMM
-XCOMM $XFree86: xc/nls/Compose/el_GR.UTF-8,v 1.2 2002/07/01 02:25:54 tsi Exp $
+XCOMM $XFree86$
XCOMM
XCOMM UTF-8 compose sequence definitions for the greek keyboard layout.
XCOMM
diff --git a/nls/en_US.UTF-8/Compose.pre b/nls/en_US.UTF-8/Compose.pre
index f5bdd589..ff41f8f3 100644
--- a/nls/en_US.UTF-8/Compose.pre
+++ b/nls/en_US.UTF-8/Compose.pre
@@ -1,2245 +1,5598 @@
-#
-# Copyright (c) 1996-1999 by Sun Microsystems, Inc.
-# All rights reserved.
-#
-#ident "@(#)en_US.UTF-8 1.44 99/11/22 SMI"
-#
-# Compose table for the En_US.UTF8 locale
-#
+XCOMM UTF-8 (Unicode) compose sequence
+XCOMM David.Monniaux@ens.fr
+XCOMM
+XCOMM $XFree86: xc/nls/Compose/en_US.UTF-8,v 1.11 2004/01/06 13:14:04 pascal Exp $
-STATE "[ English/European ]"
-<Multi_key> <c> <c> : SWITCH_STATE_TO "[ Cyrillic ]"
-<Multi_key> <g> <g> : SWITCH_STATE_TO "[ Greek ]"
-<Multi_key> <t> <t> : SWITCH_STATE_TO "[ Thai ]"
-<Multi_key> <a> <r> : SWITCH_STATE_TO "[ Arabic ]"
-<Multi_key> <h> <h> : SWITCH_STATE_TO "[ Hebrew ]"
-<Multi_key> <u> <h> : SWITCH_STATE_TO "[ Unicode Hex ]"
-<Multi_key> <u> <o> : SWITCH_STATE_TO "[ Unicode Octal ]"
-<Multi_key> <l> <l> : SWITCH_STATE_TO "[ Lookup ]"
-<Multi_key> <j> <a> : SWITCH_STATE_TO "[ Japanese ]"
-<Multi_key> <k> <o> : SWITCH_STATE_TO "[ Korean ]"
-<Multi_key> <s> <c> : SWITCH_STATE_TO "[ S-Chinese ]"
-<Multi_key> <t> <c> : SWITCH_STATE_TO "[ T-Chinese ]"
+XCOMM Part 1 - Manual definitions
-Ctrl<T> <c> <c> : SWITCH_STATE_TO "[ Cyrillic ]"
-Ctrl<T> <g> <g> : SWITCH_STATE_TO "[ Greek ]"
-Ctrl<T> <t> <t> : SWITCH_STATE_TO "[ Thai ]"
-Ctrl<T> <a> <r> : SWITCH_STATE_TO "[ Arabic ]"
-Ctrl<T> <h> <h> : SWITCH_STATE_TO "[ Hebrew ]"
-Ctrl<T> <u> <h> : SWITCH_STATE_TO "[ Unicode Hex ]"
-Ctrl<T> <u> <o> : SWITCH_STATE_TO "[ Unicode Octal ]"
-Ctrl<T> <l> <l> : SWITCH_STATE_TO "[ Lookup ]"
-Ctrl<T> <j> <a> : SWITCH_STATE_TO "[ Japanese ]"
-Ctrl<T> <k> <o> : SWITCH_STATE_TO "[ Korean ]"
-Ctrl<T> <s> <c> : SWITCH_STATE_TO "[ S-Chinese ]"
-Ctrl<T> <t> <c> : SWITCH_STATE_TO "[ T-Chinese ]"
+XCOMM Spacing versions of dead accents
+<dead_tilde> <space> : "~" asciitilde
+<dead_tilde> <dead_tilde> : "~" asciitilde
+<dead_acute> <space> : "'" apostrophe
+<dead_acute> <dead_acute> : "´" acute
+<dead_grave> <space> : "`" grave
+<dead_grave> <dead_grave> : "`" grave
+<dead_circumflex> <space> : "^" asciicircum
+<dead_circumflex> <dead_circumflex> : "^" asciicircum
+<dead_abovering> <space> : "°" degree
+<dead_abovering> <dead_abovering> : "°" degree
+<dead_macron> <space> : "¯" macron
+<dead_macron> <dead_macron> : "¯" macron
+<dead_breve> <space> : "˘" breve
+<dead_breve> <dead_breve> : "˘" breve
+<dead_abovedot> <space> : "Ë™" abovedot
+<dead_abovedot> <dead_abovedot> : "Ë™" abovedot
+<dead_diaeresis> <dead_diaeresis> : "¨" diaeresis
+<dead_diaeresis> <space> : "\"" quotedbl
+<dead_doubleacute> <space> : "Ë" U2dd
+<dead_doubleacute> <dead_doubleacute> : "Ë" U2dd
+<dead_caron> <space> : "ˇ" caron
+<dead_caron> <dead_caron> : "ˇ" caron
+<dead_cedilla> <space> : "¸" cedilla
+<dead_cedilla> <dead_cedilla> : "¸" cedilla
+<dead_ogonek> <dead_space> : "Ë›" ogonek
+<dead_ogonek> <dead_ogonek> : "Ë›" ogonek
+<dead_iota> <dead_space> : "ͺ" U37a
+<dead_iota> <dead_iota> : "ͺ" U37a
-# Rules to compose Euro Currency Symbol
-AltGraph<e> : "\xe2\x82\xac"
-AltGraph<E> : "\xe2\x82\xac"
-AltGraph<4> : "\xe2\x82\xac"
-AltGraph<5> : "\xe2\x82\xac"
-Alt<e> : "\xe2\x82\xac"
-Alt<E> : "\xe2\x82\xac"
-Alt<4> : "\xe2\x82\xac"
-Alt<5> : "\xe2\x82\xac"
-Meta<e> : "\xe2\x82\xac"
-Meta<E> : "\xe2\x82\xac"
-Meta<4> : "\xe2\x82\xac"
-Meta<5> : "\xe2\x82\xac"
+XCOMM ASCII characters that may be difficult to access
+XCOMM on some keyboards.
+<Multi_key> <plus> <plus> : "#" numbersign
+<Multi_key> <apostrophe> <space> : "'" apostrophe
+<Multi_key> <space> <apostrophe> : "'" apostrophe
+<Multi_key> <A> <T> : "@" at
+<Multi_key> <parenleft> <parenleft> : "[" bracketleft
+<Multi_key> <slash> <slash> : "\\" backslash
+<Multi_key> <slash> <less> : "\\" backslash
+<Multi_key> <less> <slash> : "\\" backslash
+<Multi_key> <parenright> <parenright> : "]" bracketright
-<Multi_key> <plus> <plus> : "\x23" numbersign
-<Multi_key> <apostrophe> <space> : "\x27" apostrophe
-<Multi_key> <space> <apostrophe> : "\x27'" apostrophe
-<Multi_key> <A> <A> : "\x40" at
-<Multi_key> <a> <A> : "\xc4\x84" Aogonek
-<Multi_key> <A> <a> : "\xc4\x84" Aogonek
-<Multi_key> <a> <a> : "\xc4\x85" aogonek
-<Multi_key> <parenleft> <parenleft> : "\x5b" bracketleft
-<Multi_key> <slash> <slash> : "\x5c" backslash
-<Multi_key> <slash> <less> : "\x5c" backslash
-<Multi_key> <less> <slash> : "\x5c" backslash
-<Multi_key> <parenright> <parenright> : "\x5d" bracketright
-<Multi_key> <asciicircum> <space> : "\x5e" asciicircum
-<Multi_key> <space> <asciicircum> : "\x5e" asciicircum
-<Multi_key> <greater> <space> : "\x5e" asciicircum
-<Multi_key> <space> <greater> : "\x5e" asciicircum
-<Multi_key> <grave> <space> : "\x60" grave
-<Multi_key> <space> <grave> : "\x60" grave
-<Multi_key> <parenleft> <minus> : "\x7b" braceleft
-<Multi_key> <minus> <parenleft> : "\x7b" braceleft
-<Multi_key> <slash> <asciicircum> : "\x7c" bar
-<Multi_key> <asciicircum> <slash> : "\x7c" bar
-<Multi_key> <V> <L> : "\x7c" bar
-<Multi_key> <L> <V> : "\x7c" bar
-<Multi_key> <v> <l> : "\x7c" bar
-<Multi_key> <l> <v> : "\x7c" bar
-<Multi_key> <parenright> <minus> : "\x7d" braceright
-<Multi_key> <minus> <parenright> : "\x7d" braceright
-<Multi_key> <asciitilde> <space> : "\x7e" asciitilde
-<Multi_key> <space> <asciitilde> : "\x7e" asciitilde
-<Multi_key> <minus> <space> : "\x7e" asciitilde
-<Multi_key> <space> <minus> : "\x7e" asciitilde
-<Multi_key> <exclam> <exclam> : "\xc2\xa1" exclamdown
-<Multi_key> <C> <acute> : "\xc4\x86" Cacute
-<Multi_key> <c> <acute> : "\xc4\x87" cacute
-<Multi_key> <acute> <C> : "\xc4\x86" Cacute
-<Multi_key> <acute> <c> : "\xc4\x87" cacute
-<Multi_key> <c> <slash> : "\xc2\xa2" cent
-<Multi_key> <slash> <c> : "\xc2\xa2" cent
-<Multi_key> <C> <slash> : "\xc2\xa2" cent
-<Multi_key> <slash> <C> : "\xc2\xa2" cent
-<Multi_key> <C> <bar> : "\xc2\xa2" cent
-<Multi_key> <bar> <C> : "\xc2\xa2" cent
-<Multi_key> <c> <bar> : "\xc2\xa2" cent
-<Multi_key> <bar> <c> : "\xc2\xa2" cent
-<Multi_key> <acute> <L> : "\xc4\xb9" Lacute
-<Multi_key> <L> <acute> : "\xc4\xb9" Lacute
-<Multi_key> <acute> <l> : "\xc4\xba" lacute
-<Multi_key> <l> <acute> : "\xc4\xba" lacute
-<Multi_key> <l> <minus> : "\xc2\xa3" sterling
-<Multi_key> <minus> <l> : "\xc2\xa3" sterling
-<Multi_key> <L> <minus> : "\xc2\xa3" sterling
-<Multi_key> <minus> <L> : "\xc2\xa3" sterling
-<Multi_key> <l> <equal> : "\xc2\xa3" sterling
-<Multi_key> <equal> <l> : "\xc2\xa3" sterling
-<Multi_key> <L> <equal> : "\xc2\xa3" sterling
-<Multi_key> <equal> <L> : "\xc2\xa3" sterling
-<Multi_key> <acute> <N> : "\xc5\x83" Nacute
-<Multi_key> <N> <acute> : "\xc5\x83" Nacute
-<Multi_key> <y> <minus> : "\xc2\xa5" yen
-<Multi_key> <minus> <y> : "\xc2\xa5" yen
-<Multi_key> <Y> <minus> : "\xc2\xa5" yen
-<Multi_key> <minus> <Y> : "\xc2\xa5" yen
-<Multi_key> <y> <equal> : "\xc2\xa5" yen
-<Multi_key> <equal> <y> : "\xc2\xa5" yen
-<Multi_key> <Y> <equal> : "\xc2\xa5" yen
-<Multi_key> <equal> <Y> : "\xc2\xa5" yen
-<Multi_key> <s> <o> : "\xc2\xa7" section
-<Multi_key> <o> <s> : "\xc2\xa7" section
-<Multi_key> <S> <O> : "\xc2\xa7" section
-<Multi_key> <O> <S> : "\xc2\xa7" section
-<Multi_key> <S> <exclam> : "\xc2\xa7" section
-<Multi_key> <exclam> <S> : "\xc2\xa7" section
-<Multi_key> <s> <exclam> : "\xc2\xa7" section
-<Multi_key> <exclam> <s> : "\xc2\xa7" section
-<Multi_key> <S> <0> : "\xc2\xa7" section
-<Multi_key> <0> <S> : "\xc2\xa7" section
-<Multi_key> <s> <0> : "\xc2\xa7" section
-<Multi_key> <0> <s> : "\xc2\xa7" section
-<Multi_key> <x> <o> : "\xc2\xa4" currency
-<Multi_key> <o> <x> : "\xc2\xa4" currency
-<Multi_key> <X> <O> : "\xc2\xa4" currency
-<Multi_key> <O> <X> : "\xc2\xa4" currency
-<Multi_key> <x> <O> : "\xc2\xa4" currency
-<Multi_key> <O> <x> : "\xc2\xa4" currency
-<Multi_key> <X> <o> : "\xc2\xa4" currency
-<Multi_key> <o> <X> : "\xc2\xa4" currency
-<Multi_key> <x> <0> : "\xc2\xa4" currency
-<Multi_key> <0> <x> : "\xc2\xa4" currency
-<Multi_key> <X> <0> : "\xc2\xa4" currency
-<Multi_key> <0> <X> : "\xc2\xa4" currency
-<Multi_key> <c> <o> : "\xc2\xa9" copyright
-<Multi_key> <o> <c> : "\xc2\xa9" copyright
-<Multi_key> <C> <O> : "\xc2\xa9" copyright
-<Multi_key> <O> <C> : "\xc2\xa9" copyright
-<Multi_key> <c> <O> : "\xc2\xa9" copyright
-<Multi_key> <O> <c> : "\xc2\xa9" copyright
-<Multi_key> <C> <o> : "\xc2\xa9" copyright
-<Multi_key> <o> <C> : "\xc2\xa9" copyright
-<Multi_key> <c> <0> : "\xc2\xa9" copyright
-<Multi_key> <0> <c> : "\xc2\xa9" copyright
-<Multi_key> <C> <0> : "\xc2\xa9" copyright
-<Multi_key> <0> <C> : "\xc2\xa9" copyright
-<Multi_key> <a> <minus> : "\xc2\xaa" ordfeminine
-<Multi_key> <minus> <a> : "\xc2\xaa" ordfeminine
-<Multi_key> <A> <minus> : "\xc2\xaa" ordfeminine
-<Multi_key> <minus> <A> : "\xc2\xaa" ordfeminine
-<Multi_key> <o> <minus> : "\xc2\xba" masculine
-<Multi_key> <minus> <o> : "\xc2\xba" masculine
-<Multi_key> <O> <minus> : "\xc2\xba" masculine
-<Multi_key> <minus> <O> : "\xc2\xba" masculine
-<Multi_key> <less> <less> : "\xc2\xab" guillemotleft
-<Multi_key> <greater> <greater> : "\xc2\xbb" guillemotright
-<Multi_key> <0> <asciicircum> : "\xc2\xb0" degree
-<Multi_key> <asciicircum> <0> : "\xc2\xb0" degree
-<Multi_key> <0> <asterisk> : "\xc2\xb0" degree
-<Multi_key> <asterisk> <0> : "\xc2\xb0" degree
-<Multi_key> <plus> <minus> : "\xc2\xb1" plusminus
-<Multi_key> <minus> <plus> : "\xc2\xb1" plusminus
-<Multi_key> <slash> <u> : "\xc2\xb5" mu
-<Multi_key> <u> <slash> : "\xc2\xb5" mu
-<Multi_key> <slash> <U> : "\xc2\xb5" mu
-<Multi_key> <U> <slash> : "\xc2\xb5" mu
-<Multi_key> <1> <asciicircum> : "\xc2\xb9" onesuperior
-<Multi_key> <asciicircum> <1> : "\xc2\xb9" onesuperior
-<Multi_key> <S> <1> : "\xc2\xb9" onesuperior
-<Multi_key> <1> <S> : "\xc2\xb9" onesuperior
-<Multi_key> <s> <1> : "\xc2\xb9" onesuperior
-<Multi_key> <1> <s> : "\xc2\xb9" onesuperior
-<Multi_key> <2> <asciicircum> : "\xc2\xb2" twosuperior
-<Multi_key> <asciicircum> <2> : "\xc2\xb2" twosuperior
-<Multi_key> <S> <2> : "\xc2\xb2" twosuperior
-<Multi_key> <2> <S> : "\xc2\xb2" twosuperior
-<Multi_key> <s> <2> : "\xc2\xb2" twosuperior
-<Multi_key> <2> <s> : "\xc2\xb2" twosuperior
-<Multi_key> <3> <asciicircum> : "\xc2\xb3" threesuperior
-<Multi_key> <asciicircum> <3> : "\xc2\xb3" threesuperior
-<Multi_key> <S> <3> : "\xc2\xb3" threesuperior
-<Multi_key> <3> <S> : "\xc2\xb3" threesuperior
-<Multi_key> <s> <3> : "\xc2\xb3" threesuperior
-<Multi_key> <3> <s> : "\xc2\xb3" threesuperior
-<Multi_key> <p> <exclam> : "\xc2\xb6" paragraph
-<Multi_key> <exclam> <p> : "\xc2\xb6" paragraph
-<Multi_key> <P> <exclam> : "\xc2\xb6" paragraph
-<Multi_key> <exclam> <P> : "\xc2\xb6" paragraph
-<Multi_key> <period> <asciicircum> : "\xc2\xb7" periodcentered
-<Multi_key> <asciicircum> <period> : "\xc2\xb7" periodcentered
-<Multi_key> <period> <period> : "\xc2\xb7" periodcentered
-<Multi_key> <1> <4> : "\xc2\xbc" onequarter
-<Multi_key> <1> <2> : "\xc2\xbd" onehalf
-<Multi_key> <3> <4> : "\xc2\xbe" threequarters
-<Multi_key> <question> <question> : "\xc2\xbf" questiondown
-<Multi_key> <space> <space> : "\xc2\xa0" nobreakspace
-<Multi_key> <bar> <bar> : "\xc2\xa6" brokenbar
-<Multi_key> <exclam> <asciicircum> : "\xc2\xa6" brokenbar
-<Multi_key> <asciicircum> <exclam> : "\xc2\xa6" brokenbar
-<Multi_key> <V> <B> : "\xc2\xa6" brokenbar
-<Multi_key> <B> <V> : "\xc2\xa6" brokenbar
-<Multi_key> <v> <b> : "\xc2\xa6" brokenbar
-<Multi_key> <b> <v> : "\xc2\xa6" brokenbar
-<Multi_key> <minus> <comma> : "\xc2\xac" notsign
-<Multi_key> <comma> <minus> : "\xc2\xac" notsign
-<Multi_key> <minus> <minus> : "\xc2\xad" hyphen
-<Multi_key> <R> <O> : "\xc2\xae" registered
-<Multi_key> <O> <R> : "\xc2\xae" registered
-<Multi_key> <minus> <asciicircum> : "\xc2\xaf" macron
-<Multi_key> <asciicircum> <minus> : "\xc2\xaf" macron
-<Multi_key> <underscore> <asciicircum> : "\xc2\xaf" macron
-<Multi_key> <asciicircum> <underscore> : "\xc2\xaf" macron
-<Multi_key> <underscore> <underscore> : "\xc2\xaf" macron
-<Multi_key> <minus> <colon> : "\xc3\xb7" division
-<Multi_key> <colon> <minus> : "\xc3\xb7" division
-<Multi_key> <x> <x> : "\xc3\x97" multiply
-<Multi_key> <apostrophe> <apostrophe> : "\xc2\xb4" acute
-<Multi_key> <comma> <comma> : "\xc2\xb8" cedilla
-<Multi_key> <quotedbl> <quotedbl> : "\xc2\xa8" diaeresis
-<Multi_key> <A> <grave> : "\xc3\x80" Agrave
-<Multi_key> <grave> <A> : "\xc3\x80" Agrave
-<Multi_key> <A> <acute> : "\xc3\x81" Aacute
-<Multi_key> <acute> <A> : "\xc3\x81" Aacute
-<Multi_key> <A> <apostrophe> : "\xc3\x81" Aacute
-<Multi_key> <apostrophe> <A> : "\xc3\x81" Aacute
-<Multi_key> <A> <asciicircum> : "\xc3\x82" Acircumflex
-<Multi_key> <asciicircum> <A> : "\xc3\x82" Acircumflex
-<Multi_key> <A> <greater> : "\xc3\x82" Acircumflex
-<Multi_key> <greater> <A> : "\xc3\x82" Acircumflex
-<Multi_key> <A> <asciitilde> : "\xc3\x83" Atilde
-<Multi_key> <asciitilde> <A> : "\xc3\x83" Atilde
-<Multi_key> <A> <quotedbl> : "\xc3\x84" Adiaeresis
-<Multi_key> <quotedbl> <A> : "\xc3\x84" Adiaeresis
-<Multi_key> <A> <asterisk> : "\xc3\x85" Aring
-<Multi_key> <asterisk> <A> : "\xc3\x85" Aring
-<Multi_key> <A> <E> : "\xc3\x86" AE
-<Multi_key> <a> <grave> : "\xc3\xa0" agrave
-<Multi_key> <grave> <a> : "\xc3\xa0" agrave
-<Multi_key> <a> <acute> : "\xc3\xa1" aacute
-<Multi_key> <acute> <a> : "\xc3\xa1" aacute
-<Multi_key> <a> <apostrophe> : "\xc3\xa1" aacute
-<Multi_key> <apostrophe> <a> : "\xc3\xa1" aacute
-<Multi_key> <a> <asciicircum> : "\xc3\xa2" acircumflex
-<Multi_key> <asciicircum> <a> : "\xc3\xa2" acircumflex
-<Multi_key> <a> <greater> : "\xc3\xa2" acircumflex
-<Multi_key> <greater> <a> : "\xc3\xa2" acircumflex
-<Multi_key> <a> <asciitilde> : "\xc3\xa3" atilde
-<Multi_key> <asciitilde> <a> : "\xc3\xa3" atilde
-<Multi_key> <a> <quotedbl> : "\xc3\xa4" adiaeresis
-<Multi_key> <quotedbl> <a> : "\xc3\xa4" adiaeresis
-<Multi_key> <a> <asterisk> : "\xc3\xa5" aring
-<Multi_key> <asterisk> <a> : "\xc3\xa5" aring
-<Multi_key> <a> <e> : "\xc3\xa6" ae
-<Multi_key> <C> <comma> : "\xc3\x87" Ccedilla
-<Multi_key> <comma> <C> : "\xc3\x87" Ccedilla
-<Multi_key> <c> <comma> : "\xc3\xa7" ccedilla
-<Multi_key> <comma> <c> : "\xc3\xa7" ccedilla
-#<Multi_key> <minus> <D> : "\xc3\x90" ETH
-#<Multi_key> <minus> <d> : "\xc3\xb0" eth
-<Multi_key> <D> <minus> : "\xc3\x90" ETH
-<Multi_key> <d> <minus> : "\xc3\xb0" eth
-<Multi_key> <slash> <D> : "\xc4\x90" Dstroke
-<Multi_key> <slash> <d> : "\xc4\x91" dstroke
-<Multi_key> <E> <grave> : "\xc3\x88" Egrave
-<Multi_key> <grave> <E> : "\xc3\x88" Egrave
-<Multi_key> <E> <acute> : "\xc3\x89" Eacute
-<Multi_key> <acute> <E> : "\xc3\x89" Eacute
-<Multi_key> <E> <apostrophe> : "\xc3\x89" Eacute
-<Multi_key> <apostrophe> <E> : "\xc3\x89" Eacute
-<Multi_key> <E> <asciicircum> : "\xc3\x8a" Ecircumflex
-<Multi_key> <asciicircum> <E> : "\xc3\x8a" Ecircumflex
-<Multi_key> <E> <greater> : "\xc3\x8a" Ecircumflex
-<Multi_key> <greater> <E> : "\xc3\x8a" Ecircumflex
-<Multi_key> <E> <quotedbl> : "\xc3\x8b" Ediaeresis
-<Multi_key> <quotedbl> <E> : "\xc3\x8b" Ediaeresis
-<Multi_key> <e> <grave> : "\xc3\xa8" egrave
-<Multi_key> <grave> <e> : "\xc3\xa8" egrave
-<Multi_key> <e> <acute> : "\xc3\xa9" eacute
-<Multi_key> <acute> <e> : "\xc3\xa9" eacute
-<Multi_key> <e> <apostrophe> : "\xc3\xa9" eacute
-<Multi_key> <apostrophe> <e> : "\xc3\xa9" eacute
-<Multi_key> <e> <asciicircum> : "\xc3\xaa" ecircumflex
-<Multi_key> <asciicircum> <e> : "\xc3\xaa" ecircumflex
-<Multi_key> <e> <greater> : "\xc3\xaa" ecircumflex
-<Multi_key> <greater> <e> : "\xc3\xaa" ecircumflex
-<Multi_key> <e> <quotedbl> : "\xc3\xab" ediaeresis
-<Multi_key> <quotedbl> <e> : "\xc3\xab" ediaeresis
-<Multi_key> <I> <grave> : "\xc3\x8c" Igrave
-<Multi_key> <grave> <I> : "\xc3\x8c" Igrave
-<Multi_key> <I> <acute> : "\xc3\x8d" Iacute
-<Multi_key> <acute> <I> : "\xc3\x8d" Iacute
-<Multi_key> <I> <apostrophe> : "\xc3\x8d" Iacute
-<Multi_key> <apostrophe> <I> : "\xc3\x8d" Iacute
-<Multi_key> <I> <asciicircum> : "\xc3\x8e" Icircumflex
-<Multi_key> <asciicircum> <I> : "\xc3\x8e" Icircumflex
-<Multi_key> <I> <greater> : "\xc3\x8e" Icircumflex
-<Multi_key> <greater> <I> : "\xc3\x8e" Icircumflex
-<Multi_key> <I> <quotedbl> : "\xc3\x8f" Idiaeresis
-<Multi_key> <quotedbl> <I> : "\xc3\x8f" Idiaeresis
-<Multi_key> <i> <grave> : "\xc3\xac" igrave
-<Multi_key> <grave> <i> : "\xc3\xac" igrave
-<Multi_key> <i> <acute> : "\xc3\xad" iacute
-<Multi_key> <acute> <i> : "\xc3\xad" iacute
-<Multi_key> <i> <apostrophe> : "\xc3\xad" iacute
-<Multi_key> <apostrophe> <i> : "\xc3\xad" iacute
-<Multi_key> <i> <asciicircum> : "\xc3\xae" icircumflex
-<Multi_key> <asciicircum> <i> : "\xc3\xae" icircumflex
-<Multi_key> <i> <greater> : "\xc3\xae" icircumflex
-<Multi_key> <greater> <i> : "\xc3\xae" icircumflex
-<Multi_key> <i> <quotedbl> : "\xc3\xaf" idiaeresis
-<Multi_key> <quotedbl> <i> : "\xc3\xaf" idiaeresis
-<Multi_key> <N> <asciitilde> : "\xc3\x91" Ntilde
-<Multi_key> <asciitilde> <N> : "\xc3\x91" Ntilde
-<Multi_key> <N> <minus> : "\xc3\x91" Ntilde
-<Multi_key> <minus> <N> : "\xc3\x91" Ntilde
-<Multi_key> <n> <asciitilde> : "\xc3\xb1" ntilde
-<Multi_key> <asciitilde> <n> : "\xc3\xb1" ntilde
-<Multi_key> <n> <minus> : "\xc3\xb1" ntilde
-<Multi_key> <minus> <n> : "\xc3\xb1" ntilde
-<Multi_key> <O> <grave> : "\xc3\x92" Ograve
-<Multi_key> <grave> <O> : "\xc3\x92" Ograve
-<Multi_key> <O> <acute> : "\xc3\x93" Oacute
-<Multi_key> <acute> <O> : "\xc3\x93" Oacute
-<Multi_key> <O> <apostrophe> : "\xc3\x93" Oacute
-<Multi_key> <apostrophe> <O> : "\xc3\x93" Oacute
-<Multi_key> <O> <asciicircum> : "\xc3\x94" Ocircumflex
-<Multi_key> <asciicircum> <O> : "\xc3\x94" Ocircumflex
-<Multi_key> <O> <greater> : "\xc3\x94" Ocircumflex
-<Multi_key> <greater> <O> : "\xc3\x94" Ocircumflex
-<Multi_key> <O> <asciitilde> : "\xc3\x95" Otilde
-<Multi_key> <asciitilde> <O> : "\xc3\x95" Otilde
-<Multi_key> <O> <quotedbl> : "\xc3\x96" Odiaeresis
-<Multi_key> <quotedbl> <O> : "\xc3\x96" Odiaeresis
-<Multi_key> <O> <slash> : "\xc3\x98" Ooblique
-<Multi_key> <slash> <O> : "\xc3\x98" Ooblique
-<Multi_key> <o> <grave> : "\xc3\xb2" ograve
-<Multi_key> <grave> <o> : "\xc3\xb2" ograve
-<Multi_key> <o> <acute> : "\xc3\xb3" oacute
-<Multi_key> <acute> <o> : "\xc3\xb3" oacute
-<Multi_key> <o> <apostrophe> : "\xc3\xb3" oacute
-<Multi_key> <apostrophe> <o> : "\xc3\xb3" oacute
-<Multi_key> <o> <asciicircum> : "\xc3\xb4" ocircumflex
-<Multi_key> <asciicircum> <o> : "\xc3\xb4" ocircumflex
-<Multi_key> <o> <greater> : "\xc3\xb4" ocircumflex
-<Multi_key> <greater> <o> : "\xc3\xb4" ocircumflex
-<Multi_key> <o> <asciitilde> : "\xc3\xb5" otilde
-<Multi_key> <asciitilde> <o> : "\xc3\xb5" otilde
-<Multi_key> <o> <quotedbl> : "\xc3\xb6" odiaeresis
-<Multi_key> <quotedbl> <o> : "\xc3\xb6" odiaeresis
-<Multi_key> <o> <slash> : "\xc3\xb8" oslash
-<Multi_key> <slash> <o> : "\xc3\xb8" oslash
-<Multi_key> <U> <grave> : "\xc3\x99" Ugrave
-<Multi_key> <grave> <U> : "\xc3\x99" Ugrave
-<Multi_key> <U> <acute> : "\xc3\x9a" Uacute
-<Multi_key> <acute> <U> : "\xc3\x9a" Uacute
-<Multi_key> <U> <apostrophe> : "\xc3\x9a" Uacute
-<Multi_key> <apostrophe> <U> : "\xc3\x9a" Uacute
-<Multi_key> <U> <asciicircum> : "\xc3\x9b" Ucircumflex
-<Multi_key> <asciicircum> <U> : "\xc3\x9b" Ucircumflex
-<Multi_key> <U> <greater> : "\xc3\x9b" Ucircumflex
-<Multi_key> <greater> <U> : "\xc3\x9b" Ucircumflex
-<Multi_key> <U> <quotedbl> : "\xc3\x9c" Udiaeresis
-<Multi_key> <quotedbl> <U> : "\xc3\x9c" Udiaeresis
-<Multi_key> <u> <grave> : "\xc3\xb9" ugrave
-<Multi_key> <grave> <u> : "\xc3\xb9" ugrave
-<Multi_key> <u> <acute> : "\xc3\xba" uacute
-<Multi_key> <acute> <u> : "\xc3\xba" uacute
-<Multi_key> <u> <apostrophe> : "\xc3\xba" uacute
-<Multi_key> <apostrophe> <u> : "\xc3\xba" uacute
-<Multi_key> <u> <asciicircum> : "\xc3\xbb" ucircumflex
-<Multi_key> <asciicircum> <u> : "\xc3\xbb" ucircumflex
-<Multi_key> <u> <greater> : "\xc3\xbb" ucircumflex
-<Multi_key> <greater> <u> : "\xc3\xbb" ucircumflex
-<Multi_key> <u> <quotedbl> : "\xc3\xbc" udiaeresis
-<Multi_key> <quotedbl> <u> : "\xc3\xbc" udiaeresis
-<Multi_key> <s> <s> : "\xc3\x9f" ssharp
-<Multi_key> <T> <H> : "\xc3\x9e" THORN
-<Multi_key> <t> <h> : "\xc3\xbe" thorn
-<Multi_key> <Y> <acute> : "\xc3\x9d" Yacute
-<Multi_key> <acute> <Y> : "\xc3\x9d" Yacute
-<Multi_key> <Y> <apostrophe> : "\xc3\x9d" Yacute
-<Multi_key> <apostrophe> <Y> : "\xc3\x9d" Yacute
-<Multi_key> <y> <acute> : "\xc3\xbd" yacute
-<Multi_key> <acute> <y> : "\xc3\xbd" yacute
-<Multi_key> <y> <apostrophe> : "\xc3\xbd" yacute
-<Multi_key> <apostrophe> <y> : "\xc3\xbd" yacute
-<Multi_key> <y> <quotedbl> : "\xc3\xbf" ydiaeresis
-<Multi_key> <quotedbl> <y> : "\xc3\xbf" ydiaeresis
-<ecaron> : "\xc4\x9b" ecaron
-<scaron> : "\xc5\xa1" scaron
-<ccaron> : "\xc4\x8d" ccaron
-<rcaron> : "\xc5\x99" rcaron
-<yacute> : "\xc3\xbd" yacute
-<aacute> : "\xc3\xa1" aacute
-<iacute> : "\xc3\xad" iacute
-<eacute> : "\xc3\xa9" eacute
-<uacute> : "\xc3\xba" uacute
-<uring> : "\xc5\xaf" uring
-<section> : "\xc2\xa7" section
-<ssharp> : "\xc3\x9f" ssharp
-<zabovedot> : "\xc5\xbc" zabovedot
-<Zabovedot> : "\xc5\xbb" Zabovedot
-<ogonek> : "\xcb\x9b" ogonek
-<oacute> : "\xc3\xb3" oacute
-<zacute> : "\xc5\xba" zacute
-<lstroke> : "\xc5\x82" lstroke
-<Lstroke> : "\xc5\x81" Lstroke
-<aogonek> : "\xc4\x85" aogonek
-<eogonek> : "\xc4\x99" eogonek
-<currency> : "\xc2\xa4" currency
-<sacute> : "\xc5\x9b" sacute
-<nacute> : "\xc5\x84" nacute
-<cacute> : "\xc4\x87" cacute
-<degree> : "\xc2\xb0" degree
-<Odiaeresis> : "\xc3\x96" Odiaeresis
-<Udiaeresis> : "\xc3\x9c" Udiaeresis
-<odiaeresis> : "\xc3\xb6" odiaeresis
-<udiaeresis> : "\xc3\xbc" udiaeresis
-<Oacute> : "\xc3\x93" Oacute
-<odoubleacute> : "\xc5\x91" odoubleacute
-<Odoubleacute> : "\xc5\x90" Odoubleacute
-<Uacute> : "\xc3\x9a" Uacute
-<Eacute> : "\xc3\x89" Eacute
-<Aacute> : "\xc3\x81" Aacute
-<adiaeresis> : "\xc3\xa4" adiaeresis
-<Adiaeresis> : "\xc3\x84" Adiaeresis
-<udoubleacute> : "\xc5\xb1" udoubleacute
-<Udoubleacute> : "\xc5\xb0" Udoubleacute
-<Iacute> : "\xc3\x8d" Iacute
-<dead_circumflex> <slash> : "\x7c" bar
-<dead_grave> <space> : "\x60" grave
-<dead_acute> <space> : "\x27" apostrophe
-<dead_diaeresis> <space> : "\xc2\xa8" diaeresis
-<dead_circumflex> <space> : "\x5e" asciicircum
-<dead_tilde> <space> : "\x7e" asciitilde
-<dead_circumflex> <0> : "\xc2\xb0" degree
-<dead_circumflex> <1> : "\xc2\xb9" onesuperior
-<dead_circumflex> <2> : "\xc2\xb2" twosuperior
-<dead_circumflex> <3> : "\xc2\xb3" threesuperior
-<dead_circumflex> <period> : "\xc2\xb7" periodcentered
-<dead_circumflex> <exclam> : "\xc2\xa6" brokenbar
-<dead_cedilla> <minus> : "\xc2\xac" notsign
-<dead_circumflex> <minus> : "\xc2\xaf" macron
-<dead_circumflex> <underscore> : "\xc2\xaf" macron
-<dead_acute> <apostrophe> : "\xc2\xb4" acute
-<dead_cedilla> <comma> : "\xc2\xb8" cedilla
-<dead_diaeresis> <quotedbl> : "\xc2\xa8" diaeresis
-<dead_grave> <A> : "\xc3\x80" Agrave
-<dead_acute> <A> : "\xc3\x81" Aacute
-<dead_circumflex> <A> : "\xc3\x82" Acircumflex
-<dead_tilde> <A> : "\xc3\x83" Atilde
-<dead_diaeresis> <A> : "\xc3\x84" Adiaeresis
-<dead_grave> <a> : "\xc3\xa0" agrave
-<dead_acute> <a> : "\xc3\xa1" aacute
-<dead_circumflex> <a> : "\xc3\xa2" acircumflex
-<dead_tilde> <a> : "\xc3\xa3" atilde
-<dead_diaeresis> <a> : "\xc3\xa4" adiaeresis
-<dead_cedilla> <C> : "\xc3\x87" Ccedilla
-<dead_cedilla> <c> : "\xc3\xa7" ccedilla
-<dead_grave> <E> : "\xc3\x88" Egrave
-<dead_acute> <E> : "\xc3\x89" Eacute
-<dead_circumflex> <E> : "\xc3\x8a" Ecircumflex
-<dead_diaeresis> <E> : "\xc3\x8b" Ediaeresis
-<dead_grave> <e> : "\xc3\xa8" egrave
-<dead_acute> <e> : "\xc3\xa9" eacute
-<dead_circumflex> <e> : "\xc3\xaa" ecircumflex
-<dead_diaeresis> <e> : "\xc3\xab" ediaeresis
-<dead_grave> <I> : "\xc3\x8c" Igrave
-<dead_acute> <I> : "\xc3\x8d" Iacute
-<dead_circumflex> <I> : "\xc3\x8e" Icircumflex
-<dead_diaeresis> <I> : "\xc3\x8f" Idiaeresis
-<dead_grave> <i> : "\xc3\xac" igrave
-<dead_acute> <i> : "\xc3\xad" iacute
-<dead_circumflex> <i> : "\xc3\xae" icircumflex
-<dead_diaeresis> <i> : "\xc3\xaf" idiaeresis
-<dead_tilde> <N> : "\xc3\x91" Ntilde
-<dead_tilde> <n> : "\xc3\xb1" ntilde
-<dead_grave> <O> : "\xc3\x92" Ograve
-<dead_acute> <O> : "\xc3\x93" Oacute
-<dead_circumflex> <O> : "\xc3\x94" Ocircumflex
-<dead_tilde> <O> : "\xc3\x95" Otilde
-<dead_diaeresis> <O> : "\xc3\x96" Odiaeresis
-<dead_grave> <o> : "\xc3\xb2" ograve
-<dead_acute> <o> : "\xc3\xb3" oacute
-<dead_circumflex> <o> : "\xc3\xb4" ocircumflex
-<dead_tilde> <o> : "\xc3\xb5" otilde
-<dead_diaeresis> <o> : "\xc3\xb6" odiaeresis
-<dead_cedilla> <S> : "\xc5\x9e" Scedilla
-<dead_cedilla> <s> : "\xc5\x9f" scedilla
-<dead_grave> <U> : "\xc3\x99" Ugrave
-<dead_acute> <U> : "\xc3\x9a" Uacute
-<dead_circumflex> <U> : "\xc3\x9b" Ucircumflex
-<dead_diaeresis> <U> : "\xc3\x9c" Udiaeresis
-<dead_grave> <u> : "\xc3\xb9" ugrave
-<dead_acute> <u> : "\xc3\xba" uacute
-<dead_circumflex> <u> : "\xc3\xbb" ucircumflex
-<dead_diaeresis> <u> : "\xc3\xbc" udiaeresis
-<dead_acute> <Y> : "\xc3\x9d" Yacute
-<dead_acute> <y> : "\xc3\xbd" yacute
-<Multi_key> <caron> <Z> : "\xc5\xbd" Zcaron
-<Multi_key> <Z> <caron> : "\xc5\xbd" Zcaron
-<Multi_key> <v> <Z> : "\xc5\xbd" Zcaron
-<Multi_key> <Z> <v> : "\xc5\xbd" Zcaron
-<zcaron> : "\xc5\xbe" zcaron
-<Multi_key> <caron> <z> : "\xc5\xbe" zcaron
-<Multi_key> <z> <caron> : "\xc5\xbe" zcaron
-<Multi_key> <z> <v> : "\xc5\xbe" zcaron
-<Multi_key> <v> <z> : "\xc5\xbe" zcaron
-<dead_diaeresis> <y> : "\xc3\xbf" ydiaeresis
-Ctrl<T> <plus> <plus> : "\x23" numbersign
-Ctrl<T> <apostrophe> <space> : "\x27" apostrophe
-Ctrl<T> <space> <apostrophe> : "\x27" apostrophe
-Ctrl<T> <A> <A> : "\x40" at
-Ctrl<T> <parenleft> <parenleft> : "\x5b" bracketleft
-Ctrl<T> <slash> <slash> : "\x5c" backslash
-Ctrl<T> <slash> <less> : "\x5c" backslash
-Ctrl<T> <less> <slash> : "\x5c" backslash
-Ctrl<T> <parenright> <parenright> : "\x5d" bracketright
-Ctrl<T> <asciicircum> <space> : "\x5e" asciicircum
-Ctrl<T> <space> <asciicircum> : "\x5e" asciicircum
-Ctrl<T> <greater> <space> : "\x5e" asciicircum
-Ctrl<T> <space> <greater> : "\x5e" asciicircum
-Ctrl<T> <grave> <space> : "\x60" grave
-Ctrl<T> <space> <grave> : "\x60" grave
-Ctrl<T> <parenleft> <minus> : "\x7b" braceleft
-Ctrl<T> <minus> <parenleft> : "\x7b" braceleft
-Ctrl<T> <slash> <asciicircum> : "\x7c" bar
-Ctrl<T> <asciicircum> <slash> : "\x7c" bar
-Ctrl<T> <V> <L> : "\x7c" bar
-Ctrl<T> <L> <V> : "\x7c" bar
-Ctrl<T> <v> <l> : "\x7c" bar
-Ctrl<T> <l> <v> : "\x7c" bar
-Ctrl<T> <parenright> <minus> : "\x7d" braceright
-Ctrl<T> <minus> <parenright> : "\x7d" braceright
-Ctrl<T> <asciitilde> <space> : "\x7e" asciitilde
-Ctrl<T> <space> <asciitilde> : "\x7e" asciitilde
-Ctrl<T> <minus> <space> : "\x7e" asciitilde
-Ctrl<T> <space> <minus> : "\x7e" asciitilde
-Ctrl<T> <exclam> <exclam> : "\xc2\xa1" exclamdown
-Ctrl<T> <c> <slash> : "\xc2\xa2" cent
-Ctrl<T> <slash> <c> : "\xc2\xa2" cent
-Ctrl<T> <C> <slash> : "\xc2\xa2" cent
-Ctrl<T> <slash> <C> : "\xc2\xa2" cent
-Ctrl<T> <C> <bar> : "\xc2\xa2" cent
-Ctrl<T> <bar> <C> : "\xc2\xa2" cent
-Ctrl<T> <c> <bar> : "\xc2\xa2" cent
-Ctrl<T> <bar> <c> : "\xc2\xa2" cent
-Ctrl<T> <acute> <L> : "\xc4\xb9" Lacute
-Ctrl<T> <L> <acute> : "\xc4\xb9" Lacute
-Ctrl<T> <acute> <l> : "\xc4\xba" lacute
-Ctrl<T> <l> <acute> : "\xc4\xba" lacute
-Ctrl<T> <l> <minus> : "\xc2\xa3" sterling
-Ctrl<T> <minus> <l> : "\xc2\xa3" sterling
-Ctrl<T> <L> <minus> : "\xc2\xa3" sterling
-Ctrl<T> <minus> <L> : "\xc2\xa3" sterling
-Ctrl<T> <l> <equal> : "\xc2\xa3" sterling
-Ctrl<T> <equal> <l> : "\xc2\xa3" sterling
-Ctrl<T> <L> <equal> : "\xc2\xa3" sterling
-Ctrl<T> <equal> <L> : "\xc2\xa3" sterling
-Ctrl<T> <y> <minus> : "\xc2\xa5" yen
-Ctrl<T> <minus> <y> : "\xc2\xa5" yen
-Ctrl<T> <Y> <minus> : "\xc2\xa5" yen
-Ctrl<T> <minus> <Y> : "\xc2\xa5" yen
-Ctrl<T> <y> <equal> : "\xc2\xa5" yen
-Ctrl<T> <equal> <y> : "\xc2\xa5" yen
-Ctrl<T> <Y> <equal> : "\xc2\xa5" yen
-Ctrl<T> <equal> <Y> : "\xc2\xa5" yen
-Ctrl<T> <s> <o> : "\xc2\xa7" section
-Ctrl<T> <o> <s> : "\xc2\xa7" section
-Ctrl<T> <S> <O> : "\xc2\xa7" section
-Ctrl<T> <O> <S> : "\xc2\xa7" section
-Ctrl<T> <S> <exclam> : "\xc2\xa7" section
-Ctrl<T> <exclam> <S> : "\xc2\xa7" section
-Ctrl<T> <s> <exclam> : "\xc2\xa7" section
-Ctrl<T> <exclam> <s> : "\xc2\xa7" section
-Ctrl<T> <S> <0> : "\xc2\xa7" section
-Ctrl<T> <0> <S> : "\xc2\xa7" section
-Ctrl<T> <s> <0> : "\xc2\xa7" section
-Ctrl<T> <0> <s> : "\xc2\xa7" section
-Ctrl<T> <x> <o> : "\xc2\xa4" currency
-Ctrl<T> <o> <x> : "\xc2\xa4" currency
-Ctrl<T> <X> <O> : "\xc2\xa4" currency
-Ctrl<T> <O> <X> : "\xc2\xa4" currency
-Ctrl<T> <x> <O> : "\xc2\xa4" currency
-Ctrl<T> <O> <x> : "\xc2\xa4" currency
-Ctrl<T> <X> <o> : "\xc2\xa4" currency
-Ctrl<T> <o> <X> : "\xc2\xa4" currency
-Ctrl<T> <x> <0> : "\xc2\xa4" currency
-Ctrl<T> <0> <x> : "\xc2\xa4" currency
-Ctrl<T> <X> <0> : "\xc2\xa4" currency
-Ctrl<T> <0> <X> : "\xc2\xa4" currency
-Ctrl<T> <c> <o> : "\xc2\xa9" copyright
-Ctrl<T> <o> <c> : "\xc2\xa9" copyright
-Ctrl<T> <C> <O> : "\xc2\xa9" copyright
-Ctrl<T> <O> <C> : "\xc2\xa9" copyright
-Ctrl<T> <c> <O> : "\xc2\xa9" copyright
-Ctrl<T> <O> <c> : "\xc2\xa9" copyright
-Ctrl<T> <C> <o> : "\xc2\xa9" copyright
-Ctrl<T> <o> <C> : "\xc2\xa9" copyright
-Ctrl<T> <c> <0> : "\xc2\xa9" copyright
-Ctrl<T> <0> <c> : "\xc2\xa9" copyright
-Ctrl<T> <C> <0> : "\xc2\xa9" copyright
-Ctrl<T> <0> <C> : "\xc2\xa9" copyright
-Ctrl<T> <a> <underscore> : "\xc2\xaa" ordfeminine
-Ctrl<T> <underscore> <a> : "\xc2\xaa" ordfeminine
-Ctrl<T> <A> <underscore> : "\xc2\xaa" ordfeminine
-Ctrl<T> <underscore> <A> : "\xc2\xaa" ordfeminine
-Ctrl<T> <O> <underscore> : "\xc2\xba" masculine
-Ctrl<T> <o> <underscore> : "\xc2\xba" masculine
-Ctrl<T> <underscore> <o> : "\xc2\xba" masculine
-Ctrl<T> <underscore> <O> : "\xc2\xba" masculine
-Ctrl<T> <less> <less> : "\xc2\xab" guillemotleft
-Ctrl<T> <greater> <greater> : "\xc2\xbb" guillemotright
-Ctrl<T> <0> <asciicircum> : "\xc2\xb0" degree
-Ctrl<T> <asciicircum> <0> : "\xc2\xb0" degree
-Ctrl<T> <0> <asterisk> : "\xc2\xb0" degree
-Ctrl<T> <asterisk> <0> : "\xc2\xb0" degree
-Ctrl<T> <plus> <minus> : "\xc2\xb1" plusminus
-Ctrl<T> <minus> <plus> : "\xc2\xb1" plusminus
-Ctrl<T> <slash> <u> : "\xc2\xb5" mu
-Ctrl<T> <u> <slash> : "\xc2\xb5" mu
-Ctrl<T> <slash> <U> : "\xc2\xb5" mu
-Ctrl<T> <U> <slash> : "\xc2\xb5" mu
-Ctrl<T> <1> <asciicircum> : "\xc2\xb9" onesuperior
-Ctrl<T> <asciicircum> <1> : "\xc2\xb9" onesuperior
-Ctrl<T> <S> <1> : "\xc2\xb9" onesuperior
-Ctrl<T> <1> <S> : "\xc2\xb9" onesuperior
-Ctrl<T> <s> <1> : "\xc2\xb9" onesuperior
-Ctrl<T> <1> <s> : "\xc2\xb9" onesuperior
-Ctrl<T> <2> <asciicircum> : "\xc2\xb2" twosuperior
-Ctrl<T> <asciicircum> <2> : "\xc2\xb2" twosuperior
-Ctrl<T> <S> <2> : "\xc2\xb2" twosuperior
-Ctrl<T> <2> <S> : "\xc2\xb2" twosuperior
-Ctrl<T> <s> <2> : "\xc2\xb2" twosuperior
-Ctrl<T> <2> <s> : "\xc2\xb2" twosuperior
-Ctrl<T> <3> <asciicircum> : "\xc2\xb3" threesuperior
-Ctrl<T> <asciicircum> <3> : "\xc2\xb3" threesuperior
-Ctrl<T> <S> <3> : "\xc2\xb3" threesuperior
-Ctrl<T> <3> <S> : "\xc2\xb3" threesuperior
-Ctrl<T> <s> <3> : "\xc2\xb3" threesuperior
-Ctrl<T> <3> <s> : "\xc2\xb3" threesuperior
-Ctrl<T> <p> <exclam> : "\xc2\xb6" paragraph
-Ctrl<T> <exclam> <p> : "\xc2\xb6" paragraph
-Ctrl<T> <P> <exclam> : "\xc2\xb6" paragraph
-Ctrl<T> <exclam> <P> : "\xc2\xb6" paragraph
-Ctrl<T> <period> <asciicircum> : "\xc2\xb7" periodcentered
-Ctrl<T> <asciicircum> <period> : "\xc2\xb7" periodcentered
-Ctrl<T> <period> <period> : "\xc2\xb7" periodcentered
-Ctrl<T> <1> <4> : "\xc2\xbc" onequarter
-Ctrl<T> <1> <2> : "\xc2\xbd" onehalf
-Ctrl<T> <3> <4> : "\xc2\xbe" threequarters
-Ctrl<T> <question> <question> : "\xc2\xbf" questiondown
-Ctrl<T> <space> <space> : "\xc2\xa0" nobreakspace
-Ctrl<T> <bar> <bar> : "\xc2\xa6" brokenbar
-Ctrl<T> <exclam> <asciicircum> : "\xc2\xa6" brokenbar
-Ctrl<T> <asciicircum> <exclam> : "\xc2\xa6" brokenbar
-Ctrl<T> <V> <B> : "\xc2\xa6" brokenbar
-Ctrl<T> <B> <V> : "\xc2\xa6" brokenbar
-Ctrl<T> <v> <b> : "\xc2\xa6" brokenbar
-Ctrl<T> <b> <v> : "\xc2\xa6" brokenbar
-Ctrl<T> <minus> <comma> : "\xc2\xac" notsign
-Ctrl<T> <comma> <minus> : "\xc2\xac" notsign
-Ctrl<T> <minus> <minus> : "\xc2\xad" hyphen
-Ctrl<T> <R> <O> : "\xc2\xae" registered
-Ctrl<T> <O> <R> : "\xc2\xae" registered
-Ctrl<T> <minus> <asciicircum> : "\xc2\xaf" macron
-Ctrl<T> <asciicircum> <minus> : "\xc2\xaf" macron
-Ctrl<T> <underscore> <asciicircum> : "\xc2\xaf" macron
-Ctrl<T> <asciicircum> <underscore> : "\xc2\xaf" macron
-Ctrl<T> <underscore> <underscore> : "\xc2\xaf" macron
-Ctrl<T> <minus> <colon> : "\xc3\xb7" division
-Ctrl<T> <colon> <minus> : "\xc3\xb7" division
-Ctrl<T> <x> <x> : "\xc3\x97" multiply
-Ctrl<T> <apostrophe> <apostrophe> : "\xc2\xb4" acute
-Ctrl<T> <comma> <comma> : "\xc2\xb8" cedilla
-Ctrl<T> <quotedbl> <quotedbl> : "\xc2\xa8" diaeresis
-Ctrl<T> <A> <grave> : "\xc3\x80" Agrave
-Ctrl<T> <grave> <A> : "\xc3\x80" Agrave
-Ctrl<T> <A> <acute> : "\xc3\x81" Aacute
-Ctrl<T> <acute> <A> : "\xc3\x81" Aacute
-Ctrl<T> <A> <apostrophe> : "\xc3\x81" Aacute
-Ctrl<T> <apostrophe> <A> : "\xc3\x81" Aacute
-Ctrl<T> <A> <asciicircum> : "\xc3\x82" Acircumflex
-Ctrl<T> <asciicircum> <A> : "\xc3\x82" Acircumflex
-Ctrl<T> <A> <greater> : "\xc3\x82" Acircumflex
-Ctrl<T> <greater> <A> : "\xc3\x82" Acircumflex
-Ctrl<T> <A> <asciitilde> : "\xc3\x83" Atilde
-Ctrl<T> <asciitilde> <A> : "\xc3\x83" Atilde
-Ctrl<T> <A> <minus> : "\xc3\x83" Atilde
-Ctrl<T> <minus> <A> : "\xc3\x83" Atilde
-Ctrl<T> <A> <quotedbl> : "\xc3\x84" Adiaeresis
-Ctrl<T> <quotedbl> <A> : "\xc3\x84" Adiaeresis
-Ctrl<T> <A> <asterisk> : "\xc3\x85" Aring
-Ctrl<T> <asterisk> <A> : "\xc3\x85" Aring
-Ctrl<T> <A> <E> : "\xc3\x86" AE
-Ctrl<T> <a> <grave> : "\xc3\xa0" agrave
-Ctrl<T> <grave> <a> : "\xc3\xa0" agrave
-Ctrl<T> <a> <acute> : "\xc3\xa1" aacute
-Ctrl<T> <acute> <a> : "\xc3\xa1" aacute
-Ctrl<T> <a> <apostrophe> : "\xc3\xa1" aacute
-Ctrl<T> <apostrophe> <a> : "\xc3\xa1" aacute
-Ctrl<T> <a> <asciicircum> : "\xc3\xa2" acircumflex
-Ctrl<T> <asciicircum> <a> : "\xc3\xa2" acircumflex
-Ctrl<T> <a> <greater> : "\xc3\xa2" acircumflex
-Ctrl<T> <greater> <a> : "\xc3\xa2" acircumflex
-Ctrl<T> <a> <asciitilde> : "\xc3\xa3" atilde
-Ctrl<T> <asciitilde> <a> : "\xc3\xa3" atilde
-Ctrl<T> <a> <minus> : "\xc3\xa3" atilde
-Ctrl<T> <minus> <a> : "\xc3\xa3" atilde
-Ctrl<T> <a> <quotedbl> : "\xc3\xa4" adiaeresis
-Ctrl<T> <quotedbl> <a> : "\xc3\xa4" adiaeresis
-Ctrl<T> <a> <asterisk> : "\xc3\xa5" aring
-Ctrl<T> <asterisk> <a> : "\xc3\xa5" aring
-Ctrl<T> <a> <e> : "\xc3\xa6" ae
-Ctrl<T> <C> <comma> : "\xc3\x87" Ccedilla
-Ctrl<T> <comma> <C> : "\xc3\x87" Ccedilla
-Ctrl<T> <c> <comma> : "\xc3\xa7" ccedilla
-Ctrl<T> <comma> <c> : "\xc3\xa7" ccedilla
-Ctrl<T> <minus> <D> : "\xc3\x90" ETH
-Ctrl<T> <D> <minus> : "\xc3\x90" ETH
-Ctrl<T> <minus> <d> : "\xc3\xb0" eth
-Ctrl<T> <d> <minus> : "\xc3\xb0" eth
-Ctrl<T> <E> <grave> : "\xc3\x88" Egrave
-Ctrl<T> <grave> <E> : "\xc3\x88" Egrave
-Ctrl<T> <E> <acute> : "\xc3\x89" Eacute
-Ctrl<T> <acute> <E> : "\xc3\x89" Eacute
-Ctrl<T> <E> <apostrophe> : "\xc3\x89" Eacute
-Ctrl<T> <apostrophe> <E> : "\xc3\x89" Eacute
-Ctrl<T> <E> <asciicircum> : "\xc3\x8a" Ecircumflex
-Ctrl<T> <asciicircum> <E> : "\xc3\x8a" Ecircumflex
-Ctrl<T> <E> <greater> : "\xc3\x8a" Ecircumflex
-Ctrl<T> <greater> <E> : "\xc3\x8a" Ecircumflex
-Ctrl<T> <E> <quotedbl> : "\xc3\x8b" Ediaeresis
-Ctrl<T> <quotedbl> <E> : "\xc3\x8b" Ediaeresis
-Ctrl<T> <e> <grave> : "\xc3\xa8" egrave
-Ctrl<T> <grave> <e> : "\xc3\xa8" egrave
-Ctrl<T> <e> <acute> : "\xc3\xa9" eacute
-Ctrl<T> <acute> <e> : "\xc3\xa9" eacute
-Ctrl<T> <e> <apostrophe> : "\xc3\xa9" eacute
-Ctrl<T> <apostrophe> <e> : "\xc3\xa9" eacute
-Ctrl<T> <e> <asciicircum> : "\xc3\xaa" ecircumflex
-Ctrl<T> <asciicircum> <e> : "\xc3\xaa" ecircumflex
-Ctrl<T> <e> <greater> : "\xc3\xaa" ecircumflex
-Ctrl<T> <greater> <e> : "\xc3\xaa" ecircumflex
-Ctrl<T> <e> <quotedbl> : "\xc3\xab" ediaeresis
-Ctrl<T> <quotedbl> <e> : "\xc3\xab" ediaeresis
-Ctrl<T> <I> <grave> : "\xc3\x8c" Igrave
-Ctrl<T> <grave> <I> : "\xc3\x8c" Igrave
-Ctrl<T> <I> <acute> : "\xc3\x8d" Iacute
-Ctrl<T> <acute> <I> : "\xc3\x8d" Iacute
-Ctrl<T> <I> <apostrophe> : "\xc3\x8d" Iacute
-Ctrl<T> <apostrophe> <I> : "\xc3\x8d" Iacute
-Ctrl<T> <I> <asciicircum> : "\xc3\x8e" Icircumflex
-Ctrl<T> <asciicircum> <I> : "\xc3\x8e" Icircumflex
-Ctrl<T> <I> <greater> : "\xc3\x8e" Icircumflex
-Ctrl<T> <greater> <I> : "\xc3\x8e" Icircumflex
-Ctrl<T> <I> <quotedbl> : "\xc3\x8f" Idiaeresis
-Ctrl<T> <quotedbl> <I> : "\xc3\x8f" Idiaeresis
-Ctrl<T> <i> <grave> : "\xc3\xac" igrave
-Ctrl<T> <grave> <i> : "\xc3\xac" igrave
-Ctrl<T> <i> <acute> : "\xc3\xad" iacute
-Ctrl<T> <acute> <i> : "\xc3\xad" iacute
-Ctrl<T> <i> <apostrophe> : "\xc3\xad" iacute
-Ctrl<T> <apostrophe> <i> : "\xc3\xad" iacute
-Ctrl<T> <i> <asciicircum> : "\xc3\xae" icircumflex
-Ctrl<T> <asciicircum> <i> : "\xc3\xae" icircumflex
-Ctrl<T> <i> <greater> : "\xc3\xae" icircumflex
-Ctrl<T> <greater> <i> : "\xc3\xae" icircumflex
-Ctrl<T> <i> <quotedbl> : "\xc3\xaf" idiaeresis
-Ctrl<T> <quotedbl> <i> : "\xc3\xaf" idiaeresis
-Ctrl<T> <N> <asciitilde> : "\xc3\x91" Ntilde
-Ctrl<T> <asciitilde> <N> : "\xc3\x91" Ntilde
-Ctrl<T> <N> <minus> : "\xc3\x91" Ntilde
-Ctrl<T> <minus> <N> : "\xc3\x91" Ntilde
-Ctrl<T> <n> <asciitilde> : "\xc3\xb1" ntilde
-Ctrl<T> <asciitilde> <n> : "\xc3\xb1" ntilde
-Ctrl<T> <n> <minus> : "\xc3\xb1" ntilde
-Ctrl<T> <minus> <n> : "\xc3\xb1" ntilde
-Ctrl<T> <O> <grave> : "\xc3\x92" Ograve
-Ctrl<T> <grave> <O> : "\xc3\x92" Ograve
-Ctrl<T> <O> <acute> : "\xc3\x93" Oacute
-Ctrl<T> <acute> <O> : "\xc3\x93" Oacute
-Ctrl<T> <O> <apostrophe> : "\xc3\x93" Oacute
-Ctrl<T> <apostrophe> <O> : "\xc3\x93" Oacute
-Ctrl<T> <O> <asciicircum> : "\xc3\x94" Ocircumflex
-Ctrl<T> <asciicircum> <O> : "\xc3\x94" Ocircumflex
-Ctrl<T> <O> <greater> : "\xc3\x94" Ocircumflex
-Ctrl<T> <greater> <O> : "\xc3\x94" Ocircumflex
-Ctrl<T> <O> <asciitilde> : "\xc3\x95" Otilde
-Ctrl<T> <asciitilde> <O> : "\xc3\x95" Otilde
-Ctrl<T> <O> <minus> : "\xc3\x95" Otilde
-Ctrl<T> <minus> <O> : "\xc3\x95" Otilde
-Ctrl<T> <O> <quotedbl> : "\xc3\x96" Odiaeresis
-Ctrl<T> <quotedbl> <O> : "\xc3\x96" Odiaeresis
-Ctrl<T> <O> <slash> : "\xc3\x98" Ooblique
-Ctrl<T> <slash> <O> : "\xc3\x98" Ooblique
-Ctrl<T> <o> <grave> : "\xc3\xb2" ograve
-Ctrl<T> <grave> <o> : "\xc3\xb2" ograve
-Ctrl<T> <o> <acute> : "\xc3\xb3" oacute
-Ctrl<T> <acute> <o> : "\xc3\xb3" oacute
-Ctrl<T> <o> <apostrophe> : "\xc3\xb3" oacute
-Ctrl<T> <apostrophe> <o> : "\xc3\xb3" oacute
-Ctrl<T> <o> <asciicircum> : "\xc3\xb4" ocircumflex
-Ctrl<T> <asciicircum> <o> : "\xc3\xb4" ocircumflex
-Ctrl<T> <o> <greater> : "\xc3\xb4" ocircumflex
-Ctrl<T> <greater> <o> : "\xc3\xb4" ocircumflex
-Ctrl<T> <o> <asciitilde> : "\xc3\xb5" otilde
-Ctrl<T> <asciitilde> <o> : "\xc3\xb5" otilde
-Ctrl<T> <o> <minus> : "\xc3\xb5" otilde
-Ctrl<T> <minus> <o> : "\xc3\xb5" otilde
-Ctrl<T> <o> <quotedbl> : "\xc3\xb6" odiaeresis
-Ctrl<T> <quotedbl> <o> : "\xc3\xb6" odiaeresis
-Ctrl<T> <o> <slash> : "\xc3\xb8" oslash
-Ctrl<T> <slash> <o> : "\xc3\xb8" oslash
-Ctrl<T> <U> <grave> : "\xc3\x99" Ugrave
-Ctrl<T> <grave> <U> : "\xc3\x99" Ugrave
-Ctrl<T> <U> <acute> : "\xc3\x9a" Uacute
-Ctrl<T> <acute> <U> : "\xc3\x9a" Uacute
-Ctrl<T> <U> <apostrophe> : "\xc3\x9a" Uacute
-Ctrl<T> <apostrophe> <U> : "\xc3\x9a" Uacute
-Ctrl<T> <U> <asciicircum> : "\xc3\x9b" Ucircumflex
-Ctrl<T> <asciicircum> <U> : "\xc3\x9b" Ucircumflex
-Ctrl<T> <U> <greater> : "\xc3\x9b" Ucircumflex
-Ctrl<T> <greater> <U> : "\xc3\x9b" Ucircumflex
-Ctrl<T> <U> <quotedbl> : "\xc3\x9c" Udiaeresis
-Ctrl<T> <quotedbl> <U> : "\xc3\x9c" Udiaeresis
-Ctrl<T> <u> <grave> : "\xc3\xb9" ugrave
-Ctrl<T> <grave> <u> : "\xc3\xb9" ugrave
-Ctrl<T> <u> <acute> : "\xc3\xba" uacute
-Ctrl<T> <acute> <u> : "\xc3\xba" uacute
-Ctrl<T> <u> <apostrophe> : "\xc3\xba" uacute
-Ctrl<T> <apostrophe> <u> : "\xc3\xba" uacute
-Ctrl<T> <u> <asciicircum> : "\xc3\xbb" ucircumflex
-Ctrl<T> <asciicircum> <u> : "\xc3\xbb" ucircumflex
-Ctrl<T> <u> <greater> : "\xc3\xbb" ucircumflex
-Ctrl<T> <greater> <u> : "\xc3\xbb" ucircumflex
-Ctrl<T> <u> <quotedbl> : "\xc3\xbc" udiaeresis
-Ctrl<T> <quotedbl> <u> : "\xc3\xbc" udiaeresis
-Ctrl<T> <s> <s> : "\xc3\x9f" ssharp
-Ctrl<T> <T> <H> : "\xc3\x9e" THORN
-Ctrl<T> <t> <h> : "\xc3\xbe" thorn
-Ctrl<T> <Y> <acute> : "\xc3\x9d" Yacute
-Ctrl<T> <acute> <Y> : "\xc3\x9d" Yacute
-Ctrl<T> <Y> <apostrophe> : "\xc3\x9d" Yacute
-Ctrl<T> <apostrophe> <Y> : "\xc3\x9d" Yacute
-Ctrl<T> <y> <acute> : "\xc3\xbd" yacute
-Ctrl<T> <acute> <y> : "\xc3\xbd" yacute
-Ctrl<T> <y> <apostrophe> : "\xc3\xbd" yacute
-Ctrl<T> <apostrophe> <y> : "\xc3\xbd" yacute
-Ctrl<T> <y> <quotedbl> : "\xc3\xbf" ydiaeresis
-Ctrl<T> <quotedbl> <y> : "\xc3\xbf" ydiaeresis
-# turkish
-<Multi_key> <G> <u> : "\xc4\x9e" Gbreve
-<Multi_key> <u> <G> : "\xc4\x9e" Gbreve
-<Multi_key> <g> <u> : "\xc4\x9f" gbreve
-<Multi_key> <u> <g> : "\xc4\x9f" gbreve
-<Multi_key> <I> <period> : "\xc4\xb0" Iabovedot
-<Multi_key> <period> <I> : "\xc4\xb0" Iabovedot
-<Multi_key> <i> <period> : "\xc4\xb1" idotless
-<Multi_key> <period> <i> : "\xc4\xb1" idotless
-# polish
-<Multi_key> <space> <breve> : "\xcb\x98" breve
-<Multi_key> <space> <degree> : "\xc2\xb0" degree
-<Multi_key> <space> <ogonek> : "\xcb\x9b" ogonek
-<Multi_key> <space> <caron> : "\xcb\x87" caron
-<Multi_key> <space> <v> : "\xcb\x87" caron
-<Multi_key> <space> <doubleacute> : "\xcb\x9d" doubleacute
-<Multi_key> <diaeresis> <A> : "\xc3\x84" Adiaeresis
-<Multi_key> <A> <diaeresis> : "\xc3\x84" Adiaeresis
-<Multi_key> <diaeresis> <E> : "\xc3\x8b" Ediaeresis
-<Multi_key> <E> <diaeresis> : "\xc3\x8b" Ediaeresis
-<Multi_key> <diaeresis> <O> : "\xc3\x96" Odiaeresis
-<Multi_key> <O> <diaeresis> : "\xc3\x96" Odiaeresis
-<Multi_key> <diaeresis> <U> : "\xc3\x9c" Udiaeresis
-<Multi_key> <U> <diaeresis> : "\xc3\x9c" Udiaeresis
-<Multi_key> <diaeresis> <a> : "\xc3\xa4" adiaeresis
-<Multi_key> <a> <diaeresis> : "\xc3\xa4" adiaeresis
-<Multi_key> <diaeresis> <e> : "\xc3\xab" ediaeresis
-<Multi_key> <e> <diaeresis> : "\xc3\xab" ediaeresis
-<Multi_key> <diaeresis> <o> : "\xc3\xb6" odiaeresis
-<Multi_key> <o> <diaeresis> : "\xc3\xb6" odiaeresis
-<Multi_key> <diaeresis> <u> : "\xc3\xbc" udiaeresis
-<Multi_key> <u> <diaeresis> : "\xc3\xbc" udiaeresis
-<Multi_key> <acute> <R> : "\xc5\x94" Racute
-<Multi_key> <R> <acute> : "\xc5\x94" Racute
-<Multi_key> <acute> <S> : "\xc5\x9a" Sacute
-<Multi_key> <S> <acute> : "\xc5\x9a" Sacute
-<Multi_key> <acute> <Z> : "\xc4\xbe" Zacute
-<Multi_key> <Z> <acute> : "\xc4\xbe" Zacute
-<Multi_key> <acute> <n> : "\xc5\x84" nacute
-<Multi_key> <n> <acute> : "\xc5\x84" nacute
-<Multi_key> <acute> <r> : "\xc5\x95" racute
-<Multi_key> <r> <acute> : "\xc5\x95" racute
-<Multi_key> <acute> <s> : "\xc5\x9b" sacute
-<Multi_key> <s> <acute> : "\xc5\x9b" sacute
-<Multi_key> <acute> <z> : "\xc5\xba" zacute
-<Multi_key> <z> <acute> : "\xc5\xba" zacute
-<Multi_key> <0> <O> : "\xc2\xb0" degree
-<Multi_key> <o> <o> : "\xc2\xb0" degree
-<Multi_key> <comma> <S> : "\xc5\x9e" Scedilla
-<Multi_key> <S> <comma> : "\xc5\x9e" Scedilla
-<Multi_key> <comma> <T> : "\xc5\xa2" Tcedilla
-<Multi_key> <T> <comma> : "\xc5\xa2" Tcedilla
-<Multi_key> <comma> <s> : "\xc5\x9f" scedilla
-<Multi_key> <s> <comma> : "\xc5\x9f" scedilla
-<Multi_key> <comma> <t> : "\xc5\xa3" tcedilla
-<Multi_key> <t> <comma> : "\xc5\xa3" tcedilla
-<Multi_key> <caron> <C> : "\xc4\x8c" Ccaron
-<Multi_key> <C> <caron> : "\xc4\x8c" Ccaron
-<Multi_key> <caron> <D> : "\xc4\x8e" Dcaron
-<Multi_key> <D> <caron> : "\xc4\x8e" Dcaron
-<Multi_key> <caron> <E> : "\xc4\x9a" Ecaron
-<Multi_key> <E> <caron> : "\xc4\x9a" Ecaron
-<Multi_key> <caron> <L> : "\xc4\xbd" Lcaron
-<Multi_key> <L> <caron> : "\xc4\xbd" Lcaron
-<Multi_key> <caron> <N> : "\xc5\x87" Ncaron
-<Multi_key> <N> <caron> : "\xc5\x87" Ncaron
-<Multi_key> <caron> <R> : "\xc5\x98" Rcaron
-<Multi_key> <R> <caron> : "\xc5\x98" Rcaron
-<Multi_key> <caron> <S> : "\xc5\xa0" Scaron
-<Multi_key> <S> <caron> : "\xc5\xa0" Scaron
-<Multi_key> <caron> <T> : "\xc5\xa4" Tcaron
-<Multi_key> <T> <caron> : "\xc5\xa4" Tcaron
-<Multi_key> <caron> <U> : "\xc5\xae" Uring
-<Multi_key> <U> <caron> : "\xc5\xae" Uring
-<Multi_key> <caron> <c> : "\xc4\x8d" ccaron
-<Multi_key> <c> <caron> : "\xc4\x8d" ccaron
-<Multi_key> <caron> <d> : "\xc4\x8f" dcaron
-<Multi_key> <d> <caron> : "\xc4\x8f" dcaron
-<Multi_key> <caron> <e> : "\xc4\x9b" ecaron
-<Multi_key> <e> <caron> : "\xc4\x9b" ecaron
-<Multi_key> <caron> <l> : "\xc4\xbe" lcaron
-<Multi_key> <l> <caron> : "\xc4\xbe" lcaron
-<Multi_key> <caron> <n> : "\xc5\x88" ncaron
-<Multi_key> <n> <caron> : "\xc5\x88" ncaron
-<Multi_key> <caron> <r> : "\xc5\x99" rcaron
-<Multi_key> <r> <caron> : "\xc5\x99" rcaron
-<Multi_key> <caron> <s> : "\xc5\xa1" scaron
-<Multi_key> <s> <caron> : "\xc5\xa1" scaron
-<Multi_key> <caron> <t> : "\xc5\xa5" tcaron
-<Multi_key> <t> <caron> : "\xc5\xa5" tcaron
-<Multi_key> <caron> <u> : "\xc5\xaf" uring
-<Multi_key> <u> <caron> : "\xc5\xaf" uring
-<Multi_key> <v> <C> : "\xc4\x8c" Ccaron
-<Multi_key> <C> <v> : "\xc4\x8c" Ccaron
-<Multi_key> <v> <D> : "\xc4\x8e" Dcaron
-<Multi_key> <D> <v> : "\xc4\x8e" Dcaron
-<Multi_key> <v> <E> : "\xc4\x9a" Ecaron
-<Multi_key> <E> <v> : "\xc4\x9a" Ecaron
-<Multi_key> <v> <N> : "\xc5\x87" Ncaron
-<Multi_key> <N> <v> : "\xc5\x87" Ncaron
-<Multi_key> <v> <R> : "\xc5\x98" Rcaron
-<Multi_key> <R> <v> : "\xc5\x98" Rcaron
-<Multi_key> <v> <T> : "\xc5\xa4" Tcaron
-<Multi_key> <T> <v> : "\xc5\xa4" Tcaron
-<Multi_key> <v> <U> : "\xc5\xae" Uring
-<Multi_key> <U> <v> : "\xc5\xae" Uring
-<Multi_key> <v> <c> : "\xc4\x8d" ccaron
-<Multi_key> <c> <v> : "\xc4\x8d" ccaron
-<Multi_key> <v> <d> : "\xc4\x8f" dcaron
-<Multi_key> <d> <v> : "\xc4\x8f" dcaron
-<Multi_key> <v> <e> : "\xc4\x9b" ecaron
-<Multi_key> <e> <v> : "\xc4\x9b" ecaron
-<Multi_key> <v> <n> : "\xc5\x88" ncaron
-<Multi_key> <n> <v> : "\xc5\x88" ncaron
-<Multi_key> <v> <r> : "\xc5\x99" rcaron
-<Multi_key> <r> <v> : "\xc5\x99" rcaron
-<Multi_key> <v> <t> : "\xc5\xa5" tcaron
-<Multi_key> <t> <v> : "\xc5\xa5" tcaron
-<Multi_key> <v> <u> : "\xc5\xaf" uring
-<Multi_key> <u> <v> : "\xc5\xaf" uring
-<Multi_key> <breve> <A> : "\xc4\x82" Abreve
-<Multi_key> <A> <breve> : "\xc4\x82" Abreve
-<Multi_key> <breve> <a> : "\xc4\x83" abreve
-<Multi_key> <a> <breve> : "\xc4\x83" abreve
-<Multi_key> <ogonek> <A> : "\xc4\x84" Aogonek
-<Multi_key> <A> <ogonek> : "\xc4\x84" Aogonek
-<Multi_key> <ogonek> <E> : "\xc4\x98" Eogonek
-<Multi_key> <E> <ogonek> : "\xc4\x98" Eogonek
-<Multi_key> <ogonek> <a> : "\xc4\x85" aogonek
-<Multi_key> <a> <ogonek> : "\xc4\x85" aogonek
-<Multi_key> <ogonek> <e> : "\xc4\x99" eogonek
-<Multi_key> <e> <ogonek> : "\xc4\x99" eogonek
-<Multi_key> <E> <a> : "\xc4\x98" Eogonek
-<Multi_key> <e> <a> : "\xc4\x99" eogonek
-<Multi_key> <doubleacute> <O> : "\xc5\x90" Odoubleacute
-<Multi_key> <O> <doubleacute> : "\xc5\x90" Odoubleacute
-<Multi_key> <doubleacute> <U> : "\xc5\xb0" Udoubleacute
-<Multi_key> <U> <doubleacute> : "\xc5\xb0" Udoubleacute
-<Multi_key> <doubleacute> <o> : "\xc5\x91" odoubleacute
-<Multi_key> <o> <doubleacute> : "\xc5\x91" odoubleacute
-<Multi_key> <doubleacute> <u> : "\xc5\xb1" udoubleacute
-<Multi_key> <u> <doubleacute> : "\xc5\xb1" udoubleacute
-<Multi_key> <period> <U> : "\xc5\xae" Uring
-<Multi_key> <U> <period> : "\xc5\xae" Uring
-<Multi_key> <period> <u> : "\xc5\xaf" uring
-<Multi_key> <u> <period> : "\xc5\xaf" uring
-<Multi_key> <period> <z> : "\xc5\xbc" zabovedot
-<Multi_key> <z> <period> : "\xc5\xbc" zabovedot
-<Multi_key> <period> <Z> : "\xc5\xbb" Zabovedot
-<Multi_key> <Z> <period> : "\xc5\xbb" Zabovedot
-<acute> <A> : "\xc3\x81" Aacute
-<acute> <C> : "\xc4\x86" Cacute
-<acute> <E> : "\xc3\x89" Eacute
-<acute> <I> : "\xc3\x8d" Iacute
-<acute> <L> : "\xc4\xb9" Lacute
-<acute> <N> : "\xc5\x83" Nacute
-<acute> <O> : "\xc3\x93" Oacute
-<acute> <R> : "\xc5\x94" Racute
-<acute> <S> : "\xc5\x9a" Sacute
-<acute> <U> : "\xc3\x9a" Uacute
-<acute> <Y> : "\xc3\x9d" Yacute
-<acute> <Z> : "\xc4\xbe" Zacute
-<acute> <a> : "\xc3\xa1" aacute
-<acute> <c> : "\xc4\x87" cacute
-<acute> <e> : "\xc3\xa9" eacute
-<acute> <i> : "\xc3\xad" iacute
-<acute> <l> : "\xc4\xba" lacute
-<acute> <n> : "\xc5\x84" nacute
-<acute> <o> : "\xc3\xb3" oacute
-<acute> <r> : "\xc5\x95" racute
-<acute> <s> : "\xc5\x9b" sacute
-<acute> <u> : "\xc3\xba" uacute
-<acute> <y> : "\xc3\xbd" yacute
-<acute> <z> : "\xc5\xba" zacute
-<diaeresis> <A> : "\xc3\x84" Adiaeresis
-<diaeresis> <E> : "\xc3\x8b" Ediaeresis
-<diaeresis> <O> : "\xc3\x96" Odiaeresis
-<diaeresis> <U> : "\xc3\x9c" Udiaeresis
-<diaeresis> <a> : "\xc3\xa4" adiaeresis
-<diaeresis> <e> : "\xc3\xab" ediaeresis
-<diaeresis> <o> : "\xc3\xb6" odiaeresis
-<diaeresis> <u> : "\xc3\xbc" udiaeresis
-#
-# Additional latin-2 sequences
-<Multi_key> <a> <space> : "\xcb\x9b" ogonek
-<Multi_key> <u> <space> : "\xcb\x98" breve
-<Multi_key> <v> <space> : "\xcb\x87" caron
-<Multi_key> <quotedbl> <space> : "\xcb\x9d" doubleacute
-<Multi_key> <A> <u> : "\xc4\x82" Abreve
-<Multi_key> <C> <apostrophe> : "\xc4\x86" Cacute
-<Multi_key> <L> <apostrophe> : "\xc4\xb9" Lacute
-<Multi_key> <L> <slash> : "\xc5\x81" Lstroke
-<Multi_key> <L> <greater> : "\xc4\xbd" Lcaron
-<Multi_key> <N> <apostrophe> : "\xc5\x83" Nacute
-<Multi_key> <S> <apostrophe> : "\xc5\x9a" Sacute
-<Multi_key> <R> <apostrophe> : "\xc5\x94" Racute
-<Multi_key> <U> <asterisk> : "\xc5\xae" Uring
-<Multi_key> <Z> <apostrophe> : "\xc5\xb9" Zacute
-<Multi_key> <a> <u> : "\xc4\x83" abreve
-<Multi_key> <c> <apostrophe> : "\xc4\x87" cacute
-<Multi_key> <l> <apostrophe> : "\xc4\xba" lacute
-<Multi_key> <l> <slash> : "\xc5\x82" lstroke
-<Multi_key> <l> <greater> : "\xc4\xbe" lcaron
-<Multi_key> <n> <apostrophe> : "\xc5\x84" nacute
-<Multi_key> <s> <apostrophe> : "\xc5\x9b" sacute
-<Multi_key> <r> <apostrophe> : "\xc5\x95" racute
-<Multi_key> <u> <asterisk> : "\xc5\xaf" uring
-<Multi_key> <z> <apostrophe> : "\xc5\xba" zacute
-#
-# Latin-4 sequences
-<Multi_key> <N> <N> : "\xc5\x8a" ENG
-<Multi_key> <U> <a> : "\xc5\xb2" Uogonek
-<Multi_key> <u> <a> : "\xc5\xb3" uogonek
-<Multi_key> <k> <k> : "\xc4\xb8" kra
-<Multi_key> <R> <comma> : "\xc5\x96" Rcedilla
-<Multi_key> <comma> <R> : "\xc5\x96" Rcedilla
-<Multi_key> <r> <comma> : "\xc5\x97" rcedilla
-<Multi_key> <comma> <r> : "\xc5\x97" rcedilla
-<Multi_key> <I> <asciitilde> : "\xc4\xa8" Itilde
-<Multi_key> <asciitilde> <I> : "\xc4\xa8" Itilde
-<Multi_key> <i> <asciitilde> : "\xc4\xa9" itilde
-<Multi_key> <asciitilde> <i> : "\xc4\xa9" itilde
-<Multi_key> <L> <comma> : "\xc4\xbb" Lcedilla
-<Multi_key> <comma> <L> : "\xc4\xbb" Lcedilla
-<Multi_key> <l> <comma> : "\xc4\xbc" lcedilla
-<Multi_key> <comma> <l> : "\xc4\xbc" lcedilla
-<diaeresis> : "\xc2\xa8" diaeresis
-<Multi_key> <S> <v> : "\xc5\xa0" Scaron
-<Multi_key> <S> <V> : "\xc5\xa0" Scaron
-<Multi_key> <v> <S> : "\xc5\xa0" Scaron
-<Multi_key> <V> <S> : "\xc5\xa0" Scaron
-<Multi_key> <s> <v> : "\xc5\xa1" scaron
-<Multi_key> <s> <V> : "\xc5\xa1" scaron
-<Multi_key> <v> <s> : "\xc5\xa1" scaron
-<Multi_key> <V> <s> : "\xc5\xa1" scaron
-<Multi_key> <E> <underscore> : "\xc4\x92" Emacron
-<Multi_key> <underscore> <E> : "\xc4\x92" Emacron
-<Multi_key> <e> <underscore> : "\xc4\x93" emacron
-<Multi_key> <underscore> <e> : "\xc4\x93" emacron
-<Multi_key> <G> <comma> : "\xc4\xa2" Gcedilla
-<Multi_key> <comma> <G> : "\xc4\xa2" Gcedilla
-<Multi_key> <g> <comma> : "\xc4\xa3" gcedilla
-<Multi_key> <comma> <g> : "\xc4\xa3" gcedilla
-<Multi_key> <T> <bar> : "\xc5\xa6" Tslash
-<Multi_key> <bar> <T> : "\xc5\xa6" Tslash
-<Multi_key> <t> <bar> : "\xc5\xa7" tslash
-<Multi_key> <bar> <t> : "\xc5\xa7" tslash
-<Multi_key> <n> <n> : "\xc5\x8b" eng
-<Multi_key> <A> <underscore> : "\xc4\x80" Amacron
-<Multi_key> <underscore> <A> : "\xc4\x80" Amacron
-<Multi_key> <a> <underscore> : "\xc4\x81" amacron
-<Multi_key> <underscore> <a> : "\xc4\x81" amacron
-<Multi_key> <d> <underscore> : "\xc4\x91"
-<Multi_key> <underscore> <d> : "\xc4\x91"
-<Multi_key> <N> <comma> : "\xc5\x85" Ncedilla
-<Multi_key> <comma> <N> : "\xc5\x85" Ncedilla
-<Multi_key> <n> <comma> : "\xc5\x86" ncedilla
-<Multi_key> <comma> <n> : "\xc5\x86" ncedilla
-<Multi_key> <O> <underscore> : "\xc5\x8c" Omacron
-<Multi_key> <underscore> <O> : "\xc5\x8c" Omacron
-<Multi_key> <o> <underscore> : "\xc5\x8d" omacron
-<Multi_key> <underscore> <o> : "\xc5\x8d" omacron
-<Multi_key> <K> <comma> : "\xc4\xb6" Kcedilla
-<Multi_key> <comma> <K> : "\xc4\xb6" Kcedilla
-<Multi_key> <k> <comma> : "\xc4\xb7" kcedilla
-<Multi_key> <comma> <k> : "\xc4\xb7" kcedilla
-<Multi_key> <I> <a> : "\xc4\xae" Iogonek
-<Multi_key> <a> <I> : "\xc4\xae" Iogonek
-<Multi_key> <i> <a> : "\xc4\xaf" iogonek
-<Multi_key> <a> <i> : "\xc4\xaf" iogonek
-<Multi_key> <E> <period> : "\xc4\x96" Eabovedot
-<Multi_key> <e> <period> : "\xc4\x97" eabovedot
-<Multi_key> <U> <asciitilde> : "\xc5\xa8" Utilde
-<Multi_key> <asciitilde> <U> : "\xc5\xa8" Utilde
-<Multi_key> <u> <asciitilde> : "\xc5\xa9" utilde
-<Multi_key> <asciitilde> <u> : "\xc5\xa9" utilde
-<Multi_key> <U> <underscore> : "\xc5\xaa" Umacron
-<Multi_key> <underscore> <U> : "\xc5\xaa" Umacron
-<Multi_key> <u> <underscore> : "\xc5\xab" umacron
-<Multi_key> <underscore> <u> : "\xc5\xab" umacron
-<Multi_key> <I> <underscore> : "\xc4\xaa" Imacron
-<Multi_key> <underscore> <I> : "\xc4\xaa" Imacron
-<Multi_key> <i> <underscore> : "\xc4\xab" imacron
-<Multi_key> <underscore> <i> : "\xc4\xab" imacron
+<Multi_key> <asciicircum> <space> : "^" asciicircum
+<Multi_key> <space> <asciicircum> : "^" asciicircum
+<Multi_key> <greater> <space> : "^" asciicircum
+<Multi_key> <space> <greater> : "^" asciicircum
-# Ctrl<T> combo
-Ctrl<T> <a> <A> : "\xc4\x84" Aogonek
-Ctrl<T> <A> <a> : "\xc4\x84" Aogonek
-Ctrl<T> <a> <a> : "\xc4\x85" aogonek
-Ctrl<T> <C> <acute> : "\xc4\x86" Cacute
-Ctrl<T> <c> <acute> : "\xc4\x87" cacute
-Ctrl<T> <acute> <C> : "\xc4\x86" Cacute
-Ctrl<T> <acute> <c> : "\xc4\x87" cacute
-Ctrl<T> <acute> <N> : "\xc5\x83" Nacute
-Ctrl<T> <N> <acute> : "\xc5\x83" Nacute
-#Ctrl<T> <minus> <D> : "\xc3\x90" ETH
-#Ctrl<T> <minus> <d> : "\xc3\xb0" eth
-Ctrl<T> <slash> <D> : "\xc4\x90" Dstroke
-Ctrl<T> <slash> <d> : "\xc4\x91" dstroke
-Ctrl<T> <caron> <Z> : "\xc5\xbd" Zcaron
-Ctrl<T> <Z> <caron> : "\xc5\xbd" Zcaron
-Ctrl<T> <v> <Z> : "\xc5\xbd" Zcaron
-Ctrl<T> <Z> <v> : "\xc5\xbd" Zcaron
-Ctrl<T> <caron> <z> : "\xc5\xbe" zcaron
-Ctrl<T> <z> <caron> : "\xc5\xbe" zcaron
-Ctrl<T> <z> <v> : "\xc5\xbe" zcaron
-Ctrl<T> <v> <z> : "\xc5\xbe" zcaron
-Ctrl<T> <G> <u> : "\xc4\x9e" Gbreve
-Ctrl<T> <u> <G> : "\xc4\x9e" Gbreve
-Ctrl<T> <g> <u> : "\xc4\x9f" gbreve
-Ctrl<T> <u> <g> : "\xc4\x9f" gbreve
-Ctrl<T> <I> <period> : "\xc4\xb0" Iabovedot
-Ctrl<T> <period> <I> : "\xc4\xb0" Iabovedot
-Ctrl<T> <i> <period> : "\xc4\xb1" idotless
-Ctrl<T> <period> <i> : "\xc4\xb1" idotless
-Ctrl<T> <space> <breve> : "\xcb\x98" breve
-Ctrl<T> <space> <degree> : "\xc2\xb0" degree
-Ctrl<T> <space> <ogonek> : "\xcb\x9b" ogonek
-Ctrl<T> <space> <caron> : "\xcb\x87" caron
-Ctrl<T> <space> <v> : "\xcb\x87" caron
-Ctrl<T> <space> <doubleacute> : "\xcb\x9d" doubleacute
-Ctrl<T> <diaeresis> <A> : "\xc3\x84" Adiaeresis
-Ctrl<T> <A> <diaeresis> : "\xc3\x84" Adiaeresis
-Ctrl<T> <diaeresis> <E> : "\xc3\x8b" Ediaeresis
-Ctrl<T> <E> <diaeresis> : "\xc3\x8b" Ediaeresis
-Ctrl<T> <diaeresis> <O> : "\xc3\x96" Odiaeresis
-Ctrl<T> <O> <diaeresis> : "\xc3\x96" Odiaeresis
-Ctrl<T> <diaeresis> <U> : "\xc3\x9c" Udiaeresis
-Ctrl<T> <U> <diaeresis> : "\xc3\x9c" Udiaeresis
-Ctrl<T> <diaeresis> <a> : "\xc3\xa4" adiaeresis
-Ctrl<T> <a> <diaeresis> : "\xc3\xa4" adiaeresis
-Ctrl<T> <diaeresis> <e> : "\xc3\xab" ediaeresis
-Ctrl<T> <e> <diaeresis> : "\xc3\xab" ediaeresis
-Ctrl<T> <diaeresis> <o> : "\xc3\xb6" odiaeresis
-Ctrl<T> <o> <diaeresis> : "\xc3\xb6" odiaeresis
-Ctrl<T> <diaeresis> <u> : "\xc3\xbc" udiaeresis
-Ctrl<T> <u> <diaeresis> : "\xc3\xbc" udiaeresis
-Ctrl<T> <acute> <R> : "\xc5\x94" Racute
-Ctrl<T> <R> <acute> : "\xc5\x94" Racute
-Ctrl<T> <acute> <S> : "\xc5\x9a" Sacute
-Ctrl<T> <S> <acute> : "\xc5\x9a" Sacute
-Ctrl<T> <acute> <Z> : "\xc4\xbe" Zacute
-Ctrl<T> <Z> <acute> : "\xc4\xbe" Zacute
-Ctrl<T> <acute> <n> : "\xc5\x84" nacute
-Ctrl<T> <n> <acute> : "\xc5\x84" nacute
-Ctrl<T> <acute> <r> : "\xc5\x95" racute
-Ctrl<T> <r> <acute> : "\xc5\x95" racute
-Ctrl<T> <acute> <s> : "\xc5\x9b" sacute
-Ctrl<T> <s> <acute> : "\xc5\x9b" sacute
-Ctrl<T> <acute> <z> : "\xc5\xba" zacute
-Ctrl<T> <z> <acute> : "\xc5\xba" zacute
-Ctrl<T> <0> <O> : "\xc2\xb0" degree
-Ctrl<T> <o> <o> : "\xc2\xb0" degree
-Ctrl<T> <comma> <S> : "\xc5\x9e" Scedilla
-Ctrl<T> <S> <comma> : "\xc5\x9e" Scedilla
-Ctrl<T> <comma> <T> : "\xc5\xa2" Tcedilla
-Ctrl<T> <T> <comma> : "\xc5\xa2" Tcedilla
-Ctrl<T> <comma> <s> : "\xc5\x9f" scedilla
-Ctrl<T> <s> <comma> : "\xc5\x9f" scedilla
-Ctrl<T> <comma> <t> : "\xc5\xa3" tcedilla
-Ctrl<T> <t> <comma> : "\xc5\xa3" tcedilla
-Ctrl<T> <caron> <C> : "\xc4\x8c" Ccaron
-Ctrl<T> <C> <caron> : "\xc4\x8c" Ccaron
-Ctrl<T> <caron> <D> : "\xc4\x8e" Dcaron
-Ctrl<T> <D> <caron> : "\xc4\x8e" Dcaron
-Ctrl<T> <caron> <E> : "\xc4\x9a" Ecaron
-Ctrl<T> <E> <caron> : "\xc4\x9a" Ecaron
-Ctrl<T> <caron> <L> : "\xc4\xbd" Lcaron
-Ctrl<T> <L> <caron> : "\xc4\xbd" Lcaron
-Ctrl<T> <caron> <N> : "\xc5\x87" Ncaron
-Ctrl<T> <N> <caron> : "\xc5\x87" Ncaron
-Ctrl<T> <caron> <R> : "\xc5\x98" Rcaron
-Ctrl<T> <R> <caron> : "\xc5\x98" Rcaron
-Ctrl<T> <caron> <S> : "\xc5\xa0" Scaron
-Ctrl<T> <S> <caron> : "\xc5\xa0" Scaron
-Ctrl<T> <caron> <T> : "\xc5\xa4" Tcaron
-Ctrl<T> <T> <caron> : "\xc5\xa4" Tcaron
-Ctrl<T> <caron> <U> : "\xc5\xae" Uring
-Ctrl<T> <U> <caron> : "\xc5\xae" Uring
-Ctrl<T> <caron> <c> : "\xc4\x8d" ccaron
-Ctrl<T> <c> <caron> : "\xc4\x8d" ccaron
-Ctrl<T> <caron> <d> : "\xc4\x8f" dcaron
-Ctrl<T> <d> <caron> : "\xc4\x8f" dcaron
-Ctrl<T> <caron> <e> : "\xc4\x9b" ecaron
-Ctrl<T> <e> <caron> : "\xc4\x9b" ecaron
-Ctrl<T> <caron> <l> : "\xc4\xbe" lcaron
-Ctrl<T> <l> <caron> : "\xc4\xbe" lcaron
-Ctrl<T> <caron> <n> : "\xc5\x88" ncaron
-Ctrl<T> <n> <caron> : "\xc5\x88" ncaron
-Ctrl<T> <caron> <r> : "\xc5\x99" rcaron
-Ctrl<T> <r> <caron> : "\xc5\x99" rcaron
-Ctrl<T> <caron> <s> : "\xc5\xa1" scaron
-Ctrl<T> <s> <caron> : "\xc5\xa1" scaron
-Ctrl<T> <caron> <t> : "\xc5\xa5" tcaron
-Ctrl<T> <t> <caron> : "\xc5\xa5" tcaron
-Ctrl<T> <caron> <u> : "\xc5\xaf" uring
-Ctrl<T> <u> <caron> : "\xc5\xaf" uring
-Ctrl<T> <v> <C> : "\xc4\x8c" Ccaron
-Ctrl<T> <C> <v> : "\xc4\x8c" Ccaron
-Ctrl<T> <v> <D> : "\xc4\x8e" Dcaron
-Ctrl<T> <D> <v> : "\xc4\x8e" Dcaron
-Ctrl<T> <v> <E> : "\xc4\x9a" Ecaron
-Ctrl<T> <E> <v> : "\xc4\x9a" Ecaron
-Ctrl<T> <v> <N> : "\xc5\x87" Ncaron
-Ctrl<T> <N> <v> : "\xc5\x87" Ncaron
-Ctrl<T> <v> <R> : "\xc5\x98" Rcaron
-Ctrl<T> <R> <v> : "\xc5\x98" Rcaron
-Ctrl<T> <v> <T> : "\xc5\xa4" Tcaron
-Ctrl<T> <T> <v> : "\xc5\xa4" Tcaron
-Ctrl<T> <v> <U> : "\xc5\xae" Uring
-Ctrl<T> <U> <v> : "\xc5\xae" Uring
-Ctrl<T> <v> <c> : "\xc4\x8d" ccaron
-Ctrl<T> <c> <v> : "\xc4\x8d" ccaron
-Ctrl<T> <v> <d> : "\xc4\x8f" dcaron
-Ctrl<T> <d> <v> : "\xc4\x8f" dcaron
-Ctrl<T> <v> <e> : "\xc4\x9b" ecaron
-Ctrl<T> <e> <v> : "\xc4\x9b" ecaron
-Ctrl<T> <v> <n> : "\xc5\x88" ncaron
-Ctrl<T> <n> <v> : "\xc5\x88" ncaron
-Ctrl<T> <v> <r> : "\xc5\x99" rcaron
-Ctrl<T> <r> <v> : "\xc5\x99" rcaron
-Ctrl<T> <v> <t> : "\xc5\xa5" tcaron
-Ctrl<T> <t> <v> : "\xc5\xa5" tcaron
-Ctrl<T> <v> <u> : "\xc5\xaf" uring
-Ctrl<T> <u> <v> : "\xc5\xaf" uring
-Ctrl<T> <breve> <A> : "\xc4\x82" Abreve
-Ctrl<T> <A> <breve> : "\xc4\x82" Abreve
-Ctrl<T> <breve> <a> : "\xc4\x83" abreve
-Ctrl<T> <a> <breve> : "\xc4\x83" abreve
-Ctrl<T> <ogonek> <A> : "\xc4\x84" Aogonek
-Ctrl<T> <A> <ogonek> : "\xc4\x84" Aogonek
-Ctrl<T> <ogonek> <E> : "\xc4\x98" Eogonek
-Ctrl<T> <E> <ogonek> : "\xc4\x98" Eogonek
-Ctrl<T> <ogonek> <a> : "\xc4\x85" aogonek
-Ctrl<T> <a> <ogonek> : "\xc4\x85" aogonek
-Ctrl<T> <ogonek> <e> : "\xc4\x99" eogonek
-Ctrl<T> <e> <ogonek> : "\xc4\x99" eogonek
-Ctrl<T> <E> <a> : "\xc4\x98" Eogonek
-Ctrl<T> <e> <a> : "\xc4\x99" eogonek
-Ctrl<T> <doubleacute> <O> : "\xc5\x90" Odoubleacute
-Ctrl<T> <O> <doubleacute> : "\xc5\x90" Odoubleacute
-Ctrl<T> <doubleacute> <U> : "\xc5\xb0" Udoubleacute
-Ctrl<T> <U> <doubleacute> : "\xc5\xb0" Udoubleacute
-Ctrl<T> <doubleacute> <o> : "\xc5\x91" odoubleacute
-Ctrl<T> <o> <doubleacute> : "\xc5\x91" odoubleacute
-Ctrl<T> <doubleacute> <u> : "\xc5\xb1" udoubleacute
-Ctrl<T> <u> <doubleacute> : "\xc5\xb1" udoubleacute
-Ctrl<T> <period> <U> : "\xc5\xae" Uring
-Ctrl<T> <U> <period> : "\xc5\xae" Uring
-Ctrl<T> <period> <u> : "\xc5\xaf" uring
-Ctrl<T> <u> <period> : "\xc5\xaf" uring
-Ctrl<T> <period> <z> : "\xc5\xbc" zabovedot
-Ctrl<T> <z> <period> : "\xc5\xbc" zabovedot
-Ctrl<T> <period> <Z> : "\xc5\xbb" Zabovedot
-Ctrl<T> <Z> <period> : "\xc5\xbb" Zabovedot
-Ctrl<T> <a> <space> : "\xcb\x9b" ogonek
-Ctrl<T> <u> <space> : "\xcb\x98" breve
-Ctrl<T> <v> <space> : "\xcb\x87" caron
-Ctrl<T> <quotedbl> <space> : "\xcb\x9d" doubleacute
-Ctrl<T> <A> <u> : "\xc4\x82" Abreve
-Ctrl<T> <C> <apostrophe> : "\xc4\x86" Cacute
-Ctrl<T> <L> <apostrophe> : "\xc4\xb9" Lacute
-Ctrl<T> <L> <slash> : "\xc5\x81" Lstroke
-Ctrl<T> <L> <greater> : "\xc4\xbd" Lcaron
-Ctrl<T> <N> <apostrophe> : "\xc5\x83" Nacute
-Ctrl<T> <S> <apostrophe> : "\xc5\x9a" Sacute
-Ctrl<T> <R> <apostrophe> : "\xc5\x94" Racute
-Ctrl<T> <U> <asterisk> : "\xc5\xae" Uring
-Ctrl<T> <Z> <apostrophe> : "\xc5\xb9" Zacute
-Ctrl<T> <a> <u> : "\xc4\x83" abreve
-Ctrl<T> <c> <apostrophe> : "\xc4\x87" cacute
-Ctrl<T> <l> <apostrophe> : "\xc4\xba" lacute
-Ctrl<T> <l> <slash> : "\xc5\x82" lstroke
-Ctrl<T> <l> <greater> : "\xc4\xbe" lcaron
-Ctrl<T> <n> <apostrophe> : "\xc5\x84" nacute
-Ctrl<T> <s> <apostrophe> : "\xc5\x9b" sacute
-Ctrl<T> <r> <apostrophe> : "\xc5\x95" racute
-Ctrl<T> <u> <asterisk> : "\xc5\xaf" uring
-Ctrl<T> <z> <apostrophe> : "\xc5\xba" zacute
-#
-# Latin-4 sequences
-Ctrl<T> <N> <N> : "\xc5\x8a" ENG
-Ctrl<T> <U> <a> : "\xc5\xb2" Uogonek
-Ctrl<T> <u> <a> : "\xc5\xb3" uogonek
-Ctrl<T> <k> <k> : "\xc4\xb8" kra
-Ctrl<T> <R> <comma> : "\xc5\x96" Rcedilla
-Ctrl<T> <comma> <R> : "\xc5\x96" Rcedilla
-Ctrl<T> <r> <comma> : "\xc5\x97" rcedilla
-Ctrl<T> <comma> <r> : "\xc5\x97" rcedilla
-Ctrl<T> <I> <asciitilde> : "\xc4\xa8" Itilde
-Ctrl<T> <asciitilde> <I> : "\xc4\xa8" Itilde
-Ctrl<T> <i> <asciitilde> : "\xc4\xa9" itilde
-Ctrl<T> <asciitilde> <i> : "\xc4\xa9" itilde
-Ctrl<T> <L> <comma> : "\xc4\xbb" Lcedilla
-Ctrl<T> <comma> <L> : "\xc4\xbb" Lcedilla
-Ctrl<T> <l> <comma> : "\xc4\xbc" lcedilla
-Ctrl<T> <comma> <l> : "\xc4\xbc" lcedilla
-Ctrl<T> <S> <v> : "\xc5\xa0" Scaron
-Ctrl<T> <S> <V> : "\xc5\xa0" Scaron
-Ctrl<T> <v> <S> : "\xc5\xa0" Scaron
-Ctrl<T> <V> <S> : "\xc5\xa0" Scaron
-Ctrl<T> <s> <v> : "\xc5\xa1" scaron
-Ctrl<T> <s> <V> : "\xc5\xa1" scaron
-Ctrl<T> <v> <s> : "\xc5\xa1" scaron
-Ctrl<T> <V> <s> : "\xc5\xa1" scaron
-Ctrl<T> <E> <underscore> : "\xc4\x92" Emacron
-Ctrl<T> <underscore> <E> : "\xc4\x92" Emacron
-Ctrl<T> <e> <underscore> : "\xc4\x93" emacron
-Ctrl<T> <underscore> <e> : "\xc4\x93" emacron
-Ctrl<T> <G> <comma> : "\xc4\xa2" Gcedilla
-Ctrl<T> <comma> <G> : "\xc4\xa2" Gcedilla
-Ctrl<T> <g> <comma> : "\xc4\xa3" gcedilla
-Ctrl<T> <comma> <g> : "\xc4\xa3" gcedilla
-Ctrl<T> <T> <bar> : "\xc5\xa6" Tslash
-Ctrl<T> <bar> <T> : "\xc5\xa6" Tslash
-Ctrl<T> <t> <bar> : "\xc5\xa7" tslash
-Ctrl<T> <bar> <t> : "\xc5\xa7" tslash
-Ctrl<T> <n> <n> : "\xc5\x8b" eng
-Ctrl<T> <d> <underscore> : "\xc4\x91"
-Ctrl<T> <underscore> <d> : "\xc4\x91"
-Ctrl<T> <N> <comma> : "\xc5\x85" Ncedilla
-Ctrl<T> <comma> <N> : "\xc5\x85" Ncedilla
-Ctrl<T> <n> <comma> : "\xc5\x86" ncedilla
-Ctrl<T> <comma> <n> : "\xc5\x86" ncedilla
-Ctrl<T> <K> <comma> : "\xc4\xb6" Kcedilla
-Ctrl<T> <comma> <K> : "\xc4\xb6" Kcedilla
-Ctrl<T> <k> <comma> : "\xc4\xb7" kcedilla
-Ctrl<T> <comma> <k> : "\xc4\xb7" kcedilla
-Ctrl<T> <I> <a> : "\xc4\xae" Iogonek
-Ctrl<T> <a> <I> : "\xc4\xae" Iogonek
-Ctrl<T> <i> <a> : "\xc4\xaf" iogonek
-Ctrl<T> <a> <i> : "\xc4\xaf" iogonek
-Ctrl<T> <E> <period> : "\xc4\x96" Eabovedot
-Ctrl<T> <e> <period> : "\xc4\x97" eabovedot
-Ctrl<T> <U> <asciitilde> : "\xc5\xa8" Utilde
-Ctrl<T> <asciitilde> <U> : "\xc5\xa8" Utilde
-Ctrl<T> <u> <asciitilde> : "\xc5\xa9" utilde
-Ctrl<T> <asciitilde> <u> : "\xc5\xa9" utilde
-Ctrl<T> <U> <underscore> : "\xc5\xaa" Umacron
-Ctrl<T> <underscore> <U> : "\xc5\xaa" Umacron
-Ctrl<T> <u> <underscore> : "\xc5\xab" umacron
-Ctrl<T> <underscore> <u> : "\xc5\xab" umacron
-Ctrl<T> <I> <underscore> : "\xc4\xaa" Imacron
-Ctrl<T> <underscore> <I> : "\xc4\xaa" Imacron
-Ctrl<T> <i> <underscore> : "\xc4\xab" imacron
-Ctrl<T> <underscore> <i> : "\xc4\xab" imacron
-#
-# Latin-9 input sequences:
-<Multi_key> <o> <e> : "\xc5\x93"
-<Multi_key> <O> <E> : "\xc5\x92"
-<Multi_key> <Y> <quotedbl> : "\xc5\xb8"
-<Multi_key> <quotedbl> <Y> : "\xc5\xb8"
-Ctrl<T> <o> <e> : "\xc5\x93"
-Ctrl<T> <O> <E> : "\xc5\x92"
-Ctrl<T> <Y> <quotedbl> : "\xc5\xb8"
-Ctrl<T> <quotedbl> <Y> : "\xc5\xb8"
-END_STATE
+<Multi_key> <grave> <space> : "`" grave
+<Multi_key> <space> <grave> : "`" grave
-STATE "[ Cyrillic ]"
-Ctrl<space> : SWITCH_STATE_TO "[ English/European ]"
-<Multi_key> <g> <g> : SWITCH_STATE_TO "[ Greek ]"
-<Multi_key> <t> <t> : SWITCH_STATE_TO "[ Thai ]"
-<Multi_key> <a> <r> : SWITCH_STATE_TO "[ Arabic ]"
-<Multi_key> <h> <h> : SWITCH_STATE_TO "[ Hebrew ]"
-<Multi_key> <u> <h> : SWITCH_STATE_TO "[ Unicode Hex ]"
-<Multi_key> <u> <o> : SWITCH_STATE_TO "[ Unicode Octal ]"
-<Multi_key> <l> <l> : SWITCH_STATE_TO "[ Lookup ]"
-<Multi_key> <j> <a> : SWITCH_STATE_TO "[ Japanese ]"
-<Multi_key> <k> <o> : SWITCH_STATE_TO "[ Korean ]"
-<Multi_key> <s> <c> : SWITCH_STATE_TO "[ S-Chinese ]"
-<Multi_key> <t> <c> : SWITCH_STATE_TO "[ T-Chinese ]"
+<Multi_key> <comma> <space> : "¸" cedilla
+<Multi_key> <space> <comma> : "¸" cedilla
-Ctrl<T> <g> <g> : SWITCH_STATE_TO "[ Greek ]"
-Ctrl<T> <t> <t> : SWITCH_STATE_TO "[ Thai ]"
-Ctrl<T> <a> <r> : SWITCH_STATE_TO "[ Arabic ]"
-Ctrl<T> <h> <h> : SWITCH_STATE_TO "[ Hebrew ]"
-Ctrl<T> <u> <h> : SWITCH_STATE_TO "[ Unicode Hex ]"
-Ctrl<T> <u> <o> : SWITCH_STATE_TO "[ Unicode Octal ]"
-Ctrl<T> <l> <l> : SWITCH_STATE_TO "[ Lookup ]"
-Ctrl<T> <j> <a> : SWITCH_STATE_TO "[ Japanese ]"
-Ctrl<T> <k> <o> : SWITCH_STATE_TO "[ Korean ]"
-Ctrl<T> <s> <c> : SWITCH_STATE_TO "[ S-Chinese ]"
-Ctrl<T> <t> <c> : SWITCH_STATE_TO "[ T-Chinese ]"
+<Multi_key> <parenleft> <minus> : "{" braceleft
+<Multi_key> <minus> <parenleft> : "{" braceleft
-<at> : "\x22" quotedbl
-<numbersign> : "\xe2\x84\x96" numerosign
-<dollar> : "\x25" percent
-<percent> : "\x3a" colon
-<asciicircum> : "\x2c" comma
-<ampersand> : "\x2e" period
-<asterisk> : "\x3b" semicolon
-<numerosign> : "\xe2\x84\x96" numerosign
-<q> : "\xd0\xb9" Cyrillic_shorti
-<w> : "\xd1\x86" Cyrillic_tse
-<e> : "\xd1\x83" Cyrillic_u
-<r> : "\xd0\xba" Cyrillic_ka
-<t> : "\xd0\xb5" Cyrillic_ie
-<y> : "\xd0\xbd" Cyrillic_en
-<u> : "\xd0\xb3" Cyrillic_ghe
-<i> : "\xd1\x88" Cyrillic_sha
-<o> : "\xd1\x89" Cyrillic_shcha
-<p> : "\xd0\xb7" Cyrillic_ze
-<bracketleft> : "\xd1\x85" Cyrillic_ha
-<bracketright> : "\xd1\x8a" Cyrillic_hardsign
-<Q> : "\xd0\x99" Cyrillic_SHORTI
-<W> : "\xd0\xa6" Cyrillic_TSE
-<E> : "\xd0\xa3" Cyrillic_U
-<R> : "\xd0\x9a" Cyrillic_KA
-<T> : "\xd0\x95" Cyrillic_IE
-<Y> : "\xd0\x9d" Cyrillic_EN
-<U> : "\xd0\x93" Cyrillic_GHE
-<I> : "\xd0\xa8" Cyrillic_SHA
-<O> : "\xd0\xa9" Cyrillic_SHCHA
-<P> : "\xd0\x97" Cyrillic_ZE
-Lock<bracketleft> : "\xd0\xa5" Cyrillic_HA
-Lock<bracketright> : "\xd0\xaa" Cyrillic_HARDSIGN
-<braceleft> : "\xd0\xa5" Cyrillic_HA
-<braceright> : "\xd0\xaa" Cyrillic_HARDSIGN
-<a> : "\xd1\x84" Cyrillic_ef
-<s> : "\xd1\x8b" Cyrillic_yeru
-<d> : "\xd0\xb2" Cyrillic_ve
-<f> : "\xd0\xb0" Cyrillic_a
-<g> : "\xd0\xbf" Cyrillic_pe
-<h> : "\xd1\x80" Cyrillic_er
-<j> : "\xd0\xbe" Cyrillic_o
-<k> : "\xd0\xbb" Cyrillic_el
-<l> : "\xd0\xb4" Cyrillic_de
-<semicolon> : "\xd0\xb6" Cyrillic_ghe
-<quoteright> : "\xd1\x8d" Cyrillic_e
-<A> : "\xd0\xa4" Cyrillic_EF
-<S> : "\xd0\xab" Cyrillic_YERU
-<D> : "\xd0\x92" Cyrillic_VE
-<F> : "\xd0\x90" Cyrillic_A
-<G> : "\xd0\x9f" Cyrillic_PE
-<H> : "\xd0\xa0" Cyrillic_ER
-<J> : "\xd0\x9e" Cyrillic_O
-<K> : "\xd0\x9b" Cyrillic_EL
-<L> : "\xd0\x94" Cyrillic_DE
-<colon> : "\xd0\x96" Cyrillic_GHE
-<quotedbl> : "\xd0\xad" Cyrillic_E
-<z> : "\xd1\x8f" Cyrillic_ya
-<x> : "\xd1\x87" Cyrillic_che
-<c> : "\xd1\x81" Cyrillic_es
-<v> : "\xd0\xbc" Cyrillic_em
-<b> : "\xd0\xb8" Cyrillic_i
-<n> : "\xd1\x82" Cyrillic_te
-<m> : "\xd1\x8c" Cyrillic_softsign
-<comma> : "\xd0\xb1" Cyrillic_be
-<period> : "\xd1\x8e" Cyrillic_yu
-<slash> : "\xd1\x91" Cyrillic_io
-<Z> : "\xd0\xaf" Cyrillic_YA
-<X> : "\xd0\xa7" Cyrillic_CHE
-<C> : "\xd0\xa1" Cyrillic_ES
-<V> : "\xd0\x9c" Cyrillic_EM
-<B> : "\xd0\x98" Cyrillic_I
-<N> : "\xd0\xa2" Cyrillic_TE
-<M> : "\xd0\xac" Cyrillic_SOFTSIGN
-<less> : "\xd0\x91" Cyrillic_BE
-<greater> : "\xd0\xae" Cyrillic_YU
-<question> : "\xd0\x81" Cyrillic_IO
+<Multi_key> <slash> <asciicircum> : "|" bar
+<Multi_key> <asciicircum> <slash> : "|" bar
+<Multi_key> <V> <L> : "|" bar
+<Multi_key> <L> <V> : "|" bar
+<Multi_key> <v> <l> : "|" bar
+<Multi_key> <l> <v> : "|" bar
-END_STATE
+<Multi_key> <parenright> <minus> : "}" braceright
+<Multi_key> <minus> <parenright> : "}" braceright
-STATE "[ Greek ]"
-Ctrl<space> : SWITCH_STATE_TO "[ English/European ]"
-<Multi_key> <c> <c> : SWITCH_STATE_TO "[ Cyrillic ]"
-<Multi_key> <t> <t> : SWITCH_STATE_TO "[ Thai ]"
-<Multi_key> <a> <r> : SWITCH_STATE_TO "[ Arabic ]"
-<Multi_key> <h> <h> : SWITCH_STATE_TO "[ Hebrew ]"
-<Multi_key> <u> <h> : SWITCH_STATE_TO "[ Unicode Hex ]"
-<Multi_key> <u> <o> : SWITCH_STATE_TO "[ Unicode Octal ]"
-<Multi_key> <l> <l> : SWITCH_STATE_TO "[ Lookup ]"
-<Multi_key> <j> <a> : SWITCH_STATE_TO "[ Japanese ]"
-<Multi_key> <k> <o> : SWITCH_STATE_TO "[ Korean ]"
-<Multi_key> <s> <c> : SWITCH_STATE_TO "[ S-Chinese ]"
-<Multi_key> <t> <c> : SWITCH_STATE_TO "[ T-Chinese ]"
+<Multi_key> <asciitilde> <space> : "~" asciitilde
+<Multi_key> <space> <asciitilde> : "~" asciitilde
+<Multi_key> <minus> <space> : "~" asciitilde
+<Multi_key> <space> <minus> : "~" asciitilde
-Ctrl<T> <c> <c> : SWITCH_STATE_TO "[ Cyrillic ]"
-Ctrl<T> <t> <t> : SWITCH_STATE_TO "[ Thai ]"
-Ctrl<T> <a> <r> : SWITCH_STATE_TO "[ Arabic ]"
-Ctrl<T> <h> <h> : SWITCH_STATE_TO "[ Hebrew ]"
-Ctrl<T> <u> <h> : SWITCH_STATE_TO "[ Unicode Hex ]"
-Ctrl<T> <u> <o> : SWITCH_STATE_TO "[ Unicode Octal ]"
-Ctrl<T> <l> <l> : SWITCH_STATE_TO "[ Lookup ]"
-Ctrl<T> <j> <a> : SWITCH_STATE_TO "[ Japanese ]"
-Ctrl<T> <k> <o> : SWITCH_STATE_TO "[ Korean ]"
-Ctrl<T> <s> <c> : SWITCH_STATE_TO "[ S-Chinese ]"
-Ctrl<T> <t> <c> : SWITCH_STATE_TO "[ T-Chinese ]"
+XCOMM Spaces
+<Multi_key> <space> <space> : " " nobreakspace # NO-BREAK SPACE
+<Multi_key> <space> <period>: " " U2008 # PUNCTUATION SPACE
-<at> : "\x22" quotedbl
-<numbersign> : "\xcf\x80" numerosign
-<dollar> : "\x25" percent
-<percent> : "\x3a" colon
-<asciicircum> : "\x2c" comma
-<ampersand> : "\x2e" period
-<asterisk> : "\x3b" semicolon
-<q> : "\x3b" semicolon
-<w> : "\xcf\x82" Greek_sigma
-<e> : "\xce\xb5" Greek_epsilon
-<r> : "\xcf\x81" Greek_rho
-<t> : "\xcf\x84" Greek_tau
-<y> : "\xcf\x85" Greek_upsilon
-<u> : "\xce\xb8" Greek_theta
-<i> : "\xce\xb9" Greek_iota
-<o> : "\xce\xbf" Greek_omicron
-<p> : "\xcf\x80" Greek_pi
-<Greek_sigma> : "\xcf\x82" Greek_sigma
-<Greek_epsilon> : "\xce\xb5" Greek_epsilon
-<Greek_rho> : "\xcf\x81" Greek_rho
-<Greek_tau> : "\xcf\x84" Greek_tau
-<Greek_upsilon> : "\xcf\x85" Greek_upsilon
-<Greek_theta> : "\xce\xb8" Greek_theta
-<Greek_iota> : "\xce\xb9" Greek_iota
-<Greek_omicron> : "\xce\xbf" Greek_omicron
-<Greek_pi> : "\xcf\x80" Greek_pi
-<Q> : "\x3a" colon
-<W> : "\xce\xa3" Greek_SIGMA
-<E> : "\xce\x95" Greek_EPSILON
-<R> : "\xce\xa1" Greek_RHO
-<T> : "\xce\xa4" Greek_TAU
-<Y> : "\xce\xa5" Greek_UPSILON
-<U> : "\xce\x98" Greek_THETA
-<I> : "\xce\x99" Greek_IOTA
-<O> : "\xce\x9f" Greek_OMICRON
-<P> : "\xce\xa0" Greek_PI
-<Greek_SIGMA> : "\xce\xa3" Greek_SIGMA
-<Greek_EPSILON> : "\xce\x95" Greek_EPSILON
-<Greek_RHO> : "\xce\xa1" Greek_RHO
-<Greek_TAU> : "\xce\xa4" Greek_TAU
-<Greek_UPSILON> : "\xce\xa5" Greek_UPSILON
-<Greek_THETA> : "\xce\x98" Greek_THETA
-<Greek_IOTA> : "\xce\x99" Greek_IOTA
-<Greek_OMICRON> : "\xce\x9f" Greek_OMICRON
-<Greek_PI> : "\xce\xa0" Greek_PI
-<a> : "\xce\xb1" Greek_alpha
-<s> : "\xcf\x83" Greek_finalsmallsigma
-<d> : "\xce\xb4" Greek_delta
-<f> : "\xcf\x86" Greek_phi
-<g> : "\xce\xb3" Greek_gamma
-<h> : "\xce\xb7" Greek_eta
-<j> : "\xce\xbe" Greek_xi
-<k> : "\xce\xba" Greek_kappa
-<l> : "\xce\xbb" Greek_lamda
-<Greek_alpha> : "\xce\xb1" Greek_alpha
-<Greek_finalsmallsigma> : "\xcf\x83" Greek_finalsmallsigma
-<Greek_delta> : "\xce\xb4" Greek_delta
-<Greek_phi> : "\xcf\x86" Greek_phi
-<Greek_gamma> : "\xce\xb3" Greek_gamma
-<Greek_eta> : "\xce\xb7" Greek_eta
-<Greek_xi> : "\xce\xbe" Greek_xi
-<Greek_kappa> : "\xce\xba" Greek_kappa
-<Greek_lamda> : "\xce\xbb" Greek_lamda
-<A> : "\xce\x91" Greek_ALPHA
-<S> : "\xce\xa3" Greek_SIGMA
-<D> : "\xce\x94" Greek_DELTA
-<F> : "\xce\xa6" Greek_PHI
-<G> : "\xce\x93" Greek_GAMMA
-<H> : "\xce\x97" Greek_ETA
-<J> : "\xce\x9e" Greek_XI
-<K> : "\xce\x9a" Greek_KAPPA
-<L> : "\xce\x9b" Greek_LAMDA
-<Greek_ALPHA> : "\xce\x91" Greek_ALPHA
-<Greek_DELTA> : "\xce\x94" Greek_DELTA
-<Greek_PHI> : "\xce\xa6" Greek_PHI
-<Greek_GAMMA> : "\xce\x93" Greek_GAMMA
-<Greek_ETA> : "\xce\x97" Greek_ETA
-<Greek_XI> : "\xce\x9e" Greek_XI
-<Greek_KAPPA> : "\xce\x9a" Greek_KAPPA
-<Greek_LAMDA> : "\xce\x9b" Greek_LAMDA
-<z> : "\xce\xb6" Greek_zeta
-<x> : "\xcf\x87" Greek_chi
-<c> : "\xcf\x88" Greek_psi
-<v> : "\xcf\x89" Greek_omega
-<b> : "\xce\xb2" Greek_beta
-<n> : "\xce\xbd" Greek_nu
-<m> : "\xce\xbc" Greek_mu
-<Greek_zeta> : "\xc2\x98" Greek_zeta
-<Greek_chi> : "\xcf\x87" Greek_chi
-<Greek_psi> : "\xcf\x88" Greek_psi
-<Greek_omega> : "\xcf\x89" Greek_omega
-<Greek_beta> : "\xce\xb2" Greek_beta
-<Greek_nu> : "\xce\xbd" Greek_nu
-<Greek_mu> : "\xce\xbc" Greek_mu
-<Z> : "\xce\x96" Greek_ZETA
-<X> : "\xce\xa7" Greek_CHI
-<C> : "\xce\xa8" Greek_PSI
-<V> : "\xce\xa9" Greek_OMEGA
-<B> : "\xce\x92" Greek_BETA
-<N> : "\xce\x9d" Greek_NU
-<M> : "\xce\x9c" Greek_MU
-<less> : "\x3b" semicolon
-<greater> : "\x3a" colon
-<question> : "\xc2\xb7" periodcentered
-<Greek_ZETA> : "\xce\x96" Greek_ZETA
-<Greek_CHI> : "\xce\xa7" Greek_CHI
-<Greek_PSI> : "\xce\xa8" Greek_PSI
-<Greek_OMEGA> : "\xce\xa9" Greek_OMEGA
-<Greek_BETA> : "\xce\x92" Greek_BETA
-<Greek_NU> : "\xce\x9d" Greek_NU
-<Greek_MU> : "\xce\x9c" Greek_MU
-<periodcentered> : "\xc2\xb7" periodcentered
-<dead_acute> <Greek_alpha> :"\xce\xac" Greek_alphaaccent
-<dead_acute> <Greek_epsilon> :"\xce\xad" Greek_epsilonaccent
-<dead_acute> <Greek_eta> :"\xce\xae" Greek_etaaccent
-<dead_acute> <Greek_iota> :"\xce\xaf" Greek_iotaaccent
-<dead_acute> <Greek_omicron> :"\xcf\x8c" Greek_omicronaccent
-<dead_acute> <Greek_upsilon> :"\xcf\x8d" Greek_upsilonaccent
-<dead_acute> <Greek_omega> :"\xcf\x8e" Greek_omegaaccent
-<dead_acute> <Greek_ALPHA> :"\xce\x86" Greek_ALPHAaccent
-<dead_acute> <Greek_EPSILON> :"\xce\x88" Greek_EPSILONaccent
-<dead_acute> <Greek_ETA> :"\xce\x89" Greek_ETAaccent
-<dead_acute> <Greek_IOTA> :"\xce\x8a" Greek_IOTAaccent
-<dead_acute> <Greek_OMICRON> :"\xce\x8c" Greek_OMICRONaccent
-<dead_acute> <Greek_UPSILON> :"\xce\x8e" Greek_UPSILONaccent
-<dead_acute> <Greek_OMEGA> :"\xce\x8f" Greek_OMEGAaccent
-<dead_diaeresis> <Greek_iota> :"\xcf\x8a" Greek_iotadieresis
-<dead_diaeresis> <Greek_upsilon> :"\xcf\x8b" Greek_upsilondieresis
-<diaeresis> <Greek_IOTA> :"\xce\xaa" Greek_IOTAdiaeresis
-<diaeresis> <Greek_UPSILON> :"\xce\xab" Greek_UPSILONdieresis
-<dead_acute> <dead_diaeresis> <Greek_upsilon> :"\xce\xb0"
-<dead_diaeresis> <dead_acute> <Greek_upsilon> :"\xce\xb0"
-<dead_acute> <dead_diaeresis> <Greek_iota> :"\xce\x90"
-<dead_diaeresis> <dead_acute> <Greek_iota> :"\xce\x90"
-<ordfeminine> <0> :"\xc2\xb1" plusminus
-<ordfeminine> <1> :"\xc2\xa7" section
-<ordfeminine> <2> :"\xc2\xb2" twosuperior
-<ordfeminine> <3> :"\xc2\xb3" threesuperior
-<ordfeminine> <4> :""
-<ordfeminine> <5> :"\xc2\xa6" brokenbar
-<ordfeminine> <6> :"\xc2\xa9" copyright
-<ordfeminine> <7> :"\xc2\xac" notequal
-<ordfeminine> <8> :"\xc2\xad" hyphen
-<ordfeminine> <9> :"\xc2\xb0" degree
-<ordfeminine> <hyphen> :"\xc2\xbd" onehalf
-<ordfeminine> <equal> :""
-<ordfeminine> <backslash> :"\xc2\xa3" sterling
-<ordfeminine> <braceleft> :"\xca\xbd"
-<ordfeminine> <braceright> :"\xca\xbc"
-<ordfeminine> <bracketleft> :"\xc2\xab" guillemotleft
-<ordfeminine> <bracketright> :"\xc2\xbb" guillemotright
+<Multi_key> <o> <c> : "©" copyright
+<Multi_key> <o> <C> : "©" copyright
+<Multi_key> <O> <c> : "©" copyright
+<Multi_key> <O> <C> : "©" copyright
-END_STATE
+<Multi_key> <o> <r> : "®" registered
+<Multi_key> <o> <R> : "®" registered
+<Multi_key> <O> <r> : "®" registered
+<Multi_key> <O> <R> : "®" registered
-STATE "[ Thai ]"
-Ctrl<space> : SWITCH_STATE_TO "[ English/European ]"
-<Multi_key> <c> <c> : SWITCH_STATE_TO "[ Cyrillic ]"
-<Multi_key> <g> <g> : SWITCH_STATE_TO "[ Greek ]"
-<Multi_key> <a> <r> : SWITCH_STATE_TO "[ Arabic ]"
-<Multi_key> <h> <h> : SWITCH_STATE_TO "[ Hebrew ]"
-<Multi_key> <u> <h> : SWITCH_STATE_TO "[ Unicode Hex ]"
-<Multi_key> <u> <o> : SWITCH_STATE_TO "[ Unicode Octal ]"
-<Multi_key> <l> <l> : SWITCH_STATE_TO "[ Lookup ]"
-<Multi_key> <j> <a> : SWITCH_STATE_TO "[ Japanese ]"
-<Multi_key> <k> <o> : SWITCH_STATE_TO "[ Korean ]"
-<Multi_key> <s> <c> : SWITCH_STATE_TO "[ S-Chinese ]"
-<Multi_key> <t> <c> : SWITCH_STATE_TO "[ T-Chinese ]"
+<Multi_key> <period> <greater> : "›" U203a
+<Multi_key> <period> <less> : "‹" U2039
+<Multi_key> <period> <period> : "·" U00B7
+<Multi_key> <exclam> <asciicircum> : "¦" brokenbar
+<Multi_key> <exclam> <exclam> : "¡" exclamdown
+<Multi_key> <p> <exclam> : "¶" paragraph
+<Multi_key> <P> <exclam> : "¶" paragraph
+<Multi_key> <plus> <minus> : "±" plusminus
+<Multi_key> <question> <question> : "¿" questiondown
+<Multi_key> <minus> <d> : "Ä‘" dstroke
+<Multi_key> <minus> <D> : "Ä" Dstroke
+<Multi_key> <s> <s> : "ß" ssharp
-Ctrl<T> <c> <c> : SWITCH_STATE_TO "[ Cyrillic ]"
-Ctrl<T> <g> <g> : SWITCH_STATE_TO "[ Greek ]"
-Ctrl<T> <a> <r> : SWITCH_STATE_TO "[ Arabic ]"
-Ctrl<T> <h> <h> : SWITCH_STATE_TO "[ Hebrew ]"
-Ctrl<T> <u> <h> : SWITCH_STATE_TO "[ Unicode Hex ]"
-Ctrl<T> <u> <o> : SWITCH_STATE_TO "[ Unicode Octal ]"
-Ctrl<T> <l> <l> : SWITCH_STATE_TO "[ Lookup ]"
-Ctrl<T> <j> <a> : SWITCH_STATE_TO "[ Japanese ]"
-Ctrl<T> <k> <o> : SWITCH_STATE_TO "[ Korean ]"
-Ctrl<T> <s> <c> : SWITCH_STATE_TO "[ S-Chinese ]"
-Ctrl<T> <t> <c> : SWITCH_STATE_TO "[ T-Chinese ]"
+<Multi_key> <o> <e> : "Å“" oe
+<Multi_key> <O> <E> : "Å’" OE
+<Multi_key> <a> <e> : "æ" ae
+<Multi_key> <A> <E> : "Æ" AE
-<exclam> : "\x2b"
-<2> : "\x2f"
-<3> : "\x2d"
-<W> : "\x22"
-<braceright> : "\x2c"
-<quotedbl> : "\x2e"
-<backslash> : "\x5f"
-<bar> : "\x25"
-<Z> : "\x28"
-<X> : "\x29"
-<M> : "\x3f"
-<d> : "\xe0\xb8\x81"
-<minus> : "\xe0\xb8\x82"
-<grave> : "\xe0\xb8\x83"
-<8> : "\xe0\xb8\x84"
-<asciitilde> : "\xe0\xb8\x85"
-<S> : "\xe0\xb8\x86"
-<apostrophe> : "\xe0\xb8\x87"
-<0> : "\xe0\xb8\x88"
-<C> : "\xe0\xb8\x89"
-<equal> : "\xe0\xb8\x8a"
-<colon> : "\xe0\xb8\x8b"
-<G> : "\xe0\xb8\x8c"
-<P> : "\xe0\xb8\x8d"
-<E> : "\xe0\xb8\x8e"
-<D> : "\xe0\xb8\x8f"
-<braceleft> : "\xe0\xb8\x90"
-<R> : "\xe0\xb8\x91"
-<less> : "\xe0\xb8\x92"
-<I> : "\xe0\xb8\x93"
-<f> : "\xe0\xb8\x94"
-<9> : "\xe0\xb8\x95"
-<5> : "\xe0\xb8\x96"
-<m> : "\xe0\xb8\x97"
-<T> : "\xe0\xb8\x98"
-<o> : "\xe0\xb8\x99"
-<bracketleft> : "\xe0\xb8\x9a"
-<x> : "\xe0\xb8\x9b"
-<z> : "\xe0\xb8\x9c"
-<slash> : "\xe0\xb8\x9d"
-<r> : "\xe0\xb8\x9e"
-<a> : "\xe0\xb8\x9f"
-<4> : "\xe0\xb8\xa0"
-<comma> : "\xe0\xb8\xa1"
-<p> : "\xe0\xb8\xa2"
-<i> : "\xe0\xb8\xa3"
-<A> : "\xe0\xb8\xa4"
-<bracketright> : "\xe0\xb8\xa5"
-<question> : "\xe0\xb8\xa6"
-<semicolon> : "\xe0\xb8\xa7"
-<L> : "\xe0\xb8\xa8"
-<K> : "\xe0\xb8\xa9"
-<l> : "\xe0\xb8\xaa"
-<s> : "\xe0\xb8\xab"
-<greater> : "\xe0\xb8\xac"
-<v> : "\xe0\xb8\xad"
-<V> : "\xe0\xb8\xae"
-<O> : "\xe0\xb8\xaf"
-<t> : "\xe0\xb8\xb0"
-<y> : "\xe0\xb8\xb1"
-<k> : "\xe0\xb8\xb2"
-<e> : "\xe0\xb8\xb3"
-<b> : "\xe0\xb8\xb4"
-<u> : "\xe0\xb8\xb5"
-<7> : "\xe0\xb8\xb6"
-<n> : "\xe0\xb8\xb7"
-<6> : "\xe0\xb8\xb8"
-<asciicircum> : "\xe0\xb8\xb9"
-<B> : "\xe0\xb8\xba"
-<ampersand> : "\xe0\xb8\xbf"
-<g> : "\xe0\xb9\x80"
-<c> : "\xe0\xb9\x81"
-<F> : "\xe0\xb9\x82"
-<period> : "\xe0\xb9\x83"
-<w> : "\xe0\xb9\x84"
-<1> : "\xe0\xb9\x85"
-<q> : "\xe0\xb9\x86"
-<H> : "\xe0\xb9\x87"
-<j> : "\xe0\xb9\x88"
-<h> : "\xe0\xb9\x89"
-<U> : "\xe0\xb9\x8a"
-<J> : "\xe0\xb9\x8b"
-<N> : "\xe0\xb9\x8c"
-<Y> : "\xe0\xb9\x8d"
-<Q> : "\xe0\xb9\x90"
-<at> : "\xe0\xb9\x91"
-<numbersign> : "\xe0\xb9\x92"
-<dollar> : "\xe0\xb9\x93"
-<percent> : "\xe0\xb9\x94"
-<asterisk> : "\xe0\xb9\x95"
-<parenleft> : "\xe0\xb9\x96"
-<parenright> : "\xe0\xb9\x97"
-<underscore> : "\xe0\xb9\x98"
-<plus> : "\xe0\xb9\x99"
-END_STATE
+<Multi_key> <o> <o> : "°" degree # ^0 already taken
-STATE "[ Arabic ]"
-Ctrl<space> : SWITCH_STATE_TO "[ English/European ]"
-<Multi_key> <c> <c> : SWITCH_STATE_TO "[ Cyrillic ]"
-<Multi_key> <g> <g> : SWITCH_STATE_TO "[ Greek ]"
-<Multi_key> <t> <t> : SWITCH_STATE_TO "[ Thai ]"
-<Multi_key> <h> <h> : SWITCH_STATE_TO "[ Hebrew ]"
-<Multi_key> <u> <h> : SWITCH_STATE_TO "[ Unicode Hex ]"
-<Multi_key> <u> <o> : SWITCH_STATE_TO "[ Unicode Octal ]"
-<Multi_key> <l> <l> : SWITCH_STATE_TO "[ Lookup ]"
-<Multi_key> <j> <a> : SWITCH_STATE_TO "[ Japanese ]"
-<Multi_key> <k> <o> : SWITCH_STATE_TO "[ Korean ]"
-<Multi_key> <s> <c> : SWITCH_STATE_TO "[ S-Chinese ]"
-<Multi_key> <t> <c> : SWITCH_STATE_TO "[ T-Chinese ]"
+XCOMM Quotation marks
+<Multi_key> <quotedbl> <backslash> : "ã€" U301d # REVERSED DOUBLE PRIME QUOTATION MARK
+<Multi_key> <quotedbl> <slash> : "〞" U301e # DOUBLE PRIME QUOTATION MARK
+<Multi_key> <less> <less> : "«" guillemotleft # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+<Multi_key> <greater> <greater> : "»" guillemotright # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+<Multi_key> <less> <apostrophe> : "‘" U2018 # LEFT SINGLE QUOTATION MARK
+<Multi_key> <apostrophe> <less> : "‘" U2018 # LEFT SINGLE QUOTATION MARK
+<Multi_key> <greater> <apostrophe> : "’" U2019 # RIGHT SINGLE QUOTATION MARK
+<Multi_key> <apostrophe> <greater> : "’" U2019 # RIGHT SINGLE QUOTATION MARK
+<Multi_key> <comma> <apostrophe> : "‚" U201a # SINGLE LOW-9 QUOTATION MARK
+<Multi_key> <apostrophe> <comma> : "‚" U201a # SINGLE LOW-9 QUOTATION MARK
+<Multi_key> <less> <quotedbl> : "“" U201c # LEFT DOUBLE QUOTATION MARK
+<Multi_key> <quotedbl> <less> : "“" U201c # LEFT DOUBLE QUOTATION MARK
+<Multi_key> <greater> <quotedbl> : "â€" U201d # RIGHT DOUBLE QUOTATION MARK
+<Multi_key> <quotedbl> <greater> : "â€" U201d # RIGHT DOUBLE QUOTATION MARK
+<Multi_key> <comma> <quotedbl> : "„" U201e # DOUBLE LOW-9 QUOTATION MARK
+<Multi_key> <quotedbl> <comma> : "„" U201e # DOUBLE LOW-9 QUOTATION MARK
-Ctrl<T> <c> <c> : SWITCH_STATE_TO "[ Cyrillic ]"
-Ctrl<T> <g> <g> : SWITCH_STATE_TO "[ Greek ]"
-Ctrl<T> <t> <t> : SWITCH_STATE_TO "[ Thai ]"
-Ctrl<T> <h> <h> : SWITCH_STATE_TO "[ Hebrew ]"
-Ctrl<T> <u> <h> : SWITCH_STATE_TO "[ Unicode Hex ]"
-Ctrl<T> <u> <o> : SWITCH_STATE_TO "[ Unicode Octal ]"
-Ctrl<T> <l> <l> : SWITCH_STATE_TO "[ Lookup ]"
-Ctrl<T> <j> <a> : SWITCH_STATE_TO "[ Japanese ]"
-Ctrl<T> <k> <o> : SWITCH_STATE_TO "[ Korean ]"
-Ctrl<T> <s> <c> : SWITCH_STATE_TO "[ S-Chinese ]"
-Ctrl<T> <t> <c> : SWITCH_STATE_TO "[ T-Chinese ]"
+XCOMM Per xxx
+<Multi_key> <percent> <o> : "‰" U2030 # PER MILLE SIGN
-# <0> Arabic-Indic Digit Zero
-<0> : "\xd9\xa0"
-# <1> Arabic-Indic Digit One
-<1> : "\xd9\xa1"
-# <2> Arabic-Indic Digit Two
-<2> : "\xd9\xa2"
-# <3> Arabic-Indic Digit Three
-<3> : "\xd9\xa3"
-# <4> Arabic-Indic Digit Four
-<4> : "\xd9\xa4"
-# <5> Arabic-Indic Digit Five
-<5> : "\xd9\xa5"
-# <6> Arabic-Indic Digit Six
-<6> : "\xd9\xa6"
-# <7> Arabic-Indic Digit Seven
-<7> : "\xd9\xa7"
-# <8> Arabic-Indic Digit Eight
-<8> : "\xd9\xa8"
-# <9> Arabic-Indic Digit Nine
-<9> : "\xd9\xa9"
+XCOMM Currencies
+<Multi_key> <C> <E> : "â‚ " U20a0 # EURO-CURRENCY SIGN
+<Multi_key> <C> <slash> : "â‚¡" U20a1 # COLON SIGN
+<Multi_key> <slash> <C> : "â‚¡" U20a1 # COLON SIGN
+<Multi_key> <C> <r> : "â‚¢" U20a2 # CRUZEIRO SIGN
+<Multi_key> <F> <r> : "â‚£" U20a3 # FRENCH FRANC SIGN
+<Multi_key> <L> <equal> : "₤" U20a4 # LIRA SIGN
+<Multi_key> <equal> <L> : "₤" U20a4 # LIRA SIGN
+<Multi_key> <m> <slash> : "â‚¥" U20a5 # MILL SIGN
+<Multi_key> <slash> <m> : "â‚¥" U20a5 # MILL SIGN
+<Multi_key> <N> <equal> : "₦" U20a6 # NAIRA SIGN
+<Multi_key> <equal> <N> : "₦" U20a6 # NAIRA SIGN
+<Multi_key> <P> <t> : "₧" U20a7 # PESETA SIGN
+<Multi_key> <R> <s> : "₨" U20a8 # RUPEE SIGN
+<Multi_key> <W> <equal> : "â‚©" U20a9 # WON SIGN
+<Multi_key> <equal> <W> : "â‚©" U20a9 # WON SIGN
+XCOMM "₪" U20aa NEW SHEQEL SIGN
+<Multi_key> <d> <minus> : "â‚«" U20ab # DONG SIGN
+<Multi_key> <C> <equal> : "€" EuroSign # EURO SIGN
+<Multi_key> <equal> <C> : "€" EuroSign # EURO SIGN
+<Multi_key> <E> <equal> : "€" EuroSign # EURO SIGN
+<Multi_key> <equal> <E> : "€" EuroSign # EURO SIGN
-<a> : "\xd8\xb4"
-<A> : "\x5c"
-<apostrophe> : "\xd8\xb7"
-<asciitilde> : "\xd9\x91"
-<b> : "\xd9\x84\xd8\xa7"
-<B> : "\xd9\x84\xd8\xa2"
-<backslash> : "\xd9\x80"
-<bracketleft> : "\xd8\xac"
-<bracketright> : "\xd8\xaf"
-<c> : "\xd8\xa4"
-<C> : "\xd9\x8d"
-<comma> : "\xd9\x88"
-<d> : "\xd9\x8a"
-<D> : "\x5d"
-<e> : "\xd8\xab"
-<E> : "\xd9\x8f"
-<f> : "\xd8\xa8"
-<F> : "\x5b"
-<g> : "\xd9\x84"
-<G> : "\xd9\x84\xd8\xa3"
-<grave> : "\xd8\xb0"
-<greater> : "\x2e"
-<h> : "\xd8\xa7"
-<H> : "\xd8\xa3"
-<i> : "\xd9\x87"
-<j> : "\xd8\xaa"
-<k> : "\xd9\x86"
-<K> : "\xd8\x8c"
-<l> : "\xd9\x85"
-<L> : "\x2f"
-<m> : "\xd8\xa9"
-# previously <M> : "\xd9\x8f"
-<M> : "\xd9\xac"
-<n> : "\xd9\x89"
-<N> : "\xd8\xa2"
-<o> : "\xd8\xae"
-<p> : "\xd8\xad"
-<P> : "\xd8\x9b"
-<period> : "\xd8\xb2"
-<q> : "\xd8\xb6"
-<Q> : "\xd9\x8e"
-<question> : "\xd8\x9f"
-<r> : "\xd9\x82"
-<R> : "\xd9\x8c"
-<s> : "\xd8\xb3"
-<semicolon> : "\xd9\x83"
-<slash> : "\xd8\xb8"
-<smaller> : "\x2c"
-<t> : "\xd9\x81"
-<u> : "\xd8\xb9"
-<v> : "\xd8\xb1"
-<V> : "\xd9\x90"
-<w> : "\xd8\xb5"
-<W> : "\xd9\x8b"
-<x> : "\xd8\xa1"
-<y> : "\xd8\xba"
-<Y> : "\xd8\xa5"
-<z> : "\xd8\xa6"
+<Multi_key> <bar> <c> : "¢" U00A2 # CENT SIGN
+<Multi_key> <bar> <C> : "¢" U00A2 # CENT SIGN
+<Multi_key> <c> <bar> : "¢" U00A2 # CENT SIGN
+<Multi_key> <C> <bar> : "¢" U00A2 # CENT SIGN
+<Multi_key> <c> <slash> : "¢" U00A2 # CENT SIGN
+<Multi_key> <C> <slash> : "¢" U00A2 # CENT SIGN
+<Multi_key> <slash> <c> : "¢" U00A2 # CENT SIGN
+<Multi_key> <slash> <C> : "¢" U00A2 # CENT SIGN
+<Multi_key> <L> <minus> : "£" U00a3 # POUND SIGN
+<Multi_key> <minus> <L> : "£" U00a3 # POUND SIGN
+<Multi_key> <Y> <equal> : "Â¥" yen
+<Multi_key> <equal><Y> : "Â¥" yen
-END_STATE
+XCOMM Long S
+<Multi_key> <f> <s> : "Å¿" U017f # LONG S
+<Multi_key> <f> <S> : "Å¿" U017f # LONG S
-STATE "[ Hebrew ]"
-Ctrl<space> : SWITCH_STATE_TO "[ English/European ]"
-<Multi_key> <c> <c> : SWITCH_STATE_TO "[ Cyrillic ]"
-<Multi_key> <g> <g> : SWITCH_STATE_TO "[ Greek ]"
-<Multi_key> <t> <t> : SWITCH_STATE_TO "[ Thai ]"
-<Multi_key> <a> <r> : SWITCH_STATE_TO "[ Arabic ]"
-<Multi_key> <u> <h> : SWITCH_STATE_TO "[ Unicode Hex ]"
-<Multi_key> <u> <o> : SWITCH_STATE_TO "[ Unicode Octal ]"
-<Multi_key> <l> <l> : SWITCH_STATE_TO "[ Lookup ]"
-<Multi_key> <j> <a> : SWITCH_STATE_TO "[ Japanese ]"
-<Multi_key> <k> <o> : SWITCH_STATE_TO "[ Korean ]"
-<Multi_key> <s> <c> : SWITCH_STATE_TO "[ S-Chinese ]"
-<Multi_key> <t> <c> : SWITCH_STATE_TO "[ T-Chinese ]"
+XCOMM Dashes
+<Multi_key> <minus> <minus> <period> : "–" U2013 # EN DASH
+<Multi_key> <minus> <minus> <minus> : "—" U2014 # EM DASH
-Ctrl<T> <c> <c> : SWITCH_STATE_TO "[ Cyrillic ]"
-Ctrl<T> <g> <g> : SWITCH_STATE_TO "[ Greek ]"
-Ctrl<T> <t> <t> : SWITCH_STATE_TO "[ Thai ]"
-Ctrl<T> <a> <r> : SWITCH_STATE_TO "[ Arabic ]"
-Ctrl<T> <u> <h> : SWITCH_STATE_TO "[ Unicode Hex ]"
-Ctrl<T> <u> <o> : SWITCH_STATE_TO "[ Unicode Octal ]"
-Ctrl<T> <l> <l> : SWITCH_STATE_TO "[ Lookup ]"
-Ctrl<T> <j> <a> : SWITCH_STATE_TO "[ Japanese ]"
-Ctrl<T> <k> <o> : SWITCH_STATE_TO "[ Korean ]"
-Ctrl<T> <s> <c> : SWITCH_STATE_TO "[ S-Chinese ]"
-Ctrl<T> <t> <c> : SWITCH_STATE_TO "[ T-Chinese ]"
+XCOMM Musical alterations
+<Multi_key> <numbersign> <b> : "â™­" U266d # MUSIC FLAT SIGN
+<Multi_key> <numbersign> <f> : "â™®" U266e # MUSIC NATURAL SIGN
+<Multi_key> <numbersign> <numbersign> : "♯" U266f # MUSIC SHARP SIGN
-<q> : "\x2f"
-<w> : "\x27"
-<e> : "\xd7\xa7"
-<r> : "\xd7\xa8"
-<t> : "\xd7\x90"
-<y> : "\xd7\x98"
-<u> : "\xd7\x95"
-<i> : "\xd7\x9f"
-<o> : "\xd7\x9d"
-<p> : "\xd7\xa4"
-<a> : "\xd7\xa9"
-<s> : "\xd7\x93"
-<d> : "\xd7\x92"
-<f> : "\xd7\x9b"
-<g> : "\xd7\xa2"
-<h> : "\xd7\x99"
-<j> : "\xd7\x97"
-<k> : "\xd7\x9c"
-<l> : "\xd7\x9a"
-<semicolon> : "\xd7\xa3"
-<z> : "\xd7\x96"
-<x> : "\xd7\xa1"
-<c> : "\xd7\x91"
-<v> : "\xd7\x94"
-<b> : "\xd7\xa0"
-<n> : "\xd7\x9e"
-<m> : "\xd7\xa6"
-<comma> : "\xd7\xaa"
-<period> : "\xd7\xa5"
-<slash> : "\x2f"
-<grave> : "\x3b"
-<apostrophe> : "\x2c"
-END_STATE
+XCOMM Other symbols
+<Multi_key> <s> <o> : "§" section # SECTION SIGN
+<Multi_key> <o> <s> : "§" section # SECTION SIGN
-STATE "[ Unicode Hex ]"
-STATE_TYPE: CODE_INPUT
-#attributes
-MAX_INPUT_LENGTH: 4 # 1|2|3|4|5|,...
- # when the number of input sequence
- # reaches to the given number,
- # conversion occurs automatically.
+<Multi_key> <o> <x> : "¤" currency
+<Multi_key> <x> <o> : "¤" currency
-TYPE_OF_INPUT: HEX # HEX or OCTET. The default is HEX.
- # If it's HEX, valid input is: 0-9,
- # a-f, A-F.
- # If it's OCTET, valid input is: 0-7
-#end of attributes
-#actions
-Ctrl<w> : DO_LOOKUP
-<space> : DO_CONV
- # force to convert input sequence into
- # a character before MAX_INPUT_LENGTH
- # of characters are input.
-Ctrl<n> : NEXT_PAGE
-Ctrl<p> : PREV_PAGE
-Ctrl<a> : TOP_PAGE
-Ctrl<e> : LAST_PAGE
-<Right> : NEXT_CAND
-<Left> : PREV_CAND
-<Up> : UP_CAND
-<Down> : DOWN_CAND
-Ctrl<k> : SELECT_CAND
-#end of actions
-Ctrl<space> : SWITCH_STATE_TO "[ English/European ]"
-<Multi_key> <c> <c> : SWITCH_STATE_TO "[ Cyrillic ]"
-<Multi_key> <g> <g> : SWITCH_STATE_TO "[ Greek ]"
-<Multi_key> <t> <t> : SWITCH_STATE_TO "[ Thai ]"
-<Multi_key> <a> <r> : SWITCH_STATE_TO "[ Arabic ]"
-<Multi_key> <h> <h> : SWITCH_STATE_TO "[ Hebrew ]"
-<Multi_key> <u> <o> : SWITCH_STATE_TO "[ Unicode Octal ]"
-<Multi_key> <l> <l> : SWITCH_STATE_TO "[ Lookup ]"
-<Multi_key> <j> <a> : SWITCH_STATE_TO "[ Japanese ]"
-<Multi_key> <k> <o> : SWITCH_STATE_TO "[ Korean ]"
-<Multi_key> <s> <c> : SWITCH_STATE_TO "[ S-Chinese ]"
-<Multi_key> <t> <c> : SWITCH_STATE_TO "[ T-Chinese ]"
+<Multi_key> <P> <P> : "¶" paragraph # PILCROW SIGN (PARAGRAPH SIGN)
-Ctrl<T> <c> <c> : SWITCH_STATE_TO "[ Cyrillic ]"
-Ctrl<T> <g> <g> : SWITCH_STATE_TO "[ Greek ]"
-Ctrl<T> <t> <t> : SWITCH_STATE_TO "[ Thai ]"
-Ctrl<T> <a> <r> : SWITCH_STATE_TO "[ Arabic ]"
-Ctrl<T> <h> <h> : SWITCH_STATE_TO "[ Hebrew ]"
-Ctrl<T> <u> <o> : SWITCH_STATE_TO "[ Unicode Octal ]"
-Ctrl<T> <l> <l> : SWITCH_STATE_TO "[ Lookup ]"
-Ctrl<T> <j> <a> : SWITCH_STATE_TO "[ Japanese ]"
-Ctrl<T> <k> <o> : SWITCH_STATE_TO "[ Korean ]"
-Ctrl<T> <s> <c> : SWITCH_STATE_TO "[ S-Chinese ]"
-Ctrl<T> <t> <c> : SWITCH_STATE_TO "[ T-Chinese ]"
-END_STATE
+XCOMM Part 2
-STATE "[ Unicode Octal ]"
-STATE_TYPE: CODE_INPUT
-#attributes
-MAX_INPUT_LENGTH: 6 # 1|2|3|4|5|,...
- # when the number of input sequence
- # reaches to the given number,
- # conversion occurs automatically.
+XCOMM Compose map for Korean Hangul(Choseongul) Conjoining Jamos automatically
+XCOMM generated from UnicodeData-2.0.14.txt at
+XCOMM ftp://ftp.unicode.org/Public/2.0-Update/UnicodeData-2.0.14.txt
+XCOMM by Jungshik Shin <jshin@jshin.net> 2002-10-17
+XCOMM There are some conflicts among sequences, but I left them alone.
+XCOMM
+XCOMM group 1: cluster jamos made of three basic jamos
-TYPE_OF_INPUT: OCTET # HEX or OCTET. The default is HEX.
- # If it's HEX, valid input is: 0-9,
- # a-f, A-F.
- # If it's OCTET, valid input is: 0-7
-#end of attributes
-#actions
-Ctrl<w> : DO_LOOKUP
-<space> : DO_CONV
- # force to convert input sequence into
- # a character before MAX_INPUT_LENGTH
- # of characters are input.
-Ctrl<n> : NEXT_PAGE
-Ctrl<p> : PREV_PAGE
-Ctrl<a> : TOP_PAGE
-Ctrl<e> : LAST_PAGE
-<Right> : NEXT_CAND
-<Left> : PREV_CAND
-<Up> : UP_CAND
-<Down> : DOWN_CAND
-Ctrl<k> : SELECT_CAND
-#end of actions
-Ctrl<space> : SWITCH_STATE_TO "[ English/European ]"
-<Multi_key> <c> <c> : SWITCH_STATE_TO "[ Cyrillic ]"
-<Multi_key> <g> <g> : SWITCH_STATE_TO "[ Greek ]"
-<Multi_key> <t> <t> : SWITCH_STATE_TO "[ Thai ]"
-<Multi_key> <a> <r> : SWITCH_STATE_TO "[ Arabic ]"
-<Multi_key> <h> <h> : SWITCH_STATE_TO "[ Hebrew ]"
-<Multi_key> <u> <h> : SWITCH_STATE_TO "[ Unicode Hex ]"
-<Multi_key> <l> <l> : SWITCH_STATE_TO "[ Lookup ]"
-<Multi_key> <j> <a> : SWITCH_STATE_TO "[ Japanese ]"
-<Multi_key> <k> <o> : SWITCH_STATE_TO "[ Korean ]"
-<Multi_key> <s> <c> : SWITCH_STATE_TO "[ S-Chinese ]"
-<Multi_key> <t> <c> : SWITCH_STATE_TO "[ T-Chinese ]"
+ <Multi_key> <U1107> <U1109> <U1100> : "ᄢ" U1122 # ᄇᅠ ᄉᅠ ᄀᅠ = ᄢᅠ
+ <Multi_key> <U1107> <U1109> <U1103> : "ᄣ" U1123 # ᄇᅠ ᄉᅠ ᄃᅠ = ᄣᅠ
+ <Multi_key> <U1107> <U1109> <U1107> : "ᄤ" U1124 # ᄇᅠ ᄉᅠ ᄇᅠ = ᄤᅠ
+ <Multi_key> <U1107> <U1109> <U1109> : "ᄥ" U1125 # ᄇᅠ ᄉᅠ ᄉᅠ = ᄥᅠ
+ <Multi_key> <U1107> <U1109> <U110c> : "ᄦ" U1126 # ᄇᅠ ᄉᅠ ᄌᅠ = ᄦᅠ
+ <Multi_key> <U1107> <U1107> <U110b> : "ᄬ" U112c # ᄇᅠ ᄇᅠ ᄋᅠ = ᄬᅠ
+ <Multi_key> <U1109> <U1107> <U1100> : "ᄳ" U1133 # ᄉᅠ ᄇᅠ ᄀᅠ = ᄳᅠ
+ <Multi_key> <U1109> <U1109> <U1109> : "ᄴ" U1134 # ᄉᅠ ᄉᅠ ᄉᅠ = ᄴᅠ
+ <Multi_key> <U1169> <U1161> <U1175> : "á…«" U116b # á…Ÿá…© á…Ÿá…¡ á…Ÿá…µ = á…Ÿá…«
+ <Multi_key> <U116e> <U1165> <U1175> : "á…°" U1170 # á…Ÿá…® á…Ÿá…¥ á…Ÿá…µ = á…Ÿá…°
+ <Multi_key> <U116e> <U1165> <U1173> : "ᆋ" U118b # ᅟᅮ ᅟᅥ ᅟᅳ = ᅟᆋ
+ <Multi_key> <U11a8> <U11ba> <U11a8> : "ᇄ" U11c4 # ᅟᅠᆨ ᅟᅠᆺ ᅟᅠᆨ = ᅟᅠᇄ
+ <Multi_key> <U11af> <U11a8> <U11ba> : "ᇌ" U11cc # ᅟᅠᆯ ᅟᅠᆨ ᅟᅠᆺ = ᅟᅠᇌ
+ <Multi_key> <U11af> <U11ae> <U11c2> : "á‡" U11cf # ᅟᅠᆯ ᅟᅠᆮ ᅟᅠᇂ = á…Ÿá… á‡
+ <Multi_key> <U11af> <U11b7> <U11a8> : "ᇑ" U11d1 # ᅟᅠᆯ ᅟᅠᆷ ᅟᅠᆨ = ᅟᅠᇑ
+ <Multi_key> <U11af> <U11b7> <U11ba> : "ᇒ" U11d2 # ᅟᅠᆯ ᅟᅠᆷ ᅟᅠᆺ = ᅟᅠᇒ
+ <Multi_key> <U11af> <U11b8> <U11ba> : "ᇓ" U11d3 # ᅟᅠᆯ ᅟᅠᆸ ᅟᅠᆺ = ᅟᅠᇓ
+ <Multi_key> <U11af> <U11b8> <U11c2> : "ᇔ" U11d4 # ᅟᅠᆯ ᅟᅠᆸ ᅟᅠᇂ = ᅟᅠᇔ
+ <Multi_key> <U11af> <U11b8> <U11bc> : "ᇕ" U11d5 # ᅟᅠᆯ ᅟᅠᆸ ᅟᅠᆼ = ᅟᅠᇕ
+ <Multi_key> <U11af> <U11ba> <U11ba> : "ᇖ" U11d6 # ᅟᅠᆯ ᅟᅠᆺ ᅟᅠᆺ = ᅟᅠᇖ
+ <Multi_key> <U11b7> <U11ba> <U11ba> : "ᇞ" U11de # ᅟᅠᆷ ᅟᅠᆺ ᅟᅠᆺ = ᅟᅠᇞ
+ <Multi_key> <U11bc> <U11a8> <U11a8> : "ᇭ" U11ed # ᅟᅠᆼ ᅟᅠᆨ ᅟᅠᆨ = ᅟᅠᇭ
+ <Multi_key> <U1100> <U1100> : "á„" U1101 # ᄀᅠ ᄀᅠ = á„á… 
+ <Multi_key> <U1103> <U1103> : "ᄄ" U1104 # ᄃᅠ ᄃᅠ = ᄄᅠ
+ <Multi_key> <U1107> <U1107> : "ᄈ" U1108 # ᄇᅠ ᄇᅠ = ᄈᅠ
+ <Multi_key> <U1109> <U1109> : "ᄊ" U110a # ᄉᅠ ᄉᅠ = ᄊᅠ
+ <Multi_key> <U110c> <U110c> : "á„" U110d # ᄌᅠ ᄌᅠ = á„á… 
+ <Multi_key> <U1102> <U1100> : "ᄓ" U1113 # ᄂᅠ ᄀᅠ = ᄓᅠ
+ <Multi_key> <U1102> <U1102> : "ᄔ" U1114 # ᄂᅠ ᄂᅠ = ᄔᅠ
+ <Multi_key> <U1102> <U1103> : "ᄕ" U1115 # ᄂᅠ ᄃᅠ = ᄕᅠ
+ <Multi_key> <U1102> <U1107> : "ᄖ" U1116 # ᄂᅠ ᄇᅠ = ᄖᅠ
+ <Multi_key> <U1103> <U1100> : "ᄗ" U1117 # ᄃᅠ ᄀᅠ = ᄗᅠ
+ <Multi_key> <U1105> <U1102> : "ᄘ" U1118 # ᄅᅠ ᄂᅠ = ᄘᅠ
+ <Multi_key> <U1105> <U1105> : "ᄙ" U1119 # ᄅᅠ ᄅᅠ = ᄙᅠ
+ <Multi_key> <U1105> <U1112> : "á„š" U111a # á„…á…  á„’á…  = á„šá… 
+ <Multi_key> <U1105> <U110b> : "ᄛ" U111b # ᄅᅠ ᄋᅠ = ᄛᅠ
+ <Multi_key> <U1106> <U1107> : "ᄜ" U111c # ᄆᅠ ᄇᅠ = ᄜᅠ
+ <Multi_key> <U1106> <U110b> : "á„" U111d # ᄆᅠ á„‹á…  = á„á… 
+ <Multi_key> <U1107> <U1100> : "ᄞ" U111e # ᄇᅠ ᄀᅠ = ᄞᅠ
+ <Multi_key> <U1107> <U1102> : "ᄟ" U111f # ᄇᅠ ᄂᅠ = ᄟᅠ
+ <Multi_key> <U1107> <U1103> : "ᄠ" U1120 # ᄇᅠ ᄃᅠ = ᄠᅠ
+ <Multi_key> <U1107> <U1109> : "ᄡ" U1121 # ᄇᅠ ᄉᅠ = ᄡᅠ
+ <Multi_key> <U1107> <U110c> : "ᄧ" U1127 # ᄇᅠ ᄌᅠ = ᄧᅠ
+ <Multi_key> <U1107> <U110e> : "ᄨ" U1128 # ᄇᅠ ᄎᅠ = ᄨᅠ
+ <Multi_key> <U1107> <U1110> : "á„©" U1129 # ᄇᅠ á„á…  = á„©á… 
+ <Multi_key> <U1107> <U1111> : "ᄪ" U112a # ᄇᅠ ᄑᅠ = ᄪᅠ
+ <Multi_key> <U1107> <U110b> : "ᄫ" U112b # ᄇᅠ ᄋᅠ = ᄫᅠ
+ <Multi_key> <U1109> <U1100> : "ᄭ" U112d # ᄉᅠ ᄀᅠ = ᄭᅠ
+ <Multi_key> <U1109> <U1102> : "ᄮ" U112e # ᄉᅠ ᄂᅠ = ᄮᅠ
+ <Multi_key> <U1109> <U1103> : "ᄯ" U112f # ᄉᅠ ᄃᅠ = ᄯᅠ
+ <Multi_key> <U1109> <U1105> : "ᄰ" U1130 # ᄉᅠ ᄅᅠ = ᄰᅠ
+ <Multi_key> <U1109> <U1106> : "ᄱ" U1131 # ᄉᅠ ᄆᅠ = ᄱᅠ
+ <Multi_key> <U1109> <U1107> : "ᄲ" U1132 # ᄉᅠ ᄇᅠ = ᄲᅠ
+ <Multi_key> <U1109> <U110b> : "ᄵ" U1135 # ᄉᅠ ᄋᅠ = ᄵᅠ
+ <Multi_key> <U1109> <U110c> : "ᄶ" U1136 # ᄉᅠ ᄌᅠ = ᄶᅠ
+ <Multi_key> <U1109> <U110e> : "ᄷ" U1137 # ᄉᅠ ᄎᅠ = ᄷᅠ
+ <Multi_key> <U1109> <U110f> : "ᄸ" U1138 # ᄉᅠ á„á…  = ᄸᅠ
+ <Multi_key> <U1109> <U1110> : "ᄹ" U1139 # ᄉᅠ á„á…  = ᄹᅠ
+ <Multi_key> <U1109> <U1111> : "ᄺ" U113a # ᄉᅠ ᄑᅠ = ᄺᅠ
+ <Multi_key> <U1109> <U1112> : "ᄻ" U113b # ᄉᅠ ᄒᅠ = ᄻᅠ
+ <Multi_key> <U113c> <U113c> : "ᄽ" U113d # ᄼᅠ ᄼᅠ = ᄽᅠ
+ <Multi_key> <U113e> <U113e> : "ᄿ" U113f # ᄾᅠ ᄾᅠ = ᄿᅠ
+ <Multi_key> <U110b> <U1100> : "á…" U1141 # á„‹á…  ᄀᅠ = á…á… 
+ <Multi_key> <U110b> <U1103> : "ᅂ" U1142 # ᄋᅠ ᄃᅠ = ᅂᅠ
+ <Multi_key> <U110b> <U1106> : "ᅃ" U1143 # ᄋᅠ ᄆᅠ = ᅃᅠ
+ <Multi_key> <U110b> <U1107> : "ᅄ" U1144 # ᄋᅠ ᄇᅠ = ᅄᅠ
+ <Multi_key> <U110b> <U1109> : "ᅅ" U1145 # ᄋᅠ ᄉᅠ = ᅅᅠ
+ <Multi_key> <U110b> <U1140> : "ᅆ" U1146 # ᄋᅠ ᅀᅠ = ᅆᅠ
+ <Multi_key> <U110b> <U110b> : "ᅇ" U1147 # ᄋᅠ ᄋᅠ = ᅇᅠ
+ <Multi_key> <U110b> <U110c> : "ᅈ" U1148 # ᄋᅠ ᄌᅠ = ᅈᅠ
+ <Multi_key> <U110b> <U110e> : "ᅉ" U1149 # ᄋᅠ ᄎᅠ = ᅉᅠ
+ <Multi_key> <U110b> <U1110> : "á…Š" U114a # á„‹á…  á„á…  = á…Šá… 
+ <Multi_key> <U110b> <U1111> : "á…‹" U114b # á„‹á…  á„‘á…  = á…‹á… 
+ <Multi_key> <U110c> <U110b> : "á…" U114d # ᄌᅠ á„‹á…  = á…á… 
+ <Multi_key> <U114e> <U114e> : "á…" U114f # á…Žá…  á…Žá…  = á…á… 
+ <Multi_key> <U1150> <U1150> : "á…‘" U1151 # á…á…  á…á…  = á…‘á… 
+ <Multi_key> <U110e> <U110f> : "á…’" U1152 # á„Žá…  á„á…  = á…’á… 
+ <Multi_key> <U110e> <U1112> : "á…“" U1153 # á„Žá…  á„’á…  = á…“á… 
+ <Multi_key> <U1111> <U1107> : "ᅖ" U1156 # ᄑᅠ ᄇᅠ = ᅖᅠ
+ <Multi_key> <U1111> <U110b> : "á…—" U1157 # á„‘á…  á„‹á…  = á…—á… 
+ <Multi_key> <U1112> <U1112> : "ᅘ" U1158 # ᄒᅠ ᄒᅠ = ᅘᅠ
+ <Multi_key> <U1161> <U1175> : "á…¢" U1162 # á…Ÿá…¡ á…Ÿá…µ = á…Ÿá…¢
+ <Multi_key> <U1163> <U1175> : "á…¤" U1164 # á…Ÿá…£ á…Ÿá…µ = á…Ÿá…¤
+ <Multi_key> <U1165> <U1175> : "á…¦" U1166 # á…Ÿá…¥ á…Ÿá…µ = á…Ÿá…¦
+ <Multi_key> <U1167> <U1175> : "á…¨" U1168 # á…Ÿá…§ á…Ÿá…µ = á…Ÿá…¨
+ <Multi_key> <U1169> <U1161> : "á…ª" U116a # á…Ÿá…© á…Ÿá…¡ = á…Ÿá…ª
+ <Multi_key> <U1169> <U1175> : "á…¬" U116c # á…Ÿá…© á…Ÿá…µ = á…Ÿá…¬
+ <Multi_key> <U116e> <U1165> : "á…¯" U116f # á…Ÿá…® á…Ÿá…¥ = á…Ÿá…¯
+ <Multi_key> <U116e> <U1175> : "á…±" U1171 # á…Ÿá…® á…Ÿá…µ = á…Ÿá…±
+ <Multi_key> <U1173> <U1175> : "á…´" U1174 # á…Ÿá…³ á…Ÿá…µ = á…Ÿá…´
+ <Multi_key> <U1161> <U1169> : "á…¶" U1176 # á…Ÿá…¡ á…Ÿá…© = á…Ÿá…¶
+ <Multi_key> <U1161> <U116e> : "á…·" U1177 # á…Ÿá…¡ á…Ÿá…® = á…Ÿá…·
+ <Multi_key> <U1163> <U1169> : "á…¸" U1178 # á…Ÿá…£ á…Ÿá…© = á…Ÿá…¸
+ <Multi_key> <U1163> <U116d> : "á…¹" U1179 # á…Ÿá…£ á…Ÿá…­ = á…Ÿá…¹
+ <Multi_key> <U1165> <U1169> : "á…º" U117a # á…Ÿá…¥ á…Ÿá…© = á…Ÿá…º
+ <Multi_key> <U1165> <U116e> : "á…»" U117b # á…Ÿá…¥ á…Ÿá…® = á…Ÿá…»
+ <Multi_key> <U1165> <U1173> : "á…¼" U117c # á…Ÿá…¥ á…Ÿá…³ = á…Ÿá…¼
+ <Multi_key> <U1167> <U1169> : "á…½" U117d # á…Ÿá…§ á…Ÿá…© = á…Ÿá…½
+ <Multi_key> <U1167> <U116e> : "á…¾" U117e # á…Ÿá…§ á…Ÿá…® = á…Ÿá…¾
+ <Multi_key> <U1169> <U1165> : "á…¿" U117f # á…Ÿá…© á…Ÿá…¥ = á…Ÿá…¿
+ <Multi_key> <U1169> <U1166> : "ᆀ" U1180 # ᅟᅩ ᅟᅦ = ᅟᆀ
+ <Multi_key> <U1169> <U1168> : "á†" U1181 # á…Ÿá…© á…Ÿá…¨ = á…Ÿá†
+ <Multi_key> <U1169> <U1169> : "ᆂ" U1182 # ᅟᅩ ᅟᅩ = ᅟᆂ
+ <Multi_key> <U1169> <U116e> : "ᆃ" U1183 # ᅟᅩ ᅟᅮ = ᅟᆃ
+ <Multi_key> <U116d> <U1163> : "ᆄ" U1184 # ᅟᅭ ᅟᅣ = ᅟᆄ
+ <Multi_key> <U116d> <U1164> : "ᆅ" U1185 # ᅟᅭ ᅟᅤ = ᅟᆅ
+ <Multi_key> <U116d> <U1167> : "ᆆ" U1186 # ᅟᅭ ᅟᅧ = ᅟᆆ
+ <Multi_key> <U116d> <U1169> : "ᆇ" U1187 # ᅟᅭ ᅟᅩ = ᅟᆇ
+ <Multi_key> <U116d> <U1175> : "ᆈ" U1188 # ᅟᅭ ᅟᅵ = ᅟᆈ
+ <Multi_key> <U116e> <U1161> : "ᆉ" U1189 # ᅟᅮ ᅟᅡ = ᅟᆉ
+ <Multi_key> <U116e> <U1162> : "ᆊ" U118a # ᅟᅮ ᅟᅢ = ᅟᆊ
+ <Multi_key> <U116e> <U1168> : "ᆌ" U118c # ᅟᅮ ᅟᅨ = ᅟᆌ
+ <Multi_key> <U116e> <U116e> : "á†" U118d # á…Ÿá…® á…Ÿá…® = á…Ÿá†
+ <Multi_key> <U1172> <U1161> : "ᆎ" U118e # ᅟᅲ ᅟᅡ = ᅟᆎ
+ <Multi_key> <U1172> <U1165> : "á†" U118f # á…Ÿá…² á…Ÿá…¥ = á…Ÿá†
+ <Multi_key> <U1172> <U1166> : "á†" U1190 # á…Ÿá…² á…Ÿá…¦ = á…Ÿá†
+ <Multi_key> <U1172> <U1167> : "ᆑ" U1191 # ᅟᅲ ᅟᅧ = ᅟᆑ
+ <Multi_key> <U1172> <U1168> : "ᆒ" U1192 # ᅟᅲ ᅟᅨ = ᅟᆒ
+ <Multi_key> <U1172> <U116e> : "ᆓ" U1193 # ᅟᅲ ᅟᅮ = ᅟᆓ
+ <Multi_key> <U1172> <U1175> : "ᆔ" U1194 # ᅟᅲ ᅟᅵ = ᅟᆔ
+ <Multi_key> <U1173> <U116e> : "ᆕ" U1195 # ᅟᅳ ᅟᅮ = ᅟᆕ
+ <Multi_key> <U1173> <U1173> : "ᆖ" U1196 # ᅟᅳ ᅟᅳ = ᅟᆖ
+ <Multi_key> <U1174> <U116e> : "ᆗ" U1197 # ᅟᅴ ᅟᅮ = ᅟᆗ
+ <Multi_key> <U1175> <U1161> : "ᆘ" U1198 # ᅟᅵ ᅟᅡ = ᅟᆘ
+ <Multi_key> <U1175> <U1163> : "ᆙ" U1199 # ᅟᅵ ᅟᅣ = ᅟᆙ
+ <Multi_key> <U1175> <U1169> : "ᆚ" U119a # ᅟᅵ ᅟᅩ = ᅟᆚ
+ <Multi_key> <U1175> <U116e> : "ᆛ" U119b # ᅟᅵ ᅟᅮ = ᅟᆛ
+ <Multi_key> <U1175> <U1173> : "ᆜ" U119c # ᅟᅵ ᅟᅳ = ᅟᆜ
+ <Multi_key> <U1175> <U119e> : "á†" U119d # á…Ÿá…µ ᅟᆞ = á…Ÿá†
+ <Multi_key> <U119e> <U1165> : "ᆟ" U119f # ᅟᆞ ᅟᅥ = ᅟᆟ
+ <Multi_key> <U119e> <U116e> : "ᆠ" U11a0 # ᅟᆞ ᅟᅮ = ᅟᆠ
+ <Multi_key> <U119e> <U1175> : "ᆡ" U11a1 # ᅟᆞ ᅟᅵ = ᅟᆡ
+ <Multi_key> <U119e> <U119e> : "ᆢ" U11a2 # ᅟᆞ ᅟᆞ = ᅟᆢ
+ <Multi_key> <U11a8> <U11a8> : "ᆩ" U11a9 # ᅟᅠᆨ ᅟᅠᆨ = ᅟᅠᆩ
+ <Multi_key> <U11a8> <U11ba> : "ᆪ" U11aa # ᅟᅠᆨ ᅟᅠᆺ = ᅟᅠᆪ
+ <Multi_key> <U11ab> <U11bd> : "ᆬ" U11ac # ᅟᅠᆫ ᅟᅠᆽ = ᅟᅠᆬ
+ <Multi_key> <U11ab> <U11c2> : "ᆭ" U11ad # ᅟᅠᆫ ᅟᅠᇂ = ᅟᅠᆭ
+ <Multi_key> <U11af> <U11a8> : "ᆰ" U11b0 # ᅟᅠᆯ ᅟᅠᆨ = ᅟᅠᆰ
+ <Multi_key> <U11af> <U11b7> : "ᆱ" U11b1 # ᅟᅠᆯ ᅟᅠᆷ = ᅟᅠᆱ
+ <Multi_key> <U11af> <U11b8> : "ᆲ" U11b2 # ᅟᅠᆯ ᅟᅠᆸ = ᅟᅠᆲ
+ <Multi_key> <U11af> <U11ba> : "ᆳ" U11b3 # ᅟᅠᆯ ᅟᅠᆺ = ᅟᅠᆳ
+ <Multi_key> <U11af> <U11c0> : "ᆴ" U11b4 # ᅟᅠᆯ ᅟᅠᇀ = ᅟᅠᆴ
+ <Multi_key> <U11af> <U11c1> : "ᆵ" U11b5 # ᅟᅠᆯ ᅟᅠᇠ= ᅟᅠᆵ
+ <Multi_key> <U11af> <U11c2> : "ᆶ" U11b6 # ᅟᅠᆯ ᅟᅠᇂ = ᅟᅠᆶ
+ <Multi_key> <U11b8> <U11ba> : "ᆹ" U11b9 # ᅟᅠᆸ ᅟᅠᆺ = ᅟᅠᆹ
+ <Multi_key> <U11ba> <U11ba> : "ᆻ" U11bb # ᅟᅠᆺ ᅟᅠᆺ = ᅟᅠᆻ
+ <Multi_key> <U11a8> <U11af> : "ᇃ" U11c3 # ᅟᅠᆨ ᅟᅠᆯ = ᅟᅠᇃ
+ <Multi_key> <U11ab> <U11a8> : "ᇅ" U11c5 # ᅟᅠᆫ ᅟᅠᆨ = ᅟᅠᇅ
+ <Multi_key> <U11ab> <U11ae> : "ᇆ" U11c6 # ᅟᅠᆫ ᅟᅠᆮ = ᅟᅠᇆ
+ <Multi_key> <U11ab> <U11ba> : "ᇇ" U11c7 # ᅟᅠᆫ ᅟᅠᆺ = ᅟᅠᇇ
+ <Multi_key> <U11ab> <U11eb> : "ᇈ" U11c8 # ᅟᅠᆫ ᅟᅠᇫ = ᅟᅠᇈ
+ <Multi_key> <U11ab> <U11c0> : "ᇉ" U11c9 # ᅟᅠᆫ ᅟᅠᇀ = ᅟᅠᇉ
+ <Multi_key> <U11ae> <U11a8> : "ᇊ" U11ca # ᅟᅠᆮ ᅟᅠᆨ = ᅟᅠᇊ
+ <Multi_key> <U11ae> <U11af> : "ᇋ" U11cb # ᅟᅠᆮ ᅟᅠᆯ = ᅟᅠᇋ
+ <Multi_key> <U11af> <U11ab> : "á‡" U11cd # ᅟᅠᆯ ᅟᅠᆫ = á…Ÿá… á‡
+ <Multi_key> <U11af> <U11ae> : "ᇎ" U11ce # ᅟᅠᆯ ᅟᅠᆮ = ᅟᅠᇎ
+ <Multi_key> <U11af> <U11af> : "á‡" U11d0 # ᅟᅠᆯ ᅟᅠᆯ = á…Ÿá… á‡
+ <Multi_key> <U11af> <U11eb> : "ᇗ" U11d7 # ᅟᅠᆯ ᅟᅠᇫ = ᅟᅠᇗ
+ <Multi_key> <U11af> <U11bf> : "ᇘ" U11d8 # ᅟᅠᆯ ᅟᅠᆿ = ᅟᅠᇘ
+ <Multi_key> <U11af> <U11f9> : "ᇙ" U11d9 # ᅟᅠᆯ ᅟᅠᇹ = ᅟᅠᇙ
+ <Multi_key> <U11b7> <U11a8> : "ᇚ" U11da # ᅟᅠᆷ ᅟᅠᆨ = ᅟᅠᇚ
+ <Multi_key> <U11b7> <U11af> : "ᇛ" U11db # ᅟᅠᆷ ᅟᅠᆯ = ᅟᅠᇛ
+ <Multi_key> <U11b7> <U11b8> : "ᇜ" U11dc # ᅟᅠᆷ ᅟᅠᆸ = ᅟᅠᇜ
+ <Multi_key> <U11b7> <U11ba> : "á‡" U11dd # ᅟᅠᆷ ᅟᅠᆺ = á…Ÿá… á‡
+ <Multi_key> <U11b7> <U11eb> : "ᇟ" U11df # ᅟᅠᆷ ᅟᅠᇫ = ᅟᅠᇟ
+ <Multi_key> <U11b7> <U11be> : "ᇠ" U11e0 # ᅟᅠᆷ ᅟᅠᆾ = ᅟᅠᇠ
+ <Multi_key> <U11b7> <U11c2> : "ᇡ" U11e1 # ᅟᅠᆷ ᅟᅠᇂ = ᅟᅠᇡ
+ <Multi_key> <U11b7> <U11bc> : "ᇢ" U11e2 # ᅟᅠᆷ ᅟᅠᆼ = ᅟᅠᇢ
+ <Multi_key> <U11b8> <U11af> : "ᇣ" U11e3 # ᅟᅠᆸ ᅟᅠᆯ = ᅟᅠᇣ
+ <Multi_key> <U11b8> <U11c1> : "ᇤ" U11e4 # ᅟᅠᆸ ᅟᅠᇠ= ᅟᅠᇤ
+ <Multi_key> <U11b8> <U11c2> : "ᇥ" U11e5 # ᅟᅠᆸ ᅟᅠᇂ = ᅟᅠᇥ
+ <Multi_key> <U11b8> <U11bc> : "ᇦ" U11e6 # ᅟᅠᆸ ᅟᅠᆼ = ᅟᅠᇦ
+ <Multi_key> <U11ba> <U11a8> : "ᇧ" U11e7 # ᅟᅠᆺ ᅟᅠᆨ = ᅟᅠᇧ
+ <Multi_key> <U11ba> <U11ae> : "ᇨ" U11e8 # ᅟᅠᆺ ᅟᅠᆮ = ᅟᅠᇨ
+ <Multi_key> <U11ba> <U11af> : "ᇩ" U11e9 # ᅟᅠᆺ ᅟᅠᆯ = ᅟᅠᇩ
+ <Multi_key> <U11ba> <U11b8> : "ᇪ" U11ea # ᅟᅠᆺ ᅟᅠᆸ = ᅟᅠᇪ
+ <Multi_key> <U11bc> <U11a8> : "ᇬ" U11ec # ᅟᅠᆼ ᅟᅠᆨ = ᅟᅠᇬ
+ <Multi_key> <U11bc> <U11bc> : "ᇮ" U11ee # ᅟᅠᆼ ᅟᅠᆼ = ᅟᅠᇮ
+ <Multi_key> <U11bc> <U11bf> : "ᇯ" U11ef # ᅟᅠᆼ ᅟᅠᆿ = ᅟᅠᇯ
+ <Multi_key> <U11f0> <U11ba> : "ᇱ" U11f1 # ᅟᅠᇰ ᅟᅠᆺ = ᅟᅠᇱ
+ <Multi_key> <U11f0> <U11eb> : "ᇲ" U11f2 # ᅟᅠᇰ ᅟᅠᇫ = ᅟᅠᇲ
+ <Multi_key> <U11c1> <U11b8> : "ᇳ" U11f3 # ᅟᅠᇠᅟᅠᆸ = ᅟᅠᇳ
+ <Multi_key> <U11c1> <U11bc> : "ᇴ" U11f4 # ᅟᅠᇠᅟᅠᆼ = ᅟᅠᇴ
+ <Multi_key> <U11c2> <U11ab> : "ᇵ" U11f5 # ᅟᅠᇂ ᅟᅠᆫ = ᅟᅠᇵ
+ <Multi_key> <U11c2> <U11af> : "ᇶ" U11f6 # ᅟᅠᇂ ᅟᅠᆯ = ᅟᅠᇶ
+ <Multi_key> <U11c2> <U11b7> : "ᇷ" U11f7 # ᅟᅠᇂ ᅟᅠᆷ = ᅟᅠᇷ
+ <Multi_key> <U11c2> <U11b8> : "ᇸ" U11f8 # ᅟᅠᇂ ᅟᅠᆸ = ᅟᅠᇸ
+ <Multi_key> <U1121> <U1100> : "ᄢ" U1122 # ᄡᅠ ᄀᅠ = ᄢᅠ
+ <Multi_key> <U1121> <U1103> : "ᄣ" U1123 # ᄡᅠ ᄃᅠ = ᄣᅠ
+ <Multi_key> <U1121> <U1107> : "ᄤ" U1124 # ᄡᅠ ᄇᅠ = ᄤᅠ
+ <Multi_key> <U1121> <U1109> : "ᄥ" U1125 # ᄡᅠ ᄉᅠ = ᄥᅠ
+ <Multi_key> <U1121> <U110c> : "ᄦ" U1126 # ᄡᅠ ᄌᅠ = ᄦᅠ
+ <Multi_key> <U1108> <U110b> : "ᄬ" U112c # ᄈᅠ ᄋᅠ = ᄬᅠ
+ <Multi_key> <U1132> <U1100> : "ᄳ" U1133 # ᄲᅠ ᄀᅠ = ᄳᅠ
+ <Multi_key> <U110a> <U1109> : "ᄴ" U1134 # ᄊᅠ ᄉᅠ = ᄴᅠ
+ <Multi_key> <U116a> <U1175> : "á…«" U116b # á…Ÿá…ª á…Ÿá…µ = á…Ÿá…«
+ <Multi_key> <U116f> <U1175> : "á…°" U1170 # á…Ÿá…¯ á…Ÿá…µ = á…Ÿá…°
+ <Multi_key> <U116f> <U1173> : "ᆋ" U118b # ᅟᅯ ᅟᅳ = ᅟᆋ
+ <Multi_key> <U11aa> <U11a8> : "ᇄ" U11c4 # ᅟᅠᆪ ᅟᅠᆨ = ᅟᅠᇄ
+ <Multi_key> <U11b0> <U11ba> : "ᇌ" U11cc # ᅟᅠᆰ ᅟᅠᆺ = ᅟᅠᇌ
+ <Multi_key> <U11ce> <U11c2> : "á‡" U11cf # ᅟᅠᇎ ᅟᅠᇂ = á…Ÿá… á‡
+ <Multi_key> <U11b1> <U11a8> : "ᇑ" U11d1 # ᅟᅠᆱ ᅟᅠᆨ = ᅟᅠᇑ
+ <Multi_key> <U11b1> <U11ba> : "ᇒ" U11d2 # ᅟᅠᆱ ᅟᅠᆺ = ᅟᅠᇒ
+ <Multi_key> <U11b2> <U11ba> : "ᇓ" U11d3 # ᅟᅠᆲ ᅟᅠᆺ = ᅟᅠᇓ
+ <Multi_key> <U11b2> <U11c2> : "ᇔ" U11d4 # ᅟᅠᆲ ᅟᅠᇂ = ᅟᅠᇔ
+ <Multi_key> <U11b2> <U11bc> : "ᇕ" U11d5 # ᅟᅠᆲ ᅟᅠᆼ = ᅟᅠᇕ
+ <Multi_key> <U11b3> <U11ba> : "ᇖ" U11d6 # ᅟᅠᆳ ᅟᅠᆺ = ᅟᅠᇖ
+ <Multi_key> <U11dd> <U11ba> : "ᇞ" U11de # ᅟᅠᇠᅟᅠᆺ = ᅟᅠᇞ
+ <Multi_key> <U11ec> <U11a8> : "ᇭ" U11ed # ᅟᅠᇬ ᅟᅠᆨ = ᅟᅠᇭ
+ <Multi_key> <U1107> <U112d> : "ᄢ" U1122 # ᄇᅠ ᄭᅠ = ᄢᅠ
+ <Multi_key> <U1107> <U112f> : "ᄣ" U1123 # ᄇᅠ ᄯᅠ = ᄣᅠ
+ <Multi_key> <U1107> <U1132> : "ᄤ" U1124 # ᄇᅠ ᄲᅠ = ᄤᅠ
+ <Multi_key> <U1107> <U110a> : "ᄥ" U1125 # ᄇᅠ ᄊᅠ = ᄥᅠ
+ <Multi_key> <U1107> <U1136> : "ᄦ" U1126 # ᄇᅠ ᄶᅠ = ᄦᅠ
+ <Multi_key> <U1107> <U112b> : "ᄬ" U112c # ᄇᅠ ᄫᅠ = ᄬᅠ
+ <Multi_key> <U1109> <U111e> : "ᄳ" U1133 # ᄉᅠ ᄞᅠ = ᄳᅠ
+ <Multi_key> <U1109> <U110a> : "ᄴ" U1134 # ᄉᅠ ᄊᅠ = ᄴᅠ
+ <Multi_key> <U1169> <U1162> : "á…«" U116b # á…Ÿá…© á…Ÿá…¢ = á…Ÿá…«
+ <Multi_key> <U116e> <U1166> : "á…°" U1170 # á…Ÿá…® á…Ÿá…¦ = á…Ÿá…°
+ <Multi_key> <U116e> <U117c> : "ᆋ" U118b # ᅟᅮ ᅟᅼ = ᅟᆋ
+ <Multi_key> <U11a8> <U11e7> : "ᇄ" U11c4 # ᅟᅠᆨ ᅟᅠᇧ = ᅟᅠᇄ
+ <Multi_key> <U11af> <U11aa> : "ᇌ" U11cc # ᅟᅠᆯ ᅟᅠᆪ = ᅟᅠᇌ
+ <Multi_key> <U11af> <U11da> : "ᇑ" U11d1 # ᅟᅠᆯ ᅟᅠᇚ = ᅟᅠᇑ
+ <Multi_key> <U11af> <U11dd> : "ᇒ" U11d2 # ᅟᅠᆯ ᅟᅠᇠ= ᅟᅠᇒ
+ <Multi_key> <U11af> <U11b9> : "ᇓ" U11d3 # ᅟᅠᆯ ᅟᅠᆹ = ᅟᅠᇓ
+ <Multi_key> <U11af> <U11e5> : "ᇔ" U11d4 # ᅟᅠᆯ ᅟᅠᇥ = ᅟᅠᇔ
+ <Multi_key> <U11af> <U11e6> : "ᇕ" U11d5 # ᅟᅠᆯ ᅟᅠᇦ = ᅟᅠᇕ
+ <Multi_key> <U11af> <U11bb> : "ᇖ" U11d6 # ᅟᅠᆯ ᅟᅠᆻ = ᅟᅠᇖ
+ <Multi_key> <U11b7> <U11bb> : "ᇞ" U11de # ᅟᅠᆷ ᅟᅠᆻ = ᅟᅠᇞ
+ <Multi_key> <U11bc> <U11a9> : "ᇭ" U11ed # ᅟᅠᆼ ᅟᅠᆩ = ᅟᅠᇭ
-Ctrl<T> <c> <c> : SWITCH_STATE_TO "[ Cyrillic ]"
-Ctrl<T> <g> <g> : SWITCH_STATE_TO "[ Greek ]"
-Ctrl<T> <t> <t> : SWITCH_STATE_TO "[ Thai ]"
-Ctrl<T> <a> <r> : SWITCH_STATE_TO "[ Arabic ]"
-Ctrl<T> <h> <h> : SWITCH_STATE_TO "[ Hebrew ]"
-Ctrl<T> <u> <h> : SWITCH_STATE_TO "[ Unicode Hex ]"
-Ctrl<T> <l> <l> : SWITCH_STATE_TO "[ Lookup ]"
-Ctrl<T> <j> <a> : SWITCH_STATE_TO "[ Japanese ]"
-Ctrl<T> <k> <o> : SWITCH_STATE_TO "[ Korean ]"
-Ctrl<T> <s> <c> : SWITCH_STATE_TO "[ S-Chinese ]"
-Ctrl<T> <t> <c> : SWITCH_STATE_TO "[ T-Chinese ]"
-END_STATE
-
-STATE "[ Lookup ]"
-STATE_TYPE: LOOKUP
-Ctrl<space> : SWITCH_STATE_TO "[ English/European ]"
-<Multi_key> <c> <c> : SWITCH_STATE_TO "[ Cyrillic ]"
-<Multi_key> <g> <g> : SWITCH_STATE_TO "[ Greek ]"
-<Multi_key> <t> <t> : SWITCH_STATE_TO "[ Thai ]"
-<Multi_key> <a> <r> : SWITCH_STATE_TO "[ Arabic ]"
-<Multi_key> <h> <h> : SWITCH_STATE_TO "[ Hebrew ]"
-<Multi_key> <u> <h> : SWITCH_STATE_TO "[ Unicode Hex ]"
-<Multi_key> <u> <o> : SWITCH_STATE_TO "[ Unicode Octal ]"
-<Multi_key> <j> <a> : SWITCH_STATE_TO "[ Japanese ]"
-<Multi_key> <k> <o> : SWITCH_STATE_TO "[ Korean ]"
-<Multi_key> <s> <c> : SWITCH_STATE_TO "[ S-Chinese ]"
-<Multi_key> <t> <c> : SWITCH_STATE_TO "[ T-Chinese ]"
-
-Ctrl<T> <c> <c> : SWITCH_STATE_TO "[ Cyrillic ]"
-Ctrl<T> <g> <g> : SWITCH_STATE_TO "[ Greek ]"
-Ctrl<T> <t> <t> : SWITCH_STATE_TO "[ Thai ]"
-Ctrl<T> <a> <r> : SWITCH_STATE_TO "[ Arabic ]"
-Ctrl<T> <h> <h> : SWITCH_STATE_TO "[ Hebrew ]"
-Ctrl<T> <u> <h> : SWITCH_STATE_TO "[ Unicode Hex ]"
-Ctrl<T> <u> <o> : SWITCH_STATE_TO "[ Unicode Octal ]"
-Ctrl<T> <j> <a> : SWITCH_STATE_TO "[ Japanese ]"
-Ctrl<T> <k> <o> : SWITCH_STATE_TO "[ Korean ]"
-Ctrl<T> <s> <c> : SWITCH_STATE_TO "[ S-Chinese ]"
-Ctrl<T> <t> <c> : SWITCH_STATE_TO "[ T-Chinese ]"
-
-#attributes
-MAX_NUMBER_OF_ROWS : 6
-MAX_NUMBER_OF_COLUMNS : 16
-MAX_NUMBER_OF_CANDIDATES : 80 # <= 94 best if it's multiple of 16
-TITLE_STRING: "Lookup Selection Window"
-FONTSET: "-dt-interface user-medium-r-normal-s*utf*-*-*-*-*-*-*-*-*"
-POSITION: CURSOR # CURSOR/CLIENT
-PLACEMENT: BOTTOM # TOP/BOTTOM/LEFT/RIGHT
-"a - Basic Latin" : 0x0000 0x007f
-"b - Latin 1" : 0x0080 0x00ff
-"c - Latin Extended A" : 0x0100 0x017f
-"d - Latin Extended B" : 0x0180 0x024f
-# N/A IPA Extension : 0x0250 0x02af
-"e - Spacing Modifier Letters" : 0x02b0 0x02ff
-# N/A Combining Diaetrical Marks : 0x0300 0x036f
-"f - Greek" : 0x0370 0x03ff
-"g - Cyrillic" : 0x0400 0x04ff
-# N/A Armenian : 0x0530 0x058f
-"h - Hebrew" : 0x0590 0x05ff
-"i - Arabic" : 0x0600 0x06ff
-# N/A Davangari : 0x0900 0x097f
-# N/A Bengali : 0x0980 0x09ff
-# N/A Gurmukhi : 0x0a00 0x0a7f
-# N/A Gujarati : 0x0a80 0x0aff
-# N/A Oriya : 0x0b00 0x0b7f
-# N/A Tamil : 0x0b80 0x0bff
-# N/A Telugu : 0x0c00 0x0c7f
-# N/A Kannada : 0x0c80 0x0cff
-# N/A Malayalam : 0x0d00 0x0d7f
-"j - Thai" : 0x0e00 0x0e7f
-# N/A Lao : 0x0e80 0x0eff
-# N/A Tibetan : 0x0f00 0x0fbf
-# N/A Georgian : 0x10a0 0x10ff
-# N/A Hangul Jamo : 0x1100 0x11ff
-# N/A Latin Extended Additional : 0x1e00 0x1eff
-# N/A Greek Extended : 0x1f00 0x1fff
-"k - General Punctuation" : 0x2000 0x206f
-"l - Superscripts Subscripts" : 0x2070 0x209f
-"m - Currency Symbols" : 0x20a0 0x20cf
-# N/A Combining Diacritical Marks for Symbols : 0x20d0 0x20ff
-"n - Letterlike Symbols" : 0x2100 0x214f
-"o - Number Forms" : 0x2150 0x218f
-"p - Arrows" : 0x2190 0x21ff
-"q - Mathematical Operators" : 0x2200 0x22ff
-"r - Miscellaneous Techical" : 0x2300 0x23ff
-# N/A Control Pictures : 0x2400 0x243f
-# N/A Optical Character Recognition : 0x2440 0x245f
-"s - Enclosed Alphanumerics" : 0x2460 0x24ff
-"t - Box Drawing" : 0x2500 0x257f
-"u - Block Elements" : 0x2580 0x259f
-"v - Geometric Shapes" : 0x25a0 0x25ff
-"w - Miscellaneous Symbols" : 0x2600 0x26ff
-# N/A Dingbats : 0x2700 0x27bf
-"x - CJK Symbols and Punctuation" : 0x3000 0x303f
-"y - Hiragana" : 0x3040 0x309f
-"z - Katakana" : 0x30a0 0x30ff
-"0 - Bopomofo" : 0x3100 0x312f
-"1 - Hangul Compatibility Jamo" : 0x3130 0x318f
-# N/A Kanbun : 0x3190 0x319f
-"2 - Enclosed CJK Letters and Months" : 0x3200 0x32ff
-"3 - CJK Compatibility" : 0x3300 0x33ff
-"4 - CJK Unified Ideographs" : 0x4e00 0x9fa5
-"5 - Hangul Syllables" : 0xac00 0xd7a3
-# N/A High Surrogates : 0xd800 0xdb7f
-# N/A Private Use High Surrogates : 0xdb80 0xdbff
-# N/A Low Surrogates : 0xdc00 0xdfff
-# N/A Private Use Area : 0xe000 0xf8ff
-"6 - CJK Compatibility Ideographs" : 0xf900 0xfaff
-# N/A Alphabetic Presentation Forms : 0xfb00 0xfb4f
-# N/A Arabic Presentation Forms-A : 0xfb50 0xfdff
-# N/A Combining Half Marks : 0xfe20 0xfe2f
-"7 - CJK Compatibility Forms" : 0xfe30 0xfe4f
-"8 - Small Form Variants" : 0xfe50 0xfe6f
-# N/A Arabic Presentation Forms-B : 0xfe70 0xfeff
-"9 - Halfwidth and Fullwidth Forms" : 0xff00 0xffef
-"/ - Specials" : 0xfff0 0xffff
-#end of attributes
-
-#actions
-Ctrl<n> : NEXT_PAGE
-Ctrl<p> : PREV_PAGE
-Ctrl<a> : TOP_PAGE
-Ctrl<e> : LAST_PAGE
-<Right> : NEXT_CAND
-<Left> : PREV_CAND
-<Up> : UP_CAND
-<Down> : DOWN_CAND
-Ctrl<k> : SELECT_CAND
-#end of actions
-END_STATE
-
-STATE "[ Japanese ]"
-STATE_TYPE: REMOTE_IM
-Ctrl<space> : SWITCH_STATE_TO "[ English/European ]"
-LANGUAGE : ja
-END_STATE
-
-STATE "[ Korean ]"
-STATE_TYPE: REMOTE_IM
-Ctrl<space> : SWITCH_STATE_TO "[ English/European ]"
-
-LANGUAGE : ko
-END_STATE
-
-STATE "[ S-Chinese ]"
-STATE_TYPE: REMOTE_IM
-Ctrl<space> : SWITCH_STATE_TO "[ English/European ]"
-
-LANGUAGE : zh_CN
-END_STATE
-
-STATE "[ T-Chinese ]"
-STATE_TYPE: REMOTE_IM
-Ctrl<space> : SWITCH_STATE_TO "[ English/European ]"
-
-LANGUAGE : zh_TW
-END_STATE
+<Multi_key> <comma> <minus> : "¬" U00AC # NOT SIGN
+<Multi_key> <minus> <comma> : "¬" U00AC # NOT SIGN
+<dead_circumflex> <Multi_key> <underscore> <a> : "ª" U00AA # FEMININE ORDINAL INDICATOR
+<Multi_key> <asciicircum> <underscore> <a> : "ª" U00AA # FEMININE ORDINAL INDICATOR
+<dead_circumflex> <Multi_key> <underbar> <a> : "ª" U00AA # FEMININE ORDINAL INDICATOR
+<Multi_key> <asciicircum> <underbar> <a> : "ª" U00AA # FEMININE ORDINAL INDICATOR
+<dead_circumflex> <2> : "²" U00B2 # SUPERSCRIPT TWO
+<Multi_key> <asciicircum> <2> : "²" U00B2 # SUPERSCRIPT TWO
+<dead_circumflex> <KP_Space> : "²" U00B2 # SUPERSCRIPT TWO
+<Multi_key> <asciicircum> <KP_Space> : "²" U00B2 # SUPERSCRIPT TWO
+<dead_circumflex> <KP_2> : "²" U00B2 # SUPERSCRIPT TWO
+<Multi_key> <asciicircum> <KP_2> : "²" U00B2 # SUPERSCRIPT TWO
+<dead_circumflex> <3> : "³" U00B3 # SUPERSCRIPT THREE
+<Multi_key> <asciicircum> <3> : "³" U00B3 # SUPERSCRIPT THREE
+<dead_circumflex> <KP_3> : "³" U00B3 # SUPERSCRIPT THREE
+<Multi_key> <asciicircum> <KP_3> : "³" U00B3 # SUPERSCRIPT THREE
+<Multi_key> <m> <u> : "µ" U00B5 # MICRO SIGN
+<dead_circumflex> <1> : "¹" U00B9 # SUPERSCRIPT ONE
+<Multi_key> <asciicircum> <1> : "¹" U00B9 # SUPERSCRIPT ONE
+<dead_circumflex> <KP_1> : "¹" U00B9 # SUPERSCRIPT ONE
+<Multi_key> <asciicircum> <KP_1> : "¹" U00B9 # SUPERSCRIPT ONE
+<dead_circumflex> <Multi_key> <underscore> <o> : "º" U00BA # MASCULINE ORDINAL INDICATOR
+<Multi_key> <asciicircum> <underscore> <o> : "º" U00BA # MASCULINE ORDINAL INDICATOR
+<dead_circumflex> <Multi_key> <underbar> <o> : "º" U00BA # MASCULINE ORDINAL INDICATOR
+<Multi_key> <asciicircum> <underbar> <o> : "º" U00BA # MASCULINE ORDINAL INDICATOR
+<Multi_key> <1> <4> : "¼" U00BC # VULGAR FRACTION ONE QUARTER
+<Multi_key> <1> <2> : "½" U00BD # VULGAR FRACTION ONE HALF
+<Multi_key> <3> <4> : "¾" U00BE # VULGAR FRACTION THREE QUARTERS
+<dead_grave> <A> : "À" U00C0 # LATIN CAPITAL LETTER A WITH GRAVE
+<Multi_key> <grave> <A> : "À" U00C0 # LATIN CAPITAL LETTER A WITH GRAVE
+<combining_grave> <A> : "À" U00C0 # LATIN CAPITAL LETTER A WITH GRAVE
+<dead_acute> <A> : "Ã" U00C1 # LATIN CAPITAL LETTER A WITH ACUTE
+<Multi_key> <acute> <A> : "Ã" U00C1 # LATIN CAPITAL LETTER A WITH ACUTE
+<Multi_key> <apostrophe> <A> : "Ã" U00C1 # LATIN CAPITAL LETTER A WITH ACUTE
+<combining_acute> <A> : "Ã" U00C1 # LATIN CAPITAL LETTER A WITH ACUTE
+<dead_circumflex> <A> : "Â" U00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <A> : "Â" U00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+<dead_tilde> <A> : "Ã" U00C3 # LATIN CAPITAL LETTER A WITH TILDE
+<Multi_key> <asciitilde> <A> : "Ã" U00C3 # LATIN CAPITAL LETTER A WITH TILDE
+<combining_tilde> <A> : "Ã" U00C3 # LATIN CAPITAL LETTER A WITH TILDE
+<dead_diaeresis> <A> : "Ä" U00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
+<Multi_key> <quotedbl> <A> : "Ä" U00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
+<dead_abovering> <A> : "Ã…" U00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE
+<Multi_key> <o> <A> : "Ã…" U00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE
+<dead_cedilla> <C> : "Ç" U00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
+<Multi_key> <comma> <C> : "Ç" U00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
+<dead_grave> <E> : "È" U00C8 # LATIN CAPITAL LETTER E WITH GRAVE
+<Multi_key> <grave> <E> : "È" U00C8 # LATIN CAPITAL LETTER E WITH GRAVE
+<combining_grave> <E> : "È" U00C8 # LATIN CAPITAL LETTER E WITH GRAVE
+<dead_acute> <E> : "É" U00C9 # LATIN CAPITAL LETTER E WITH ACUTE
+<Multi_key> <acute> <E> : "É" U00C9 # LATIN CAPITAL LETTER E WITH ACUTE
+<Multi_key> <apostrophe> <E> : "É" U00C9 # LATIN CAPITAL LETTER E WITH ACUTE
+<combining_acute> <E> : "É" U00C9 # LATIN CAPITAL LETTER E WITH ACUTE
+<dead_circumflex> <E> : "Ê" U00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <E> : "Ê" U00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+<dead_diaeresis> <E> : "Ë" U00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
+<Multi_key> <quotedbl> <E> : "Ë" U00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
+<dead_grave> <I> : "Ì" U00CC # LATIN CAPITAL LETTER I WITH GRAVE
+<Multi_key> <grave> <I> : "Ì" U00CC # LATIN CAPITAL LETTER I WITH GRAVE
+<combining_grave> <I> : "Ì" U00CC # LATIN CAPITAL LETTER I WITH GRAVE
+<dead_acute> <I> : "Ã" U00CD # LATIN CAPITAL LETTER I WITH ACUTE
+<Multi_key> <acute> <I> : "Ã" U00CD # LATIN CAPITAL LETTER I WITH ACUTE
+<Multi_key> <apostrophe> <I> : "Ã" U00CD # LATIN CAPITAL LETTER I WITH ACUTE
+<combining_acute> <I> : "Ã" U00CD # LATIN CAPITAL LETTER I WITH ACUTE
+<dead_circumflex> <I> : "ÃŽ" U00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <I> : "ÃŽ" U00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+<dead_diaeresis> <I> : "Ã" U00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
+<Multi_key> <quotedbl> <I> : "Ã" U00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
+<Multi_key> <D> <H> : "Ã" U00D0 # LATIN CAPITAL LETTER ETH
+<dead_tilde> <N> : "Ñ" U00D1 # LATIN CAPITAL LETTER N WITH TILDE
+<Multi_key> <asciitilde> <N> : "Ñ" U00D1 # LATIN CAPITAL LETTER N WITH TILDE
+<combining_tilde> <N> : "Ñ" U00D1 # LATIN CAPITAL LETTER N WITH TILDE
+<dead_grave> <O> : "Ã’" U00D2 # LATIN CAPITAL LETTER O WITH GRAVE
+<Multi_key> <grave> <O> : "Ã’" U00D2 # LATIN CAPITAL LETTER O WITH GRAVE
+<combining_grave> <O> : "Ã’" U00D2 # LATIN CAPITAL LETTER O WITH GRAVE
+<dead_acute> <O> : "Ó" U00D3 # LATIN CAPITAL LETTER O WITH ACUTE
+<Multi_key> <acute> <O> : "Ó" U00D3 # LATIN CAPITAL LETTER O WITH ACUTE
+<Multi_key> <apostrophe> <O> : "Ó" U00D3 # LATIN CAPITAL LETTER O WITH ACUTE
+<combining_acute> <O> : "Ó" U00D3 # LATIN CAPITAL LETTER O WITH ACUTE
+<dead_circumflex> <O> : "Ô" U00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <O> : "Ô" U00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+<dead_tilde> <O> : "Õ" U00D5 # LATIN CAPITAL LETTER O WITH TILDE
+<Multi_key> <asciitilde> <O> : "Õ" U00D5 # LATIN CAPITAL LETTER O WITH TILDE
+<combining_tilde> <O> : "Õ" U00D5 # LATIN CAPITAL LETTER O WITH TILDE
+<dead_diaeresis> <O> : "Ö" U00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
+<Multi_key> <quotedbl> <O> : "Ö" U00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
+<Multi_key> <x> <x> : "×" U00D7 # MULTIPLICATION SIGN
+<Multi_key> <slash> <O> : "Ø" U00D8 # LATIN CAPITAL LETTER O WITH STROKE
+<Multi_key> <KP_Divide> <O> : "Ø" U00D8 # LATIN CAPITAL LETTER O WITH STROKE
+<dead_grave> <U> : "Ù" U00D9 # LATIN CAPITAL LETTER U WITH GRAVE
+<Multi_key> <grave> <U> : "Ù" U00D9 # LATIN CAPITAL LETTER U WITH GRAVE
+<combining_grave> <U> : "Ù" U00D9 # LATIN CAPITAL LETTER U WITH GRAVE
+<dead_acute> <U> : "Ú" U00DA # LATIN CAPITAL LETTER U WITH ACUTE
+<Multi_key> <acute> <U> : "Ú" U00DA # LATIN CAPITAL LETTER U WITH ACUTE
+<Multi_key> <apostrophe> <U> : "Ú" U00DA # LATIN CAPITAL LETTER U WITH ACUTE
+<combining_acute> <U> : "Ú" U00DA # LATIN CAPITAL LETTER U WITH ACUTE
+<dead_circumflex> <U> : "Û" U00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <U> : "Û" U00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+<dead_diaeresis> <U> : "Ü" U00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
+<Multi_key> <quotedbl> <U> : "Ü" U00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
+<dead_acute> <Y> : "Ã" U00DD # LATIN CAPITAL LETTER Y WITH ACUTE
+<Multi_key> <acute> <Y> : "Ã" U00DD # LATIN CAPITAL LETTER Y WITH ACUTE
+<Multi_key> <apostrophe> <Y> : "Ã" U00DD # LATIN CAPITAL LETTER Y WITH ACUTE
+<combining_acute> <Y> : "Ã" U00DD # LATIN CAPITAL LETTER Y WITH ACUTE
+<Multi_key> <T> <H> : "Þ" U00DE # LATIN CAPITAL LETTER THORN
+<dead_grave> <a> : "à" U00E0 # LATIN SMALL LETTER A WITH GRAVE
+<Multi_key> <grave> <a> : "à" U00E0 # LATIN SMALL LETTER A WITH GRAVE
+<combining_grave> <a> : "à" U00E0 # LATIN SMALL LETTER A WITH GRAVE
+<dead_acute> <a> : "á" U00E1 # LATIN SMALL LETTER A WITH ACUTE
+<Multi_key> <acute> <a> : "á" U00E1 # LATIN SMALL LETTER A WITH ACUTE
+<Multi_key> <apostrophe> <a> : "á" U00E1 # LATIN SMALL LETTER A WITH ACUTE
+<combining_acute> <a> : "á" U00E1 # LATIN SMALL LETTER A WITH ACUTE
+<dead_circumflex> <a> : "â" U00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <a> : "â" U00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
+<dead_tilde> <a> : "ã" U00E3 # LATIN SMALL LETTER A WITH TILDE
+<Multi_key> <asciitilde> <a> : "ã" U00E3 # LATIN SMALL LETTER A WITH TILDE
+<combining_tilde> <a> : "ã" U00E3 # LATIN SMALL LETTER A WITH TILDE
+<dead_diaeresis> <a> : "ä" U00E4 # LATIN SMALL LETTER A WITH DIAERESIS
+<Multi_key> <quotedbl> <a> : "ä" U00E4 # LATIN SMALL LETTER A WITH DIAERESIS
+<dead_abovering> <a> : "Ã¥" U00E5 # LATIN SMALL LETTER A WITH RING ABOVE
+<Multi_key> <o> <a> : "Ã¥" U00E5 # LATIN SMALL LETTER A WITH RING ABOVE
+<dead_cedilla> <c> : "ç" U00E7 # LATIN SMALL LETTER C WITH CEDILLA
+<Multi_key> <comma> <c> : "ç" U00E7 # LATIN SMALL LETTER C WITH CEDILLA
+<dead_grave> <e> : "è" U00E8 # LATIN SMALL LETTER E WITH GRAVE
+<Multi_key> <grave> <e> : "è" U00E8 # LATIN SMALL LETTER E WITH GRAVE
+<combining_grave> <e> : "è" U00E8 # LATIN SMALL LETTER E WITH GRAVE
+<dead_acute> <e> : "é" U00E9 # LATIN SMALL LETTER E WITH ACUTE
+<Multi_key> <acute> <e> : "é" U00E9 # LATIN SMALL LETTER E WITH ACUTE
+<Multi_key> <apostrophe> <e> : "é" U00E9 # LATIN SMALL LETTER E WITH ACUTE
+<combining_acute> <e> : "é" U00E9 # LATIN SMALL LETTER E WITH ACUTE
+<dead_circumflex> <e> : "ê" U00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <e> : "ê" U00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
+<dead_diaeresis> <e> : "ë" U00EB # LATIN SMALL LETTER E WITH DIAERESIS
+<Multi_key> <quotedbl> <e> : "ë" U00EB # LATIN SMALL LETTER E WITH DIAERESIS
+<dead_grave> <i> : "ì" U00EC # LATIN SMALL LETTER I WITH GRAVE
+<Multi_key> <grave> <i> : "ì" U00EC # LATIN SMALL LETTER I WITH GRAVE
+<combining_grave> <i> : "ì" U00EC # LATIN SMALL LETTER I WITH GRAVE
+<dead_acute> <i> : "í" U00ED # LATIN SMALL LETTER I WITH ACUTE
+<Multi_key> <acute> <i> : "í" U00ED # LATIN SMALL LETTER I WITH ACUTE
+<Multi_key> <apostrophe> <i> : "í" U00ED # LATIN SMALL LETTER I WITH ACUTE
+<combining_acute> <i> : "í" U00ED # LATIN SMALL LETTER I WITH ACUTE
+<dead_circumflex> <i> : "î" U00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <i> : "î" U00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
+<dead_diaeresis> <i> : "ï" U00EF # LATIN SMALL LETTER I WITH DIAERESIS
+<Multi_key> <quotedbl> <i> : "ï" U00EF # LATIN SMALL LETTER I WITH DIAERESIS
+<Multi_key> <d> <h> : "ð" U00F0 # LATIN SMALL LETTER ETH
+<dead_tilde> <n> : "ñ" U00F1 # LATIN SMALL LETTER N WITH TILDE
+<Multi_key> <asciitilde> <n> : "ñ" U00F1 # LATIN SMALL LETTER N WITH TILDE
+<combining_tilde> <n> : "ñ" U00F1 # LATIN SMALL LETTER N WITH TILDE
+<dead_grave> <o> : "ò" U00F2 # LATIN SMALL LETTER O WITH GRAVE
+<Multi_key> <grave> <o> : "ò" U00F2 # LATIN SMALL LETTER O WITH GRAVE
+<combining_grave> <o> : "ò" U00F2 # LATIN SMALL LETTER O WITH GRAVE
+<dead_acute> <o> : "ó" U00F3 # LATIN SMALL LETTER O WITH ACUTE
+<Multi_key> <acute> <o> : "ó" U00F3 # LATIN SMALL LETTER O WITH ACUTE
+<Multi_key> <apostrophe> <o> : "ó" U00F3 # LATIN SMALL LETTER O WITH ACUTE
+<combining_acute> <o> : "ó" U00F3 # LATIN SMALL LETTER O WITH ACUTE
+<dead_circumflex> <o> : "ô" U00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <o> : "ô" U00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
+<dead_tilde> <o> : "õ" U00F5 # LATIN SMALL LETTER O WITH TILDE
+<Multi_key> <asciitilde> <o> : "õ" U00F5 # LATIN SMALL LETTER O WITH TILDE
+<combining_tilde> <o> : "õ" U00F5 # LATIN SMALL LETTER O WITH TILDE
+<dead_diaeresis> <o> : "ö" U00F6 # LATIN SMALL LETTER O WITH DIAERESIS
+<Multi_key> <quotedbl> <o> : "ö" U00F6 # LATIN SMALL LETTER O WITH DIAERESIS
+<Multi_key> <colon> <minus> : "÷" U00F7 # DIVISION SIGN
+<Multi_key> <minus> <colon> : "÷" U00F7 # DIVISION SIGN
+<Multi_key> <slash> <o> : "ø" U00F8 # LATIN SMALL LETTER O WITH STROKE
+<Multi_key> <KP_Divide> <o> : "ø" U00F8 # LATIN SMALL LETTER O WITH STROKE
+<dead_grave> <u> : "ù" U00F9 # LATIN SMALL LETTER U WITH GRAVE
+<Multi_key> <grave> <u> : "ù" U00F9 # LATIN SMALL LETTER U WITH GRAVE
+<combining_grave> <u> : "ù" U00F9 # LATIN SMALL LETTER U WITH GRAVE
+<dead_acute> <u> : "ú" U00FA # LATIN SMALL LETTER U WITH ACUTE
+<Multi_key> <acute> <u> : "ú" U00FA # LATIN SMALL LETTER U WITH ACUTE
+<Multi_key> <apostrophe> <u> : "ú" U00FA # LATIN SMALL LETTER U WITH ACUTE
+<combining_acute> <u> : "ú" U00FA # LATIN SMALL LETTER U WITH ACUTE
+<dead_circumflex> <u> : "û" U00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <u> : "û" U00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
+<dead_diaeresis> <u> : "ü" U00FC # LATIN SMALL LETTER U WITH DIAERESIS
+<Multi_key> <quotedbl> <u> : "ü" U00FC # LATIN SMALL LETTER U WITH DIAERESIS
+<dead_acute> <y> : "ý" U00FD # LATIN SMALL LETTER Y WITH ACUTE
+<Multi_key> <acute> <y> : "ý" U00FD # LATIN SMALL LETTER Y WITH ACUTE
+<Multi_key> <apostrophe> <y> : "ý" U00FD # LATIN SMALL LETTER Y WITH ACUTE
+<combining_acute> <y> : "ý" U00FD # LATIN SMALL LETTER Y WITH ACUTE
+<Multi_key> <t> <h> : "þ" U00FE # LATIN SMALL LETTER THORN
+<dead_diaeresis> <y> : "ÿ" U00FF # LATIN SMALL LETTER Y WITH DIAERESIS
+<Multi_key> <quotedbl> <y> : "ÿ" U00FF # LATIN SMALL LETTER Y WITH DIAERESIS
+<dead_macron> <A> : "Ä€" U0100 # LATIN CAPITAL LETTER A WITH MACRON
+<Multi_key> <macron> <A> : "Ä€" U0100 # LATIN CAPITAL LETTER A WITH MACRON
+<Multi_key> <underscore> <A> : "Ä€" U0100 # LATIN CAPITAL LETTER A WITH MACRON
+<dead_macron> <a> : "Ä" U0101 # LATIN SMALL LETTER A WITH MACRON
+<Multi_key> <macron> <a> : "Ä" U0101 # LATIN SMALL LETTER A WITH MACRON
+<Multi_key> <underscore> <a> : "Ä" U0101 # LATIN SMALL LETTER A WITH MACRON
+<dead_breve> <A> : "Ä‚" U0102 # LATIN CAPITAL LETTER A WITH BREVE
+<Multi_key> <U> <A> : "Ä‚" U0102 # LATIN CAPITAL LETTER A WITH BREVE
+<Multi_key> <b> <A> : "Ä‚" U0102 # LATIN CAPITAL LETTER A WITH BREVE
+<dead_breve> <a> : "ă" U0103 # LATIN SMALL LETTER A WITH BREVE
+<Multi_key> <U> <a> : "ă" U0103 # LATIN SMALL LETTER A WITH BREVE
+<Multi_key> <b> <a> : "ă" U0103 # LATIN SMALL LETTER A WITH BREVE
+<dead_ogonek> <A> : "Ä„" U0104 # LATIN CAPITAL LETTER A WITH OGONEK
+<Multi_key> <semicolon> <A> : "Ä„" U0104 # LATIN CAPITAL LETTER A WITH OGONEK
+<dead_ogonek> <a> : "Ä…" U0105 # LATIN SMALL LETTER A WITH OGONEK
+<Multi_key> <semicolon> <a> : "Ä…" U0105 # LATIN SMALL LETTER A WITH OGONEK
+<dead_acute> <C> : "Ć" U0106 # LATIN CAPITAL LETTER C WITH ACUTE
+<Multi_key> <acute> <C> : "Ć" U0106 # LATIN CAPITAL LETTER C WITH ACUTE
+<Multi_key> <apostrophe> <C> : "Ć" U0106 # LATIN CAPITAL LETTER C WITH ACUTE
+<combining_acute> <C> : "Ć" U0106 # LATIN CAPITAL LETTER C WITH ACUTE
+<dead_acute> <c> : "ć" U0107 # LATIN SMALL LETTER C WITH ACUTE
+<Multi_key> <acute> <c> : "ć" U0107 # LATIN SMALL LETTER C WITH ACUTE
+<Multi_key> <apostrophe> <c> : "ć" U0107 # LATIN SMALL LETTER C WITH ACUTE
+<combining_acute> <c> : "ć" U0107 # LATIN SMALL LETTER C WITH ACUTE
+<dead_circumflex> <C> : "Ĉ" U0108 # LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <C> : "Ĉ" U0108 # LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+<dead_circumflex> <c> : "ĉ" U0109 # LATIN SMALL LETTER C WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <c> : "ĉ" U0109 # LATIN SMALL LETTER C WITH CIRCUMFLEX
+<dead_abovedot> <C> : "ÄŠ" U010A # LATIN CAPITAL LETTER C WITH DOT ABOVE
+<Multi_key> <period> <C> : "ÄŠ" U010A # LATIN CAPITAL LETTER C WITH DOT ABOVE
+<dead_abovedot> <c> : "Ä‹" U010B # LATIN SMALL LETTER C WITH DOT ABOVE
+<Multi_key> <period> <c> : "Ä‹" U010B # LATIN SMALL LETTER C WITH DOT ABOVE
+<dead_caron> <C> : "Č" U010C # LATIN CAPITAL LETTER C WITH CARON
+<Multi_key> <c> <C> : "Č" U010C # LATIN CAPITAL LETTER C WITH CARON
+<dead_caron> <c> : "Ä" U010D # LATIN SMALL LETTER C WITH CARON
+<Multi_key> <c> <c> : "Ä" U010D # LATIN SMALL LETTER C WITH CARON
+<dead_caron> <D> : "ÄŽ" U010E # LATIN CAPITAL LETTER D WITH CARON
+<Multi_key> <c> <D> : "ÄŽ" U010E # LATIN CAPITAL LETTER D WITH CARON
+<dead_caron> <d> : "Ä" U010F # LATIN SMALL LETTER D WITH CARON
+<Multi_key> <c> <d> : "Ä" U010F # LATIN SMALL LETTER D WITH CARON
+<Multi_key> <slash> <D> : "Ä" U0110 # LATIN CAPITAL LETTER D WITH STROKE
+<Multi_key> <KP_Divide> <D> : "Ä" U0110 # LATIN CAPITAL LETTER D WITH STROKE
+<Multi_key> <slash> <d> : "Ä‘" U0111 # LATIN SMALL LETTER D WITH STROKE
+<Multi_key> <KP_Divide> <d> : "Ä‘" U0111 # LATIN SMALL LETTER D WITH STROKE
+<dead_macron> <E> : "Ä’" U0112 # LATIN CAPITAL LETTER E WITH MACRON
+<Multi_key> <macron> <E> : "Ä’" U0112 # LATIN CAPITAL LETTER E WITH MACRON
+<Multi_key> <underscore> <E> : "Ä’" U0112 # LATIN CAPITAL LETTER E WITH MACRON
+<dead_macron> <e> : "Ä“" U0113 # LATIN SMALL LETTER E WITH MACRON
+<Multi_key> <macron> <e> : "Ä“" U0113 # LATIN SMALL LETTER E WITH MACRON
+<Multi_key> <underscore> <e> : "Ä“" U0113 # LATIN SMALL LETTER E WITH MACRON
+<dead_breve> <E> : "Ä”" U0114 # LATIN CAPITAL LETTER E WITH BREVE
+<Multi_key> <U> <E> : "Ä”" U0114 # LATIN CAPITAL LETTER E WITH BREVE
+<Multi_key> <b> <E> : "Ä”" U0114 # LATIN CAPITAL LETTER E WITH BREVE
+<dead_breve> <e> : "Ä•" U0115 # LATIN SMALL LETTER E WITH BREVE
+<Multi_key> <U> <e> : "Ä•" U0115 # LATIN SMALL LETTER E WITH BREVE
+<Multi_key> <b> <e> : "Ä•" U0115 # LATIN SMALL LETTER E WITH BREVE
+<dead_abovedot> <E> : "Ä–" U0116 # LATIN CAPITAL LETTER E WITH DOT ABOVE
+<Multi_key> <period> <E> : "Ä–" U0116 # LATIN CAPITAL LETTER E WITH DOT ABOVE
+<dead_abovedot> <e> : "Ä—" U0117 # LATIN SMALL LETTER E WITH DOT ABOVE
+<Multi_key> <period> <e> : "Ä—" U0117 # LATIN SMALL LETTER E WITH DOT ABOVE
+<dead_ogonek> <E> : "Ę" U0118 # LATIN CAPITAL LETTER E WITH OGONEK
+<Multi_key> <semicolon> <E> : "Ę" U0118 # LATIN CAPITAL LETTER E WITH OGONEK
+<dead_ogonek> <e> : "Ä™" U0119 # LATIN SMALL LETTER E WITH OGONEK
+<Multi_key> <semicolon> <e> : "Ä™" U0119 # LATIN SMALL LETTER E WITH OGONEK
+<dead_caron> <E> : "Äš" U011A # LATIN CAPITAL LETTER E WITH CARON
+<Multi_key> <c> <E> : "Äš" U011A # LATIN CAPITAL LETTER E WITH CARON
+<dead_caron> <e> : "Ä›" U011B # LATIN SMALL LETTER E WITH CARON
+<Multi_key> <c> <e> : "Ä›" U011B # LATIN SMALL LETTER E WITH CARON
+<dead_circumflex> <G> : "Ĝ" U011C # LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <G> : "Ĝ" U011C # LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+<dead_circumflex> <g> : "Ä" U011D # LATIN SMALL LETTER G WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <g> : "Ä" U011D # LATIN SMALL LETTER G WITH CIRCUMFLEX
+<dead_breve> <G> : "Äž" U011E # LATIN CAPITAL LETTER G WITH BREVE
+<Multi_key> <U> <G> : "Äž" U011E # LATIN CAPITAL LETTER G WITH BREVE
+<Multi_key> <b> <G> : "Äž" U011E # LATIN CAPITAL LETTER G WITH BREVE
+<dead_breve> <g> : "ÄŸ" U011F # LATIN SMALL LETTER G WITH BREVE
+<Multi_key> <U> <g> : "ÄŸ" U011F # LATIN SMALL LETTER G WITH BREVE
+<Multi_key> <b> <g> : "ÄŸ" U011F # LATIN SMALL LETTER G WITH BREVE
+<dead_abovedot> <G> : "Ä " U0120 # LATIN CAPITAL LETTER G WITH DOT ABOVE
+<Multi_key> <period> <G> : "Ä " U0120 # LATIN CAPITAL LETTER G WITH DOT ABOVE
+<dead_abovedot> <g> : "Ä¡" U0121 # LATIN SMALL LETTER G WITH DOT ABOVE
+<Multi_key> <period> <g> : "Ä¡" U0121 # LATIN SMALL LETTER G WITH DOT ABOVE
+<dead_cedilla> <G> : "Ä¢" U0122 # LATIN CAPITAL LETTER G WITH CEDILLA
+<Multi_key> <comma> <G> : "Ä¢" U0122 # LATIN CAPITAL LETTER G WITH CEDILLA
+<dead_cedilla> <g> : "Ä£" U0123 # LATIN SMALL LETTER G WITH CEDILLA
+<Multi_key> <comma> <g> : "Ä£" U0123 # LATIN SMALL LETTER G WITH CEDILLA
+<dead_circumflex> <H> : "Ĥ" U0124 # LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <H> : "Ĥ" U0124 # LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+<dead_circumflex> <h> : "Ä¥" U0125 # LATIN SMALL LETTER H WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <h> : "Ä¥" U0125 # LATIN SMALL LETTER H WITH CIRCUMFLEX
+<Multi_key> <slash> <H> : "Ħ" U0126 # LATIN CAPITAL LETTER H WITH STROKE
+<Multi_key> <KP_Divide> <H> : "Ħ" U0126 # LATIN CAPITAL LETTER H WITH STROKE
+<Multi_key> <slash> <h> : "ħ" U0127 # LATIN SMALL LETTER H WITH STROKE
+<Multi_key> <KP_Divide> <h> : "ħ" U0127 # LATIN SMALL LETTER H WITH STROKE
+<dead_tilde> <I> : "Ĩ" U0128 # LATIN CAPITAL LETTER I WITH TILDE
+<Multi_key> <asciitilde> <I> : "Ĩ" U0128 # LATIN CAPITAL LETTER I WITH TILDE
+<combining_tilde> <I> : "Ĩ" U0128 # LATIN CAPITAL LETTER I WITH TILDE
+<dead_tilde> <i> : "Ä©" U0129 # LATIN SMALL LETTER I WITH TILDE
+<Multi_key> <asciitilde> <i> : "Ä©" U0129 # LATIN SMALL LETTER I WITH TILDE
+<combining_tilde> <i> : "Ä©" U0129 # LATIN SMALL LETTER I WITH TILDE
+<dead_macron> <I> : "Ī" U012A # LATIN CAPITAL LETTER I WITH MACRON
+<Multi_key> <macron> <I> : "Ī" U012A # LATIN CAPITAL LETTER I WITH MACRON
+<Multi_key> <underscore> <I> : "Ī" U012A # LATIN CAPITAL LETTER I WITH MACRON
+<dead_macron> <i> : "Ä«" U012B # LATIN SMALL LETTER I WITH MACRON
+<Multi_key> <macron> <i> : "Ä«" U012B # LATIN SMALL LETTER I WITH MACRON
+<Multi_key> <underscore> <i> : "Ä«" U012B # LATIN SMALL LETTER I WITH MACRON
+<dead_breve> <I> : "Ĭ" U012C # LATIN CAPITAL LETTER I WITH BREVE
+<Multi_key> <U> <I> : "Ĭ" U012C # LATIN CAPITAL LETTER I WITH BREVE
+<Multi_key> <b> <I> : "Ĭ" U012C # LATIN CAPITAL LETTER I WITH BREVE
+<dead_breve> <i> : "Ä­" U012D # LATIN SMALL LETTER I WITH BREVE
+<Multi_key> <U> <i> : "Ä­" U012D # LATIN SMALL LETTER I WITH BREVE
+<Multi_key> <b> <i> : "Ä­" U012D # LATIN SMALL LETTER I WITH BREVE
+<dead_ogonek> <I> : "Ä®" U012E # LATIN CAPITAL LETTER I WITH OGONEK
+<Multi_key> <semicolon> <I> : "Ä®" U012E # LATIN CAPITAL LETTER I WITH OGONEK
+<dead_ogonek> <i> : "į" U012F # LATIN SMALL LETTER I WITH OGONEK
+<Multi_key> <semicolon> <i> : "į" U012F # LATIN SMALL LETTER I WITH OGONEK
+<dead_abovedot> <I> : "Ä°" U0130 # LATIN CAPITAL LETTER I WITH DOT ABOVE
+<Multi_key> <period> <I> : "Ä°" U0130 # LATIN CAPITAL LETTER I WITH DOT ABOVE
+<dead_abovedot> <i> : "ı" U0131 # LATIN SMALL LETTER DOTLESS I
+<Multi_key> <i> <period> : "ı" U0131 # LATIN SMALL LETTER DOTLESS I
+<dead_circumflex> <J> : "Ä´" U0134 # LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <J> : "Ä´" U0134 # LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+<dead_circumflex> <j> : "ĵ" U0135 # LATIN SMALL LETTER J WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <j> : "ĵ" U0135 # LATIN SMALL LETTER J WITH CIRCUMFLEX
+<dead_cedilla> <K> : "Ķ" U0136 # LATIN CAPITAL LETTER K WITH CEDILLA
+<Multi_key> <comma> <K> : "Ķ" U0136 # LATIN CAPITAL LETTER K WITH CEDILLA
+<dead_cedilla> <k> : "Ä·" U0137 # LATIN SMALL LETTER K WITH CEDILLA
+<Multi_key> <comma> <k> : "Ä·" U0137 # LATIN SMALL LETTER K WITH CEDILLA
+<Multi_key> <k> <k> : "ĸ" U0138 # LATIN SMALL LETTER KRA
+<dead_acute> <L> : "Ĺ" U0139 # LATIN CAPITAL LETTER L WITH ACUTE
+<Multi_key> <acute> <L> : "Ĺ" U0139 # LATIN CAPITAL LETTER L WITH ACUTE
+<Multi_key> <apostrophe> <L> : "Ĺ" U0139 # LATIN CAPITAL LETTER L WITH ACUTE
+<combining_acute> <L> : "Ĺ" U0139 # LATIN CAPITAL LETTER L WITH ACUTE
+<dead_acute> <l> : "ĺ" U013A # LATIN SMALL LETTER L WITH ACUTE
+<Multi_key> <acute> <l> : "ĺ" U013A # LATIN SMALL LETTER L WITH ACUTE
+<Multi_key> <apostrophe> <l> : "ĺ" U013A # LATIN SMALL LETTER L WITH ACUTE
+<combining_acute> <l> : "ĺ" U013A # LATIN SMALL LETTER L WITH ACUTE
+<dead_cedilla> <L> : "Ä»" U013B # LATIN CAPITAL LETTER L WITH CEDILLA
+<Multi_key> <comma> <L> : "Ä»" U013B # LATIN CAPITAL LETTER L WITH CEDILLA
+<dead_cedilla> <l> : "ļ" U013C # LATIN SMALL LETTER L WITH CEDILLA
+<Multi_key> <comma> <l> : "ļ" U013C # LATIN SMALL LETTER L WITH CEDILLA
+<dead_caron> <L> : "Ľ" U013D # LATIN CAPITAL LETTER L WITH CARON
+<Multi_key> <c> <L> : "Ľ" U013D # LATIN CAPITAL LETTER L WITH CARON
+<dead_caron> <l> : "ľ" U013E # LATIN SMALL LETTER L WITH CARON
+<Multi_key> <c> <l> : "ľ" U013E # LATIN SMALL LETTER L WITH CARON
+<Multi_key> <slash> <L> : "Å" U0141 # LATIN CAPITAL LETTER L WITH STROKE
+<Multi_key> <KP_Divide> <L> : "Å" U0141 # LATIN CAPITAL LETTER L WITH STROKE
+<Multi_key> <slash> <l> : "Å‚" U0142 # LATIN SMALL LETTER L WITH STROKE
+<Multi_key> <KP_Divide> <l> : "Å‚" U0142 # LATIN SMALL LETTER L WITH STROKE
+<dead_acute> <N> : "Ń" U0143 # LATIN CAPITAL LETTER N WITH ACUTE
+<Multi_key> <acute> <N> : "Ń" U0143 # LATIN CAPITAL LETTER N WITH ACUTE
+<Multi_key> <apostrophe> <N> : "Ń" U0143 # LATIN CAPITAL LETTER N WITH ACUTE
+<combining_acute> <N> : "Ń" U0143 # LATIN CAPITAL LETTER N WITH ACUTE
+<dead_acute> <n> : "Å„" U0144 # LATIN SMALL LETTER N WITH ACUTE
+<Multi_key> <acute> <n> : "Å„" U0144 # LATIN SMALL LETTER N WITH ACUTE
+<Multi_key> <apostrophe> <n> : "Å„" U0144 # LATIN SMALL LETTER N WITH ACUTE
+<combining_acute> <n> : "Å„" U0144 # LATIN SMALL LETTER N WITH ACUTE
+<dead_cedilla> <N> : "Å…" U0145 # LATIN CAPITAL LETTER N WITH CEDILLA
+<Multi_key> <comma> <N> : "Å…" U0145 # LATIN CAPITAL LETTER N WITH CEDILLA
+<dead_cedilla> <n> : "ņ" U0146 # LATIN SMALL LETTER N WITH CEDILLA
+<Multi_key> <comma> <n> : "ņ" U0146 # LATIN SMALL LETTER N WITH CEDILLA
+<dead_caron> <N> : "Ň" U0147 # LATIN CAPITAL LETTER N WITH CARON
+<Multi_key> <c> <N> : "Ň" U0147 # LATIN CAPITAL LETTER N WITH CARON
+<dead_caron> <n> : "ň" U0148 # LATIN SMALL LETTER N WITH CARON
+<Multi_key> <c> <n> : "ň" U0148 # LATIN SMALL LETTER N WITH CARON
+<Multi_key> <N> <G> : "ÅŠ" U014A # LATIN CAPITAL LETTER ENG
+<Multi_key> <n> <g> : "Å‹" U014B # LATIN SMALL LETTER ENG
+<dead_macron> <O> : "Ō" U014C # LATIN CAPITAL LETTER O WITH MACRON
+<Multi_key> <macron> <O> : "Ō" U014C # LATIN CAPITAL LETTER O WITH MACRON
+<Multi_key> <underscore> <O> : "Ō" U014C # LATIN CAPITAL LETTER O WITH MACRON
+<dead_macron> <o> : "Å" U014D # LATIN SMALL LETTER O WITH MACRON
+<Multi_key> <macron> <o> : "Å" U014D # LATIN SMALL LETTER O WITH MACRON
+<Multi_key> <underscore> <o> : "Å" U014D # LATIN SMALL LETTER O WITH MACRON
+<dead_breve> <O> : "ÅŽ" U014E # LATIN CAPITAL LETTER O WITH BREVE
+<Multi_key> <U> <O> : "ÅŽ" U014E # LATIN CAPITAL LETTER O WITH BREVE
+<Multi_key> <b> <O> : "ÅŽ" U014E # LATIN CAPITAL LETTER O WITH BREVE
+<dead_breve> <o> : "Å" U014F # LATIN SMALL LETTER O WITH BREVE
+<Multi_key> <U> <o> : "Å" U014F # LATIN SMALL LETTER O WITH BREVE
+<Multi_key> <b> <o> : "Å" U014F # LATIN SMALL LETTER O WITH BREVE
+<dead_doubleacute> <O> : "Å" U0150 # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+<Multi_key> <equal> <O> : "Å" U0150 # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+<dead_doubleacute> <o> : "Å‘" U0151 # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+<Multi_key> <equal> <o> : "Å‘" U0151 # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+<dead_acute> <R> : "Å”" U0154 # LATIN CAPITAL LETTER R WITH ACUTE
+<Multi_key> <acute> <R> : "Å”" U0154 # LATIN CAPITAL LETTER R WITH ACUTE
+<Multi_key> <apostrophe> <R> : "Å”" U0154 # LATIN CAPITAL LETTER R WITH ACUTE
+<combining_acute> <R> : "Å”" U0154 # LATIN CAPITAL LETTER R WITH ACUTE
+<dead_acute> <r> : "Å•" U0155 # LATIN SMALL LETTER R WITH ACUTE
+<Multi_key> <acute> <r> : "Å•" U0155 # LATIN SMALL LETTER R WITH ACUTE
+<Multi_key> <apostrophe> <r> : "Å•" U0155 # LATIN SMALL LETTER R WITH ACUTE
+<combining_acute> <r> : "Å•" U0155 # LATIN SMALL LETTER R WITH ACUTE
+<dead_cedilla> <R> : "Å–" U0156 # LATIN CAPITAL LETTER R WITH CEDILLA
+<Multi_key> <comma> <R> : "Å–" U0156 # LATIN CAPITAL LETTER R WITH CEDILLA
+<dead_cedilla> <r> : "Å—" U0157 # LATIN SMALL LETTER R WITH CEDILLA
+<Multi_key> <comma> <r> : "Å—" U0157 # LATIN SMALL LETTER R WITH CEDILLA
+<dead_caron> <R> : "Ř" U0158 # LATIN CAPITAL LETTER R WITH CARON
+<Multi_key> <c> <R> : "Ř" U0158 # LATIN CAPITAL LETTER R WITH CARON
+<dead_caron> <r> : "Å™" U0159 # LATIN SMALL LETTER R WITH CARON
+<Multi_key> <c> <r> : "Å™" U0159 # LATIN SMALL LETTER R WITH CARON
+<dead_acute> <S> : "Åš" U015A # LATIN CAPITAL LETTER S WITH ACUTE
+<Multi_key> <acute> <S> : "Åš" U015A # LATIN CAPITAL LETTER S WITH ACUTE
+<Multi_key> <apostrophe> <S> : "Åš" U015A # LATIN CAPITAL LETTER S WITH ACUTE
+<combining_acute> <S> : "Åš" U015A # LATIN CAPITAL LETTER S WITH ACUTE
+<dead_acute> <s> : "Å›" U015B # LATIN SMALL LETTER S WITH ACUTE
+<Multi_key> <acute> <s> : "Å›" U015B # LATIN SMALL LETTER S WITH ACUTE
+<Multi_key> <apostrophe> <s> : "Å›" U015B # LATIN SMALL LETTER S WITH ACUTE
+<combining_acute> <s> : "Å›" U015B # LATIN SMALL LETTER S WITH ACUTE
+<dead_circumflex> <S> : "Ŝ" U015C # LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <S> : "Ŝ" U015C # LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+<dead_circumflex> <s> : "Å" U015D # LATIN SMALL LETTER S WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <s> : "Å" U015D # LATIN SMALL LETTER S WITH CIRCUMFLEX
+<dead_cedilla> <S> : "Åž" U015E # LATIN CAPITAL LETTER S WITH CEDILLA
+<Multi_key> <comma> <S> : "Åž" U015E # LATIN CAPITAL LETTER S WITH CEDILLA
+<dead_cedilla> <s> : "ÅŸ" U015F # LATIN SMALL LETTER S WITH CEDILLA
+<Multi_key> <comma> <s> : "ÅŸ" U015F # LATIN SMALL LETTER S WITH CEDILLA
+<dead_caron> <S> : "Å " U0160 # LATIN CAPITAL LETTER S WITH CARON
+<Multi_key> <c> <S> : "Å " U0160 # LATIN CAPITAL LETTER S WITH CARON
+<dead_caron> <s> : "Å¡" U0161 # LATIN SMALL LETTER S WITH CARON
+<Multi_key> <c> <s> : "Å¡" U0161 # LATIN SMALL LETTER S WITH CARON
+<dead_cedilla> <T> : "Å¢" U0162 # LATIN CAPITAL LETTER T WITH CEDILLA
+<Multi_key> <comma> <T> : "Å¢" U0162 # LATIN CAPITAL LETTER T WITH CEDILLA
+<dead_cedilla> <t> : "Å£" U0163 # LATIN SMALL LETTER T WITH CEDILLA
+<Multi_key> <comma> <t> : "Å£" U0163 # LATIN SMALL LETTER T WITH CEDILLA
+<dead_caron> <T> : "Ť" U0164 # LATIN CAPITAL LETTER T WITH CARON
+<Multi_key> <c> <T> : "Ť" U0164 # LATIN CAPITAL LETTER T WITH CARON
+<dead_caron> <t> : "Å¥" U0165 # LATIN SMALL LETTER T WITH CARON
+<Multi_key> <c> <t> : "Å¥" U0165 # LATIN SMALL LETTER T WITH CARON
+<Multi_key> <slash> <T> : "Ŧ" U0166 # LATIN CAPITAL LETTER T WITH STROKE
+<Multi_key> <KP_Divide> <T> : "Ŧ" U0166 # LATIN CAPITAL LETTER T WITH STROKE
+<Multi_key> <slash> <t> : "ŧ" U0167 # LATIN SMALL LETTER T WITH STROKE
+<Multi_key> <KP_Divide> <t> : "ŧ" U0167 # LATIN SMALL LETTER T WITH STROKE
+<dead_tilde> <U> : "Ũ" U0168 # LATIN CAPITAL LETTER U WITH TILDE
+<Multi_key> <asciitilde> <U> : "Ũ" U0168 # LATIN CAPITAL LETTER U WITH TILDE
+<combining_tilde> <U> : "Ũ" U0168 # LATIN CAPITAL LETTER U WITH TILDE
+<dead_tilde> <u> : "Å©" U0169 # LATIN SMALL LETTER U WITH TILDE
+<Multi_key> <asciitilde> <u> : "Å©" U0169 # LATIN SMALL LETTER U WITH TILDE
+<combining_tilde> <u> : "Å©" U0169 # LATIN SMALL LETTER U WITH TILDE
+<dead_macron> <U> : "Ū" U016A # LATIN CAPITAL LETTER U WITH MACRON
+<Multi_key> <macron> <U> : "Ū" U016A # LATIN CAPITAL LETTER U WITH MACRON
+<Multi_key> <underscore> <U> : "Ū" U016A # LATIN CAPITAL LETTER U WITH MACRON
+<dead_macron> <u> : "Å«" U016B # LATIN SMALL LETTER U WITH MACRON
+<Multi_key> <macron> <u> : "Å«" U016B # LATIN SMALL LETTER U WITH MACRON
+<Multi_key> <underscore> <u> : "Å«" U016B # LATIN SMALL LETTER U WITH MACRON
+<dead_breve> <U> : "Ŭ" U016C # LATIN CAPITAL LETTER U WITH BREVE
+<Multi_key> <U> <U> : "Ŭ" U016C # LATIN CAPITAL LETTER U WITH BREVE
+<Multi_key> <b> <U> : "Ŭ" U016C # LATIN CAPITAL LETTER U WITH BREVE
+<dead_breve> <u> : "Å­" U016D # LATIN SMALL LETTER U WITH BREVE
+<Multi_key> <U> <u> : "Å­" U016D # LATIN SMALL LETTER U WITH BREVE
+<Multi_key> <b> <u> : "Å­" U016D # LATIN SMALL LETTER U WITH BREVE
+<dead_abovering> <U> : "Å®" U016E # LATIN CAPITAL LETTER U WITH RING ABOVE
+<Multi_key> <o> <U> : "Å®" U016E # LATIN CAPITAL LETTER U WITH RING ABOVE
+<dead_abovering> <u> : "ů" U016F # LATIN SMALL LETTER U WITH RING ABOVE
+<Multi_key> <o> <u> : "ů" U016F # LATIN SMALL LETTER U WITH RING ABOVE
+<dead_doubleacute> <U> : "Å°" U0170 # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+<Multi_key> <equal> <U> : "Å°" U0170 # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+<dead_doubleacute> <u> : "ű" U0171 # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+<Multi_key> <equal> <u> : "ű" U0171 # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+<dead_ogonek> <U> : "Ų" U0172 # LATIN CAPITAL LETTER U WITH OGONEK
+<Multi_key> <semicolon> <U> : "Ų" U0172 # LATIN CAPITAL LETTER U WITH OGONEK
+<dead_ogonek> <u> : "ų" U0173 # LATIN SMALL LETTER U WITH OGONEK
+<Multi_key> <semicolon> <u> : "ų" U0173 # LATIN SMALL LETTER U WITH OGONEK
+<dead_circumflex> <W> : "Å´" U0174 # LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <W> : "Å´" U0174 # LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+<dead_circumflex> <w> : "ŵ" U0175 # LATIN SMALL LETTER W WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <w> : "ŵ" U0175 # LATIN SMALL LETTER W WITH CIRCUMFLEX
+<dead_circumflex> <Y> : "Ŷ" U0176 # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <Y> : "Ŷ" U0176 # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+<dead_circumflex> <y> : "Å·" U0177 # LATIN SMALL LETTER Y WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <y> : "Å·" U0177 # LATIN SMALL LETTER Y WITH CIRCUMFLEX
+<dead_diaeresis> <Y> : "Ÿ" U0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS
+<Multi_key> <quotedbl> <Y> : "Ÿ" U0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS
+<dead_acute> <Z> : "Ź" U0179 # LATIN CAPITAL LETTER Z WITH ACUTE
+<Multi_key> <acute> <Z> : "Ź" U0179 # LATIN CAPITAL LETTER Z WITH ACUTE
+<Multi_key> <apostrophe> <Z> : "Ź" U0179 # LATIN CAPITAL LETTER Z WITH ACUTE
+<combining_acute> <Z> : "Ź" U0179 # LATIN CAPITAL LETTER Z WITH ACUTE
+<dead_acute> <z> : "ź" U017A # LATIN SMALL LETTER Z WITH ACUTE
+<Multi_key> <acute> <z> : "ź" U017A # LATIN SMALL LETTER Z WITH ACUTE
+<Multi_key> <apostrophe> <z> : "ź" U017A # LATIN SMALL LETTER Z WITH ACUTE
+<combining_acute> <z> : "ź" U017A # LATIN SMALL LETTER Z WITH ACUTE
+<dead_abovedot> <Z> : "Å»" U017B # LATIN CAPITAL LETTER Z WITH DOT ABOVE
+<Multi_key> <period> <Z> : "Å»" U017B # LATIN CAPITAL LETTER Z WITH DOT ABOVE
+<dead_abovedot> <z> : "ż" U017C # LATIN SMALL LETTER Z WITH DOT ABOVE
+<Multi_key> <period> <z> : "ż" U017C # LATIN SMALL LETTER Z WITH DOT ABOVE
+<dead_caron> <Z> : "Ž" U017D # LATIN CAPITAL LETTER Z WITH CARON
+<Multi_key> <c> <Z> : "Ž" U017D # LATIN CAPITAL LETTER Z WITH CARON
+<dead_caron> <z> : "ž" U017E # LATIN SMALL LETTER Z WITH CARON
+<Multi_key> <c> <z> : "ž" U017E # LATIN SMALL LETTER Z WITH CARON
+<Multi_key> <slash> <b> : "Æ€" U0180 # LATIN SMALL LETTER B WITH STROKE
+<Multi_key> <KP_Divide> <b> : "Æ€" U0180 # LATIN SMALL LETTER B WITH STROKE
+<Multi_key> <slash> <I> : "Æ—" U0197 # LATIN CAPITAL LETTER I WITH STROKE
+<Multi_key> <KP_Divide> <I> : "Æ—" U0197 # LATIN CAPITAL LETTER I WITH STROKE
+<dead_horn> <O> : "Æ " U01A0 # LATIN CAPITAL LETTER O WITH HORN
+<Multi_key> <plus> <O> : "Æ " U01A0 # LATIN CAPITAL LETTER O WITH HORN
+<dead_horn> <o> : "Æ¡" U01A1 # LATIN SMALL LETTER O WITH HORN
+<Multi_key> <plus> <o> : "Æ¡" U01A1 # LATIN SMALL LETTER O WITH HORN
+<dead_horn> <U> : "Ư" U01AF # LATIN CAPITAL LETTER U WITH HORN
+<Multi_key> <plus> <U> : "Ư" U01AF # LATIN CAPITAL LETTER U WITH HORN
+<dead_horn> <u> : "Æ°" U01B0 # LATIN SMALL LETTER U WITH HORN
+<Multi_key> <plus> <u> : "Æ°" U01B0 # LATIN SMALL LETTER U WITH HORN
+<Multi_key> <slash> <Z> : "Ƶ" U01B5 # LATIN CAPITAL LETTER Z WITH STROKE
+<Multi_key> <KP_Divide> <Z> : "Ƶ" U01B5 # LATIN CAPITAL LETTER Z WITH STROKE
+<Multi_key> <slash> <z> : "ƶ" U01B6 # LATIN SMALL LETTER Z WITH STROKE
+<Multi_key> <KP_Divide> <z> : "ƶ" U01B6 # LATIN SMALL LETTER Z WITH STROKE
+<dead_caron> <A> : "Ç" U01CD # LATIN CAPITAL LETTER A WITH CARON
+<Multi_key> <c> <A> : "Ç" U01CD # LATIN CAPITAL LETTER A WITH CARON
+<dead_caron> <a> : "ÇŽ" U01CE # LATIN SMALL LETTER A WITH CARON
+<Multi_key> <c> <a> : "ÇŽ" U01CE # LATIN SMALL LETTER A WITH CARON
+<dead_caron> <I> : "Ç" U01CF # LATIN CAPITAL LETTER I WITH CARON
+<Multi_key> <c> <I> : "Ç" U01CF # LATIN CAPITAL LETTER I WITH CARON
+<dead_caron> <i> : "Ç" U01D0 # LATIN SMALL LETTER I WITH CARON
+<Multi_key> <c> <i> : "Ç" U01D0 # LATIN SMALL LETTER I WITH CARON
+<dead_caron> <O> : "Ç‘" U01D1 # LATIN CAPITAL LETTER O WITH CARON
+<Multi_key> <c> <O> : "Ç‘" U01D1 # LATIN CAPITAL LETTER O WITH CARON
+<dead_caron> <o> : "Ç’" U01D2 # LATIN SMALL LETTER O WITH CARON
+<Multi_key> <c> <o> : "Ç’" U01D2 # LATIN SMALL LETTER O WITH CARON
+<dead_caron> <U> : "Ç“" U01D3 # LATIN CAPITAL LETTER U WITH CARON
+<Multi_key> <c> <U> : "Ç“" U01D3 # LATIN CAPITAL LETTER U WITH CARON
+<dead_caron> <u> : "Ç”" U01D4 # LATIN SMALL LETTER U WITH CARON
+<Multi_key> <c> <u> : "Ç”" U01D4 # LATIN SMALL LETTER U WITH CARON
+<dead_macron> <Udiaeresis> : "Ç•" U01D5 # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <Udiaeresis> : "Ç•" U01D5 # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <Udiaeresis> : "Ç•" U01D5 # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+<dead_macron> <dead_diaeresis> <U> : "Ç•" U01D5 # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+<dead_macron> <Multi_key> <quotedbl> <U> : "Ç•" U01D5 # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <dead_diaeresis> <U> : "Ç•" U01D5 # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <quotedbl> <U> : "Ç•" U01D5 # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <dead_diaeresis> <U> : "Ç•" U01D5 # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <quotedbl> <U> : "Ç•" U01D5 # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+<dead_macron> <udiaeresis> : "Ç–" U01D6 # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <udiaeresis> : "Ç–" U01D6 # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <udiaeresis> : "Ç–" U01D6 # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+<dead_macron> <dead_diaeresis> <u> : "Ç–" U01D6 # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+<dead_macron> <Multi_key> <quotedbl> <u> : "Ç–" U01D6 # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <dead_diaeresis> <u> : "Ç–" U01D6 # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <quotedbl> <u> : "Ç–" U01D6 # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <dead_diaeresis> <u> : "Ç–" U01D6 # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <quotedbl> <u> : "Ç–" U01D6 # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+<dead_acute> <Udiaeresis> : "Ç—" U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+<Multi_key> <acute> <Udiaeresis> : "Ç—" U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+<Multi_key> <apostrophe> <Udiaeresis> : "Ç—" U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+<dead_acute> <dead_diaeresis> <U> : "Ç—" U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+<dead_acute> <Multi_key> <quotedbl> <U> : "Ç—" U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+<Multi_key> <acute> <dead_diaeresis> <U> : "Ç—" U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+<Multi_key> <acute> <quotedbl> <U> : "Ç—" U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+<Multi_key> <apostrophe> <dead_diaeresis> <U> : "Ç—" U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+<Multi_key> <apostrophe> <quotedbl> <U> : "Ç—" U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+<combining_acute> <Udiaeresis> : "Ç—" U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+<combining_acute> <dead_diaeresis> <U> : "Ç—" U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+<combining_acute> <Multi_key> <quotedbl> <U> : "Ç—" U01D7 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+<dead_acute> <udiaeresis> : "ǘ" U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+<Multi_key> <acute> <udiaeresis> : "ǘ" U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+<Multi_key> <apostrophe> <udiaeresis> : "ǘ" U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+<dead_acute> <dead_diaeresis> <u> : "ǘ" U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+<dead_acute> <Multi_key> <quotedbl> <u> : "ǘ" U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+<Multi_key> <acute> <dead_diaeresis> <u> : "ǘ" U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+<Multi_key> <acute> <quotedbl> <u> : "ǘ" U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+<Multi_key> <apostrophe> <dead_diaeresis> <u> : "ǘ" U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+<Multi_key> <apostrophe> <quotedbl> <u> : "ǘ" U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+<combining_acute> <udiaeresis> : "ǘ" U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+<combining_acute> <dead_diaeresis> <u> : "ǘ" U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+<combining_acute> <Multi_key> <quotedbl> <u> : "ǘ" U01D8 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+<dead_caron> <Udiaeresis> : "Ç™" U01D9 # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+<Multi_key> <c> <Udiaeresis> : "Ç™" U01D9 # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+<dead_caron> <dead_diaeresis> <U> : "Ç™" U01D9 # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+<dead_caron> <Multi_key> <quotedbl> <U> : "Ç™" U01D9 # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+<Multi_key> <c> <dead_diaeresis> <U> : "Ç™" U01D9 # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+<Multi_key> <c> <quotedbl> <U> : "Ç™" U01D9 # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+<dead_caron> <udiaeresis> : "Çš" U01DA # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+<Multi_key> <c> <udiaeresis> : "Çš" U01DA # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+<dead_caron> <dead_diaeresis> <u> : "Çš" U01DA # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+<dead_caron> <Multi_key> <quotedbl> <u> : "Çš" U01DA # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+<Multi_key> <c> <dead_diaeresis> <u> : "Çš" U01DA # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+<Multi_key> <c> <quotedbl> <u> : "Çš" U01DA # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+<dead_grave> <Udiaeresis> : "Ç›" U01DB # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+<Multi_key> <grave> <Udiaeresis> : "Ç›" U01DB # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+<dead_grave> <dead_diaeresis> <U> : "Ç›" U01DB # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+<dead_grave> <Multi_key> <quotedbl> <U> : "Ç›" U01DB # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+<Multi_key> <grave> <dead_diaeresis> <U> : "Ç›" U01DB # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+<Multi_key> <grave> <quotedbl> <U> : "Ç›" U01DB # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+<combining_grave> <Udiaeresis> : "Ç›" U01DB # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+<combining_grave> <dead_diaeresis> <U> : "Ç›" U01DB # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+<combining_grave> <Multi_key> <quotedbl> <U> : "Ç›" U01DB # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+<dead_grave> <udiaeresis> : "ǜ" U01DC # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+<Multi_key> <grave> <udiaeresis> : "ǜ" U01DC # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+<dead_grave> <dead_diaeresis> <u> : "ǜ" U01DC # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+<dead_grave> <Multi_key> <quotedbl> <u> : "ǜ" U01DC # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+<Multi_key> <grave> <dead_diaeresis> <u> : "ǜ" U01DC # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+<Multi_key> <grave> <quotedbl> <u> : "ǜ" U01DC # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+<combining_grave> <udiaeresis> : "ǜ" U01DC # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+<combining_grave> <dead_diaeresis> <u> : "ǜ" U01DC # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+<combining_grave> <Multi_key> <quotedbl> <u> : "ǜ" U01DC # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+<dead_macron> <Adiaeresis> : "Çž" U01DE # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <Adiaeresis> : "Çž" U01DE # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <Adiaeresis> : "Çž" U01DE # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+<dead_macron> <dead_diaeresis> <A> : "Çž" U01DE # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+<dead_macron> <Multi_key> <quotedbl> <A> : "Çž" U01DE # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <dead_diaeresis> <A> : "Çž" U01DE # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <quotedbl> <A> : "Çž" U01DE # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <dead_diaeresis> <A> : "Çž" U01DE # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <quotedbl> <A> : "Çž" U01DE # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+<dead_macron> <adiaeresis> : "ÇŸ" U01DF # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <adiaeresis> : "ÇŸ" U01DF # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <adiaeresis> : "ÇŸ" U01DF # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+<dead_macron> <dead_diaeresis> <a> : "ÇŸ" U01DF # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+<dead_macron> <Multi_key> <quotedbl> <a> : "ÇŸ" U01DF # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <dead_diaeresis> <a> : "ÇŸ" U01DF # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <quotedbl> <a> : "ÇŸ" U01DF # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <dead_diaeresis> <a> : "ÇŸ" U01DF # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <quotedbl> <a> : "ÇŸ" U01DF # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+<dead_macron> <U0226> : "Ç " U01E0 # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+<Multi_key> <macron> <U0226> : "Ç " U01E0 # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+<Multi_key> <underscore> <U0226> : "Ç " U01E0 # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+<dead_macron> <dead_abovedot> <A> : "Ç " U01E0 # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+<dead_macron> <Multi_key> <period> <A> : "Ç " U01E0 # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+<Multi_key> <macron> <dead_abovedot> <A> : "Ç " U01E0 # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+<Multi_key> <macron> <period> <A> : "Ç " U01E0 # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+<Multi_key> <underscore> <dead_abovedot> <A> : "Ç " U01E0 # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+<Multi_key> <underscore> <period> <A> : "Ç " U01E0 # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+<dead_macron> <U0227> : "Ç¡" U01E1 # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+<Multi_key> <macron> <U0227> : "Ç¡" U01E1 # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+<Multi_key> <underscore> <U0227> : "Ç¡" U01E1 # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+<dead_macron> <dead_abovedot> <a> : "Ç¡" U01E1 # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+<dead_macron> <Multi_key> <period> <a> : "Ç¡" U01E1 # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+<Multi_key> <macron> <dead_abovedot> <a> : "Ç¡" U01E1 # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+<Multi_key> <macron> <period> <a> : "Ç¡" U01E1 # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+<Multi_key> <underscore> <dead_abovedot> <a> : "Ç¡" U01E1 # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+<Multi_key> <underscore> <period> <a> : "Ç¡" U01E1 # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+<dead_macron> <AE> : "Ç¢" U01E2 # LATIN CAPITAL LETTER AE WITH MACRON
+<Multi_key> <macron> <AE> : "Ç¢" U01E2 # LATIN CAPITAL LETTER AE WITH MACRON
+<Multi_key> <underscore> <AE> : "Ç¢" U01E2 # LATIN CAPITAL LETTER AE WITH MACRON
+<dead_macron> <ae> : "Ç£" U01E3 # LATIN SMALL LETTER AE WITH MACRON
+<Multi_key> <macron> <ae> : "Ç£" U01E3 # LATIN SMALL LETTER AE WITH MACRON
+<Multi_key> <underscore> <ae> : "Ç£" U01E3 # LATIN SMALL LETTER AE WITH MACRON
+<Multi_key> <slash> <G> : "Ǥ" U01E4 # LATIN CAPITAL LETTER G WITH STROKE
+<Multi_key> <KP_Divide> <G> : "Ǥ" U01E4 # LATIN CAPITAL LETTER G WITH STROKE
+<Multi_key> <slash> <g> : "Ç¥" U01E5 # LATIN SMALL LETTER G WITH STROKE
+<Multi_key> <KP_Divide> <g> : "Ç¥" U01E5 # LATIN SMALL LETTER G WITH STROKE
+<dead_caron> <G> : "Ǧ" U01E6 # LATIN CAPITAL LETTER G WITH CARON
+<Multi_key> <c> <G> : "Ǧ" U01E6 # LATIN CAPITAL LETTER G WITH CARON
+<dead_caron> <g> : "ǧ" U01E7 # LATIN SMALL LETTER G WITH CARON
+<Multi_key> <c> <g> : "ǧ" U01E7 # LATIN SMALL LETTER G WITH CARON
+<dead_caron> <K> : "Ǩ" U01E8 # LATIN CAPITAL LETTER K WITH CARON
+<Multi_key> <c> <K> : "Ǩ" U01E8 # LATIN CAPITAL LETTER K WITH CARON
+<dead_caron> <k> : "Ç©" U01E9 # LATIN SMALL LETTER K WITH CARON
+<Multi_key> <c> <k> : "Ç©" U01E9 # LATIN SMALL LETTER K WITH CARON
+<dead_ogonek> <O> : "Ǫ" U01EA # LATIN CAPITAL LETTER O WITH OGONEK
+<Multi_key> <semicolon> <O> : "Ǫ" U01EA # LATIN CAPITAL LETTER O WITH OGONEK
+<dead_ogonek> <o> : "Ç«" U01EB # LATIN SMALL LETTER O WITH OGONEK
+<Multi_key> <semicolon> <o> : "Ç«" U01EB # LATIN SMALL LETTER O WITH OGONEK
+<dead_macron> <U01ea> : "Ǭ" U01EC # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+<Multi_key> <macron> <U01ea> : "Ǭ" U01EC # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+<Multi_key> <underscore> <U01ea> : "Ǭ" U01EC # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+<dead_macron> <dead_ogonek> <O> : "Ǭ" U01EC # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+<dead_macron> <Multi_key> <semicolon> <O> : "Ǭ" U01EC # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+<Multi_key> <macron> <dead_ogonek> <O> : "Ǭ" U01EC # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+<Multi_key> <macron> <semicolon> <O> : "Ǭ" U01EC # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+<Multi_key> <underscore> <dead_ogonek> <O> : "Ǭ" U01EC # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+<Multi_key> <underscore> <semicolon> <O> : "Ǭ" U01EC # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+<dead_macron> <U01eb> : "Ç­" U01ED # LATIN SMALL LETTER O WITH OGONEK AND MACRON
+<Multi_key> <macron> <U01eb> : "Ç­" U01ED # LATIN SMALL LETTER O WITH OGONEK AND MACRON
+<Multi_key> <underscore> <U01eb> : "Ç­" U01ED # LATIN SMALL LETTER O WITH OGONEK AND MACRON
+<dead_macron> <dead_ogonek> <o> : "Ç­" U01ED # LATIN SMALL LETTER O WITH OGONEK AND MACRON
+<dead_macron> <Multi_key> <semicolon> <o> : "Ç­" U01ED # LATIN SMALL LETTER O WITH OGONEK AND MACRON
+<Multi_key> <macron> <dead_ogonek> <o> : "Ç­" U01ED # LATIN SMALL LETTER O WITH OGONEK AND MACRON
+<Multi_key> <macron> <semicolon> <o> : "Ç­" U01ED # LATIN SMALL LETTER O WITH OGONEK AND MACRON
+<Multi_key> <underscore> <dead_ogonek> <o> : "Ç­" U01ED # LATIN SMALL LETTER O WITH OGONEK AND MACRON
+<Multi_key> <underscore> <semicolon> <o> : "Ç­" U01ED # LATIN SMALL LETTER O WITH OGONEK AND MACRON
+<dead_caron> <U01b7> : "Ç®" U01EE # LATIN CAPITAL LETTER EZH WITH CARON
+<Multi_key> <c> <U01b7> : "Ç®" U01EE # LATIN CAPITAL LETTER EZH WITH CARON
+<dead_caron> <U0292> : "ǯ" U01EF # LATIN SMALL LETTER EZH WITH CARON
+<Multi_key> <c> <U0292> : "ǯ" U01EF # LATIN SMALL LETTER EZH WITH CARON
+<dead_caron> <j> : "Ç°" U01F0 # LATIN SMALL LETTER J WITH CARON
+<Multi_key> <c> <j> : "Ç°" U01F0 # LATIN SMALL LETTER J WITH CARON
+<dead_acute> <G> : "Ç´" U01F4 # LATIN CAPITAL LETTER G WITH ACUTE
+<Multi_key> <acute> <G> : "Ç´" U01F4 # LATIN CAPITAL LETTER G WITH ACUTE
+<Multi_key> <apostrophe> <G> : "Ç´" U01F4 # LATIN CAPITAL LETTER G WITH ACUTE
+<combining_acute> <G> : "Ç´" U01F4 # LATIN CAPITAL LETTER G WITH ACUTE
+<dead_acute> <g> : "ǵ" U01F5 # LATIN SMALL LETTER G WITH ACUTE
+<Multi_key> <acute> <g> : "ǵ" U01F5 # LATIN SMALL LETTER G WITH ACUTE
+<Multi_key> <apostrophe> <g> : "ǵ" U01F5 # LATIN SMALL LETTER G WITH ACUTE
+<combining_acute> <g> : "ǵ" U01F5 # LATIN SMALL LETTER G WITH ACUTE
+<dead_grave> <N> : "Ǹ" U01F8 # LATIN CAPITAL LETTER N WITH GRAVE
+<Multi_key> <grave> <N> : "Ǹ" U01F8 # LATIN CAPITAL LETTER N WITH GRAVE
+<combining_grave> <N> : "Ǹ" U01F8 # LATIN CAPITAL LETTER N WITH GRAVE
+<dead_grave> <n> : "ǹ" U01F9 # LATIN SMALL LETTER N WITH GRAVE
+<Multi_key> <grave> <n> : "ǹ" U01F9 # LATIN SMALL LETTER N WITH GRAVE
+<combining_grave> <n> : "ǹ" U01F9 # LATIN SMALL LETTER N WITH GRAVE
+<dead_acute> <Aring> : "Ǻ" U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+<Multi_key> <acute> <Aring> : "Ǻ" U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+<Multi_key> <apostrophe> <Aring> : "Ǻ" U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+<dead_acute> <dead_abovering> <A> : "Ǻ" U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+<dead_acute> <Multi_key> <o> <A> : "Ǻ" U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+<Multi_key> <acute> <dead_abovering> <A> : "Ǻ" U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+<Multi_key> <acute> <o> <A> : "Ǻ" U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+<Multi_key> <apostrophe> <dead_abovering> <A> : "Ǻ" U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+<Multi_key> <o> <apostrophe> <A> : "Ǻ" U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+<combining_acute> <Aring> : "Ǻ" U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+<combining_acute> <dead_abovering> <A> : "Ǻ" U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+<combining_acute> <Multi_key> <o> <A> : "Ǻ" U01FA # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+<dead_acute> <aring> : "Ç»" U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+<Multi_key> <acute> <aring> : "Ç»" U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+<Multi_key> <apostrophe> <aring> : "Ç»" U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+<dead_acute> <dead_abovering> <a> : "Ç»" U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+<dead_acute> <Multi_key> <o> <a> : "Ç»" U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+<Multi_key> <acute> <dead_abovering> <a> : "Ç»" U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+<Multi_key> <acute> <o> <a> : "Ç»" U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+<Multi_key> <apostrophe> <dead_abovering> <a> : "Ç»" U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+<Multi_key> <o> <apostrophe> <a> : "Ç»" U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+<combining_acute> <aring> : "Ç»" U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+<combining_acute> <dead_abovering> <a> : "Ç»" U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+<combining_acute> <Multi_key> <o> <a> : "Ç»" U01FB # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+<dead_acute> <AE> : "Ǽ" U01FC # LATIN CAPITAL LETTER AE WITH ACUTE
+<Multi_key> <acute> <AE> : "Ǽ" U01FC # LATIN CAPITAL LETTER AE WITH ACUTE
+<Multi_key> <apostrophe> <AE> : "Ǽ" U01FC # LATIN CAPITAL LETTER AE WITH ACUTE
+<combining_acute> <AE> : "Ǽ" U01FC # LATIN CAPITAL LETTER AE WITH ACUTE
+<dead_acute> <ae> : "ǽ" U01FD # LATIN SMALL LETTER AE WITH ACUTE
+<Multi_key> <acute> <ae> : "ǽ" U01FD # LATIN SMALL LETTER AE WITH ACUTE
+<Multi_key> <apostrophe> <ae> : "ǽ" U01FD # LATIN SMALL LETTER AE WITH ACUTE
+<combining_acute> <ae> : "ǽ" U01FD # LATIN SMALL LETTER AE WITH ACUTE
+<dead_acute> <Ooblique> : "Ǿ" U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+<Multi_key> <acute> <Ooblique> : "Ǿ" U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+<Multi_key> <apostrophe> <Ooblique> : "Ǿ" U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+<dead_acute> <Multi_key> <slash> <O> : "Ǿ" U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+<Multi_key> <acute> <slash> <O> : "Ǿ" U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+<Multi_key> <apostrophe> <slash> <O> : "Ǿ" U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+<dead_acute> <Multi_key> <KP_Divide> <O> : "Ǿ" U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+<Multi_key> <acute> <KP_Divide> <O> : "Ǿ" U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+<Multi_key> <apostrophe> <KP_Divide> <O> : "Ǿ" U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+<combining_acute> <Ooblique> : "Ǿ" U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+<combining_acute> <Multi_key> <slash> <O> : "Ǿ" U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+<combining_acute> <Multi_key> <KP_Divide> <O> : "Ǿ" U01FE # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+<dead_acute> <oslash> : "Ç¿" U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+<Multi_key> <acute> <oslash> : "Ç¿" U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+<Multi_key> <apostrophe> <oslash> : "Ç¿" U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+<dead_acute> <Multi_key> <slash> <o> : "Ç¿" U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+<Multi_key> <acute> <slash> <o> : "Ç¿" U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+<Multi_key> <apostrophe> <slash> <o> : "Ç¿" U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+<dead_acute> <Multi_key> <KP_Divide> <o> : "Ç¿" U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+<Multi_key> <acute> <KP_Divide> <o> : "Ç¿" U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+<Multi_key> <apostrophe> <KP_Divide> <o> : "Ç¿" U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+<combining_acute> <oslash> : "Ç¿" U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+<combining_acute> <Multi_key> <slash> <o> : "Ç¿" U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+<combining_acute> <Multi_key> <KP_Divide> <o> : "Ç¿" U01FF # LATIN SMALL LETTER O WITH STROKE AND ACUTE
+<U030f> <A> : "È€" U0200 # LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
+<U030f> <a> : "È" U0201 # LATIN SMALL LETTER A WITH DOUBLE GRAVE
+<U0311> <A> : "È‚" U0202 # LATIN CAPITAL LETTER A WITH INVERTED BREVE
+<U0311> <a> : "ȃ" U0203 # LATIN SMALL LETTER A WITH INVERTED BREVE
+<U030f> <E> : "È„" U0204 # LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
+<U030f> <e> : "È…" U0205 # LATIN SMALL LETTER E WITH DOUBLE GRAVE
+<U0311> <E> : "Ȇ" U0206 # LATIN CAPITAL LETTER E WITH INVERTED BREVE
+<U0311> <e> : "ȇ" U0207 # LATIN SMALL LETTER E WITH INVERTED BREVE
+<U030f> <I> : "Ȉ" U0208 # LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
+<U030f> <i> : "ȉ" U0209 # LATIN SMALL LETTER I WITH DOUBLE GRAVE
+<U0311> <I> : "ÈŠ" U020A # LATIN CAPITAL LETTER I WITH INVERTED BREVE
+<U0311> <i> : "È‹" U020B # LATIN SMALL LETTER I WITH INVERTED BREVE
+<U030f> <O> : "Ȍ" U020C # LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
+<U030f> <o> : "È" U020D # LATIN SMALL LETTER O WITH DOUBLE GRAVE
+<U0311> <O> : "ÈŽ" U020E # LATIN CAPITAL LETTER O WITH INVERTED BREVE
+<U0311> <o> : "È" U020F # LATIN SMALL LETTER O WITH INVERTED BREVE
+<U030f> <R> : "È" U0210 # LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
+<U030f> <r> : "È‘" U0211 # LATIN SMALL LETTER R WITH DOUBLE GRAVE
+<U0311> <R> : "È’" U0212 # LATIN CAPITAL LETTER R WITH INVERTED BREVE
+<U0311> <r> : "È“" U0213 # LATIN SMALL LETTER R WITH INVERTED BREVE
+<U030f> <U> : "È”" U0214 # LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
+<U030f> <u> : "È•" U0215 # LATIN SMALL LETTER U WITH DOUBLE GRAVE
+<U0311> <U> : "È–" U0216 # LATIN CAPITAL LETTER U WITH INVERTED BREVE
+<U0311> <u> : "È—" U0217 # LATIN SMALL LETTER U WITH INVERTED BREVE
+<U0326> <S> : "Ș" U0218 # LATIN CAPITAL LETTER S WITH COMMA BELOW
+<U0326> <s> : "È™" U0219 # LATIN SMALL LETTER S WITH COMMA BELOW
+<U0326> <T> : "Èš" U021A # LATIN CAPITAL LETTER T WITH COMMA BELOW
+<U0326> <t> : "È›" U021B # LATIN SMALL LETTER T WITH COMMA BELOW
+<dead_caron> <H> : "Èž" U021E # LATIN CAPITAL LETTER H WITH CARON
+<Multi_key> <c> <H> : "Èž" U021E # LATIN CAPITAL LETTER H WITH CARON
+<dead_caron> <h> : "ÈŸ" U021F # LATIN SMALL LETTER H WITH CARON
+<Multi_key> <c> <h> : "ÈŸ" U021F # LATIN SMALL LETTER H WITH CARON
+<dead_abovedot> <A> : "Ȧ" U0226 # LATIN CAPITAL LETTER A WITH DOT ABOVE
+<Multi_key> <period> <A> : "Ȧ" U0226 # LATIN CAPITAL LETTER A WITH DOT ABOVE
+<dead_abovedot> <a> : "ȧ" U0227 # LATIN SMALL LETTER A WITH DOT ABOVE
+<Multi_key> <period> <a> : "ȧ" U0227 # LATIN SMALL LETTER A WITH DOT ABOVE
+<dead_cedilla> <E> : "Ȩ" U0228 # LATIN CAPITAL LETTER E WITH CEDILLA
+<Multi_key> <comma> <E> : "Ȩ" U0228 # LATIN CAPITAL LETTER E WITH CEDILLA
+<dead_cedilla> <e> : "È©" U0229 # LATIN SMALL LETTER E WITH CEDILLA
+<Multi_key> <comma> <e> : "È©" U0229 # LATIN SMALL LETTER E WITH CEDILLA
+<dead_macron> <Odiaeresis> : "Ȫ" U022A # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <Odiaeresis> : "Ȫ" U022A # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <Odiaeresis> : "Ȫ" U022A # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+<dead_macron> <dead_diaeresis> <O> : "Ȫ" U022A # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+<dead_macron> <Multi_key> <quotedbl> <O> : "Ȫ" U022A # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <dead_diaeresis> <O> : "Ȫ" U022A # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <quotedbl> <O> : "Ȫ" U022A # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <dead_diaeresis> <O> : "Ȫ" U022A # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <quotedbl> <O> : "Ȫ" U022A # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+<dead_macron> <odiaeresis> : "È«" U022B # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <odiaeresis> : "È«" U022B # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <odiaeresis> : "È«" U022B # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+<dead_macron> <dead_diaeresis> <o> : "È«" U022B # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+<dead_macron> <Multi_key> <quotedbl> <o> : "È«" U022B # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <dead_diaeresis> <o> : "È«" U022B # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+<Multi_key> <macron> <quotedbl> <o> : "È«" U022B # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <dead_diaeresis> <o> : "È«" U022B # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+<Multi_key> <underscore> <quotedbl> <o> : "È«" U022B # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+<dead_macron> <Otilde> : "Ȭ" U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+<Multi_key> <macron> <Otilde> : "Ȭ" U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+<Multi_key> <underscore> <Otilde> : "Ȭ" U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+<dead_macron> <dead_tilde> <O> : "Ȭ" U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+<dead_macron> <Multi_key> <asciitilde> <O> : "Ȭ" U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+<Multi_key> <macron> <dead_tilde> <O> : "Ȭ" U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+<Multi_key> <macron> <asciitilde> <O> : "Ȭ" U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+<Multi_key> <underscore> <dead_tilde> <O> : "Ȭ" U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+<Multi_key> <underscore> <asciitilde> <O> : "Ȭ" U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+<dead_macron> <combining_tilde> <O> : "Ȭ" U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+<Multi_key> <macron> <combining_tilde> <O> : "Ȭ" U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+<Multi_key> <underscore> <combining_tilde> <O> : "Ȭ" U022C # LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+<dead_macron> <otilde> : "È­" U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
+<Multi_key> <macron> <otilde> : "È­" U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
+<Multi_key> <underscore> <otilde> : "È­" U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
+<dead_macron> <dead_tilde> <o> : "È­" U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
+<dead_macron> <Multi_key> <asciitilde> <o> : "È­" U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
+<Multi_key> <macron> <dead_tilde> <o> : "È­" U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
+<Multi_key> <macron> <asciitilde> <o> : "È­" U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
+<Multi_key> <underscore> <dead_tilde> <o> : "È­" U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
+<Multi_key> <underscore> <asciitilde> <o> : "È­" U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
+<dead_macron> <combining_tilde> <o> : "È­" U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
+<Multi_key> <macron> <combining_tilde> <o> : "È­" U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
+<Multi_key> <underscore> <combining_tilde> <o> : "È­" U022D # LATIN SMALL LETTER O WITH TILDE AND MACRON
+<dead_abovedot> <O> : "È®" U022E # LATIN CAPITAL LETTER O WITH DOT ABOVE
+<Multi_key> <period> <O> : "È®" U022E # LATIN CAPITAL LETTER O WITH DOT ABOVE
+<dead_abovedot> <o> : "ȯ" U022F # LATIN SMALL LETTER O WITH DOT ABOVE
+<Multi_key> <period> <o> : "ȯ" U022F # LATIN SMALL LETTER O WITH DOT ABOVE
+<dead_macron> <U022e> : "È°" U0230 # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+<Multi_key> <macron> <U022e> : "È°" U0230 # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+<Multi_key> <underscore> <U022e> : "È°" U0230 # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+<dead_macron> <dead_abovedot> <O> : "È°" U0230 # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+<dead_macron> <Multi_key> <period> <O> : "È°" U0230 # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+<Multi_key> <macron> <dead_abovedot> <O> : "È°" U0230 # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+<Multi_key> <macron> <period> <O> : "È°" U0230 # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+<Multi_key> <underscore> <dead_abovedot> <O> : "È°" U0230 # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+<Multi_key> <underscore> <period> <O> : "È°" U0230 # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+<dead_macron> <U022f> : "ȱ" U0231 # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+<Multi_key> <macron> <U022f> : "ȱ" U0231 # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+<Multi_key> <underscore> <U022f> : "ȱ" U0231 # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+<dead_macron> <dead_abovedot> <o> : "ȱ" U0231 # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+<dead_macron> <Multi_key> <period> <o> : "ȱ" U0231 # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+<Multi_key> <macron> <dead_abovedot> <o> : "ȱ" U0231 # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+<Multi_key> <macron> <period> <o> : "ȱ" U0231 # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+<Multi_key> <underscore> <dead_abovedot> <o> : "ȱ" U0231 # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+<Multi_key> <underscore> <period> <o> : "ȱ" U0231 # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+<dead_macron> <Y> : "Ȳ" U0232 # LATIN CAPITAL LETTER Y WITH MACRON
+<Multi_key> <macron> <Y> : "Ȳ" U0232 # LATIN CAPITAL LETTER Y WITH MACRON
+<Multi_key> <underscore> <Y> : "Ȳ" U0232 # LATIN CAPITAL LETTER Y WITH MACRON
+<dead_macron> <y> : "ȳ" U0233 # LATIN SMALL LETTER Y WITH MACRON
+<Multi_key> <macron> <y> : "ȳ" U0233 # LATIN SMALL LETTER Y WITH MACRON
+<Multi_key> <underscore> <y> : "ȳ" U0233 # LATIN SMALL LETTER Y WITH MACRON
+<Multi_key> <e> <e> : "É™" U0259 # LATIN SMALL LETTER SCHWA
+<Multi_key> <slash> <i> : "ɨ" U0268 # LATIN SMALL LETTER I WITH STROKE
+<Multi_key> <KP_Divide> <i> : "ɨ" U0268 # LATIN SMALL LETTER I WITH STROKE
+<Multi_key> <slash> <U0294> : "Ê¡" U02A1 # LATIN LETTER GLOTTAL STOP WITH STROKE
+<Multi_key> <KP_Divide> <U0294> : "Ê¡" U02A1 # LATIN LETTER GLOTTAL STOP WITH STROKE
+<dead_circumflex> <Multi_key> <underscore> <h> : "Ê°" U02B0 # MODIFIER LETTER SMALL H
+<Multi_key> <asciicircum> <underscore> <h> : "Ê°" U02B0 # MODIFIER LETTER SMALL H
+<dead_circumflex> <Multi_key> <underbar> <h> : "Ê°" U02B0 # MODIFIER LETTER SMALL H
+<Multi_key> <asciicircum> <underbar> <h> : "Ê°" U02B0 # MODIFIER LETTER SMALL H
+<dead_circumflex> <Multi_key> <underscore> <U0266> : "ʱ" U02B1 # MODIFIER LETTER SMALL H WITH HOOK
+<Multi_key> <asciicircum> <underscore> <U0266> : "ʱ" U02B1 # MODIFIER LETTER SMALL H WITH HOOK
+<dead_circumflex> <Multi_key> <underbar> <U0266> : "ʱ" U02B1 # MODIFIER LETTER SMALL H WITH HOOK
+<Multi_key> <asciicircum> <underbar> <U0266> : "ʱ" U02B1 # MODIFIER LETTER SMALL H WITH HOOK
+<dead_circumflex> <Multi_key> <underscore> <j> : "ʲ" U02B2 # MODIFIER LETTER SMALL J
+<Multi_key> <asciicircum> <underscore> <j> : "ʲ" U02B2 # MODIFIER LETTER SMALL J
+<dead_circumflex> <Multi_key> <underbar> <j> : "ʲ" U02B2 # MODIFIER LETTER SMALL J
+<Multi_key> <asciicircum> <underbar> <j> : "ʲ" U02B2 # MODIFIER LETTER SMALL J
+<dead_circumflex> <Multi_key> <underscore> <r> : "ʳ" U02B3 # MODIFIER LETTER SMALL R
+<Multi_key> <asciicircum> <underscore> <r> : "ʳ" U02B3 # MODIFIER LETTER SMALL R
+<dead_circumflex> <Multi_key> <underbar> <r> : "ʳ" U02B3 # MODIFIER LETTER SMALL R
+<Multi_key> <asciicircum> <underbar> <r> : "ʳ" U02B3 # MODIFIER LETTER SMALL R
+<dead_circumflex> <Multi_key> <underscore> <U0279> : "Ê´" U02B4 # MODIFIER LETTER SMALL TURNED R
+<Multi_key> <asciicircum> <underscore> <U0279> : "Ê´" U02B4 # MODIFIER LETTER SMALL TURNED R
+<dead_circumflex> <Multi_key> <underbar> <U0279> : "Ê´" U02B4 # MODIFIER LETTER SMALL TURNED R
+<Multi_key> <asciicircum> <underbar> <U0279> : "Ê´" U02B4 # MODIFIER LETTER SMALL TURNED R
+<dead_circumflex> <Multi_key> <underscore> <U027b> : "ʵ" U02B5 # MODIFIER LETTER SMALL TURNED R WITH HOOK
+<Multi_key> <asciicircum> <underscore> <U027b> : "ʵ" U02B5 # MODIFIER LETTER SMALL TURNED R WITH HOOK
+<dead_circumflex> <Multi_key> <underbar> <U027b> : "ʵ" U02B5 # MODIFIER LETTER SMALL TURNED R WITH HOOK
+<Multi_key> <asciicircum> <underbar> <U027b> : "ʵ" U02B5 # MODIFIER LETTER SMALL TURNED R WITH HOOK
+<dead_circumflex> <Multi_key> <underscore> <U0281> : "ʶ" U02B6 # MODIFIER LETTER SMALL CAPITAL INVERTED R
+<Multi_key> <asciicircum> <underscore> <U0281> : "ʶ" U02B6 # MODIFIER LETTER SMALL CAPITAL INVERTED R
+<dead_circumflex> <Multi_key> <underbar> <U0281> : "ʶ" U02B6 # MODIFIER LETTER SMALL CAPITAL INVERTED R
+<Multi_key> <asciicircum> <underbar> <U0281> : "ʶ" U02B6 # MODIFIER LETTER SMALL CAPITAL INVERTED R
+<dead_circumflex> <Multi_key> <underscore> <w> : "Ê·" U02B7 # MODIFIER LETTER SMALL W
+<Multi_key> <asciicircum> <underscore> <w> : "Ê·" U02B7 # MODIFIER LETTER SMALL W
+<dead_circumflex> <Multi_key> <underbar> <w> : "Ê·" U02B7 # MODIFIER LETTER SMALL W
+<Multi_key> <asciicircum> <underbar> <w> : "Ê·" U02B7 # MODIFIER LETTER SMALL W
+<dead_circumflex> <Multi_key> <underscore> <y> : "ʸ" U02B8 # MODIFIER LETTER SMALL Y
+<Multi_key> <asciicircum> <underscore> <y> : "ʸ" U02B8 # MODIFIER LETTER SMALL Y
+<dead_circumflex> <Multi_key> <underbar> <y> : "ʸ" U02B8 # MODIFIER LETTER SMALL Y
+<Multi_key> <asciicircum> <underbar> <y> : "ʸ" U02B8 # MODIFIER LETTER SMALL Y
+<dead_circumflex> <Multi_key> <underscore> <U0263> : "Ë " U02E0 # MODIFIER LETTER SMALL GAMMA
+<Multi_key> <asciicircum> <underscore> <U0263> : "Ë " U02E0 # MODIFIER LETTER SMALL GAMMA
+<dead_circumflex> <Multi_key> <underbar> <U0263> : "Ë " U02E0 # MODIFIER LETTER SMALL GAMMA
+<Multi_key> <asciicircum> <underbar> <U0263> : "Ë " U02E0 # MODIFIER LETTER SMALL GAMMA
+<dead_circumflex> <Multi_key> <underscore> <l> : "Ë¡" U02E1 # MODIFIER LETTER SMALL L
+<Multi_key> <asciicircum> <underscore> <l> : "Ë¡" U02E1 # MODIFIER LETTER SMALL L
+<dead_circumflex> <Multi_key> <underbar> <l> : "Ë¡" U02E1 # MODIFIER LETTER SMALL L
+<Multi_key> <asciicircum> <underbar> <l> : "Ë¡" U02E1 # MODIFIER LETTER SMALL L
+<dead_circumflex> <Multi_key> <underscore> <s> : "Ë¢" U02E2 # MODIFIER LETTER SMALL S
+<Multi_key> <asciicircum> <underscore> <s> : "Ë¢" U02E2 # MODIFIER LETTER SMALL S
+<dead_circumflex> <Multi_key> <underbar> <s> : "Ë¢" U02E2 # MODIFIER LETTER SMALL S
+<Multi_key> <asciicircum> <underbar> <s> : "Ë¢" U02E2 # MODIFIER LETTER SMALL S
+<dead_circumflex> <Multi_key> <underscore> <x> : "Ë£" U02E3 # MODIFIER LETTER SMALL X
+<Multi_key> <asciicircum> <underscore> <x> : "Ë£" U02E3 # MODIFIER LETTER SMALL X
+<dead_circumflex> <Multi_key> <underbar> <x> : "Ë£" U02E3 # MODIFIER LETTER SMALL X
+<Multi_key> <asciicircum> <underbar> <x> : "Ë£" U02E3 # MODIFIER LETTER SMALL X
+<dead_circumflex> <Multi_key> <underscore> <U0295> : "ˤ" U02E4 # MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
+<Multi_key> <asciicircum> <underscore> <U0295> : "ˤ" U02E4 # MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
+<dead_circumflex> <Multi_key> <underbar> <U0295> : "ˤ" U02E4 # MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
+<Multi_key> <asciicircum> <underbar> <U0295> : "ˤ" U02E4 # MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
+<dead_diaeresis> <acute> : "Í„" U0344 # COMBINING GREEK DIALYTIKA TONOS
+<dead_diaeresis> <apostrophe> : "Í„" U0344 # COMBINING GREEK DIALYTIKA TONOS
+<Multi_key> <quotedbl> <dead_acute> : "Í„" U0344 # COMBINING GREEK DIALYTIKA TONOS
+<Multi_key> <quotedbl> <acute> : "Í„" U0344 # COMBINING GREEK DIALYTIKA TONOS
+<Multi_key> <quotedbl> <apostrophe> : "Í„" U0344 # COMBINING GREEK DIALYTIKA TONOS
+<Multi_key> <quotedbl> <combining_acute> : "Í„" U0344 # COMBINING GREEK DIALYTIKA TONOS
+<Multi_key> <diaeresis> <dead_acute> : "Î…" U0385 # GREEK DIALYTIKA TONOS
+<Multi_key> <diaeresis> <acute> : "Î…" U0385 # GREEK DIALYTIKA TONOS
+<Multi_key> <diaeresis> <apostrophe> : "Î…" U0385 # GREEK DIALYTIKA TONOS
+<Multi_key> <diaeresis> <combining_acute> : "Î…" U0385 # GREEK DIALYTIKA TONOS
+<dead_acute> <Greek_ALPHA> : "Ά" U0386 # GREEK CAPITAL LETTER ALPHA WITH TONOS
+<Multi_key> <acute> <Greek_ALPHA> : "Ά" U0386 # GREEK CAPITAL LETTER ALPHA WITH TONOS
+<Multi_key> <apostrophe> <Greek_ALPHA> : "Ά" U0386 # GREEK CAPITAL LETTER ALPHA WITH TONOS
+<combining_acute> <Greek_ALPHA> : "Ά" U0386 # GREEK CAPITAL LETTER ALPHA WITH TONOS
+<dead_acute> <Greek_EPSILON> : "Έ" U0388 # GREEK CAPITAL LETTER EPSILON WITH TONOS
+<Multi_key> <acute> <Greek_EPSILON> : "Έ" U0388 # GREEK CAPITAL LETTER EPSILON WITH TONOS
+<Multi_key> <apostrophe> <Greek_EPSILON> : "Έ" U0388 # GREEK CAPITAL LETTER EPSILON WITH TONOS
+<combining_acute> <Greek_EPSILON> : "Έ" U0388 # GREEK CAPITAL LETTER EPSILON WITH TONOS
+<dead_acute> <Greek_ETA> : "Ή" U0389 # GREEK CAPITAL LETTER ETA WITH TONOS
+<Multi_key> <acute> <Greek_ETA> : "Ή" U0389 # GREEK CAPITAL LETTER ETA WITH TONOS
+<Multi_key> <apostrophe> <Greek_ETA> : "Ή" U0389 # GREEK CAPITAL LETTER ETA WITH TONOS
+<combining_acute> <Greek_ETA> : "Ή" U0389 # GREEK CAPITAL LETTER ETA WITH TONOS
+<dead_acute> <Greek_IOTA> : "Ί" U038A # GREEK CAPITAL LETTER IOTA WITH TONOS
+<Multi_key> <acute> <Greek_IOTA> : "Ί" U038A # GREEK CAPITAL LETTER IOTA WITH TONOS
+<Multi_key> <apostrophe> <Greek_IOTA> : "Ί" U038A # GREEK CAPITAL LETTER IOTA WITH TONOS
+<combining_acute> <Greek_IOTA> : "Ί" U038A # GREEK CAPITAL LETTER IOTA WITH TONOS
+<dead_acute> <Greek_OMICRON> : "Ό" U038C # GREEK CAPITAL LETTER OMICRON WITH TONOS
+<Multi_key> <acute> <Greek_OMICRON> : "Ό" U038C # GREEK CAPITAL LETTER OMICRON WITH TONOS
+<Multi_key> <apostrophe> <Greek_OMICRON> : "Ό" U038C # GREEK CAPITAL LETTER OMICRON WITH TONOS
+<combining_acute> <Greek_OMICRON> : "Ό" U038C # GREEK CAPITAL LETTER OMICRON WITH TONOS
+<dead_acute> <Greek_UPSILON> : "ÎŽ" U038E # GREEK CAPITAL LETTER UPSILON WITH TONOS
+<Multi_key> <acute> <Greek_UPSILON> : "ÎŽ" U038E # GREEK CAPITAL LETTER UPSILON WITH TONOS
+<Multi_key> <apostrophe> <Greek_UPSILON> : "ÎŽ" U038E # GREEK CAPITAL LETTER UPSILON WITH TONOS
+<combining_acute> <Greek_UPSILON> : "ÎŽ" U038E # GREEK CAPITAL LETTER UPSILON WITH TONOS
+<dead_acute> <Greek_OMEGA> : "Î" U038F # GREEK CAPITAL LETTER OMEGA WITH TONOS
+<Multi_key> <acute> <Greek_OMEGA> : "Î" U038F # GREEK CAPITAL LETTER OMEGA WITH TONOS
+<Multi_key> <apostrophe> <Greek_OMEGA> : "Î" U038F # GREEK CAPITAL LETTER OMEGA WITH TONOS
+<combining_acute> <Greek_OMEGA> : "Î" U038F # GREEK CAPITAL LETTER OMEGA WITH TONOS
+<dead_acute> <Greek_iotadieresis> : "Î" U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+<Multi_key> <acute> <Greek_iotadieresis> : "Î" U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+<Multi_key> <apostrophe> <Greek_iotadieresis> : "Î" U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+<dead_acute> <dead_diaeresis> <Greek_iota> : "Î" U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+<dead_acute> <Multi_key> <quotedbl> <Greek_iota> : "Î" U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+<Multi_key> <acute> <dead_diaeresis> <Greek_iota> : "Î" U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+<Multi_key> <acute> <quotedbl> <Greek_iota> : "Î" U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+<Multi_key> <apostrophe> <dead_diaeresis> <Greek_iota> : "Î" U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+<Multi_key> <apostrophe> <quotedbl> <Greek_iota> : "Î" U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+<combining_acute> <Greek_iotadieresis> : "Î" U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+<combining_acute> <dead_diaeresis> <Greek_iota> : "Î" U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+<combining_acute> <Multi_key> <quotedbl> <Greek_iota> : "Î" U0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+<dead_diaeresis> <Greek_IOTA> : "Ϊ" U03AA # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+<Multi_key> <quotedbl> <Greek_IOTA> : "Ϊ" U03AA # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+<dead_diaeresis> <Greek_UPSILON> : "Ϋ" U03AB # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+<Multi_key> <quotedbl> <Greek_UPSILON> : "Ϋ" U03AB # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+<dead_acute> <Greek_alpha> : "ά" U03AC # GREEK SMALL LETTER ALPHA WITH TONOS
+<Multi_key> <acute> <Greek_alpha> : "ά" U03AC # GREEK SMALL LETTER ALPHA WITH TONOS
+<Multi_key> <apostrophe> <Greek_alpha> : "ά" U03AC # GREEK SMALL LETTER ALPHA WITH TONOS
+<combining_acute> <Greek_alpha> : "ά" U03AC # GREEK SMALL LETTER ALPHA WITH TONOS
+<dead_acute> <Greek_epsilon> : "έ" U03AD # GREEK SMALL LETTER EPSILON WITH TONOS
+<Multi_key> <acute> <Greek_epsilon> : "έ" U03AD # GREEK SMALL LETTER EPSILON WITH TONOS
+<Multi_key> <apostrophe> <Greek_epsilon> : "έ" U03AD # GREEK SMALL LETTER EPSILON WITH TONOS
+<combining_acute> <Greek_epsilon> : "έ" U03AD # GREEK SMALL LETTER EPSILON WITH TONOS
+<dead_acute> <Greek_eta> : "ή" U03AE # GREEK SMALL LETTER ETA WITH TONOS
+<Multi_key> <acute> <Greek_eta> : "ή" U03AE # GREEK SMALL LETTER ETA WITH TONOS
+<Multi_key> <apostrophe> <Greek_eta> : "ή" U03AE # GREEK SMALL LETTER ETA WITH TONOS
+<combining_acute> <Greek_eta> : "ή" U03AE # GREEK SMALL LETTER ETA WITH TONOS
+<dead_acute> <Greek_iota> : "ί" U03AF # GREEK SMALL LETTER IOTA WITH TONOS
+<Multi_key> <acute> <Greek_iota> : "ί" U03AF # GREEK SMALL LETTER IOTA WITH TONOS
+<Multi_key> <apostrophe> <Greek_iota> : "ί" U03AF # GREEK SMALL LETTER IOTA WITH TONOS
+<combining_acute> <Greek_iota> : "ί" U03AF # GREEK SMALL LETTER IOTA WITH TONOS
+<dead_acute> <Greek_upsilondieresis> : "ΰ" U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+<Multi_key> <acute> <Greek_upsilondieresis> : "ΰ" U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+<Multi_key> <apostrophe> <Greek_upsilondieresis> : "ΰ" U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+<dead_acute> <dead_diaeresis> <Greek_upsilon> : "ΰ" U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+<dead_acute> <Multi_key> <quotedbl> <Greek_upsilon> : "ΰ" U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+<Multi_key> <acute> <dead_diaeresis> <Greek_upsilon> : "ΰ" U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+<Multi_key> <acute> <quotedbl> <Greek_upsilon> : "ΰ" U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+<Multi_key> <apostrophe> <dead_diaeresis> <Greek_upsilon> : "ΰ" U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+<Multi_key> <apostrophe> <quotedbl> <Greek_upsilon> : "ΰ" U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+<combining_acute> <Greek_upsilondieresis> : "ΰ" U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+<combining_acute> <dead_diaeresis> <Greek_upsilon> : "ΰ" U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+<combining_acute> <Multi_key> <quotedbl> <Greek_upsilon> : "ΰ" U03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+<dead_diaeresis> <Greek_iota> : "ÏŠ" U03CA # GREEK SMALL LETTER IOTA WITH DIALYTIKA
+<Multi_key> <quotedbl> <Greek_iota> : "ÏŠ" U03CA # GREEK SMALL LETTER IOTA WITH DIALYTIKA
+<dead_diaeresis> <Greek_upsilon> : "Ï‹" U03CB # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+<Multi_key> <quotedbl> <Greek_upsilon> : "Ï‹" U03CB # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+<dead_acute> <Greek_omicron> : "ό" U03CC # GREEK SMALL LETTER OMICRON WITH TONOS
+<Multi_key> <acute> <Greek_omicron> : "ό" U03CC # GREEK SMALL LETTER OMICRON WITH TONOS
+<Multi_key> <apostrophe> <Greek_omicron> : "ό" U03CC # GREEK SMALL LETTER OMICRON WITH TONOS
+<combining_acute> <Greek_omicron> : "ό" U03CC # GREEK SMALL LETTER OMICRON WITH TONOS
+<dead_acute> <Greek_upsilon> : "Ï" U03CD # GREEK SMALL LETTER UPSILON WITH TONOS
+<Multi_key> <acute> <Greek_upsilon> : "Ï" U03CD # GREEK SMALL LETTER UPSILON WITH TONOS
+<Multi_key> <apostrophe> <Greek_upsilon> : "Ï" U03CD # GREEK SMALL LETTER UPSILON WITH TONOS
+<combining_acute> <Greek_upsilon> : "Ï" U03CD # GREEK SMALL LETTER UPSILON WITH TONOS
+<dead_acute> <Greek_omega> : "ÏŽ" U03CE # GREEK SMALL LETTER OMEGA WITH TONOS
+<Multi_key> <acute> <Greek_omega> : "ÏŽ" U03CE # GREEK SMALL LETTER OMEGA WITH TONOS
+<Multi_key> <apostrophe> <Greek_omega> : "ÏŽ" U03CE # GREEK SMALL LETTER OMEGA WITH TONOS
+<combining_acute> <Greek_omega> : "ÏŽ" U03CE # GREEK SMALL LETTER OMEGA WITH TONOS
+<Multi_key> <acute> <U03d2> : "Ï“" U03D3 # GREEK UPSILON WITH ACUTE AND HOOK SYMBOL
+<Multi_key> <apostrophe> <U03d2> : "Ï“" U03D3 # GREEK UPSILON WITH ACUTE AND HOOK SYMBOL
+<Multi_key> <quotedbl> <U03d2> : "Ï”" U03D4 # GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
+<dead_grave> <Cyrillic_IE> : "Ѐ" U0400 # CYRILLIC CAPITAL LETTER IE WITH GRAVE
+<Multi_key> <grave> <Cyrillic_IE> : "Ѐ" U0400 # CYRILLIC CAPITAL LETTER IE WITH GRAVE
+<combining_grave> <Cyrillic_IE> : "Ѐ" U0400 # CYRILLIC CAPITAL LETTER IE WITH GRAVE
+<dead_diaeresis> <Cyrillic_IE> : "Ð" U0401 # CYRILLIC CAPITAL LETTER IO
+<Multi_key> <quotedbl> <Cyrillic_IE> : "Ð" U0401 # CYRILLIC CAPITAL LETTER IO
+<dead_acute> <Cyrillic_GHE> : "Ѓ" U0403 # CYRILLIC CAPITAL LETTER GJE
+<Multi_key> <acute> <Cyrillic_GHE> : "Ѓ" U0403 # CYRILLIC CAPITAL LETTER GJE
+<Multi_key> <apostrophe> <Cyrillic_GHE> : "Ѓ" U0403 # CYRILLIC CAPITAL LETTER GJE
+<combining_acute> <Cyrillic_GHE> : "Ѓ" U0403 # CYRILLIC CAPITAL LETTER GJE
+<dead_diaeresis> <Ukrainian_I> : "Ї" U0407 # CYRILLIC CAPITAL LETTER YI
+<Multi_key> <quotedbl> <Ukrainian_I> : "Ї" U0407 # CYRILLIC CAPITAL LETTER YI
+<dead_acute> <Cyrillic_KA> : "Ќ" U040C # CYRILLIC CAPITAL LETTER KJE
+<Multi_key> <acute> <Cyrillic_KA> : "Ќ" U040C # CYRILLIC CAPITAL LETTER KJE
+<Multi_key> <apostrophe> <Cyrillic_KA> : "Ќ" U040C # CYRILLIC CAPITAL LETTER KJE
+<combining_acute> <Cyrillic_KA> : "Ќ" U040C # CYRILLIC CAPITAL LETTER KJE
+<dead_grave> <Cyrillic_I> : "Ð" U040D # CYRILLIC CAPITAL LETTER I WITH GRAVE
+<Multi_key> <grave> <Cyrillic_I> : "Ð" U040D # CYRILLIC CAPITAL LETTER I WITH GRAVE
+<combining_grave> <Cyrillic_I> : "Ð" U040D # CYRILLIC CAPITAL LETTER I WITH GRAVE
+<dead_breve> <Cyrillic_U> : "ÐŽ" U040E # CYRILLIC CAPITAL LETTER SHORT U
+<Multi_key> <U> <Cyrillic_U> : "ÐŽ" U040E # CYRILLIC CAPITAL LETTER SHORT U
+<Multi_key> <b> <Cyrillic_U> : "ÐŽ" U040E # CYRILLIC CAPITAL LETTER SHORT U
+<dead_breve> <Cyrillic_I> : "Й" U0419 # CYRILLIC CAPITAL LETTER SHORT I
+<Multi_key> <U> <Cyrillic_I> : "Й" U0419 # CYRILLIC CAPITAL LETTER SHORT I
+<Multi_key> <b> <Cyrillic_I> : "Й" U0419 # CYRILLIC CAPITAL LETTER SHORT I
+<dead_breve> <Cyrillic_i> : "й" U0439 # CYRILLIC SMALL LETTER SHORT I
+<Multi_key> <U> <Cyrillic_i> : "й" U0439 # CYRILLIC SMALL LETTER SHORT I
+<Multi_key> <b> <Cyrillic_i> : "й" U0439 # CYRILLIC SMALL LETTER SHORT I
+<dead_grave> <Cyrillic_ie> : "Ñ" U0450 # CYRILLIC SMALL LETTER IE WITH GRAVE
+<Multi_key> <grave> <Cyrillic_ie> : "Ñ" U0450 # CYRILLIC SMALL LETTER IE WITH GRAVE
+<combining_grave> <Cyrillic_ie> : "Ñ" U0450 # CYRILLIC SMALL LETTER IE WITH GRAVE
+<dead_diaeresis> <Cyrillic_ie> : "Ñ‘" U0451 # CYRILLIC SMALL LETTER IO
+<Multi_key> <quotedbl> <Cyrillic_ie> : "Ñ‘" U0451 # CYRILLIC SMALL LETTER IO
+<dead_acute> <Cyrillic_ghe> : "Ñ“" U0453 # CYRILLIC SMALL LETTER GJE
+<Multi_key> <acute> <Cyrillic_ghe> : "Ñ“" U0453 # CYRILLIC SMALL LETTER GJE
+<Multi_key> <apostrophe> <Cyrillic_ghe> : "Ñ“" U0453 # CYRILLIC SMALL LETTER GJE
+<combining_acute> <Cyrillic_ghe> : "Ñ“" U0453 # CYRILLIC SMALL LETTER GJE
+<dead_diaeresis> <Ukrainian_i> : "Ñ—" U0457 # CYRILLIC SMALL LETTER YI
+<Multi_key> <quotedbl> <Ukrainian_i> : "Ñ—" U0457 # CYRILLIC SMALL LETTER YI
+<dead_acute> <Cyrillic_ka> : "ќ" U045C # CYRILLIC SMALL LETTER KJE
+<Multi_key> <acute> <Cyrillic_ka> : "ќ" U045C # CYRILLIC SMALL LETTER KJE
+<Multi_key> <apostrophe> <Cyrillic_ka> : "ќ" U045C # CYRILLIC SMALL LETTER KJE
+<combining_acute> <Cyrillic_ka> : "ќ" U045C # CYRILLIC SMALL LETTER KJE
+<dead_grave> <Cyrillic_i> : "Ñ" U045D # CYRILLIC SMALL LETTER I WITH GRAVE
+<Multi_key> <grave> <Cyrillic_i> : "Ñ" U045D # CYRILLIC SMALL LETTER I WITH GRAVE
+<combining_grave> <Cyrillic_i> : "Ñ" U045D # CYRILLIC SMALL LETTER I WITH GRAVE
+<dead_breve> <Cyrillic_u> : "Ñž" U045E # CYRILLIC SMALL LETTER SHORT U
+<Multi_key> <U> <Cyrillic_u> : "Ñž" U045E # CYRILLIC SMALL LETTER SHORT U
+<Multi_key> <b> <Cyrillic_u> : "Ñž" U045E # CYRILLIC SMALL LETTER SHORT U
+<U030f> <U0474> : "Ѷ" U0476 # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+<U030f> <U0475> : "Ñ·" U0477 # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+<Multi_key> <slash> <Cyrillic_GHE> : "Ò’" U0492 # CYRILLIC CAPITAL LETTER GHE WITH STROKE
+<Multi_key> <KP_Divide> <Cyrillic_GHE> : "Ò’" U0492 # CYRILLIC CAPITAL LETTER GHE WITH STROKE
+<Multi_key> <slash> <Cyrillic_ghe> : "Ò“" U0493 # CYRILLIC SMALL LETTER GHE WITH STROKE
+<Multi_key> <KP_Divide> <Cyrillic_ghe> : "Ò“" U0493 # CYRILLIC SMALL LETTER GHE WITH STROKE
+<Multi_key> <slash> <Cyrillic_KA> : "Òž" U049E # CYRILLIC CAPITAL LETTER KA WITH STROKE
+<Multi_key> <KP_Divide> <Cyrillic_KA> : "Òž" U049E # CYRILLIC CAPITAL LETTER KA WITH STROKE
+<Multi_key> <slash> <Cyrillic_ka> : "ÒŸ" U049F # CYRILLIC SMALL LETTER KA WITH STROKE
+<Multi_key> <KP_Divide> <Cyrillic_ka> : "ÒŸ" U049F # CYRILLIC SMALL LETTER KA WITH STROKE
+<Multi_key> <slash> <U04ae> : "Ò°" U04B0 # CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
+<Multi_key> <KP_Divide> <U04ae> : "Ò°" U04B0 # CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
+<Multi_key> <slash> <U04af> : "Ò±" U04B1 # CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
+<Multi_key> <KP_Divide> <U04af> : "Ò±" U04B1 # CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
+<dead_breve> <Cyrillic_ZHE> : "Ó" U04C1 # CYRILLIC CAPITAL LETTER ZHE WITH BREVE
+<Multi_key> <U> <Cyrillic_ZHE> : "Ó" U04C1 # CYRILLIC CAPITAL LETTER ZHE WITH BREVE
+<Multi_key> <b> <Cyrillic_ZHE> : "Ó" U04C1 # CYRILLIC CAPITAL LETTER ZHE WITH BREVE
+<dead_breve> <Cyrillic_zhe> : "Ó‚" U04C2 # CYRILLIC SMALL LETTER ZHE WITH BREVE
+<Multi_key> <U> <Cyrillic_zhe> : "Ó‚" U04C2 # CYRILLIC SMALL LETTER ZHE WITH BREVE
+<Multi_key> <b> <Cyrillic_zhe> : "Ó‚" U04C2 # CYRILLIC SMALL LETTER ZHE WITH BREVE
+<dead_breve> <Cyrillic_A> : "Ó" U04D0 # CYRILLIC CAPITAL LETTER A WITH BREVE
+<Multi_key> <U> <Cyrillic_A> : "Ó" U04D0 # CYRILLIC CAPITAL LETTER A WITH BREVE
+<Multi_key> <b> <Cyrillic_A> : "Ó" U04D0 # CYRILLIC CAPITAL LETTER A WITH BREVE
+<dead_breve> <Cyrillic_a> : "Ó‘" U04D1 # CYRILLIC SMALL LETTER A WITH BREVE
+<Multi_key> <U> <Cyrillic_a> : "Ó‘" U04D1 # CYRILLIC SMALL LETTER A WITH BREVE
+<Multi_key> <b> <Cyrillic_a> : "Ó‘" U04D1 # CYRILLIC SMALL LETTER A WITH BREVE
+<dead_diaeresis> <Cyrillic_A> : "Ó’" U04D2 # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_A> : "Ó’" U04D2 # CYRILLIC CAPITAL LETTER A WITH DIAERESIS
+<dead_diaeresis> <Cyrillic_a> : "Ó“" U04D3 # CYRILLIC SMALL LETTER A WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_a> : "Ó“" U04D3 # CYRILLIC SMALL LETTER A WITH DIAERESIS
+<dead_breve> <Cyrillic_IE> : "Ó–" U04D6 # CYRILLIC CAPITAL LETTER IE WITH BREVE
+<Multi_key> <U> <Cyrillic_IE> : "Ó–" U04D6 # CYRILLIC CAPITAL LETTER IE WITH BREVE
+<Multi_key> <b> <Cyrillic_IE> : "Ó–" U04D6 # CYRILLIC CAPITAL LETTER IE WITH BREVE
+<dead_breve> <Cyrillic_ie> : "Ó—" U04D7 # CYRILLIC SMALL LETTER IE WITH BREVE
+<Multi_key> <U> <Cyrillic_ie> : "Ó—" U04D7 # CYRILLIC SMALL LETTER IE WITH BREVE
+<Multi_key> <b> <Cyrillic_ie> : "Ó—" U04D7 # CYRILLIC SMALL LETTER IE WITH BREVE
+<dead_diaeresis> <U04d8> : "Óš" U04DA # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
+<Multi_key> <quotedbl> <U04d8> : "Óš" U04DA # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
+<dead_diaeresis> <U04d9> : "Ó›" U04DB # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
+<Multi_key> <quotedbl> <U04d9> : "Ó›" U04DB # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
+<dead_diaeresis> <Cyrillic_ZHE> : "Ӝ" U04DC # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_ZHE> : "Ӝ" U04DC # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
+<dead_diaeresis> <Cyrillic_zhe> : "Ó" U04DD # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_zhe> : "Ó" U04DD # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
+<dead_diaeresis> <Cyrillic_ZE> : "Óž" U04DE # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_ZE> : "Óž" U04DE # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
+<dead_diaeresis> <Cyrillic_ze> : "ÓŸ" U04DF # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_ze> : "ÓŸ" U04DF # CYRILLIC SMALL LETTER ZE WITH DIAERESIS
+<dead_macron> <Cyrillic_I> : "Ó¢" U04E2 # CYRILLIC CAPITAL LETTER I WITH MACRON
+<Multi_key> <macron> <Cyrillic_I> : "Ó¢" U04E2 # CYRILLIC CAPITAL LETTER I WITH MACRON
+<Multi_key> <underscore> <Cyrillic_I> : "Ó¢" U04E2 # CYRILLIC CAPITAL LETTER I WITH MACRON
+<dead_macron> <Cyrillic_i> : "Ó£" U04E3 # CYRILLIC SMALL LETTER I WITH MACRON
+<Multi_key> <macron> <Cyrillic_i> : "Ó£" U04E3 # CYRILLIC SMALL LETTER I WITH MACRON
+<Multi_key> <underscore> <Cyrillic_i> : "Ó£" U04E3 # CYRILLIC SMALL LETTER I WITH MACRON
+<dead_diaeresis> <Cyrillic_I> : "Ó¤" U04E4 # CYRILLIC CAPITAL LETTER I WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_I> : "Ó¤" U04E4 # CYRILLIC CAPITAL LETTER I WITH DIAERESIS
+<dead_diaeresis> <Cyrillic_i> : "Ó¥" U04E5 # CYRILLIC SMALL LETTER I WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_i> : "Ó¥" U04E5 # CYRILLIC SMALL LETTER I WITH DIAERESIS
+<dead_diaeresis> <Cyrillic_O> : "Ó¦" U04E6 # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_O> : "Ó¦" U04E6 # CYRILLIC CAPITAL LETTER O WITH DIAERESIS
+<dead_diaeresis> <Cyrillic_o> : "Ó§" U04E7 # CYRILLIC SMALL LETTER O WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_o> : "Ó§" U04E7 # CYRILLIC SMALL LETTER O WITH DIAERESIS
+<dead_diaeresis> <U04e8> : "Óª" U04EA # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
+<Multi_key> <quotedbl> <U04e8> : "Óª" U04EA # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
+<dead_diaeresis> <U04e9> : "Ó«" U04EB # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
+<Multi_key> <quotedbl> <U04e9> : "Ó«" U04EB # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
+<dead_diaeresis> <Cyrillic_E> : "Ó¬" U04EC # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_E> : "Ó¬" U04EC # CYRILLIC CAPITAL LETTER E WITH DIAERESIS
+<dead_diaeresis> <Cyrillic_e> : "Ó­" U04ED # CYRILLIC SMALL LETTER E WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_e> : "Ó­" U04ED # CYRILLIC SMALL LETTER E WITH DIAERESIS
+<dead_macron> <Cyrillic_U> : "Ó®" U04EE # CYRILLIC CAPITAL LETTER U WITH MACRON
+<Multi_key> <macron> <Cyrillic_U> : "Ó®" U04EE # CYRILLIC CAPITAL LETTER U WITH MACRON
+<Multi_key> <underscore> <Cyrillic_U> : "Ó®" U04EE # CYRILLIC CAPITAL LETTER U WITH MACRON
+<dead_macron> <Cyrillic_u> : "Ó¯" U04EF # CYRILLIC SMALL LETTER U WITH MACRON
+<Multi_key> <macron> <Cyrillic_u> : "Ó¯" U04EF # CYRILLIC SMALL LETTER U WITH MACRON
+<Multi_key> <underscore> <Cyrillic_u> : "Ó¯" U04EF # CYRILLIC SMALL LETTER U WITH MACRON
+<dead_diaeresis> <Cyrillic_U> : "Ó°" U04F0 # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_U> : "Ó°" U04F0 # CYRILLIC CAPITAL LETTER U WITH DIAERESIS
+<dead_diaeresis> <Cyrillic_u> : "Ó±" U04F1 # CYRILLIC SMALL LETTER U WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_u> : "Ó±" U04F1 # CYRILLIC SMALL LETTER U WITH DIAERESIS
+<dead_doubleacute> <Cyrillic_U> : "Ó²" U04F2 # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
+<Multi_key> <equal> <Cyrillic_U> : "Ó²" U04F2 # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
+<dead_doubleacute> <Cyrillic_u> : "Ó³" U04F3 # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
+<Multi_key> <equal> <Cyrillic_u> : "Ó³" U04F3 # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
+<dead_diaeresis> <Cyrillic_CHE> : "Ó´" U04F4 # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_CHE> : "Ó´" U04F4 # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
+<dead_diaeresis> <Cyrillic_che> : "Óµ" U04F5 # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_che> : "Óµ" U04F5 # CYRILLIC SMALL LETTER CHE WITH DIAERESIS
+<dead_diaeresis> <Cyrillic_YERU> : "Ó¸" U04F8 # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_YERU> : "Ó¸" U04F8 # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
+<dead_diaeresis> <Cyrillic_yeru> : "Ó¹" U04F9 # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
+<Multi_key> <quotedbl> <Cyrillic_yeru> : "Ó¹" U04F9 # CYRILLIC SMALL LETTER YERU WITH DIAERESIS
+<Multi_key> <U0653> <Arabic_alef> : "Ø¢" U0622 # ARABIC LETTER ALEF WITH MADDA ABOVE
+<Multi_key> <U0654> <Arabic_alef> : "Ø£" U0623 # ARABIC LETTER ALEF WITH HAMZA ABOVE
+<Multi_key> <U0654> <Arabic_waw> : "ؤ" U0624 # ARABIC LETTER WAW WITH HAMZA ABOVE
+<Multi_key> <U0655> <Arabic_alef> : "Ø¥" U0625 # ARABIC LETTER ALEF WITH HAMZA BELOW
+<Multi_key> <U0654> <Arabic_yeh> : "ئ" U0626 # ARABIC LETTER YEH WITH HAMZA ABOVE
+<Multi_key> <U0654> <U06d5> : "Û€" U06C0 # ARABIC LETTER HEH WITH YEH ABOVE
+<Multi_key> <U0654> <U06c1> : "Û‚" U06C2 # ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
+<Multi_key> <U0654> <U06d2> : "Û“" U06D3 # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+<Multi_key> <U093c> <U0928> : "ऩ" U0929 # DEVANAGARI LETTER NNNA
+<Multi_key> <U093c> <U0930> : "ऱ" U0931 # DEVANAGARI LETTER RRA
+<Multi_key> <U093c> <U0933> : "ऴ" U0934 # DEVANAGARI LETTER LLLA
+<Multi_key> <U093c> <U0915> : "क़" U0958 # DEVANAGARI LETTER QA
+<Multi_key> <U093c> <U0916> : "ख़" U0959 # DEVANAGARI LETTER KHHA
+<Multi_key> <U093c> <U0917> : "ग़" U095A # DEVANAGARI LETTER GHHA
+<Multi_key> <U093c> <U091c> : "ज़" U095B # DEVANAGARI LETTER ZA
+<Multi_key> <U093c> <U0921> : "ड़" U095C # DEVANAGARI LETTER DDDHA
+<Multi_key> <U093c> <U0922> : "à¥" U095D # DEVANAGARI LETTER RHA
+<Multi_key> <U093c> <U092b> : "फ़" U095E # DEVANAGARI LETTER FA
+<Multi_key> <U093c> <U092f> : "य़" U095F # DEVANAGARI LETTER YYA
+<Multi_key> <U09c7> <U09be> : "ো" U09CB # BENGALI VOWEL SIGN O
+<Multi_key> <U09c7> <U09d7> : "ৌ" U09CC # BENGALI VOWEL SIGN AU
+<Multi_key> <U09bc> <U09a1> : "ড়" U09DC # BENGALI LETTER RRA
+<Multi_key> <U09bc> <U09a2> : "à§" U09DD # BENGALI LETTER RHA
+<Multi_key> <U09bc> <U09af> : "য়" U09DF # BENGALI LETTER YYA
+<Multi_key> <U0a3c> <U0a32> : "ਲ਼" U0A33 # GURMUKHI LETTER LLA
+<Multi_key> <U0a3c> <U0a38> : "ਸ਼" U0A36 # GURMUKHI LETTER SHA
+<Multi_key> <U0a3c> <U0a16> : "à©™" U0A59 # GURMUKHI LETTER KHHA
+<Multi_key> <U0a3c> <U0a17> : "à©š" U0A5A # GURMUKHI LETTER GHHA
+<Multi_key> <U0a3c> <U0a1c> : "à©›" U0A5B # GURMUKHI LETTER ZA
+<Multi_key> <U0a3c> <U0a2b> : "à©ž" U0A5E # GURMUKHI LETTER FA
+<Multi_key> <U0b47> <U0b56> : "à­ˆ" U0B48 # ORIYA VOWEL SIGN AI
+<Multi_key> <U0b47> <U0b3e> : "à­‹" U0B4B # ORIYA VOWEL SIGN O
+<Multi_key> <U0b47> <U0b57> : "ୌ" U0B4C # ORIYA VOWEL SIGN AU
+<Multi_key> <U0b3c> <U0b21> : "ଡ଼" U0B5C # ORIYA LETTER RRA
+<Multi_key> <U0b3c> <U0b22> : "à­" U0B5D # ORIYA LETTER RHA
+<Multi_key> <U0bd7> <U0b92> : "à®”" U0B94 # TAMIL LETTER AU
+<Multi_key> <U0bc6> <U0bbe> : "ொ" U0BCA # TAMIL VOWEL SIGN O
+<Multi_key> <U0bc7> <U0bbe> : "ோ" U0BCB # TAMIL VOWEL SIGN OO
+<Multi_key> <U0bc6> <U0bd7> : "ௌ" U0BCC # TAMIL VOWEL SIGN AU
+<Multi_key> <U0c46> <U0c56> : "ై" U0C48 # TELUGU VOWEL SIGN AI
+<Multi_key> <U0cbf> <U0cd5> : "à³€" U0CC0 # KANNADA VOWEL SIGN II
+<Multi_key> <U0cc6> <U0cd5> : "ೇ" U0CC7 # KANNADA VOWEL SIGN EE
+<Multi_key> <U0cc6> <U0cd6> : "ೈ" U0CC8 # KANNADA VOWEL SIGN AI
+<Multi_key> <U0cc6> <U0cc2> : "ೊ" U0CCA # KANNADA VOWEL SIGN O
+<Multi_key> <U0cca> <U0cd5> : "ೋ" U0CCB # KANNADA VOWEL SIGN OO
+<Multi_key> <U0cc6> <U0cc2> <U0cd5> : "ೋ" U0CCB # KANNADA VOWEL SIGN OO
+<Multi_key> <U0d46> <U0d3e> : "ൊ" U0D4A # MALAYALAM VOWEL SIGN O
+<Multi_key> <U0d47> <U0d3e> : "ോ" U0D4B # MALAYALAM VOWEL SIGN OO
+<Multi_key> <U0d46> <U0d57> : "ൌ" U0D4C # MALAYALAM VOWEL SIGN AU
+<Multi_key> <U0dd9> <U0dca> : "à·š" U0DDA # SINHALA VOWEL SIGN DIGA KOMBUVA
+<Multi_key> <U0dd9> <U0dcf> : "ො" U0DDC # SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA
+<Multi_key> <U0ddc> <U0dca> : "à·" U0DDD # SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
+<Multi_key> <U0dd9> <U0dcf> <U0dca> : "à·" U0DDD # SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA
+<Multi_key> <U0dd9> <U0ddf> : "à·ž" U0DDE # SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
+<Multi_key> <U0fb7> <U0f42> : "གྷ" U0F43 # TIBETAN LETTER GHA
+<Multi_key> <U0fb7> <U0f4c> : "à½" U0F4D # TIBETAN LETTER DDHA
+<Multi_key> <U0fb7> <U0f51> : "དྷ" U0F52 # TIBETAN LETTER DHA
+<Multi_key> <U0fb7> <U0f56> : "བྷ" U0F57 # TIBETAN LETTER BHA
+<Multi_key> <U0fb7> <U0f5b> : "ཛྷ" U0F5C # TIBETAN LETTER DZHA
+<Multi_key> <U0fb5> <U0f40> : "ཀྵ" U0F69 # TIBETAN LETTER KSSA
+<Multi_key> <U0f71> <U0f72> : "ཱི" U0F73 # TIBETAN VOWEL SIGN II
+<Multi_key> <U0f71> <U0f74> : "ཱུ" U0F75 # TIBETAN VOWEL SIGN UU
+<Multi_key> <U0fb2> <U0f80> : "ྲྀ" U0F76 # TIBETAN VOWEL SIGN VOCALIC R
+<Multi_key> <U0fb3> <U0f80> : "ླྀ" U0F78 # TIBETAN VOWEL SIGN VOCALIC L
+<Multi_key> <U0f71> <U0f80> : "à¾" U0F81 # TIBETAN VOWEL SIGN REVERSED II
+<Multi_key> <U0f92> <U0fb7> : "ྒྷ" U0F93 # TIBETAN SUBJOINED LETTER GHA
+<Multi_key> <U0f9c> <U0fb7> : "à¾" U0F9D # TIBETAN SUBJOINED LETTER DDHA
+<Multi_key> <U0fa1> <U0fb7> : "ྡྷ" U0FA2 # TIBETAN SUBJOINED LETTER DHA
+<Multi_key> <U0fa6> <U0fb7> : "ྦྷ" U0FA7 # TIBETAN SUBJOINED LETTER BHA
+<Multi_key> <U0fab> <U0fb7> : "ྫྷ" U0FAC # TIBETAN SUBJOINED LETTER DZHA
+<Multi_key> <U0f90> <U0fb5> : "ྐྵ" U0FB9 # TIBETAN SUBJOINED LETTER KSSA
+<Multi_key> <U102e> <U1025> : "ဦ" U1026 # MYANMAR LETTER UU
+<U0325> <A> : "Ḁ" U1E00 # LATIN CAPITAL LETTER A WITH RING BELOW
+<U0325> <a> : "á¸" U1E01 # LATIN SMALL LETTER A WITH RING BELOW
+<dead_abovedot> <B> : "Ḃ" U1E02 # LATIN CAPITAL LETTER B WITH DOT ABOVE
+<Multi_key> <period> <B> : "Ḃ" U1E02 # LATIN CAPITAL LETTER B WITH DOT ABOVE
+<dead_abovedot> <b> : "ḃ" U1E03 # LATIN SMALL LETTER B WITH DOT ABOVE
+<Multi_key> <period> <b> : "ḃ" U1E03 # LATIN SMALL LETTER B WITH DOT ABOVE
+<dead_belowdot> <B> : "Ḅ" U1E04 # LATIN CAPITAL LETTER B WITH DOT BELOW
+<Multi_key> <exclam> <B> : "Ḅ" U1E04 # LATIN CAPITAL LETTER B WITH DOT BELOW
+<combining_belowdot> <B> : "Ḅ" U1E04 # LATIN CAPITAL LETTER B WITH DOT BELOW
+<dead_belowdot> <b> : "ḅ" U1E05 # LATIN SMALL LETTER B WITH DOT BELOW
+<Multi_key> <exclam> <b> : "ḅ" U1E05 # LATIN SMALL LETTER B WITH DOT BELOW
+<combining_belowdot> <b> : "ḅ" U1E05 # LATIN SMALL LETTER B WITH DOT BELOW
+<U0331> <B> : "Ḇ" U1E06 # LATIN CAPITAL LETTER B WITH LINE BELOW
+<U0331> <b> : "ḇ" U1E07 # LATIN SMALL LETTER B WITH LINE BELOW
+<dead_acute> <Ccedilla> : "Ḉ" U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+<Multi_key> <acute> <Ccedilla> : "Ḉ" U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+<Multi_key> <apostrophe> <Ccedilla> : "Ḉ" U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+<dead_acute> <dead_cedilla> <C> : "Ḉ" U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+<dead_acute> <Multi_key> <comma> <C> : "Ḉ" U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+<Multi_key> <acute> <dead_cedilla> <C> : "Ḉ" U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+<Multi_key> <acute> <comma> <C> : "Ḉ" U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+<Multi_key> <apostrophe> <dead_cedilla> <C> : "Ḉ" U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+<Multi_key> <apostrophe> <comma> <C> : "Ḉ" U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+<combining_acute> <Ccedilla> : "Ḉ" U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+<combining_acute> <dead_cedilla> <C> : "Ḉ" U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+<combining_acute> <Multi_key> <comma> <C> : "Ḉ" U1E08 # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+<dead_acute> <ccedilla> : "ḉ" U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+<Multi_key> <acute> <ccedilla> : "ḉ" U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+<Multi_key> <apostrophe> <ccedilla> : "ḉ" U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+<dead_acute> <dead_cedilla> <c> : "ḉ" U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+<dead_acute> <Multi_key> <comma> <c> : "ḉ" U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+<Multi_key> <acute> <dead_cedilla> <c> : "ḉ" U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+<Multi_key> <acute> <comma> <c> : "ḉ" U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+<Multi_key> <apostrophe> <dead_cedilla> <c> : "ḉ" U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+<Multi_key> <apostrophe> <comma> <c> : "ḉ" U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+<combining_acute> <ccedilla> : "ḉ" U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+<combining_acute> <dead_cedilla> <c> : "ḉ" U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+<combining_acute> <Multi_key> <comma> <c> : "ḉ" U1E09 # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+<dead_abovedot> <D> : "Ḋ" U1E0A # LATIN CAPITAL LETTER D WITH DOT ABOVE
+<Multi_key> <period> <D> : "Ḋ" U1E0A # LATIN CAPITAL LETTER D WITH DOT ABOVE
+<dead_abovedot> <d> : "ḋ" U1E0B # LATIN SMALL LETTER D WITH DOT ABOVE
+<Multi_key> <period> <d> : "ḋ" U1E0B # LATIN SMALL LETTER D WITH DOT ABOVE
+<dead_belowdot> <D> : "Ḍ" U1E0C # LATIN CAPITAL LETTER D WITH DOT BELOW
+<Multi_key> <exclam> <D> : "Ḍ" U1E0C # LATIN CAPITAL LETTER D WITH DOT BELOW
+<combining_belowdot> <D> : "Ḍ" U1E0C # LATIN CAPITAL LETTER D WITH DOT BELOW
+<dead_belowdot> <d> : "á¸" U1E0D # LATIN SMALL LETTER D WITH DOT BELOW
+<Multi_key> <exclam> <d> : "á¸" U1E0D # LATIN SMALL LETTER D WITH DOT BELOW
+<combining_belowdot> <d> : "á¸" U1E0D # LATIN SMALL LETTER D WITH DOT BELOW
+<U0331> <D> : "Ḏ" U1E0E # LATIN CAPITAL LETTER D WITH LINE BELOW
+<U0331> <d> : "á¸" U1E0F # LATIN SMALL LETTER D WITH LINE BELOW
+<dead_cedilla> <D> : "á¸" U1E10 # LATIN CAPITAL LETTER D WITH CEDILLA
+<Multi_key> <comma> <D> : "á¸" U1E10 # LATIN CAPITAL LETTER D WITH CEDILLA
+<dead_cedilla> <d> : "ḑ" U1E11 # LATIN SMALL LETTER D WITH CEDILLA
+<Multi_key> <comma> <d> : "ḑ" U1E11 # LATIN SMALL LETTER D WITH CEDILLA
+<U032d> <D> : "Ḓ" U1E12 # LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
+<U032d> <d> : "ḓ" U1E13 # LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW
+<dead_grave> <Emacron> : "Ḕ" U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+<Multi_key> <grave> <Emacron> : "Ḕ" U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+<dead_grave> <dead_macron> <E> : "Ḕ" U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+<dead_grave> <Multi_key> <macron> <E> : "Ḕ" U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+<dead_grave> <Multi_key> <underscore> <E> : "Ḕ" U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+<Multi_key> <grave> <dead_macron> <E> : "Ḕ" U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+<Multi_key> <grave> <macron> <E> : "Ḕ" U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+<Multi_key> <grave> <underscore> <E> : "Ḕ" U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+<combining_grave> <Emacron> : "Ḕ" U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+<combining_grave> <dead_macron> <E> : "Ḕ" U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+<combining_grave> <Multi_key> <macron> <E> : "Ḕ" U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+<combining_grave> <Multi_key> <underscore> <E> : "Ḕ" U1E14 # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+<dead_grave> <emacron> : "ḕ" U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
+<Multi_key> <grave> <emacron> : "ḕ" U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
+<dead_grave> <dead_macron> <e> : "ḕ" U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
+<dead_grave> <Multi_key> <macron> <e> : "ḕ" U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
+<dead_grave> <Multi_key> <underscore> <e> : "ḕ" U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
+<Multi_key> <grave> <dead_macron> <e> : "ḕ" U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
+<Multi_key> <grave> <macron> <e> : "ḕ" U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
+<Multi_key> <grave> <underscore> <e> : "ḕ" U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
+<combining_grave> <emacron> : "ḕ" U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
+<combining_grave> <dead_macron> <e> : "ḕ" U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
+<combining_grave> <Multi_key> <macron> <e> : "ḕ" U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
+<combining_grave> <Multi_key> <underscore> <e> : "ḕ" U1E15 # LATIN SMALL LETTER E WITH MACRON AND GRAVE
+<dead_acute> <Emacron> : "Ḗ" U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <acute> <Emacron> : "Ḗ" U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <Emacron> : "Ḗ" U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+<dead_acute> <dead_macron> <E> : "Ḗ" U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+<dead_acute> <Multi_key> <macron> <E> : "Ḗ" U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+<dead_acute> <Multi_key> <underscore> <E> : "Ḗ" U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <acute> <dead_macron> <E> : "Ḗ" U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <acute> <macron> <E> : "Ḗ" U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <acute> <underscore> <E> : "Ḗ" U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <dead_macron> <E> : "Ḗ" U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <macron> <E> : "Ḗ" U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <underscore> <E> : "Ḗ" U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+<combining_acute> <Emacron> : "Ḗ" U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+<combining_acute> <dead_macron> <E> : "Ḗ" U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+<combining_acute> <Multi_key> <macron> <E> : "Ḗ" U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+<combining_acute> <Multi_key> <underscore> <E> : "Ḗ" U1E16 # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+<dead_acute> <emacron> : "ḗ" U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <acute> <emacron> : "ḗ" U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <emacron> : "ḗ" U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+<dead_acute> <dead_macron> <e> : "ḗ" U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+<dead_acute> <Multi_key> <macron> <e> : "ḗ" U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+<dead_acute> <Multi_key> <underscore> <e> : "ḗ" U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <acute> <dead_macron> <e> : "ḗ" U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <acute> <macron> <e> : "ḗ" U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <acute> <underscore> <e> : "ḗ" U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <dead_macron> <e> : "ḗ" U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <macron> <e> : "ḗ" U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <underscore> <e> : "ḗ" U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+<combining_acute> <emacron> : "ḗ" U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+<combining_acute> <dead_macron> <e> : "ḗ" U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+<combining_acute> <Multi_key> <macron> <e> : "ḗ" U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+<combining_acute> <Multi_key> <underscore> <e> : "ḗ" U1E17 # LATIN SMALL LETTER E WITH MACRON AND ACUTE
+<U032d> <E> : "Ḙ" U1E18 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
+<U032d> <e> : "ḙ" U1E19 # LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW
+<U0330> <E> : "Ḛ" U1E1A # LATIN CAPITAL LETTER E WITH TILDE BELOW
+<U0330> <e> : "ḛ" U1E1B # LATIN SMALL LETTER E WITH TILDE BELOW
+<dead_breve> <U0228> : "Ḝ" U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+<Multi_key> <U> <U0228> : "Ḝ" U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+<Multi_key> <b> <U0228> : "Ḝ" U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+<dead_breve> <dead_cedilla> <E> : "Ḝ" U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+<dead_breve> <Multi_key> <comma> <E> : "Ḝ" U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+<Multi_key> <U> <dead_cedilla> <E> : "Ḝ" U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+<Multi_key> <U> <comma> <E> : "Ḝ" U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+<Multi_key> <b> <dead_cedilla> <E> : "Ḝ" U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+<Multi_key> <b> <comma> <E> : "Ḝ" U1E1C # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+<dead_breve> <U0229> : "á¸" U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+<Multi_key> <U> <U0229> : "á¸" U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+<Multi_key> <b> <U0229> : "á¸" U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+<dead_breve> <dead_cedilla> <e> : "á¸" U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+<dead_breve> <Multi_key> <comma> <e> : "á¸" U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+<Multi_key> <U> <dead_cedilla> <e> : "á¸" U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+<Multi_key> <U> <comma> <e> : "á¸" U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+<Multi_key> <b> <dead_cedilla> <e> : "á¸" U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+<Multi_key> <b> <comma> <e> : "á¸" U1E1D # LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+<dead_abovedot> <F> : "Ḟ" U1E1E # LATIN CAPITAL LETTER F WITH DOT ABOVE
+<Multi_key> <period> <F> : "Ḟ" U1E1E # LATIN CAPITAL LETTER F WITH DOT ABOVE
+<dead_abovedot> <f> : "ḟ" U1E1F # LATIN SMALL LETTER F WITH DOT ABOVE
+<Multi_key> <period> <f> : "ḟ" U1E1F # LATIN SMALL LETTER F WITH DOT ABOVE
+<dead_macron> <G> : "Ḡ" U1E20 # LATIN CAPITAL LETTER G WITH MACRON
+<Multi_key> <macron> <G> : "Ḡ" U1E20 # LATIN CAPITAL LETTER G WITH MACRON
+<Multi_key> <underscore> <G> : "Ḡ" U1E20 # LATIN CAPITAL LETTER G WITH MACRON
+<dead_macron> <g> : "ḡ" U1E21 # LATIN SMALL LETTER G WITH MACRON
+<Multi_key> <macron> <g> : "ḡ" U1E21 # LATIN SMALL LETTER G WITH MACRON
+<Multi_key> <underscore> <g> : "ḡ" U1E21 # LATIN SMALL LETTER G WITH MACRON
+<dead_abovedot> <H> : "Ḣ" U1E22 # LATIN CAPITAL LETTER H WITH DOT ABOVE
+<Multi_key> <period> <H> : "Ḣ" U1E22 # LATIN CAPITAL LETTER H WITH DOT ABOVE
+<dead_abovedot> <h> : "ḣ" U1E23 # LATIN SMALL LETTER H WITH DOT ABOVE
+<Multi_key> <period> <h> : "ḣ" U1E23 # LATIN SMALL LETTER H WITH DOT ABOVE
+<dead_belowdot> <H> : "Ḥ" U1E24 # LATIN CAPITAL LETTER H WITH DOT BELOW
+<Multi_key> <exclam> <H> : "Ḥ" U1E24 # LATIN CAPITAL LETTER H WITH DOT BELOW
+<combining_belowdot> <H> : "Ḥ" U1E24 # LATIN CAPITAL LETTER H WITH DOT BELOW
+<dead_belowdot> <h> : "ḥ" U1E25 # LATIN SMALL LETTER H WITH DOT BELOW
+<Multi_key> <exclam> <h> : "ḥ" U1E25 # LATIN SMALL LETTER H WITH DOT BELOW
+<combining_belowdot> <h> : "ḥ" U1E25 # LATIN SMALL LETTER H WITH DOT BELOW
+<dead_diaeresis> <H> : "Ḧ" U1E26 # LATIN CAPITAL LETTER H WITH DIAERESIS
+<Multi_key> <quotedbl> <H> : "Ḧ" U1E26 # LATIN CAPITAL LETTER H WITH DIAERESIS
+<dead_diaeresis> <h> : "ḧ" U1E27 # LATIN SMALL LETTER H WITH DIAERESIS
+<Multi_key> <quotedbl> <h> : "ḧ" U1E27 # LATIN SMALL LETTER H WITH DIAERESIS
+<dead_cedilla> <H> : "Ḩ" U1E28 # LATIN CAPITAL LETTER H WITH CEDILLA
+<Multi_key> <comma> <H> : "Ḩ" U1E28 # LATIN CAPITAL LETTER H WITH CEDILLA
+<dead_cedilla> <h> : "ḩ" U1E29 # LATIN SMALL LETTER H WITH CEDILLA
+<Multi_key> <comma> <h> : "ḩ" U1E29 # LATIN SMALL LETTER H WITH CEDILLA
+<U032e> <H> : "Ḫ" U1E2A # LATIN CAPITAL LETTER H WITH BREVE BELOW
+<U032e> <h> : "ḫ" U1E2B # LATIN SMALL LETTER H WITH BREVE BELOW
+<U0330> <I> : "Ḭ" U1E2C # LATIN CAPITAL LETTER I WITH TILDE BELOW
+<U0330> <i> : "ḭ" U1E2D # LATIN SMALL LETTER I WITH TILDE BELOW
+<dead_acute> <Idiaeresis> : "Ḯ" U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+<Multi_key> <acute> <Idiaeresis> : "Ḯ" U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+<Multi_key> <apostrophe> <Idiaeresis> : "Ḯ" U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+<dead_acute> <dead_diaeresis> <I> : "Ḯ" U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+<dead_acute> <Multi_key> <quotedbl> <I> : "Ḯ" U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+<Multi_key> <acute> <dead_diaeresis> <I> : "Ḯ" U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+<Multi_key> <acute> <quotedbl> <I> : "Ḯ" U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+<Multi_key> <apostrophe> <dead_diaeresis> <I> : "Ḯ" U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+<Multi_key> <apostrophe> <quotedbl> <I> : "Ḯ" U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+<combining_acute> <Idiaeresis> : "Ḯ" U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+<combining_acute> <dead_diaeresis> <I> : "Ḯ" U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+<combining_acute> <Multi_key> <quotedbl> <I> : "Ḯ" U1E2E # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+<dead_acute> <idiaeresis> : "ḯ" U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+<Multi_key> <acute> <idiaeresis> : "ḯ" U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+<Multi_key> <apostrophe> <idiaeresis> : "ḯ" U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+<dead_acute> <dead_diaeresis> <i> : "ḯ" U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+<dead_acute> <Multi_key> <quotedbl> <i> : "ḯ" U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+<Multi_key> <acute> <dead_diaeresis> <i> : "ḯ" U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+<Multi_key> <acute> <quotedbl> <i> : "ḯ" U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+<Multi_key> <apostrophe> <dead_diaeresis> <i> : "ḯ" U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+<Multi_key> <apostrophe> <quotedbl> <i> : "ḯ" U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+<combining_acute> <idiaeresis> : "ḯ" U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+<combining_acute> <dead_diaeresis> <i> : "ḯ" U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+<combining_acute> <Multi_key> <quotedbl> <i> : "ḯ" U1E2F # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+<dead_acute> <K> : "Ḱ" U1E30 # LATIN CAPITAL LETTER K WITH ACUTE
+<Multi_key> <acute> <K> : "Ḱ" U1E30 # LATIN CAPITAL LETTER K WITH ACUTE
+<Multi_key> <apostrophe> <K> : "Ḱ" U1E30 # LATIN CAPITAL LETTER K WITH ACUTE
+<combining_acute> <K> : "Ḱ" U1E30 # LATIN CAPITAL LETTER K WITH ACUTE
+<dead_acute> <k> : "ḱ" U1E31 # LATIN SMALL LETTER K WITH ACUTE
+<Multi_key> <acute> <k> : "ḱ" U1E31 # LATIN SMALL LETTER K WITH ACUTE
+<Multi_key> <apostrophe> <k> : "ḱ" U1E31 # LATIN SMALL LETTER K WITH ACUTE
+<combining_acute> <k> : "ḱ" U1E31 # LATIN SMALL LETTER K WITH ACUTE
+<dead_belowdot> <K> : "Ḳ" U1E32 # LATIN CAPITAL LETTER K WITH DOT BELOW
+<Multi_key> <exclam> <K> : "Ḳ" U1E32 # LATIN CAPITAL LETTER K WITH DOT BELOW
+<combining_belowdot> <K> : "Ḳ" U1E32 # LATIN CAPITAL LETTER K WITH DOT BELOW
+<dead_belowdot> <k> : "ḳ" U1E33 # LATIN SMALL LETTER K WITH DOT BELOW
+<Multi_key> <exclam> <k> : "ḳ" U1E33 # LATIN SMALL LETTER K WITH DOT BELOW
+<combining_belowdot> <k> : "ḳ" U1E33 # LATIN SMALL LETTER K WITH DOT BELOW
+<U0331> <K> : "Ḵ" U1E34 # LATIN CAPITAL LETTER K WITH LINE BELOW
+<U0331> <k> : "ḵ" U1E35 # LATIN SMALL LETTER K WITH LINE BELOW
+<dead_belowdot> <L> : "Ḷ" U1E36 # LATIN CAPITAL LETTER L WITH DOT BELOW
+<Multi_key> <exclam> <L> : "Ḷ" U1E36 # LATIN CAPITAL LETTER L WITH DOT BELOW
+<combining_belowdot> <L> : "Ḷ" U1E36 # LATIN CAPITAL LETTER L WITH DOT BELOW
+<dead_belowdot> <l> : "ḷ" U1E37 # LATIN SMALL LETTER L WITH DOT BELOW
+<Multi_key> <exclam> <l> : "ḷ" U1E37 # LATIN SMALL LETTER L WITH DOT BELOW
+<combining_belowdot> <l> : "ḷ" U1E37 # LATIN SMALL LETTER L WITH DOT BELOW
+<dead_macron> <U1e36> : "Ḹ" U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+<Multi_key> <macron> <U1e36> : "Ḹ" U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+<Multi_key> <underscore> <U1e36> : "Ḹ" U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+<dead_macron> <dead_belowdot> <L> : "Ḹ" U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+<dead_macron> <Multi_key> <exclam> <L> : "Ḹ" U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+<Multi_key> <macron> <dead_belowdot> <L> : "Ḹ" U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+<Multi_key> <macron> <exclam> <L> : "Ḹ" U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+<Multi_key> <underscore> <dead_belowdot> <L> : "Ḹ" U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+<Multi_key> <underscore> <exclam> <L> : "Ḹ" U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+<dead_macron> <combining_belowdot> <L> : "Ḹ" U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+<Multi_key> <macron> <combining_belowdot> <L> : "Ḹ" U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+<Multi_key> <underscore> <combining_belowdot> <L> : "Ḹ" U1E38 # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+<dead_macron> <U1e37> : "ḹ" U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+<Multi_key> <macron> <U1e37> : "ḹ" U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+<Multi_key> <underscore> <U1e37> : "ḹ" U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+<dead_macron> <dead_belowdot> <l> : "ḹ" U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+<dead_macron> <Multi_key> <exclam> <l> : "ḹ" U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+<Multi_key> <macron> <dead_belowdot> <l> : "ḹ" U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+<Multi_key> <macron> <exclam> <l> : "ḹ" U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+<Multi_key> <underscore> <dead_belowdot> <l> : "ḹ" U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+<Multi_key> <underscore> <exclam> <l> : "ḹ" U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+<dead_macron> <combining_belowdot> <l> : "ḹ" U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+<Multi_key> <macron> <combining_belowdot> <l> : "ḹ" U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+<Multi_key> <underscore> <combining_belowdot> <l> : "ḹ" U1E39 # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+<U0331> <L> : "Ḻ" U1E3A # LATIN CAPITAL LETTER L WITH LINE BELOW
+<U0331> <l> : "ḻ" U1E3B # LATIN SMALL LETTER L WITH LINE BELOW
+<U032d> <L> : "Ḽ" U1E3C # LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
+<U032d> <l> : "ḽ" U1E3D # LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW
+<dead_acute> <M> : "Ḿ" U1E3E # LATIN CAPITAL LETTER M WITH ACUTE
+<Multi_key> <acute> <M> : "Ḿ" U1E3E # LATIN CAPITAL LETTER M WITH ACUTE
+<Multi_key> <apostrophe> <M> : "Ḿ" U1E3E # LATIN CAPITAL LETTER M WITH ACUTE
+<combining_acute> <M> : "Ḿ" U1E3E # LATIN CAPITAL LETTER M WITH ACUTE
+<dead_acute> <m> : "ḿ" U1E3F # LATIN SMALL LETTER M WITH ACUTE
+<Multi_key> <acute> <m> : "ḿ" U1E3F # LATIN SMALL LETTER M WITH ACUTE
+<Multi_key> <apostrophe> <m> : "ḿ" U1E3F # LATIN SMALL LETTER M WITH ACUTE
+<combining_acute> <m> : "ḿ" U1E3F # LATIN SMALL LETTER M WITH ACUTE
+<dead_abovedot> <M> : "á¹€" U1E40 # LATIN CAPITAL LETTER M WITH DOT ABOVE
+<Multi_key> <period> <M> : "á¹€" U1E40 # LATIN CAPITAL LETTER M WITH DOT ABOVE
+<dead_abovedot> <m> : "á¹" U1E41 # LATIN SMALL LETTER M WITH DOT ABOVE
+<Multi_key> <period> <m> : "á¹" U1E41 # LATIN SMALL LETTER M WITH DOT ABOVE
+<dead_belowdot> <M> : "Ṃ" U1E42 # LATIN CAPITAL LETTER M WITH DOT BELOW
+<Multi_key> <exclam> <M> : "Ṃ" U1E42 # LATIN CAPITAL LETTER M WITH DOT BELOW
+<combining_belowdot> <M> : "Ṃ" U1E42 # LATIN CAPITAL LETTER M WITH DOT BELOW
+<dead_belowdot> <m> : "ṃ" U1E43 # LATIN SMALL LETTER M WITH DOT BELOW
+<Multi_key> <exclam> <m> : "ṃ" U1E43 # LATIN SMALL LETTER M WITH DOT BELOW
+<combining_belowdot> <m> : "ṃ" U1E43 # LATIN SMALL LETTER M WITH DOT BELOW
+<dead_abovedot> <N> : "Ṅ" U1E44 # LATIN CAPITAL LETTER N WITH DOT ABOVE
+<Multi_key> <period> <N> : "Ṅ" U1E44 # LATIN CAPITAL LETTER N WITH DOT ABOVE
+<dead_abovedot> <n> : "á¹…" U1E45 # LATIN SMALL LETTER N WITH DOT ABOVE
+<Multi_key> <period> <n> : "á¹…" U1E45 # LATIN SMALL LETTER N WITH DOT ABOVE
+<dead_belowdot> <N> : "Ṇ" U1E46 # LATIN CAPITAL LETTER N WITH DOT BELOW
+<Multi_key> <exclam> <N> : "Ṇ" U1E46 # LATIN CAPITAL LETTER N WITH DOT BELOW
+<combining_belowdot> <N> : "Ṇ" U1E46 # LATIN CAPITAL LETTER N WITH DOT BELOW
+<dead_belowdot> <n> : "ṇ" U1E47 # LATIN SMALL LETTER N WITH DOT BELOW
+<Multi_key> <exclam> <n> : "ṇ" U1E47 # LATIN SMALL LETTER N WITH DOT BELOW
+<combining_belowdot> <n> : "ṇ" U1E47 # LATIN SMALL LETTER N WITH DOT BELOW
+<U0331> <N> : "Ṉ" U1E48 # LATIN CAPITAL LETTER N WITH LINE BELOW
+<U0331> <n> : "ṉ" U1E49 # LATIN SMALL LETTER N WITH LINE BELOW
+<U032d> <N> : "Ṋ" U1E4A # LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
+<U032d> <n> : "ṋ" U1E4B # LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW
+<dead_acute> <Otilde> : "Ṍ" U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+<Multi_key> <acute> <Otilde> : "Ṍ" U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+<Multi_key> <apostrophe> <Otilde> : "Ṍ" U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+<dead_acute> <dead_tilde> <O> : "Ṍ" U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+<dead_acute> <Multi_key> <asciitilde> <O> : "Ṍ" U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+<Multi_key> <acute> <dead_tilde> <O> : "Ṍ" U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+<Multi_key> <acute> <asciitilde> <O> : "Ṍ" U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+<Multi_key> <apostrophe> <dead_tilde> <O> : "Ṍ" U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+<Multi_key> <apostrophe> <asciitilde> <O> : "Ṍ" U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+<dead_acute> <combining_tilde> <O> : "Ṍ" U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+<Multi_key> <acute> <combining_tilde> <O> : "Ṍ" U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+<Multi_key> <apostrophe> <combining_tilde> <O> : "Ṍ" U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+<combining_acute> <Otilde> : "Ṍ" U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+<combining_acute> <dead_tilde> <O> : "Ṍ" U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+<combining_acute> <Multi_key> <asciitilde> <O> : "Ṍ" U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+<combining_acute> <combining_tilde> <O> : "Ṍ" U1E4C # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+<dead_acute> <otilde> : "á¹" U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+<Multi_key> <acute> <otilde> : "á¹" U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+<Multi_key> <apostrophe> <otilde> : "á¹" U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+<dead_acute> <dead_tilde> <o> : "á¹" U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+<dead_acute> <Multi_key> <asciitilde> <o> : "á¹" U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+<Multi_key> <acute> <dead_tilde> <o> : "á¹" U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+<Multi_key> <acute> <asciitilde> <o> : "á¹" U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+<Multi_key> <apostrophe> <dead_tilde> <o> : "á¹" U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+<Multi_key> <apostrophe> <asciitilde> <o> : "á¹" U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+<dead_acute> <combining_tilde> <o> : "á¹" U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+<Multi_key> <acute> <combining_tilde> <o> : "á¹" U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+<Multi_key> <apostrophe> <combining_tilde> <o> : "á¹" U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+<combining_acute> <otilde> : "á¹" U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+<combining_acute> <dead_tilde> <o> : "á¹" U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+<combining_acute> <Multi_key> <asciitilde> <o> : "á¹" U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+<combining_acute> <combining_tilde> <o> : "á¹" U1E4D # LATIN SMALL LETTER O WITH TILDE AND ACUTE
+<dead_diaeresis> <Otilde> : "Ṏ" U1E4E # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+<Multi_key> <quotedbl> <Otilde> : "Ṏ" U1E4E # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+<dead_diaeresis> <dead_tilde> <O> : "Ṏ" U1E4E # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+<dead_diaeresis> <Multi_key> <asciitilde> <O> : "Ṏ" U1E4E # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+<Multi_key> <quotedbl> <dead_tilde> <O> : "Ṏ" U1E4E # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+<Multi_key> <quotedbl> <asciitilde> <O> : "Ṏ" U1E4E # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+<dead_diaeresis> <combining_tilde> <O> : "Ṏ" U1E4E # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+<Multi_key> <quotedbl> <combining_tilde> <O> : "Ṏ" U1E4E # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+<dead_diaeresis> <otilde> : "á¹" U1E4F # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+<Multi_key> <quotedbl> <otilde> : "á¹" U1E4F # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+<dead_diaeresis> <dead_tilde> <o> : "á¹" U1E4F # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+<dead_diaeresis> <Multi_key> <asciitilde> <o> : "á¹" U1E4F # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+<Multi_key> <quotedbl> <dead_tilde> <o> : "á¹" U1E4F # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+<Multi_key> <quotedbl> <asciitilde> <o> : "á¹" U1E4F # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+<dead_diaeresis> <combining_tilde> <o> : "á¹" U1E4F # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+<Multi_key> <quotedbl> <combining_tilde> <o> : "á¹" U1E4F # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+<dead_grave> <Omacron> : "á¹" U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+<Multi_key> <grave> <Omacron> : "á¹" U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+<dead_grave> <dead_macron> <O> : "á¹" U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+<dead_grave> <Multi_key> <macron> <O> : "á¹" U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+<dead_grave> <Multi_key> <underscore> <O> : "á¹" U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+<Multi_key> <grave> <dead_macron> <O> : "á¹" U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+<Multi_key> <grave> <macron> <O> : "á¹" U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+<Multi_key> <grave> <underscore> <O> : "á¹" U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+<combining_grave> <Omacron> : "á¹" U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+<combining_grave> <dead_macron> <O> : "á¹" U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+<combining_grave> <Multi_key> <macron> <O> : "á¹" U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+<combining_grave> <Multi_key> <underscore> <O> : "á¹" U1E50 # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+<dead_grave> <omacron> : "ṑ" U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
+<Multi_key> <grave> <omacron> : "ṑ" U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
+<dead_grave> <dead_macron> <o> : "ṑ" U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
+<dead_grave> <Multi_key> <macron> <o> : "ṑ" U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
+<dead_grave> <Multi_key> <underscore> <o> : "ṑ" U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
+<Multi_key> <grave> <dead_macron> <o> : "ṑ" U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
+<Multi_key> <grave> <macron> <o> : "ṑ" U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
+<Multi_key> <grave> <underscore> <o> : "ṑ" U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
+<combining_grave> <omacron> : "ṑ" U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
+<combining_grave> <dead_macron> <o> : "ṑ" U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
+<combining_grave> <Multi_key> <macron> <o> : "ṑ" U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
+<combining_grave> <Multi_key> <underscore> <o> : "ṑ" U1E51 # LATIN SMALL LETTER O WITH MACRON AND GRAVE
+<dead_acute> <Omacron> : "á¹’" U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <acute> <Omacron> : "á¹’" U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <Omacron> : "á¹’" U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+<dead_acute> <dead_macron> <O> : "á¹’" U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+<dead_acute> <Multi_key> <macron> <O> : "á¹’" U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+<dead_acute> <Multi_key> <underscore> <O> : "á¹’" U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <acute> <dead_macron> <O> : "á¹’" U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <acute> <macron> <O> : "á¹’" U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <acute> <underscore> <O> : "á¹’" U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <dead_macron> <O> : "á¹’" U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <macron> <O> : "á¹’" U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <underscore> <O> : "á¹’" U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+<combining_acute> <Omacron> : "á¹’" U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+<combining_acute> <dead_macron> <O> : "á¹’" U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+<combining_acute> <Multi_key> <macron> <O> : "á¹’" U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+<combining_acute> <Multi_key> <underscore> <O> : "á¹’" U1E52 # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+<dead_acute> <omacron> : "ṓ" U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <acute> <omacron> : "ṓ" U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <omacron> : "ṓ" U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+<dead_acute> <dead_macron> <o> : "ṓ" U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+<dead_acute> <Multi_key> <macron> <o> : "ṓ" U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+<dead_acute> <Multi_key> <underscore> <o> : "ṓ" U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <acute> <dead_macron> <o> : "ṓ" U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <acute> <macron> <o> : "ṓ" U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <acute> <underscore> <o> : "ṓ" U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <dead_macron> <o> : "ṓ" U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <macron> <o> : "ṓ" U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+<Multi_key> <apostrophe> <underscore> <o> : "ṓ" U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+<combining_acute> <omacron> : "ṓ" U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+<combining_acute> <dead_macron> <o> : "ṓ" U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+<combining_acute> <Multi_key> <macron> <o> : "ṓ" U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+<combining_acute> <Multi_key> <underscore> <o> : "ṓ" U1E53 # LATIN SMALL LETTER O WITH MACRON AND ACUTE
+<dead_acute> <P> : "á¹”" U1E54 # LATIN CAPITAL LETTER P WITH ACUTE
+<Multi_key> <acute> <P> : "á¹”" U1E54 # LATIN CAPITAL LETTER P WITH ACUTE
+<Multi_key> <apostrophe> <P> : "á¹”" U1E54 # LATIN CAPITAL LETTER P WITH ACUTE
+<combining_acute> <P> : "á¹”" U1E54 # LATIN CAPITAL LETTER P WITH ACUTE
+<dead_acute> <p> : "ṕ" U1E55 # LATIN SMALL LETTER P WITH ACUTE
+<Multi_key> <acute> <p> : "ṕ" U1E55 # LATIN SMALL LETTER P WITH ACUTE
+<Multi_key> <apostrophe> <p> : "ṕ" U1E55 # LATIN SMALL LETTER P WITH ACUTE
+<combining_acute> <p> : "ṕ" U1E55 # LATIN SMALL LETTER P WITH ACUTE
+<dead_abovedot> <P> : "á¹–" U1E56 # LATIN CAPITAL LETTER P WITH DOT ABOVE
+<Multi_key> <period> <P> : "á¹–" U1E56 # LATIN CAPITAL LETTER P WITH DOT ABOVE
+<dead_abovedot> <p> : "á¹—" U1E57 # LATIN SMALL LETTER P WITH DOT ABOVE
+<Multi_key> <period> <p> : "á¹—" U1E57 # LATIN SMALL LETTER P WITH DOT ABOVE
+<dead_abovedot> <R> : "Ṙ" U1E58 # LATIN CAPITAL LETTER R WITH DOT ABOVE
+<Multi_key> <period> <R> : "Ṙ" U1E58 # LATIN CAPITAL LETTER R WITH DOT ABOVE
+<dead_abovedot> <r> : "á¹™" U1E59 # LATIN SMALL LETTER R WITH DOT ABOVE
+<Multi_key> <period> <r> : "á¹™" U1E59 # LATIN SMALL LETTER R WITH DOT ABOVE
+<dead_belowdot> <R> : "Ṛ" U1E5A # LATIN CAPITAL LETTER R WITH DOT BELOW
+<Multi_key> <exclam> <R> : "Ṛ" U1E5A # LATIN CAPITAL LETTER R WITH DOT BELOW
+<combining_belowdot> <R> : "Ṛ" U1E5A # LATIN CAPITAL LETTER R WITH DOT BELOW
+<dead_belowdot> <r> : "á¹›" U1E5B # LATIN SMALL LETTER R WITH DOT BELOW
+<Multi_key> <exclam> <r> : "á¹›" U1E5B # LATIN SMALL LETTER R WITH DOT BELOW
+<combining_belowdot> <r> : "á¹›" U1E5B # LATIN SMALL LETTER R WITH DOT BELOW
+<dead_macron> <U1e5a> : "Ṝ" U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+<Multi_key> <macron> <U1e5a> : "Ṝ" U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+<Multi_key> <underscore> <U1e5a> : "Ṝ" U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+<dead_macron> <dead_belowdot> <R> : "Ṝ" U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+<dead_macron> <Multi_key> <exclam> <R> : "Ṝ" U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+<Multi_key> <macron> <dead_belowdot> <R> : "Ṝ" U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+<Multi_key> <macron> <exclam> <R> : "Ṝ" U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+<Multi_key> <underscore> <dead_belowdot> <R> : "Ṝ" U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+<Multi_key> <underscore> <exclam> <R> : "Ṝ" U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+<dead_macron> <combining_belowdot> <R> : "Ṝ" U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+<Multi_key> <macron> <combining_belowdot> <R> : "Ṝ" U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+<Multi_key> <underscore> <combining_belowdot> <R> : "Ṝ" U1E5C # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+<dead_macron> <U1e5b> : "á¹" U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+<Multi_key> <macron> <U1e5b> : "á¹" U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+<Multi_key> <underscore> <U1e5b> : "á¹" U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+<dead_macron> <dead_belowdot> <r> : "á¹" U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+<dead_macron> <Multi_key> <exclam> <r> : "á¹" U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+<Multi_key> <macron> <dead_belowdot> <r> : "á¹" U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+<Multi_key> <macron> <exclam> <r> : "á¹" U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+<Multi_key> <underscore> <dead_belowdot> <r> : "á¹" U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+<Multi_key> <underscore> <exclam> <r> : "á¹" U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+<dead_macron> <combining_belowdot> <r> : "á¹" U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+<Multi_key> <macron> <combining_belowdot> <r> : "á¹" U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+<Multi_key> <underscore> <combining_belowdot> <r> : "á¹" U1E5D # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+<U0331> <R> : "Ṟ" U1E5E # LATIN CAPITAL LETTER R WITH LINE BELOW
+<U0331> <r> : "ṟ" U1E5F # LATIN SMALL LETTER R WITH LINE BELOW
+<dead_abovedot> <S> : "á¹ " U1E60 # LATIN CAPITAL LETTER S WITH DOT ABOVE
+<Multi_key> <period> <S> : "á¹ " U1E60 # LATIN CAPITAL LETTER S WITH DOT ABOVE
+<dead_abovedot> <s> : "ṡ" U1E61 # LATIN SMALL LETTER S WITH DOT ABOVE
+<Multi_key> <period> <s> : "ṡ" U1E61 # LATIN SMALL LETTER S WITH DOT ABOVE
+<dead_belowdot> <S> : "á¹¢" U1E62 # LATIN CAPITAL LETTER S WITH DOT BELOW
+<Multi_key> <exclam> <S> : "á¹¢" U1E62 # LATIN CAPITAL LETTER S WITH DOT BELOW
+<combining_belowdot> <S> : "á¹¢" U1E62 # LATIN CAPITAL LETTER S WITH DOT BELOW
+<dead_belowdot> <s> : "á¹£" U1E63 # LATIN SMALL LETTER S WITH DOT BELOW
+<Multi_key> <exclam> <s> : "á¹£" U1E63 # LATIN SMALL LETTER S WITH DOT BELOW
+<combining_belowdot> <s> : "á¹£" U1E63 # LATIN SMALL LETTER S WITH DOT BELOW
+<dead_abovedot> <Sacute> : "Ṥ" U1E64 # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+<Multi_key> <period> <Sacute> : "Ṥ" U1E64 # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+<dead_abovedot> <dead_acute> <S> : "Ṥ" U1E64 # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+<dead_abovedot> <Multi_key> <acute> <S> : "Ṥ" U1E64 # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+<dead_abovedot> <Multi_key> <apostrophe> <S> : "Ṥ" U1E64 # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+<Multi_key> <period> <dead_acute> <S> : "Ṥ" U1E64 # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+<Multi_key> <period> <acute> <S> : "Ṥ" U1E64 # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+<Multi_key> <period> <apostrophe> <S> : "Ṥ" U1E64 # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+<dead_abovedot> <combining_acute> <S> : "Ṥ" U1E64 # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+<Multi_key> <period> <combining_acute> <S> : "Ṥ" U1E64 # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+<dead_abovedot> <sacute> : "á¹¥" U1E65 # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+<Multi_key> <period> <sacute> : "á¹¥" U1E65 # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+<dead_abovedot> <dead_acute> <s> : "á¹¥" U1E65 # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+<dead_abovedot> <Multi_key> <acute> <s> : "á¹¥" U1E65 # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+<dead_abovedot> <Multi_key> <apostrophe> <s> : "á¹¥" U1E65 # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+<Multi_key> <period> <dead_acute> <s> : "á¹¥" U1E65 # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+<Multi_key> <period> <acute> <s> : "á¹¥" U1E65 # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+<Multi_key> <period> <apostrophe> <s> : "á¹¥" U1E65 # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+<dead_abovedot> <combining_acute> <s> : "á¹¥" U1E65 # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+<Multi_key> <period> <combining_acute> <s> : "á¹¥" U1E65 # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+<dead_abovedot> <Scaron> : "Ṧ" U1E66 # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
+<Multi_key> <period> <Scaron> : "Ṧ" U1E66 # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
+<dead_abovedot> <dead_caron> <S> : "Ṧ" U1E66 # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
+<dead_abovedot> <Multi_key> <c> <S> : "Ṧ" U1E66 # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
+<Multi_key> <period> <dead_caron> <S> : "Ṧ" U1E66 # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
+<Multi_key> <period> <c> <S> : "Ṧ" U1E66 # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
+<dead_abovedot> <scaron> : "ṧ" U1E67 # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
+<Multi_key> <period> <scaron> : "ṧ" U1E67 # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
+<dead_abovedot> <dead_caron> <s> : "ṧ" U1E67 # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
+<dead_abovedot> <Multi_key> <c> <s> : "ṧ" U1E67 # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
+<Multi_key> <period> <dead_caron> <s> : "ṧ" U1E67 # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
+<Multi_key> <period> <c> <s> : "ṧ" U1E67 # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
+<dead_abovedot> <U1e62> : "Ṩ" U1E68 # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+<Multi_key> <period> <U1e62> : "Ṩ" U1E68 # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+<dead_abovedot> <dead_belowdot> <S> : "Ṩ" U1E68 # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+<dead_abovedot> <Multi_key> <exclam> <S> : "Ṩ" U1E68 # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+<Multi_key> <period> <dead_belowdot> <S> : "Ṩ" U1E68 # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+<Multi_key> <period> <exclam> <S> : "Ṩ" U1E68 # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+<dead_abovedot> <combining_belowdot> <S> : "Ṩ" U1E68 # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+<Multi_key> <period> <combining_belowdot> <S> : "Ṩ" U1E68 # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+<dead_abovedot> <U1e63> : "ṩ" U1E69 # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
+<Multi_key> <period> <U1e63> : "ṩ" U1E69 # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
+<dead_abovedot> <dead_belowdot> <s> : "ṩ" U1E69 # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
+<dead_abovedot> <Multi_key> <exclam> <s> : "ṩ" U1E69 # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
+<Multi_key> <period> <dead_belowdot> <s> : "ṩ" U1E69 # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
+<Multi_key> <period> <exclam> <s> : "ṩ" U1E69 # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
+<dead_abovedot> <combining_belowdot> <s> : "ṩ" U1E69 # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
+<Multi_key> <period> <combining_belowdot> <s> : "ṩ" U1E69 # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
+<dead_abovedot> <T> : "Ṫ" U1E6A # LATIN CAPITAL LETTER T WITH DOT ABOVE
+<Multi_key> <period> <T> : "Ṫ" U1E6A # LATIN CAPITAL LETTER T WITH DOT ABOVE
+<dead_abovedot> <t> : "ṫ" U1E6B # LATIN SMALL LETTER T WITH DOT ABOVE
+<Multi_key> <period> <t> : "ṫ" U1E6B # LATIN SMALL LETTER T WITH DOT ABOVE
+<dead_belowdot> <T> : "Ṭ" U1E6C # LATIN CAPITAL LETTER T WITH DOT BELOW
+<Multi_key> <exclam> <T> : "Ṭ" U1E6C # LATIN CAPITAL LETTER T WITH DOT BELOW
+<combining_belowdot> <T> : "Ṭ" U1E6C # LATIN CAPITAL LETTER T WITH DOT BELOW
+<dead_belowdot> <t> : "á¹­" U1E6D # LATIN SMALL LETTER T WITH DOT BELOW
+<Multi_key> <exclam> <t> : "á¹­" U1E6D # LATIN SMALL LETTER T WITH DOT BELOW
+<combining_belowdot> <t> : "á¹­" U1E6D # LATIN SMALL LETTER T WITH DOT BELOW
+<U0331> <T> : "á¹®" U1E6E # LATIN CAPITAL LETTER T WITH LINE BELOW
+<U0331> <t> : "ṯ" U1E6F # LATIN SMALL LETTER T WITH LINE BELOW
+<U032d> <T> : "á¹°" U1E70 # LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
+<U032d> <t> : "á¹±" U1E71 # LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW
+<U0324> <U> : "á¹²" U1E72 # LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
+<U0324> <u> : "á¹³" U1E73 # LATIN SMALL LETTER U WITH DIAERESIS BELOW
+<U0330> <U> : "á¹´" U1E74 # LATIN CAPITAL LETTER U WITH TILDE BELOW
+<U0330> <u> : "á¹µ" U1E75 # LATIN SMALL LETTER U WITH TILDE BELOW
+<U032d> <U> : "Ṷ" U1E76 # LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
+<U032d> <u> : "á¹·" U1E77 # LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW
+<dead_acute> <Utilde> : "Ṹ" U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+<Multi_key> <acute> <Utilde> : "Ṹ" U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+<Multi_key> <apostrophe> <Utilde> : "Ṹ" U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+<dead_acute> <dead_tilde> <U> : "Ṹ" U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+<dead_acute> <Multi_key> <asciitilde> <U> : "Ṹ" U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+<Multi_key> <acute> <dead_tilde> <U> : "Ṹ" U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+<Multi_key> <acute> <asciitilde> <U> : "Ṹ" U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+<Multi_key> <apostrophe> <dead_tilde> <U> : "Ṹ" U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+<Multi_key> <apostrophe> <asciitilde> <U> : "Ṹ" U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+<dead_acute> <combining_tilde> <U> : "Ṹ" U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+<Multi_key> <acute> <combining_tilde> <U> : "Ṹ" U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+<Multi_key> <apostrophe> <combining_tilde> <U> : "Ṹ" U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+<combining_acute> <Utilde> : "Ṹ" U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+<combining_acute> <dead_tilde> <U> : "Ṹ" U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+<combining_acute> <Multi_key> <asciitilde> <U> : "Ṹ" U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+<combining_acute> <combining_tilde> <U> : "Ṹ" U1E78 # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+<dead_acute> <utilde> : "á¹¹" U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
+<Multi_key> <acute> <utilde> : "á¹¹" U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
+<Multi_key> <apostrophe> <utilde> : "á¹¹" U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
+<dead_acute> <dead_tilde> <u> : "á¹¹" U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
+<dead_acute> <Multi_key> <asciitilde> <u> : "á¹¹" U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
+<Multi_key> <acute> <dead_tilde> <u> : "á¹¹" U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
+<Multi_key> <acute> <asciitilde> <u> : "á¹¹" U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
+<Multi_key> <apostrophe> <dead_tilde> <u> : "á¹¹" U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
+<Multi_key> <apostrophe> <asciitilde> <u> : "á¹¹" U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
+<dead_acute> <combining_tilde> <u> : "á¹¹" U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
+<Multi_key> <acute> <combining_tilde> <u> : "á¹¹" U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
+<Multi_key> <apostrophe> <combining_tilde> <u> : "á¹¹" U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
+<combining_acute> <utilde> : "á¹¹" U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
+<combining_acute> <dead_tilde> <u> : "á¹¹" U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
+<combining_acute> <Multi_key> <asciitilde> <u> : "á¹¹" U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
+<combining_acute> <combining_tilde> <u> : "á¹¹" U1E79 # LATIN SMALL LETTER U WITH TILDE AND ACUTE
+<dead_diaeresis> <Umacron> : "Ṻ" U1E7A # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+<Multi_key> <quotedbl> <Umacron> : "Ṻ" U1E7A # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+<dead_diaeresis> <dead_macron> <U> : "Ṻ" U1E7A # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+<dead_diaeresis> <Multi_key> <macron> <U> : "Ṻ" U1E7A # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+<dead_diaeresis> <Multi_key> <underscore> <U> : "Ṻ" U1E7A # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+<Multi_key> <quotedbl> <dead_macron> <U> : "Ṻ" U1E7A # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+<Multi_key> <quotedbl> <macron> <U> : "Ṻ" U1E7A # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+<Multi_key> <quotedbl> <underscore> <U> : "Ṻ" U1E7A # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+<dead_diaeresis> <umacron> : "á¹»" U1E7B # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
+<Multi_key> <quotedbl> <umacron> : "á¹»" U1E7B # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
+<dead_diaeresis> <dead_macron> <u> : "á¹»" U1E7B # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
+<dead_diaeresis> <Multi_key> <macron> <u> : "á¹»" U1E7B # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
+<dead_diaeresis> <Multi_key> <underscore> <u> : "á¹»" U1E7B # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
+<Multi_key> <quotedbl> <dead_macron> <u> : "á¹»" U1E7B # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
+<Multi_key> <quotedbl> <macron> <u> : "á¹»" U1E7B # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
+<Multi_key> <quotedbl> <underscore> <u> : "á¹»" U1E7B # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
+<dead_tilde> <V> : "á¹¼" U1E7C # LATIN CAPITAL LETTER V WITH TILDE
+<Multi_key> <asciitilde> <V> : "á¹¼" U1E7C # LATIN CAPITAL LETTER V WITH TILDE
+<combining_tilde> <V> : "á¹¼" U1E7C # LATIN CAPITAL LETTER V WITH TILDE
+<dead_tilde> <v> : "á¹½" U1E7D # LATIN SMALL LETTER V WITH TILDE
+<Multi_key> <asciitilde> <v> : "á¹½" U1E7D # LATIN SMALL LETTER V WITH TILDE
+<combining_tilde> <v> : "á¹½" U1E7D # LATIN SMALL LETTER V WITH TILDE
+<dead_belowdot> <V> : "á¹¾" U1E7E # LATIN CAPITAL LETTER V WITH DOT BELOW
+<Multi_key> <exclam> <V> : "á¹¾" U1E7E # LATIN CAPITAL LETTER V WITH DOT BELOW
+<combining_belowdot> <V> : "á¹¾" U1E7E # LATIN CAPITAL LETTER V WITH DOT BELOW
+<dead_belowdot> <v> : "ṿ" U1E7F # LATIN SMALL LETTER V WITH DOT BELOW
+<Multi_key> <exclam> <v> : "ṿ" U1E7F # LATIN SMALL LETTER V WITH DOT BELOW
+<combining_belowdot> <v> : "ṿ" U1E7F # LATIN SMALL LETTER V WITH DOT BELOW
+<dead_grave> <W> : "Ẁ" U1E80 # LATIN CAPITAL LETTER W WITH GRAVE
+<Multi_key> <grave> <W> : "Ẁ" U1E80 # LATIN CAPITAL LETTER W WITH GRAVE
+<combining_grave> <W> : "Ẁ" U1E80 # LATIN CAPITAL LETTER W WITH GRAVE
+<dead_grave> <w> : "áº" U1E81 # LATIN SMALL LETTER W WITH GRAVE
+<Multi_key> <grave> <w> : "áº" U1E81 # LATIN SMALL LETTER W WITH GRAVE
+<combining_grave> <w> : "áº" U1E81 # LATIN SMALL LETTER W WITH GRAVE
+<dead_acute> <W> : "Ẃ" U1E82 # LATIN CAPITAL LETTER W WITH ACUTE
+<Multi_key> <acute> <W> : "Ẃ" U1E82 # LATIN CAPITAL LETTER W WITH ACUTE
+<Multi_key> <apostrophe> <W> : "Ẃ" U1E82 # LATIN CAPITAL LETTER W WITH ACUTE
+<combining_acute> <W> : "Ẃ" U1E82 # LATIN CAPITAL LETTER W WITH ACUTE
+<dead_acute> <w> : "ẃ" U1E83 # LATIN SMALL LETTER W WITH ACUTE
+<Multi_key> <acute> <w> : "ẃ" U1E83 # LATIN SMALL LETTER W WITH ACUTE
+<Multi_key> <apostrophe> <w> : "ẃ" U1E83 # LATIN SMALL LETTER W WITH ACUTE
+<combining_acute> <w> : "ẃ" U1E83 # LATIN SMALL LETTER W WITH ACUTE
+<dead_diaeresis> <W> : "Ẅ" U1E84 # LATIN CAPITAL LETTER W WITH DIAERESIS
+<Multi_key> <quotedbl> <W> : "Ẅ" U1E84 # LATIN CAPITAL LETTER W WITH DIAERESIS
+<dead_diaeresis> <w> : "ẅ" U1E85 # LATIN SMALL LETTER W WITH DIAERESIS
+<Multi_key> <quotedbl> <w> : "ẅ" U1E85 # LATIN SMALL LETTER W WITH DIAERESIS
+<dead_abovedot> <W> : "Ẇ" U1E86 # LATIN CAPITAL LETTER W WITH DOT ABOVE
+<Multi_key> <period> <W> : "Ẇ" U1E86 # LATIN CAPITAL LETTER W WITH DOT ABOVE
+<dead_abovedot> <w> : "ẇ" U1E87 # LATIN SMALL LETTER W WITH DOT ABOVE
+<Multi_key> <period> <w> : "ẇ" U1E87 # LATIN SMALL LETTER W WITH DOT ABOVE
+<dead_belowdot> <W> : "Ẉ" U1E88 # LATIN CAPITAL LETTER W WITH DOT BELOW
+<Multi_key> <exclam> <W> : "Ẉ" U1E88 # LATIN CAPITAL LETTER W WITH DOT BELOW
+<combining_belowdot> <W> : "Ẉ" U1E88 # LATIN CAPITAL LETTER W WITH DOT BELOW
+<dead_belowdot> <w> : "ẉ" U1E89 # LATIN SMALL LETTER W WITH DOT BELOW
+<Multi_key> <exclam> <w> : "ẉ" U1E89 # LATIN SMALL LETTER W WITH DOT BELOW
+<combining_belowdot> <w> : "ẉ" U1E89 # LATIN SMALL LETTER W WITH DOT BELOW
+<dead_abovedot> <X> : "Ẋ" U1E8A # LATIN CAPITAL LETTER X WITH DOT ABOVE
+<Multi_key> <period> <X> : "Ẋ" U1E8A # LATIN CAPITAL LETTER X WITH DOT ABOVE
+<dead_abovedot> <x> : "ẋ" U1E8B # LATIN SMALL LETTER X WITH DOT ABOVE
+<Multi_key> <period> <x> : "ẋ" U1E8B # LATIN SMALL LETTER X WITH DOT ABOVE
+<dead_diaeresis> <X> : "Ẍ" U1E8C # LATIN CAPITAL LETTER X WITH DIAERESIS
+<Multi_key> <quotedbl> <X> : "Ẍ" U1E8C # LATIN CAPITAL LETTER X WITH DIAERESIS
+<dead_diaeresis> <x> : "áº" U1E8D # LATIN SMALL LETTER X WITH DIAERESIS
+<Multi_key> <quotedbl> <x> : "áº" U1E8D # LATIN SMALL LETTER X WITH DIAERESIS
+<dead_abovedot> <Y> : "Ẏ" U1E8E # LATIN CAPITAL LETTER Y WITH DOT ABOVE
+<Multi_key> <period> <Y> : "Ẏ" U1E8E # LATIN CAPITAL LETTER Y WITH DOT ABOVE
+<dead_abovedot> <y> : "áº" U1E8F # LATIN SMALL LETTER Y WITH DOT ABOVE
+<Multi_key> <period> <y> : "áº" U1E8F # LATIN SMALL LETTER Y WITH DOT ABOVE
+<dead_circumflex> <Z> : "áº" U1E90 # LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <Z> : "áº" U1E90 # LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
+<dead_circumflex> <z> : "ẑ" U1E91 # LATIN SMALL LETTER Z WITH CIRCUMFLEX
+<Multi_key> <asciicircum> <z> : "ẑ" U1E91 # LATIN SMALL LETTER Z WITH CIRCUMFLEX
+<dead_belowdot> <Z> : "Ẓ" U1E92 # LATIN CAPITAL LETTER Z WITH DOT BELOW
+<Multi_key> <exclam> <Z> : "Ẓ" U1E92 # LATIN CAPITAL LETTER Z WITH DOT BELOW
+<combining_belowdot> <Z> : "Ẓ" U1E92 # LATIN CAPITAL LETTER Z WITH DOT BELOW
+<dead_belowdot> <z> : "ẓ" U1E93 # LATIN SMALL LETTER Z WITH DOT BELOW
+<Multi_key> <exclam> <z> : "ẓ" U1E93 # LATIN SMALL LETTER Z WITH DOT BELOW
+<combining_belowdot> <z> : "ẓ" U1E93 # LATIN SMALL LETTER Z WITH DOT BELOW
+<U0331> <Z> : "Ẕ" U1E94 # LATIN CAPITAL LETTER Z WITH LINE BELOW
+<U0331> <z> : "ẕ" U1E95 # LATIN SMALL LETTER Z WITH LINE BELOW
+<U0331> <h> : "ẖ" U1E96 # LATIN SMALL LETTER H WITH LINE BELOW
+<dead_diaeresis> <t> : "ẗ" U1E97 # LATIN SMALL LETTER T WITH DIAERESIS
+<Multi_key> <quotedbl> <t> : "ẗ" U1E97 # LATIN SMALL LETTER T WITH DIAERESIS
+<dead_abovering> <w> : "ẘ" U1E98 # LATIN SMALL LETTER W WITH RING ABOVE
+<Multi_key> <o> <w> : "ẘ" U1E98 # LATIN SMALL LETTER W WITH RING ABOVE
+<dead_abovering> <y> : "ẙ" U1E99 # LATIN SMALL LETTER Y WITH RING ABOVE
+<Multi_key> <o> <y> : "ẙ" U1E99 # LATIN SMALL LETTER Y WITH RING ABOVE
+<dead_abovedot> <U017f> : "ẛ" U1E9B # LATIN SMALL LETTER LONG S WITH DOT ABOVE
+<Multi_key> <period> <U017f> : "ẛ" U1E9B # LATIN SMALL LETTER LONG S WITH DOT ABOVE
+<dead_belowdot> <A> : "Ạ" U1EA0 # LATIN CAPITAL LETTER A WITH DOT BELOW
+<Multi_key> <exclam> <A> : "Ạ" U1EA0 # LATIN CAPITAL LETTER A WITH DOT BELOW
+<combining_belowdot> <A> : "Ạ" U1EA0 # LATIN CAPITAL LETTER A WITH DOT BELOW
+<dead_belowdot> <a> : "ạ" U1EA1 # LATIN SMALL LETTER A WITH DOT BELOW
+<Multi_key> <exclam> <a> : "ạ" U1EA1 # LATIN SMALL LETTER A WITH DOT BELOW
+<combining_belowdot> <a> : "ạ" U1EA1 # LATIN SMALL LETTER A WITH DOT BELOW
+<dead_hook> <A> : "Ả" U1EA2 # LATIN CAPITAL LETTER A WITH HOOK ABOVE
+<Multi_key> <question> <A> : "Ả" U1EA2 # LATIN CAPITAL LETTER A WITH HOOK ABOVE
+<combining_hook> <A> : "Ả" U1EA2 # LATIN CAPITAL LETTER A WITH HOOK ABOVE
+<dead_hook> <a> : "ả" U1EA3 # LATIN SMALL LETTER A WITH HOOK ABOVE
+<Multi_key> <question> <a> : "ả" U1EA3 # LATIN SMALL LETTER A WITH HOOK ABOVE
+<combining_hook> <a> : "ả" U1EA3 # LATIN SMALL LETTER A WITH HOOK ABOVE
+<dead_acute> <Acircumflex> : "Ấ" U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <Acircumflex> : "Ấ" U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <Acircumflex> : "Ấ" U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+<dead_acute> <dead_circumflex> <A> : "Ấ" U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+<dead_acute> <Multi_key> <asciicircum> <A> : "Ấ" U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <dead_circumflex> <A> : "Ấ" U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <asciicircum> <A> : "Ấ" U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <dead_circumflex> <A> : "Ấ" U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <asciicircum> <A> : "Ấ" U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+<combining_acute> <Acircumflex> : "Ấ" U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+<combining_acute> <dead_circumflex> <A> : "Ấ" U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+<combining_acute> <Multi_key> <asciicircum> <A> : "Ấ" U1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+<dead_acute> <acircumflex> : "ấ" U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <acircumflex> : "ấ" U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <acircumflex> : "ấ" U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+<dead_acute> <dead_circumflex> <a> : "ấ" U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+<dead_acute> <Multi_key> <asciicircum> <a> : "ấ" U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <dead_circumflex> <a> : "ấ" U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <asciicircum> <a> : "ấ" U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <dead_circumflex> <a> : "ấ" U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <asciicircum> <a> : "ấ" U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+<combining_acute> <acircumflex> : "ấ" U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+<combining_acute> <dead_circumflex> <a> : "ấ" U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+<combining_acute> <Multi_key> <asciicircum> <a> : "ấ" U1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+<dead_grave> <Acircumflex> : "Ầ" U1EA6 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <Acircumflex> : "Ầ" U1EA6 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+<dead_grave> <dead_circumflex> <A> : "Ầ" U1EA6 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+<dead_grave> <Multi_key> <asciicircum> <A> : "Ầ" U1EA6 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <dead_circumflex> <A> : "Ầ" U1EA6 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <asciicircum> <A> : "Ầ" U1EA6 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+<combining_grave> <Acircumflex> : "Ầ" U1EA6 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+<combining_grave> <dead_circumflex> <A> : "Ầ" U1EA6 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+<combining_grave> <Multi_key> <asciicircum> <A> : "Ầ" U1EA6 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+<dead_grave> <acircumflex> : "ầ" U1EA7 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <acircumflex> : "ầ" U1EA7 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+<dead_grave> <dead_circumflex> <a> : "ầ" U1EA7 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+<dead_grave> <Multi_key> <asciicircum> <a> : "ầ" U1EA7 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <dead_circumflex> <a> : "ầ" U1EA7 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <asciicircum> <a> : "ầ" U1EA7 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+<combining_grave> <acircumflex> : "ầ" U1EA7 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+<combining_grave> <dead_circumflex> <a> : "ầ" U1EA7 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+<combining_grave> <Multi_key> <asciicircum> <a> : "ầ" U1EA7 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+<dead_hook> <Acircumflex> : "Ẩ" U1EA8 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <Acircumflex> : "Ẩ" U1EA8 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_hook> <dead_circumflex> <A> : "Ẩ" U1EA8 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_hook> <Multi_key> <asciicircum> <A> : "Ẩ" U1EA8 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <dead_circumflex> <A> : "Ẩ" U1EA8 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <asciicircum> <A> : "Ẩ" U1EA8 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<combining_hook> <Acircumflex> : "Ẩ" U1EA8 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<combining_hook> <dead_circumflex> <A> : "Ẩ" U1EA8 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<combining_hook> <Multi_key> <asciicircum> <A> : "Ẩ" U1EA8 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_hook> <acircumflex> : "ẩ" U1EA9 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <acircumflex> : "ẩ" U1EA9 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_hook> <dead_circumflex> <a> : "ẩ" U1EA9 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_hook> <Multi_key> <asciicircum> <a> : "ẩ" U1EA9 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <dead_circumflex> <a> : "ẩ" U1EA9 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <asciicircum> <a> : "ẩ" U1EA9 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<combining_hook> <acircumflex> : "ẩ" U1EA9 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<combining_hook> <dead_circumflex> <a> : "ẩ" U1EA9 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<combining_hook> <Multi_key> <asciicircum> <a> : "ẩ" U1EA9 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_tilde> <Acircumflex> : "Ẫ" U1EAA # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <Acircumflex> : "Ẫ" U1EAA # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+<dead_tilde> <dead_circumflex> <A> : "Ẫ" U1EAA # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+<dead_tilde> <Multi_key> <asciicircum> <A> : "Ẫ" U1EAA # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <dead_circumflex> <A> : "Ẫ" U1EAA # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <asciicircum> <A> : "Ẫ" U1EAA # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+<combining_tilde> <Acircumflex> : "Ẫ" U1EAA # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+<combining_tilde> <dead_circumflex> <A> : "Ẫ" U1EAA # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+<combining_tilde> <Multi_key> <asciicircum> <A> : "Ẫ" U1EAA # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+<dead_tilde> <acircumflex> : "ẫ" U1EAB # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <acircumflex> : "ẫ" U1EAB # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+<dead_tilde> <dead_circumflex> <a> : "ẫ" U1EAB # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+<dead_tilde> <Multi_key> <asciicircum> <a> : "ẫ" U1EAB # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <dead_circumflex> <a> : "ẫ" U1EAB # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <asciicircum> <a> : "ẫ" U1EAB # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+<combining_tilde> <acircumflex> : "ẫ" U1EAB # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+<combining_tilde> <dead_circumflex> <a> : "ẫ" U1EAB # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+<combining_tilde> <Multi_key> <asciicircum> <a> : "ẫ" U1EAB # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+<dead_circumflex> <U1ea0> : "Ậ" U1EAC # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <U1ea0> : "Ậ" U1EAC # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <dead_belowdot> <A> : "Ậ" U1EAC # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <Multi_key> <exclam> <A> : "Ậ" U1EAC # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <dead_belowdot> <A> : "Ậ" U1EAC # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <exclam> <A> : "Ậ" U1EAC # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <combining_belowdot> <A> : "Ậ" U1EAC # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <combining_belowdot> <A> : "Ậ" U1EAC # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<dead_belowdot> <Acircumflex> : "Ậ" U1EAC # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <U1ea1> : "ậ" U1EAD # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <U1ea1> : "ậ" U1EAD # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <dead_belowdot> <a> : "ậ" U1EAD # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <Multi_key> <exclam> <a> : "ậ" U1EAD # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <dead_belowdot> <a> : "ậ" U1EAD # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <exclam> <a> : "ậ" U1EAD # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <combining_belowdot> <a> : "ậ" U1EAD # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <combining_belowdot> <a> : "ậ" U1EAD # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<dead_belowdot> <acircumflex> : "ậ" U1EAD # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+<dead_acute> <Abreve> : "Ắ" U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+<Multi_key> <acute> <Abreve> : "Ắ" U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+<Multi_key> <apostrophe> <Abreve> : "Ắ" U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+<dead_acute> <dead_breve> <A> : "Ắ" U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+<dead_acute> <Multi_key> <U> <A> : "Ắ" U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+<dead_acute> <Multi_key> <b> <A> : "Ắ" U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+<Multi_key> <acute> <dead_breve> <A> : "Ắ" U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+<Multi_key> <acute> <U> <A> : "Ắ" U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+<Multi_key> <acute> <b> <A> : "Ắ" U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+<Multi_key> <apostrophe> <dead_breve> <A> : "Ắ" U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+<Multi_key> <apostrophe> <U> <A> : "Ắ" U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+<Multi_key> <apostrophe> <b> <A> : "Ắ" U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+<combining_acute> <Abreve> : "Ắ" U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+<combining_acute> <dead_breve> <A> : "Ắ" U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+<combining_acute> <Multi_key> <U> <A> : "Ắ" U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+<combining_acute> <Multi_key> <b> <A> : "Ắ" U1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+<dead_acute> <abreve> : "ắ" U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+<Multi_key> <acute> <abreve> : "ắ" U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+<Multi_key> <apostrophe> <abreve> : "ắ" U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+<dead_acute> <dead_breve> <a> : "ắ" U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+<dead_acute> <Multi_key> <U> <a> : "ắ" U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+<dead_acute> <Multi_key> <b> <a> : "ắ" U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+<Multi_key> <acute> <dead_breve> <a> : "ắ" U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+<Multi_key> <acute> <U> <a> : "ắ" U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+<Multi_key> <acute> <b> <a> : "ắ" U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+<Multi_key> <apostrophe> <dead_breve> <a> : "ắ" U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+<Multi_key> <apostrophe> <U> <a> : "ắ" U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+<Multi_key> <apostrophe> <b> <a> : "ắ" U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+<combining_acute> <abreve> : "ắ" U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+<combining_acute> <dead_breve> <a> : "ắ" U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+<combining_acute> <Multi_key> <U> <a> : "ắ" U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+<combining_acute> <Multi_key> <b> <a> : "ắ" U1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
+<dead_grave> <Abreve> : "Ằ" U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+<Multi_key> <grave> <Abreve> : "Ằ" U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+<dead_grave> <dead_breve> <A> : "Ằ" U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+<dead_grave> <Multi_key> <U> <A> : "Ằ" U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+<dead_grave> <Multi_key> <b> <A> : "Ằ" U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+<Multi_key> <grave> <dead_breve> <A> : "Ằ" U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+<Multi_key> <grave> <U> <A> : "Ằ" U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+<Multi_key> <grave> <b> <A> : "Ằ" U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+<combining_grave> <Abreve> : "Ằ" U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+<combining_grave> <dead_breve> <A> : "Ằ" U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+<combining_grave> <Multi_key> <U> <A> : "Ằ" U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+<combining_grave> <Multi_key> <b> <A> : "Ằ" U1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+<dead_grave> <abreve> : "ằ" U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
+<Multi_key> <grave> <abreve> : "ằ" U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
+<dead_grave> <dead_breve> <a> : "ằ" U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
+<dead_grave> <Multi_key> <U> <a> : "ằ" U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
+<dead_grave> <Multi_key> <b> <a> : "ằ" U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
+<Multi_key> <grave> <dead_breve> <a> : "ằ" U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
+<Multi_key> <grave> <U> <a> : "ằ" U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
+<Multi_key> <grave> <b> <a> : "ằ" U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
+<combining_grave> <abreve> : "ằ" U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
+<combining_grave> <dead_breve> <a> : "ằ" U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
+<combining_grave> <Multi_key> <U> <a> : "ằ" U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
+<combining_grave> <Multi_key> <b> <a> : "ằ" U1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
+<dead_hook> <Abreve> : "Ẳ" U1EB2 # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+<Multi_key> <question> <Abreve> : "Ẳ" U1EB2 # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+<dead_hook> <dead_breve> <A> : "Ẳ" U1EB2 # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+<dead_hook> <Multi_key> <U> <A> : "Ẳ" U1EB2 # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+<dead_hook> <Multi_key> <b> <A> : "Ẳ" U1EB2 # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+<Multi_key> <question> <dead_breve> <A> : "Ẳ" U1EB2 # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+<Multi_key> <question> <U> <A> : "Ẳ" U1EB2 # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+<Multi_key> <question> <b> <A> : "Ẳ" U1EB2 # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+<combining_hook> <Abreve> : "Ẳ" U1EB2 # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+<combining_hook> <dead_breve> <A> : "Ẳ" U1EB2 # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+<combining_hook> <Multi_key> <U> <A> : "Ẳ" U1EB2 # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+<combining_hook> <Multi_key> <b> <A> : "Ẳ" U1EB2 # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+<dead_hook> <abreve> : "ẳ" U1EB3 # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+<Multi_key> <question> <abreve> : "ẳ" U1EB3 # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+<dead_hook> <dead_breve> <a> : "ẳ" U1EB3 # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+<dead_hook> <Multi_key> <U> <a> : "ẳ" U1EB3 # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+<dead_hook> <Multi_key> <b> <a> : "ẳ" U1EB3 # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+<Multi_key> <question> <dead_breve> <a> : "ẳ" U1EB3 # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+<Multi_key> <question> <U> <a> : "ẳ" U1EB3 # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+<Multi_key> <question> <b> <a> : "ẳ" U1EB3 # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+<combining_hook> <abreve> : "ẳ" U1EB3 # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+<combining_hook> <dead_breve> <a> : "ẳ" U1EB3 # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+<combining_hook> <Multi_key> <U> <a> : "ẳ" U1EB3 # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+<combining_hook> <Multi_key> <b> <a> : "ẳ" U1EB3 # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+<dead_tilde> <Abreve> : "Ẵ" U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+<Multi_key> <asciitilde> <Abreve> : "Ẵ" U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+<dead_tilde> <dead_breve> <A> : "Ẵ" U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+<dead_tilde> <Multi_key> <U> <A> : "Ẵ" U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+<dead_tilde> <Multi_key> <b> <A> : "Ẵ" U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+<Multi_key> <asciitilde> <dead_breve> <A> : "Ẵ" U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+<Multi_key> <asciitilde> <U> <A> : "Ẵ" U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+<Multi_key> <asciitilde> <b> <A> : "Ẵ" U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+<combining_tilde> <Abreve> : "Ẵ" U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+<combining_tilde> <dead_breve> <A> : "Ẵ" U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+<combining_tilde> <Multi_key> <U> <A> : "Ẵ" U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+<combining_tilde> <Multi_key> <b> <A> : "Ẵ" U1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+<dead_tilde> <abreve> : "ẵ" U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
+<Multi_key> <asciitilde> <abreve> : "ẵ" U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
+<dead_tilde> <dead_breve> <a> : "ẵ" U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
+<dead_tilde> <Multi_key> <U> <a> : "ẵ" U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
+<dead_tilde> <Multi_key> <b> <a> : "ẵ" U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
+<Multi_key> <asciitilde> <dead_breve> <a> : "ẵ" U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
+<Multi_key> <asciitilde> <U> <a> : "ẵ" U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
+<Multi_key> <asciitilde> <b> <a> : "ẵ" U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
+<combining_tilde> <abreve> : "ẵ" U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
+<combining_tilde> <dead_breve> <a> : "ẵ" U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
+<combining_tilde> <Multi_key> <U> <a> : "ẵ" U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
+<combining_tilde> <Multi_key> <b> <a> : "ẵ" U1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
+<dead_breve> <U1ea0> : "Ặ" U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+<Multi_key> <U> <U1ea0> : "Ặ" U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+<Multi_key> <b> <U1ea0> : "Ặ" U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+<dead_breve> <dead_belowdot> <A> : "Ặ" U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+<dead_breve> <Multi_key> <exclam> <A> : "Ặ" U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+<Multi_key> <U> <dead_belowdot> <A> : "Ặ" U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+<Multi_key> <U> <exclam> <A> : "Ặ" U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+<Multi_key> <b> <dead_belowdot> <A> : "Ặ" U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+<Multi_key> <b> <exclam> <A> : "Ặ" U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+<dead_breve> <combining_belowdot> <A> : "Ặ" U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+<Multi_key> <U> <combining_belowdot> <A> : "Ặ" U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+<Multi_key> <b> <combining_belowdot> <A> : "Ặ" U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+<dead_belowdot> <Abreve> : "Ặ" U1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+<dead_breve> <U1ea1> : "ặ" U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+<Multi_key> <U> <U1ea1> : "ặ" U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+<Multi_key> <b> <U1ea1> : "ặ" U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+<dead_breve> <dead_belowdot> <a> : "ặ" U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+<dead_breve> <Multi_key> <exclam> <a> : "ặ" U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+<Multi_key> <U> <dead_belowdot> <a> : "ặ" U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+<Multi_key> <U> <exclam> <a> : "ặ" U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+<Multi_key> <b> <dead_belowdot> <a> : "ặ" U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+<Multi_key> <b> <exclam> <a> : "ặ" U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+<dead_breve> <combining_belowdot> <a> : "ặ" U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+<Multi_key> <U> <combining_belowdot> <a> : "ặ" U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+<Multi_key> <b> <combining_belowdot> <a> : "ặ" U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+<dead_belowdot> <abreve> : "ặ" U1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+<dead_belowdot> <E> : "Ẹ" U1EB8 # LATIN CAPITAL LETTER E WITH DOT BELOW
+<Multi_key> <exclam> <E> : "Ẹ" U1EB8 # LATIN CAPITAL LETTER E WITH DOT BELOW
+<combining_belowdot> <E> : "Ẹ" U1EB8 # LATIN CAPITAL LETTER E WITH DOT BELOW
+<dead_belowdot> <e> : "ẹ" U1EB9 # LATIN SMALL LETTER E WITH DOT BELOW
+<Multi_key> <exclam> <e> : "ẹ" U1EB9 # LATIN SMALL LETTER E WITH DOT BELOW
+<combining_belowdot> <e> : "ẹ" U1EB9 # LATIN SMALL LETTER E WITH DOT BELOW
+<dead_hook> <E> : "Ẻ" U1EBA # LATIN CAPITAL LETTER E WITH HOOK ABOVE
+<Multi_key> <question> <E> : "Ẻ" U1EBA # LATIN CAPITAL LETTER E WITH HOOK ABOVE
+<combining_hook> <E> : "Ẻ" U1EBA # LATIN CAPITAL LETTER E WITH HOOK ABOVE
+<dead_hook> <e> : "ẻ" U1EBB # LATIN SMALL LETTER E WITH HOOK ABOVE
+<Multi_key> <question> <e> : "ẻ" U1EBB # LATIN SMALL LETTER E WITH HOOK ABOVE
+<combining_hook> <e> : "ẻ" U1EBB # LATIN SMALL LETTER E WITH HOOK ABOVE
+<dead_tilde> <E> : "Ẽ" U1EBC # LATIN CAPITAL LETTER E WITH TILDE
+<Multi_key> <asciitilde> <E> : "Ẽ" U1EBC # LATIN CAPITAL LETTER E WITH TILDE
+<combining_tilde> <E> : "Ẽ" U1EBC # LATIN CAPITAL LETTER E WITH TILDE
+<dead_tilde> <e> : "ẽ" U1EBD # LATIN SMALL LETTER E WITH TILDE
+<Multi_key> <asciitilde> <e> : "ẽ" U1EBD # LATIN SMALL LETTER E WITH TILDE
+<combining_tilde> <e> : "ẽ" U1EBD # LATIN SMALL LETTER E WITH TILDE
+<dead_acute> <Ecircumflex> : "Ế" U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <Ecircumflex> : "Ế" U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <Ecircumflex> : "Ế" U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+<dead_acute> <dead_circumflex> <E> : "Ế" U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+<dead_acute> <Multi_key> <asciicircum> <E> : "Ế" U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <dead_circumflex> <E> : "Ế" U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <asciicircum> <E> : "Ế" U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <dead_circumflex> <E> : "Ế" U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <asciicircum> <E> : "Ế" U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+<combining_acute> <Ecircumflex> : "Ế" U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+<combining_acute> <dead_circumflex> <E> : "Ế" U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+<combining_acute> <Multi_key> <asciicircum> <E> : "Ế" U1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+<dead_acute> <ecircumflex> : "ế" U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <ecircumflex> : "ế" U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <ecircumflex> : "ế" U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+<dead_acute> <dead_circumflex> <e> : "ế" U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+<dead_acute> <Multi_key> <asciicircum> <e> : "ế" U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <dead_circumflex> <e> : "ế" U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <asciicircum> <e> : "ế" U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <dead_circumflex> <e> : "ế" U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <asciicircum> <e> : "ế" U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+<combining_acute> <ecircumflex> : "ế" U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+<combining_acute> <dead_circumflex> <e> : "ế" U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+<combining_acute> <Multi_key> <asciicircum> <e> : "ế" U1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+<dead_grave> <Ecircumflex> : "Ề" U1EC0 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <Ecircumflex> : "Ề" U1EC0 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+<dead_grave> <dead_circumflex> <E> : "Ề" U1EC0 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+<dead_grave> <Multi_key> <asciicircum> <E> : "Ề" U1EC0 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <dead_circumflex> <E> : "Ề" U1EC0 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <asciicircum> <E> : "Ề" U1EC0 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+<combining_grave> <Ecircumflex> : "Ề" U1EC0 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+<combining_grave> <dead_circumflex> <E> : "Ề" U1EC0 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+<combining_grave> <Multi_key> <asciicircum> <E> : "Ề" U1EC0 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+<dead_grave> <ecircumflex> : "á»" U1EC1 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <ecircumflex> : "á»" U1EC1 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+<dead_grave> <dead_circumflex> <e> : "á»" U1EC1 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+<dead_grave> <Multi_key> <asciicircum> <e> : "á»" U1EC1 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <dead_circumflex> <e> : "á»" U1EC1 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <asciicircum> <e> : "á»" U1EC1 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+<combining_grave> <ecircumflex> : "á»" U1EC1 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+<combining_grave> <dead_circumflex> <e> : "á»" U1EC1 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+<combining_grave> <Multi_key> <asciicircum> <e> : "á»" U1EC1 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+<dead_hook> <Ecircumflex> : "Ể" U1EC2 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <Ecircumflex> : "Ể" U1EC2 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_hook> <dead_circumflex> <E> : "Ể" U1EC2 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_hook> <Multi_key> <asciicircum> <E> : "Ể" U1EC2 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <dead_circumflex> <E> : "Ể" U1EC2 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <asciicircum> <E> : "Ể" U1EC2 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<combining_hook> <Ecircumflex> : "Ể" U1EC2 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<combining_hook> <dead_circumflex> <E> : "Ể" U1EC2 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<combining_hook> <Multi_key> <asciicircum> <E> : "Ể" U1EC2 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_hook> <ecircumflex> : "ể" U1EC3 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <ecircumflex> : "ể" U1EC3 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_hook> <dead_circumflex> <e> : "ể" U1EC3 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_hook> <Multi_key> <asciicircum> <e> : "ể" U1EC3 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <dead_circumflex> <e> : "ể" U1EC3 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <asciicircum> <e> : "ể" U1EC3 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<combining_hook> <ecircumflex> : "ể" U1EC3 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<combining_hook> <dead_circumflex> <e> : "ể" U1EC3 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<combining_hook> <Multi_key> <asciicircum> <e> : "ể" U1EC3 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_tilde> <Ecircumflex> : "Ễ" U1EC4 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <Ecircumflex> : "Ễ" U1EC4 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+<dead_tilde> <dead_circumflex> <E> : "Ễ" U1EC4 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+<dead_tilde> <Multi_key> <asciicircum> <E> : "Ễ" U1EC4 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <dead_circumflex> <E> : "Ễ" U1EC4 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <asciicircum> <E> : "Ễ" U1EC4 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+<combining_tilde> <Ecircumflex> : "Ễ" U1EC4 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+<combining_tilde> <dead_circumflex> <E> : "Ễ" U1EC4 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+<combining_tilde> <Multi_key> <asciicircum> <E> : "Ễ" U1EC4 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+<dead_tilde> <ecircumflex> : "á»…" U1EC5 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <ecircumflex> : "á»…" U1EC5 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+<dead_tilde> <dead_circumflex> <e> : "á»…" U1EC5 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+<dead_tilde> <Multi_key> <asciicircum> <e> : "á»…" U1EC5 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <dead_circumflex> <e> : "á»…" U1EC5 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <asciicircum> <e> : "á»…" U1EC5 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+<combining_tilde> <ecircumflex> : "á»…" U1EC5 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+<combining_tilde> <dead_circumflex> <e> : "á»…" U1EC5 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+<combining_tilde> <Multi_key> <asciicircum> <e> : "á»…" U1EC5 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+<dead_circumflex> <U1eb8> : "Ệ" U1EC6 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <U1eb8> : "Ệ" U1EC6 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <dead_belowdot> <E> : "Ệ" U1EC6 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <Multi_key> <exclam> <E> : "Ệ" U1EC6 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <dead_belowdot> <E> : "Ệ" U1EC6 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <exclam> <E> : "Ệ" U1EC6 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <combining_belowdot> <E> : "Ệ" U1EC6 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <combining_belowdot> <E> : "Ệ" U1EC6 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<dead_belowdot> <Ecircumflex> : "Ệ" U1EC6 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <U1eb9> : "ệ" U1EC7 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <U1eb9> : "ệ" U1EC7 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <dead_belowdot> <e> : "ệ" U1EC7 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <Multi_key> <exclam> <e> : "ệ" U1EC7 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <dead_belowdot> <e> : "ệ" U1EC7 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <exclam> <e> : "ệ" U1EC7 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <combining_belowdot> <e> : "ệ" U1EC7 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <combining_belowdot> <e> : "ệ" U1EC7 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<dead_belowdot> <ecircumflex> : "ệ" U1EC7 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+<dead_hook> <I> : "Ỉ" U1EC8 # LATIN CAPITAL LETTER I WITH HOOK ABOVE
+<Multi_key> <question> <I> : "Ỉ" U1EC8 # LATIN CAPITAL LETTER I WITH HOOK ABOVE
+<combining_hook> <I> : "Ỉ" U1EC8 # LATIN CAPITAL LETTER I WITH HOOK ABOVE
+<dead_hook> <i> : "ỉ" U1EC9 # LATIN SMALL LETTER I WITH HOOK ABOVE
+<Multi_key> <question> <i> : "ỉ" U1EC9 # LATIN SMALL LETTER I WITH HOOK ABOVE
+<combining_hook> <i> : "ỉ" U1EC9 # LATIN SMALL LETTER I WITH HOOK ABOVE
+<dead_belowdot> <I> : "Ị" U1ECA # LATIN CAPITAL LETTER I WITH DOT BELOW
+<Multi_key> <exclam> <I> : "Ị" U1ECA # LATIN CAPITAL LETTER I WITH DOT BELOW
+<combining_belowdot> <I> : "Ị" U1ECA # LATIN CAPITAL LETTER I WITH DOT BELOW
+<dead_belowdot> <i> : "ị" U1ECB # LATIN SMALL LETTER I WITH DOT BELOW
+<Multi_key> <exclam> <i> : "ị" U1ECB # LATIN SMALL LETTER I WITH DOT BELOW
+<combining_belowdot> <i> : "ị" U1ECB # LATIN SMALL LETTER I WITH DOT BELOW
+<dead_belowdot> <O> : "Ọ" U1ECC # LATIN CAPITAL LETTER O WITH DOT BELOW
+<Multi_key> <exclam> <O> : "Ọ" U1ECC # LATIN CAPITAL LETTER O WITH DOT BELOW
+<combining_belowdot> <O> : "Ọ" U1ECC # LATIN CAPITAL LETTER O WITH DOT BELOW
+<dead_belowdot> <o> : "á»" U1ECD # LATIN SMALL LETTER O WITH DOT BELOW
+<Multi_key> <exclam> <o> : "á»" U1ECD # LATIN SMALL LETTER O WITH DOT BELOW
+<combining_belowdot> <o> : "á»" U1ECD # LATIN SMALL LETTER O WITH DOT BELOW
+<dead_hook> <O> : "Ỏ" U1ECE # LATIN CAPITAL LETTER O WITH HOOK ABOVE
+<Multi_key> <question> <O> : "Ỏ" U1ECE # LATIN CAPITAL LETTER O WITH HOOK ABOVE
+<combining_hook> <O> : "Ỏ" U1ECE # LATIN CAPITAL LETTER O WITH HOOK ABOVE
+<dead_hook> <o> : "á»" U1ECF # LATIN SMALL LETTER O WITH HOOK ABOVE
+<Multi_key> <question> <o> : "á»" U1ECF # LATIN SMALL LETTER O WITH HOOK ABOVE
+<combining_hook> <o> : "á»" U1ECF # LATIN SMALL LETTER O WITH HOOK ABOVE
+<dead_acute> <Ocircumflex> : "á»" U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <Ocircumflex> : "á»" U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <Ocircumflex> : "á»" U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+<dead_acute> <dead_circumflex> <O> : "á»" U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+<dead_acute> <Multi_key> <asciicircum> <O> : "á»" U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <dead_circumflex> <O> : "á»" U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <asciicircum> <O> : "á»" U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <dead_circumflex> <O> : "á»" U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <asciicircum> <O> : "á»" U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+<combining_acute> <Ocircumflex> : "á»" U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+<combining_acute> <dead_circumflex> <O> : "á»" U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+<combining_acute> <Multi_key> <asciicircum> <O> : "á»" U1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+<dead_acute> <ocircumflex> : "ố" U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <ocircumflex> : "ố" U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <ocircumflex> : "ố" U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+<dead_acute> <dead_circumflex> <o> : "ố" U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+<dead_acute> <Multi_key> <asciicircum> <o> : "ố" U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <dead_circumflex> <o> : "ố" U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <acute> <asciicircum> <o> : "ố" U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <dead_circumflex> <o> : "ố" U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+<Multi_key> <apostrophe> <asciicircum> <o> : "ố" U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+<combining_acute> <ocircumflex> : "ố" U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+<combining_acute> <dead_circumflex> <o> : "ố" U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+<combining_acute> <Multi_key> <asciicircum> <o> : "ố" U1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+<dead_grave> <Ocircumflex> : "á»’" U1ED2 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <Ocircumflex> : "á»’" U1ED2 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+<dead_grave> <dead_circumflex> <O> : "á»’" U1ED2 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+<dead_grave> <Multi_key> <asciicircum> <O> : "á»’" U1ED2 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <dead_circumflex> <O> : "á»’" U1ED2 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <asciicircum> <O> : "á»’" U1ED2 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+<combining_grave> <Ocircumflex> : "á»’" U1ED2 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+<combining_grave> <dead_circumflex> <O> : "á»’" U1ED2 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+<combining_grave> <Multi_key> <asciicircum> <O> : "á»’" U1ED2 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+<dead_grave> <ocircumflex> : "ồ" U1ED3 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <ocircumflex> : "ồ" U1ED3 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+<dead_grave> <dead_circumflex> <o> : "ồ" U1ED3 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+<dead_grave> <Multi_key> <asciicircum> <o> : "ồ" U1ED3 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <dead_circumflex> <o> : "ồ" U1ED3 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+<Multi_key> <grave> <asciicircum> <o> : "ồ" U1ED3 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+<combining_grave> <ocircumflex> : "ồ" U1ED3 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+<combining_grave> <dead_circumflex> <o> : "ồ" U1ED3 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+<combining_grave> <Multi_key> <asciicircum> <o> : "ồ" U1ED3 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+<dead_hook> <Ocircumflex> : "á»”" U1ED4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <Ocircumflex> : "á»”" U1ED4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_hook> <dead_circumflex> <O> : "á»”" U1ED4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_hook> <Multi_key> <asciicircum> <O> : "á»”" U1ED4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <dead_circumflex> <O> : "á»”" U1ED4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <asciicircum> <O> : "á»”" U1ED4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<combining_hook> <Ocircumflex> : "á»”" U1ED4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<combining_hook> <dead_circumflex> <O> : "á»”" U1ED4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<combining_hook> <Multi_key> <asciicircum> <O> : "á»”" U1ED4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_hook> <ocircumflex> : "ổ" U1ED5 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <ocircumflex> : "ổ" U1ED5 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_hook> <dead_circumflex> <o> : "ổ" U1ED5 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_hook> <Multi_key> <asciicircum> <o> : "ổ" U1ED5 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <dead_circumflex> <o> : "ổ" U1ED5 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<Multi_key> <question> <asciicircum> <o> : "ổ" U1ED5 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<combining_hook> <ocircumflex> : "ổ" U1ED5 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<combining_hook> <dead_circumflex> <o> : "ổ" U1ED5 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<combining_hook> <Multi_key> <asciicircum> <o> : "ổ" U1ED5 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+<dead_tilde> <Ocircumflex> : "á»–" U1ED6 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <Ocircumflex> : "á»–" U1ED6 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+<dead_tilde> <dead_circumflex> <O> : "á»–" U1ED6 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+<dead_tilde> <Multi_key> <asciicircum> <O> : "á»–" U1ED6 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <dead_circumflex> <O> : "á»–" U1ED6 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <asciicircum> <O> : "á»–" U1ED6 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+<combining_tilde> <Ocircumflex> : "á»–" U1ED6 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+<combining_tilde> <dead_circumflex> <O> : "á»–" U1ED6 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+<combining_tilde> <Multi_key> <asciicircum> <O> : "á»–" U1ED6 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+<dead_tilde> <ocircumflex> : "á»—" U1ED7 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <ocircumflex> : "á»—" U1ED7 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+<dead_tilde> <dead_circumflex> <o> : "á»—" U1ED7 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+<dead_tilde> <Multi_key> <asciicircum> <o> : "á»—" U1ED7 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <dead_circumflex> <o> : "á»—" U1ED7 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+<Multi_key> <asciitilde> <asciicircum> <o> : "á»—" U1ED7 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+<combining_tilde> <ocircumflex> : "á»—" U1ED7 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+<combining_tilde> <dead_circumflex> <o> : "á»—" U1ED7 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+<combining_tilde> <Multi_key> <asciicircum> <o> : "á»—" U1ED7 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+<dead_circumflex> <U1ecc> : "Ộ" U1ED8 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <U1ecc> : "Ộ" U1ED8 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <dead_belowdot> <O> : "Ộ" U1ED8 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <Multi_key> <exclam> <O> : "Ộ" U1ED8 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <dead_belowdot> <O> : "Ộ" U1ED8 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <exclam> <O> : "Ộ" U1ED8 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <combining_belowdot> <O> : "Ộ" U1ED8 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <combining_belowdot> <O> : "Ộ" U1ED8 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<dead_belowdot> <Ocircumflex> : "Ộ" U1ED8 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <U1ecd> : "á»™" U1ED9 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <U1ecd> : "á»™" U1ED9 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <dead_belowdot> <o> : "á»™" U1ED9 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <Multi_key> <exclam> <o> : "á»™" U1ED9 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <dead_belowdot> <o> : "á»™" U1ED9 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <exclam> <o> : "á»™" U1ED9 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<dead_circumflex> <combining_belowdot> <o> : "á»™" U1ED9 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<Multi_key> <asciicircum> <combining_belowdot> <o> : "á»™" U1ED9 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<dead_belowdot> <ocircumflex> : "á»™" U1ED9 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+<dead_acute> <Ohorn> : "Ớ" U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+<dead_acute> <U01A0> : "Ớ" U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+<Multi_key> <acute> <Ohorn> : "Ớ" U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+<Multi_key> <apostrophe> <Ohorn> : "Ớ" U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+<dead_acute> <dead_horn> <O> : "Ớ" U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+<dead_acute> <Multi_key> <plus> <O> : "Ớ" U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+<Multi_key> <acute> <dead_horn> <O> : "Ớ" U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+<Multi_key> <acute> <plus> <O> : "Ớ" U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+<Multi_key> <apostrophe> <dead_horn> <O> : "Ớ" U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+<Multi_key> <apostrophe> <plus> <O> : "Ớ" U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+<combining_acute> <Ohorn> : "Ớ" U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+<combining_acute> <dead_horn> <O> : "Ớ" U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+<combining_acute> <Multi_key> <plus> <O> : "Ớ" U1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+<dead_acute> <ohorn> : "á»›" U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
+<dead_acute> <U01A1> : "á»›" U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
+<Multi_key> <acute> <ohorn> : "á»›" U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
+<Multi_key> <apostrophe> <ohorn> : "á»›" U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
+<dead_acute> <dead_horn> <o> : "á»›" U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
+<dead_acute> <Multi_key> <plus> <o> : "á»›" U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
+<Multi_key> <acute> <dead_horn> <o> : "á»›" U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
+<Multi_key> <acute> <plus> <o> : "á»›" U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
+<Multi_key> <apostrophe> <dead_horn> <o> : "á»›" U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
+<Multi_key> <apostrophe> <plus> <o> : "á»›" U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
+<combining_acute> <ohorn> : "á»›" U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
+<combining_acute> <dead_horn> <o> : "á»›" U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
+<combining_acute> <Multi_key> <plus> <o> : "á»›" U1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
+<dead_grave> <Ohorn> : "Ờ" U1EDC # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+<dead_grave> <U01A0> : "Ờ" U1EDC # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+<Multi_key> <grave> <Ohorn> : "Ờ" U1EDC # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+<dead_grave> <dead_horn> <O> : "Ờ" U1EDC # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+<dead_grave> <Multi_key> <plus> <O> : "Ờ" U1EDC # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+<Multi_key> <grave> <dead_horn> <O> : "Ờ" U1EDC # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+<Multi_key> <grave> <plus> <O> : "Ờ" U1EDC # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+<combining_grave> <Ohorn> : "Ờ" U1EDC # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+<combining_grave> <dead_horn> <O> : "Ờ" U1EDC # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+<combining_grave> <Multi_key> <plus> <O> : "Ờ" U1EDC # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+<dead_grave> <ohorn> : "á»" U1EDD # LATIN SMALL LETTER O WITH HORN AND GRAVE
+<dead_grave> <U01A1> : "á»" U1EDD # LATIN SMALL LETTER O WITH HORN AND GRAVE
+<Multi_key> <grave> <ohorn> : "á»" U1EDD # LATIN SMALL LETTER O WITH HORN AND GRAVE
+<dead_grave> <dead_horn> <o> : "á»" U1EDD # LATIN SMALL LETTER O WITH HORN AND GRAVE
+<dead_grave> <Multi_key> <plus> <o> : "á»" U1EDD # LATIN SMALL LETTER O WITH HORN AND GRAVE
+<Multi_key> <grave> <dead_horn> <o> : "á»" U1EDD # LATIN SMALL LETTER O WITH HORN AND GRAVE
+<Multi_key> <grave> <plus> <o> : "á»" U1EDD # LATIN SMALL LETTER O WITH HORN AND GRAVE
+<combining_grave> <ohorn> : "á»" U1EDD # LATIN SMALL LETTER O WITH HORN AND GRAVE
+<combining_grave> <dead_horn> <o> : "á»" U1EDD # LATIN SMALL LETTER O WITH HORN AND GRAVE
+<combining_grave> <Multi_key> <plus> <o> : "á»" U1EDD # LATIN SMALL LETTER O WITH HORN AND GRAVE
+<dead_hook> <Ohorn> : "Ở" U1EDE # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+<dead_hook> <U01A0> : "Ở" U1EDE # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+<Multi_key> <question> <Ohorn> : "Ở" U1EDE # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+<dead_hook> <dead_horn> <O> : "Ở" U1EDE # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+<dead_hook> <Multi_key> <plus> <O> : "Ở" U1EDE # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+<Multi_key> <question> <dead_horn> <O> : "Ở" U1EDE # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+<Multi_key> <question> <plus> <O> : "Ở" U1EDE # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+<combining_hook> <Ohorn> : "Ở" U1EDE # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+<combining_hook> <dead_horn> <O> : "Ở" U1EDE # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+<combining_hook> <Multi_key> <plus> <O> : "Ở" U1EDE # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+<dead_hook> <ohorn> : "ở" U1EDF # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+<dead_hook> <U01A1> : "ở" U1EDF # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+<Multi_key> <question> <ohorn> : "ở" U1EDF # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+<dead_hook> <dead_horn> <o> : "ở" U1EDF # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+<dead_hook> <Multi_key> <plus> <o> : "ở" U1EDF # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+<Multi_key> <question> <dead_horn> <o> : "ở" U1EDF # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+<Multi_key> <question> <plus> <o> : "ở" U1EDF # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+<combining_hook> <ohorn> : "ở" U1EDF # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+<combining_hook> <dead_horn> <o> : "ở" U1EDF # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+<combining_hook> <Multi_key> <plus> <o> : "ở" U1EDF # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+<dead_tilde> <Ohorn> : "á» " U1EE0 # LATIN CAPITAL LETTER O WITH HORN AND TILDE
+<dead_tilde> <U01A0> : "á» " U1EE0 # LATIN CAPITAL LETTER O WITH HORN AND TILDE
+<Multi_key> <asciitilde> <Ohorn> : "á» " U1EE0 # LATIN CAPITAL LETTER O WITH HORN AND TILDE
+<dead_tilde> <dead_horn> <O> : "á» " U1EE0 # LATIN CAPITAL LETTER O WITH HORN AND TILDE
+<dead_tilde> <Multi_key> <plus> <O> : "á» " U1EE0 # LATIN CAPITAL LETTER O WITH HORN AND TILDE
+<Multi_key> <asciitilde> <dead_horn> <O> : "á» " U1EE0 # LATIN CAPITAL LETTER O WITH HORN AND TILDE
+<Multi_key> <asciitilde> <plus> <O> : "á» " U1EE0 # LATIN CAPITAL LETTER O WITH HORN AND TILDE
+<combining_tilde> <Ohorn> : "á» " U1EE0 # LATIN CAPITAL LETTER O WITH HORN AND TILDE
+<combining_tilde> <dead_horn> <O> : "á» " U1EE0 # LATIN CAPITAL LETTER O WITH HORN AND TILDE
+<combining_tilde> <Multi_key> <plus> <O> : "á» " U1EE0 # LATIN CAPITAL LETTER O WITH HORN AND TILDE
+<dead_tilde> <ohorn> : "ỡ" U1EE1 # LATIN SMALL LETTER O WITH HORN AND TILDE
+<dead_tilde> <U01A1> : "ỡ" U1EE1 # LATIN SMALL LETTER O WITH HORN AND TILDE
+<Multi_key> <asciitilde> <ohorn> : "ỡ" U1EE1 # LATIN SMALL LETTER O WITH HORN AND TILDE
+<dead_tilde> <dead_horn> <o> : "ỡ" U1EE1 # LATIN SMALL LETTER O WITH HORN AND TILDE
+<dead_tilde> <Multi_key> <plus> <o> : "ỡ" U1EE1 # LATIN SMALL LETTER O WITH HORN AND TILDE
+<Multi_key> <asciitilde> <dead_horn> <o> : "ỡ" U1EE1 # LATIN SMALL LETTER O WITH HORN AND TILDE
+<Multi_key> <asciitilde> <plus> <o> : "ỡ" U1EE1 # LATIN SMALL LETTER O WITH HORN AND TILDE
+<combining_tilde> <ohorn> : "ỡ" U1EE1 # LATIN SMALL LETTER O WITH HORN AND TILDE
+<combining_tilde> <dead_horn> <o> : "ỡ" U1EE1 # LATIN SMALL LETTER O WITH HORN AND TILDE
+<combining_tilde> <Multi_key> <plus> <o> : "ỡ" U1EE1 # LATIN SMALL LETTER O WITH HORN AND TILDE
+<dead_belowdot> <Ohorn> : "Ợ" U1EE2 # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+<dead_belowdot> <U01A0> : "Ợ" U1EE2 # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+<Multi_key> <exclam> <Ohorn> : "Ợ" U1EE2 # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+<dead_belowdot> <dead_horn> <O> : "Ợ" U1EE2 # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+<dead_belowdot> <Multi_key> <plus> <O> : "Ợ" U1EE2 # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+<Multi_key> <exclam> <dead_horn> <O> : "Ợ" U1EE2 # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+<Multi_key> <exclam> <plus> <O> : "Ợ" U1EE2 # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+<combining_belowdot> <Ohorn> : "Ợ" U1EE2 # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+<combining_belowdot> <dead_horn> <O> : "Ợ" U1EE2 # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+<combining_belowdot> <Multi_key> <plus> <O> : "Ợ" U1EE2 # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+<dead_belowdot> <ohorn> : "ợ" U1EE3 # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+<dead_belowdot> <U01A1> : "ợ" U1EE3 # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+<Multi_key> <exclam> <ohorn> : "ợ" U1EE3 # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+<dead_belowdot> <dead_horn> <o> : "ợ" U1EE3 # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+<dead_belowdot> <Multi_key> <plus> <o> : "ợ" U1EE3 # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+<Multi_key> <exclam> <dead_horn> <o> : "ợ" U1EE3 # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+<Multi_key> <exclam> <plus> <o> : "ợ" U1EE3 # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+<combining_belowdot> <ohorn> : "ợ" U1EE3 # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+<combining_belowdot> <dead_horn> <o> : "ợ" U1EE3 # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+<combining_belowdot> <Multi_key> <plus> <o> : "ợ" U1EE3 # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+<dead_belowdot> <U> : "Ụ" U1EE4 # LATIN CAPITAL LETTER U WITH DOT BELOW
+<Multi_key> <exclam> <U> : "Ụ" U1EE4 # LATIN CAPITAL LETTER U WITH DOT BELOW
+<combining_belowdot> <U> : "Ụ" U1EE4 # LATIN CAPITAL LETTER U WITH DOT BELOW
+<dead_belowdot> <u> : "ụ" U1EE5 # LATIN SMALL LETTER U WITH DOT BELOW
+<Multi_key> <exclam> <u> : "ụ" U1EE5 # LATIN SMALL LETTER U WITH DOT BELOW
+<combining_belowdot> <u> : "ụ" U1EE5 # LATIN SMALL LETTER U WITH DOT BELOW
+<dead_hook> <U> : "Ủ" U1EE6 # LATIN CAPITAL LETTER U WITH HOOK ABOVE
+<Multi_key> <question> <U> : "Ủ" U1EE6 # LATIN CAPITAL LETTER U WITH HOOK ABOVE
+<combining_hook> <U> : "Ủ" U1EE6 # LATIN CAPITAL LETTER U WITH HOOK ABOVE
+<dead_hook> <u> : "ủ" U1EE7 # LATIN SMALL LETTER U WITH HOOK ABOVE
+<Multi_key> <question> <u> : "ủ" U1EE7 # LATIN SMALL LETTER U WITH HOOK ABOVE
+<combining_hook> <u> : "ủ" U1EE7 # LATIN SMALL LETTER U WITH HOOK ABOVE
+<dead_acute> <Uhorn> : "Ứ" U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+<dead_acute> <U01AF> : "Ứ" U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+<Multi_key> <acute> <Uhorn> : "Ứ" U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+<Multi_key> <apostrophe> <Uhorn> : "Ứ" U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+<dead_acute> <dead_horn> <U> : "Ứ" U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+<dead_acute> <Multi_key> <plus> <U> : "Ứ" U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+<Multi_key> <acute> <dead_horn> <U> : "Ứ" U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+<Multi_key> <acute> <plus> <U> : "Ứ" U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+<Multi_key> <apostrophe> <dead_horn> <U> : "Ứ" U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+<Multi_key> <apostrophe> <plus> <U> : "Ứ" U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+<combining_acute> <Uhorn> : "Ứ" U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+<combining_acute> <dead_horn> <U> : "Ứ" U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+<combining_acute> <Multi_key> <plus> <U> : "Ứ" U1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+<dead_acute> <uhorn> : "ứ" U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
+<dead_acute> <U01B0> : "ứ" U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
+<Multi_key> <acute> <uhorn> : "ứ" U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
+<Multi_key> <apostrophe> <uhorn> : "ứ" U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
+<dead_acute> <dead_horn> <u> : "ứ" U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
+<dead_acute> <Multi_key> <plus> <u> : "ứ" U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
+<Multi_key> <acute> <dead_horn> <u> : "ứ" U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
+<Multi_key> <acute> <plus> <u> : "ứ" U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
+<Multi_key> <apostrophe> <dead_horn> <u> : "ứ" U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
+<Multi_key> <apostrophe> <plus> <u> : "ứ" U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
+<combining_acute> <uhorn> : "ứ" U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
+<combining_acute> <dead_horn> <u> : "ứ" U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
+<combining_acute> <Multi_key> <plus> <u> : "ứ" U1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
+<dead_grave> <Uhorn> : "Ừ" U1EEA # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+<dead_grave> <U01AF> : "Ừ" U1EEA # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+<Multi_key> <grave> <Uhorn> : "Ừ" U1EEA # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+<dead_grave> <dead_horn> <U> : "Ừ" U1EEA # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+<dead_grave> <Multi_key> <plus> <U> : "Ừ" U1EEA # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+<Multi_key> <grave> <dead_horn> <U> : "Ừ" U1EEA # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+<Multi_key> <grave> <plus> <U> : "Ừ" U1EEA # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+<combining_grave> <Uhorn> : "Ừ" U1EEA # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+<combining_grave> <dead_horn> <U> : "Ừ" U1EEA # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+<combining_grave> <Multi_key> <plus> <U> : "Ừ" U1EEA # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+<dead_grave> <uhorn> : "ừ" U1EEB # LATIN SMALL LETTER U WITH HORN AND GRAVE
+<dead_grave> <U01B0> : "ừ" U1EEB # LATIN SMALL LETTER U WITH HORN AND GRAVE
+<Multi_key> <grave> <uhorn> : "ừ" U1EEB # LATIN SMALL LETTER U WITH HORN AND GRAVE
+<dead_grave> <dead_horn> <u> : "ừ" U1EEB # LATIN SMALL LETTER U WITH HORN AND GRAVE
+<dead_grave> <Multi_key> <plus> <u> : "ừ" U1EEB # LATIN SMALL LETTER U WITH HORN AND GRAVE
+<Multi_key> <grave> <dead_horn> <u> : "ừ" U1EEB # LATIN SMALL LETTER U WITH HORN AND GRAVE
+<Multi_key> <grave> <plus> <u> : "ừ" U1EEB # LATIN SMALL LETTER U WITH HORN AND GRAVE
+<combining_grave> <uhorn> : "ừ" U1EEB # LATIN SMALL LETTER U WITH HORN AND GRAVE
+<combining_grave> <dead_horn> <u> : "ừ" U1EEB # LATIN SMALL LETTER U WITH HORN AND GRAVE
+<combining_grave> <Multi_key> <plus> <u> : "ừ" U1EEB # LATIN SMALL LETTER U WITH HORN AND GRAVE
+<dead_hook> <Uhorn> : "Ử" U1EEC # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+<dead_hook> <U01AF> : "Ử" U1EEC # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+<Multi_key> <question> <Uhorn> : "Ử" U1EEC # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+<dead_hook> <dead_horn> <U> : "Ử" U1EEC # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+<dead_hook> <Multi_key> <plus> <U> : "Ử" U1EEC # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+<Multi_key> <question> <dead_horn> <U> : "Ử" U1EEC # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+<Multi_key> <question> <plus> <U> : "Ử" U1EEC # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+<combining_hook> <Uhorn> : "Ử" U1EEC # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+<combining_hook> <dead_horn> <U> : "Ử" U1EEC # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+<combining_hook> <Multi_key> <plus> <U> : "Ử" U1EEC # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+<dead_hook> <uhorn> : "á»­" U1EED # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+<dead_hook> <U01B0> : "á»­" U1EED # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+<Multi_key> <question> <uhorn> : "á»­" U1EED # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+<dead_hook> <dead_horn> <u> : "á»­" U1EED # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+<dead_hook> <Multi_key> <plus> <u> : "á»­" U1EED # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+<Multi_key> <question> <dead_horn> <u> : "á»­" U1EED # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+<Multi_key> <question> <plus> <u> : "á»­" U1EED # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+<combining_hook> <uhorn> : "á»­" U1EED # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+<combining_hook> <dead_horn> <u> : "á»­" U1EED # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+<combining_hook> <Multi_key> <plus> <u> : "á»­" U1EED # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+<dead_tilde> <Uhorn> : "á»®" U1EEE # LATIN CAPITAL LETTER U WITH HORN AND TILDE
+<dead_tilde> <U01AF> : "á»®" U1EEE # LATIN CAPITAL LETTER U WITH HORN AND TILDE
+<Multi_key> <asciitilde> <Uhorn> : "á»®" U1EEE # LATIN CAPITAL LETTER U WITH HORN AND TILDE
+<dead_tilde> <dead_horn> <U> : "á»®" U1EEE # LATIN CAPITAL LETTER U WITH HORN AND TILDE
+<dead_tilde> <Multi_key> <plus> <U> : "á»®" U1EEE # LATIN CAPITAL LETTER U WITH HORN AND TILDE
+<Multi_key> <asciitilde> <dead_horn> <U> : "á»®" U1EEE # LATIN CAPITAL LETTER U WITH HORN AND TILDE
+<Multi_key> <asciitilde> <plus> <U> : "á»®" U1EEE # LATIN CAPITAL LETTER U WITH HORN AND TILDE
+<combining_tilde> <Uhorn> : "á»®" U1EEE # LATIN CAPITAL LETTER U WITH HORN AND TILDE
+<combining_tilde> <dead_horn> <U> : "á»®" U1EEE # LATIN CAPITAL LETTER U WITH HORN AND TILDE
+<combining_tilde> <Multi_key> <plus> <U> : "á»®" U1EEE # LATIN CAPITAL LETTER U WITH HORN AND TILDE
+<dead_tilde> <uhorn> : "ữ" U1EEF # LATIN SMALL LETTER U WITH HORN AND TILDE
+<dead_tilde> <U01B0> : "ữ" U1EEF # LATIN SMALL LETTER U WITH HORN AND TILDE
+<Multi_key> <asciitilde> <uhorn> : "ữ" U1EEF # LATIN SMALL LETTER U WITH HORN AND TILDE
+<dead_tilde> <dead_horn> <u> : "ữ" U1EEF # LATIN SMALL LETTER U WITH HORN AND TILDE
+<dead_tilde> <Multi_key> <plus> <u> : "ữ" U1EEF # LATIN SMALL LETTER U WITH HORN AND TILDE
+<Multi_key> <asciitilde> <dead_horn> <u> : "ữ" U1EEF # LATIN SMALL LETTER U WITH HORN AND TILDE
+<Multi_key> <asciitilde> <plus> <u> : "ữ" U1EEF # LATIN SMALL LETTER U WITH HORN AND TILDE
+<combining_tilde> <uhorn> : "ữ" U1EEF # LATIN SMALL LETTER U WITH HORN AND TILDE
+<combining_tilde> <dead_horn> <u> : "ữ" U1EEF # LATIN SMALL LETTER U WITH HORN AND TILDE
+<combining_tilde> <Multi_key> <plus> <u> : "ữ" U1EEF # LATIN SMALL LETTER U WITH HORN AND TILDE
+<dead_belowdot> <Uhorn> : "á»°" U1EF0 # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+<dead_belowdot> <U01AF> : "á»°" U1EF0 # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+<Multi_key> <exclam> <Uhorn> : "á»°" U1EF0 # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+<dead_belowdot> <dead_horn> <U> : "á»°" U1EF0 # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+<dead_belowdot> <Multi_key> <plus> <U> : "á»°" U1EF0 # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+<Multi_key> <exclam> <dead_horn> <U> : "á»°" U1EF0 # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+<Multi_key> <exclam> <plus> <U> : "á»°" U1EF0 # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+<combining_belowdot> <Uhorn> : "á»°" U1EF0 # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+<combining_belowdot> <dead_horn> <U> : "á»°" U1EF0 # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+<combining_belowdot> <Multi_key> <plus> <U> : "á»°" U1EF0 # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+<dead_belowdot> <uhorn> : "á»±" U1EF1 # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+<dead_belowdot> <U01B0> : "á»±" U1EF1 # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+<Multi_key> <exclam> <uhorn> : "á»±" U1EF1 # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+<dead_belowdot> <dead_horn> <u> : "á»±" U1EF1 # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+<dead_belowdot> <Multi_key> <plus> <u> : "á»±" U1EF1 # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+<Multi_key> <exclam> <dead_horn> <u> : "á»±" U1EF1 # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+<Multi_key> <exclam> <plus> <u> : "á»±" U1EF1 # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+<combining_belowdot> <uhorn> : "á»±" U1EF1 # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+<combining_belowdot> <dead_horn> <u> : "á»±" U1EF1 # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+<combining_belowdot> <Multi_key> <plus> <u> : "á»±" U1EF1 # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+<dead_grave> <Y> : "Ỳ" U1EF2 # LATIN CAPITAL LETTER Y WITH GRAVE
+<Multi_key> <grave> <Y> : "Ỳ" U1EF2 # LATIN CAPITAL LETTER Y WITH GRAVE
+<combining_grave> <Y> : "Ỳ" U1EF2 # LATIN CAPITAL LETTER Y WITH GRAVE
+<dead_grave> <y> : "ỳ" U1EF3 # LATIN SMALL LETTER Y WITH GRAVE
+<Multi_key> <grave> <y> : "ỳ" U1EF3 # LATIN SMALL LETTER Y WITH GRAVE
+<combining_grave> <y> : "ỳ" U1EF3 # LATIN SMALL LETTER Y WITH GRAVE
+<dead_belowdot> <Y> : "á»´" U1EF4 # LATIN CAPITAL LETTER Y WITH DOT BELOW
+<Multi_key> <exclam> <Y> : "á»´" U1EF4 # LATIN CAPITAL LETTER Y WITH DOT BELOW
+<combining_belowdot> <Y> : "á»´" U1EF4 # LATIN CAPITAL LETTER Y WITH DOT BELOW
+<dead_belowdot> <y> : "ỵ" U1EF5 # LATIN SMALL LETTER Y WITH DOT BELOW
+<Multi_key> <exclam> <y> : "ỵ" U1EF5 # LATIN SMALL LETTER Y WITH DOT BELOW
+<combining_belowdot> <y> : "ỵ" U1EF5 # LATIN SMALL LETTER Y WITH DOT BELOW
+<dead_hook> <Y> : "Ỷ" U1EF6 # LATIN CAPITAL LETTER Y WITH HOOK ABOVE
+<Multi_key> <question> <Y> : "Ỷ" U1EF6 # LATIN CAPITAL LETTER Y WITH HOOK ABOVE
+<combining_hook> <Y> : "Ỷ" U1EF6 # LATIN CAPITAL LETTER Y WITH HOOK ABOVE
+<dead_hook> <y> : "á»·" U1EF7 # LATIN SMALL LETTER Y WITH HOOK ABOVE
+<Multi_key> <question> <y> : "á»·" U1EF7 # LATIN SMALL LETTER Y WITH HOOK ABOVE
+<combining_hook> <y> : "á»·" U1EF7 # LATIN SMALL LETTER Y WITH HOOK ABOVE
+<dead_tilde> <Y> : "Ỹ" U1EF8 # LATIN CAPITAL LETTER Y WITH TILDE
+<Multi_key> <asciitilde> <Y> : "Ỹ" U1EF8 # LATIN CAPITAL LETTER Y WITH TILDE
+<combining_tilde> <Y> : "Ỹ" U1EF8 # LATIN CAPITAL LETTER Y WITH TILDE
+<dead_tilde> <y> : "ỹ" U1EF9 # LATIN SMALL LETTER Y WITH TILDE
+<Multi_key> <asciitilde> <y> : "ỹ" U1EF9 # LATIN SMALL LETTER Y WITH TILDE
+<combining_tilde> <y> : "ỹ" U1EF9 # LATIN SMALL LETTER Y WITH TILDE
+<U0313> <Greek_alpha> : "á¼€" U1F00 # GREEK SMALL LETTER ALPHA WITH PSILI
+<Multi_key> <parenright> <Greek_alpha> : "á¼€" U1F00 # GREEK SMALL LETTER ALPHA WITH PSILI
+<U0314> <Greek_alpha> : "á¼" U1F01 # GREEK SMALL LETTER ALPHA WITH DASIA
+<Multi_key> <parenleft> <Greek_alpha> : "á¼" U1F01 # GREEK SMALL LETTER ALPHA WITH DASIA
+<dead_grave> <U1f00> : "ἂ" U1F02 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
+<Multi_key> <grave> <U1f00> : "ἂ" U1F02 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
+<dead_grave> <U0313> <Greek_alpha> : "ἂ" U1F02 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
+<dead_grave> <Multi_key> <parenright> <Greek_alpha> : "ἂ" U1F02 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
+<Multi_key> <grave> <U0313> <Greek_alpha> : "ἂ" U1F02 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
+<Multi_key> <grave> <parenright> <Greek_alpha> : "ἂ" U1F02 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
+<combining_grave> <U1f00> : "ἂ" U1F02 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
+<combining_grave> <U0313> <Greek_alpha> : "ἂ" U1F02 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
+<combining_grave> <Multi_key> <parenright> <Greek_alpha> : "ἂ" U1F02 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
+<dead_grave> <U1f01> : "ἃ" U1F03 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
+<Multi_key> <grave> <U1f01> : "ἃ" U1F03 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
+<dead_grave> <U0314> <Greek_alpha> : "ἃ" U1F03 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
+<dead_grave> <Multi_key> <parenleft> <Greek_alpha> : "ἃ" U1F03 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
+<Multi_key> <grave> <U0314> <Greek_alpha> : "ἃ" U1F03 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
+<Multi_key> <grave> <parenleft> <Greek_alpha> : "ἃ" U1F03 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
+<combining_grave> <U1f01> : "ἃ" U1F03 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
+<combining_grave> <U0314> <Greek_alpha> : "ἃ" U1F03 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
+<combining_grave> <Multi_key> <parenleft> <Greek_alpha> : "ἃ" U1F03 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
+<dead_acute> <U1f00> : "ἄ" U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
+<Multi_key> <acute> <U1f00> : "ἄ" U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U1f00> : "ἄ" U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
+<dead_acute> <U0313> <Greek_alpha> : "ἄ" U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
+<dead_acute> <Multi_key> <parenright> <Greek_alpha> : "ἄ" U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
+<Multi_key> <acute> <U0313> <Greek_alpha> : "ἄ" U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
+<Multi_key> <acute> <parenright> <Greek_alpha> : "ἄ" U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U0313> <Greek_alpha> : "ἄ" U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <parenright> <Greek_alpha> : "ἄ" U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
+<combining_acute> <U1f00> : "ἄ" U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
+<combining_acute> <U0313> <Greek_alpha> : "ἄ" U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
+<combining_acute> <Multi_key> <parenright> <Greek_alpha> : "ἄ" U1F04 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
+<dead_acute> <U1f01> : "á¼…" U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
+<Multi_key> <acute> <U1f01> : "á¼…" U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U1f01> : "á¼…" U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
+<dead_acute> <U0314> <Greek_alpha> : "á¼…" U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
+<dead_acute> <Multi_key> <parenleft> <Greek_alpha> : "á¼…" U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
+<Multi_key> <acute> <U0314> <Greek_alpha> : "á¼…" U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
+<Multi_key> <acute> <parenleft> <Greek_alpha> : "á¼…" U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U0314> <Greek_alpha> : "á¼…" U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <parenleft> <Greek_alpha> : "á¼…" U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
+<combining_acute> <U1f01> : "á¼…" U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
+<combining_acute> <U0314> <Greek_alpha> : "á¼…" U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
+<combining_acute> <Multi_key> <parenleft> <Greek_alpha> : "á¼…" U1F05 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
+<U0342> <U1f00> : "ἆ" U1F06 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
+<dead_tilde> <U1f00> : "ἆ" U1F06 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <U1f00> : "ἆ" U1F06 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
+<U0342> <U0313> <Greek_alpha> : "ἆ" U1F06 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
+<U0342> <Multi_key> <parenright> <Greek_alpha> : "ἆ" U1F06 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
+<dead_tilde> <U0313> <Greek_alpha> : "ἆ" U1F06 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenright> <Greek_alpha> : "ἆ" U1F06 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <U0313> <Greek_alpha> : "ἆ" U1F06 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <parenright> <Greek_alpha> : "ἆ" U1F06 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
+<U0342> <U1f01> : "ἇ" U1F07 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
+<dead_tilde> <U1f01> : "ἇ" U1F07 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <U1f01> : "ἇ" U1F07 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
+<U0342> <U0314> <Greek_alpha> : "ἇ" U1F07 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
+<U0342> <Multi_key> <parenleft> <Greek_alpha> : "ἇ" U1F07 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
+<dead_tilde> <U0314> <Greek_alpha> : "ἇ" U1F07 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenleft> <Greek_alpha> : "ἇ" U1F07 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <U0314> <Greek_alpha> : "ἇ" U1F07 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <parenleft> <Greek_alpha> : "ἇ" U1F07 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
+<U0313> <Greek_ALPHA> : "Ἀ" U1F08 # GREEK CAPITAL LETTER ALPHA WITH PSILI
+<Multi_key> <parenright> <Greek_ALPHA> : "Ἀ" U1F08 # GREEK CAPITAL LETTER ALPHA WITH PSILI
+<U0314> <Greek_ALPHA> : "Ἁ" U1F09 # GREEK CAPITAL LETTER ALPHA WITH DASIA
+<Multi_key> <parenleft> <Greek_ALPHA> : "Ἁ" U1F09 # GREEK CAPITAL LETTER ALPHA WITH DASIA
+<dead_grave> <U1f08> : "Ἂ" U1F0A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
+<Multi_key> <grave> <U1f08> : "Ἂ" U1F0A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
+<dead_grave> <U0313> <Greek_ALPHA> : "Ἂ" U1F0A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
+<dead_grave> <Multi_key> <parenright> <Greek_ALPHA> : "Ἂ" U1F0A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
+<Multi_key> <grave> <U0313> <Greek_ALPHA> : "Ἂ" U1F0A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
+<Multi_key> <grave> <parenright> <Greek_ALPHA> : "Ἂ" U1F0A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
+<combining_grave> <U1f08> : "Ἂ" U1F0A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
+<combining_grave> <U0313> <Greek_ALPHA> : "Ἂ" U1F0A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
+<combining_grave> <Multi_key> <parenright> <Greek_ALPHA> : "Ἂ" U1F0A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
+<dead_grave> <U1f09> : "Ἃ" U1F0B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
+<Multi_key> <grave> <U1f09> : "Ἃ" U1F0B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
+<dead_grave> <U0314> <Greek_ALPHA> : "Ἃ" U1F0B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
+<dead_grave> <Multi_key> <parenleft> <Greek_ALPHA> : "Ἃ" U1F0B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
+<Multi_key> <grave> <U0314> <Greek_ALPHA> : "Ἃ" U1F0B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
+<Multi_key> <grave> <parenleft> <Greek_ALPHA> : "Ἃ" U1F0B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
+<combining_grave> <U1f09> : "Ἃ" U1F0B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
+<combining_grave> <U0314> <Greek_ALPHA> : "Ἃ" U1F0B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
+<combining_grave> <Multi_key> <parenleft> <Greek_ALPHA> : "Ἃ" U1F0B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
+<dead_acute> <U1f08> : "Ἄ" U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+<Multi_key> <acute> <U1f08> : "Ἄ" U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U1f08> : "Ἄ" U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+<dead_acute> <U0313> <Greek_ALPHA> : "Ἄ" U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+<dead_acute> <Multi_key> <parenright> <Greek_ALPHA> : "Ἄ" U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+<Multi_key> <acute> <U0313> <Greek_ALPHA> : "Ἄ" U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+<Multi_key> <acute> <parenright> <Greek_ALPHA> : "Ἄ" U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U0313> <Greek_ALPHA> : "Ἄ" U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <parenright> <Greek_ALPHA> : "Ἄ" U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+<combining_acute> <U1f08> : "Ἄ" U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+<combining_acute> <U0313> <Greek_ALPHA> : "Ἄ" U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+<combining_acute> <Multi_key> <parenright> <Greek_ALPHA> : "Ἄ" U1F0C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+<dead_acute> <U1f09> : "á¼" U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+<Multi_key> <acute> <U1f09> : "á¼" U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U1f09> : "á¼" U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+<dead_acute> <U0314> <Greek_ALPHA> : "á¼" U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+<dead_acute> <Multi_key> <parenleft> <Greek_ALPHA> : "á¼" U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+<Multi_key> <acute> <U0314> <Greek_ALPHA> : "á¼" U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+<Multi_key> <acute> <parenleft> <Greek_ALPHA> : "á¼" U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U0314> <Greek_ALPHA> : "á¼" U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <parenleft> <Greek_ALPHA> : "á¼" U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+<combining_acute> <U1f09> : "á¼" U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+<combining_acute> <U0314> <Greek_ALPHA> : "á¼" U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+<combining_acute> <Multi_key> <parenleft> <Greek_ALPHA> : "á¼" U1F0D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+<U0342> <U1f08> : "Ἆ" U1F0E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
+<dead_tilde> <U1f08> : "Ἆ" U1F0E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <U1f08> : "Ἆ" U1F0E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
+<U0342> <U0313> <Greek_ALPHA> : "Ἆ" U1F0E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
+<U0342> <Multi_key> <parenright> <Greek_ALPHA> : "Ἆ" U1F0E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
+<dead_tilde> <U0313> <Greek_ALPHA> : "Ἆ" U1F0E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenright> <Greek_ALPHA> : "Ἆ" U1F0E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <U0313> <Greek_ALPHA> : "Ἆ" U1F0E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <parenright> <Greek_ALPHA> : "Ἆ" U1F0E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
+<U0342> <U1f09> : "á¼" U1F0F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
+<dead_tilde> <U1f09> : "á¼" U1F0F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <U1f09> : "á¼" U1F0F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
+<U0342> <U0314> <Greek_ALPHA> : "á¼" U1F0F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
+<U0342> <Multi_key> <parenleft> <Greek_ALPHA> : "á¼" U1F0F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
+<dead_tilde> <U0314> <Greek_ALPHA> : "á¼" U1F0F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenleft> <Greek_ALPHA> : "á¼" U1F0F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <U0314> <Greek_ALPHA> : "á¼" U1F0F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <parenleft> <Greek_ALPHA> : "á¼" U1F0F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
+<U0313> <Greek_epsilon> : "á¼" U1F10 # GREEK SMALL LETTER EPSILON WITH PSILI
+<Multi_key> <parenright> <Greek_epsilon> : "á¼" U1F10 # GREEK SMALL LETTER EPSILON WITH PSILI
+<U0314> <Greek_epsilon> : "ἑ" U1F11 # GREEK SMALL LETTER EPSILON WITH DASIA
+<Multi_key> <parenleft> <Greek_epsilon> : "ἑ" U1F11 # GREEK SMALL LETTER EPSILON WITH DASIA
+<dead_grave> <U1f10> : "á¼’" U1F12 # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
+<Multi_key> <grave> <U1f10> : "á¼’" U1F12 # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
+<dead_grave> <U0313> <Greek_epsilon> : "á¼’" U1F12 # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
+<dead_grave> <Multi_key> <parenright> <Greek_epsilon> : "á¼’" U1F12 # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
+<Multi_key> <grave> <U0313> <Greek_epsilon> : "á¼’" U1F12 # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
+<Multi_key> <grave> <parenright> <Greek_epsilon> : "á¼’" U1F12 # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
+<combining_grave> <U1f10> : "á¼’" U1F12 # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
+<combining_grave> <U0313> <Greek_epsilon> : "á¼’" U1F12 # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
+<combining_grave> <Multi_key> <parenright> <Greek_epsilon> : "á¼’" U1F12 # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
+<dead_grave> <U1f11> : "ἓ" U1F13 # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
+<Multi_key> <grave> <U1f11> : "ἓ" U1F13 # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
+<dead_grave> <U0314> <Greek_epsilon> : "ἓ" U1F13 # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
+<dead_grave> <Multi_key> <parenleft> <Greek_epsilon> : "ἓ" U1F13 # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
+<Multi_key> <grave> <U0314> <Greek_epsilon> : "ἓ" U1F13 # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
+<Multi_key> <grave> <parenleft> <Greek_epsilon> : "ἓ" U1F13 # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
+<combining_grave> <U1f11> : "ἓ" U1F13 # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
+<combining_grave> <U0314> <Greek_epsilon> : "ἓ" U1F13 # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
+<combining_grave> <Multi_key> <parenleft> <Greek_epsilon> : "ἓ" U1F13 # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA
+<dead_acute> <U1f10> : "á¼”" U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
+<Multi_key> <acute> <U1f10> : "á¼”" U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U1f10> : "á¼”" U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
+<dead_acute> <U0313> <Greek_epsilon> : "á¼”" U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
+<dead_acute> <Multi_key> <parenright> <Greek_epsilon> : "á¼”" U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
+<Multi_key> <acute> <U0313> <Greek_epsilon> : "á¼”" U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
+<Multi_key> <acute> <parenright> <Greek_epsilon> : "á¼”" U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U0313> <Greek_epsilon> : "á¼”" U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <parenright> <Greek_epsilon> : "á¼”" U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
+<combining_acute> <U1f10> : "á¼”" U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
+<combining_acute> <U0313> <Greek_epsilon> : "á¼”" U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
+<combining_acute> <Multi_key> <parenright> <Greek_epsilon> : "á¼”" U1F14 # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
+<dead_acute> <U1f11> : "ἕ" U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+<Multi_key> <acute> <U1f11> : "ἕ" U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U1f11> : "ἕ" U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+<dead_acute> <U0314> <Greek_epsilon> : "ἕ" U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+<dead_acute> <Multi_key> <parenleft> <Greek_epsilon> : "ἕ" U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+<Multi_key> <acute> <U0314> <Greek_epsilon> : "ἕ" U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+<Multi_key> <acute> <parenleft> <Greek_epsilon> : "ἕ" U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U0314> <Greek_epsilon> : "ἕ" U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <parenleft> <Greek_epsilon> : "ἕ" U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+<combining_acute> <U1f11> : "ἕ" U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+<combining_acute> <U0314> <Greek_epsilon> : "ἕ" U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+<combining_acute> <Multi_key> <parenleft> <Greek_epsilon> : "ἕ" U1F15 # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+<U0313> <Greek_EPSILON> : "Ἐ" U1F18 # GREEK CAPITAL LETTER EPSILON WITH PSILI
+<Multi_key> <parenright> <Greek_EPSILON> : "Ἐ" U1F18 # GREEK CAPITAL LETTER EPSILON WITH PSILI
+<U0314> <Greek_EPSILON> : "á¼™" U1F19 # GREEK CAPITAL LETTER EPSILON WITH DASIA
+<Multi_key> <parenleft> <Greek_EPSILON> : "á¼™" U1F19 # GREEK CAPITAL LETTER EPSILON WITH DASIA
+<dead_grave> <U1f18> : "Ἒ" U1F1A # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
+<Multi_key> <grave> <U1f18> : "Ἒ" U1F1A # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
+<dead_grave> <U0313> <Greek_EPSILON> : "Ἒ" U1F1A # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
+<dead_grave> <Multi_key> <parenright> <Greek_EPSILON> : "Ἒ" U1F1A # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
+<Multi_key> <grave> <U0313> <Greek_EPSILON> : "Ἒ" U1F1A # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
+<Multi_key> <grave> <parenright> <Greek_EPSILON> : "Ἒ" U1F1A # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
+<combining_grave> <U1f18> : "Ἒ" U1F1A # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
+<combining_grave> <U0313> <Greek_EPSILON> : "Ἒ" U1F1A # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
+<combining_grave> <Multi_key> <parenright> <Greek_EPSILON> : "Ἒ" U1F1A # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
+<dead_grave> <U1f19> : "á¼›" U1F1B # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
+<Multi_key> <grave> <U1f19> : "á¼›" U1F1B # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
+<dead_grave> <U0314> <Greek_EPSILON> : "á¼›" U1F1B # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
+<dead_grave> <Multi_key> <parenleft> <Greek_EPSILON> : "á¼›" U1F1B # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
+<Multi_key> <grave> <U0314> <Greek_EPSILON> : "á¼›" U1F1B # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
+<Multi_key> <grave> <parenleft> <Greek_EPSILON> : "á¼›" U1F1B # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
+<combining_grave> <U1f19> : "á¼›" U1F1B # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
+<combining_grave> <U0314> <Greek_EPSILON> : "á¼›" U1F1B # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
+<combining_grave> <Multi_key> <parenleft> <Greek_EPSILON> : "á¼›" U1F1B # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
+<dead_acute> <U1f18> : "Ἔ" U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+<Multi_key> <acute> <U1f18> : "Ἔ" U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U1f18> : "Ἔ" U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+<dead_acute> <U0313> <Greek_EPSILON> : "Ἔ" U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+<dead_acute> <Multi_key> <parenright> <Greek_EPSILON> : "Ἔ" U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+<Multi_key> <acute> <U0313> <Greek_EPSILON> : "Ἔ" U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+<Multi_key> <acute> <parenright> <Greek_EPSILON> : "Ἔ" U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U0313> <Greek_EPSILON> : "Ἔ" U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <parenright> <Greek_EPSILON> : "Ἔ" U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+<combining_acute> <U1f18> : "Ἔ" U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+<combining_acute> <U0313> <Greek_EPSILON> : "Ἔ" U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+<combining_acute> <Multi_key> <parenright> <Greek_EPSILON> : "Ἔ" U1F1C # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+<dead_acute> <U1f19> : "á¼" U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+<Multi_key> <acute> <U1f19> : "á¼" U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U1f19> : "á¼" U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+<dead_acute> <U0314> <Greek_EPSILON> : "á¼" U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+<dead_acute> <Multi_key> <parenleft> <Greek_EPSILON> : "á¼" U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+<Multi_key> <acute> <U0314> <Greek_EPSILON> : "á¼" U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+<Multi_key> <acute> <parenleft> <Greek_EPSILON> : "á¼" U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U0314> <Greek_EPSILON> : "á¼" U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <parenleft> <Greek_EPSILON> : "á¼" U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+<combining_acute> <U1f19> : "á¼" U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+<combining_acute> <U0314> <Greek_EPSILON> : "á¼" U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+<combining_acute> <Multi_key> <parenleft> <Greek_EPSILON> : "á¼" U1F1D # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+<U0313> <Greek_eta> : "á¼ " U1F20 # GREEK SMALL LETTER ETA WITH PSILI
+<Multi_key> <parenright> <Greek_eta> : "á¼ " U1F20 # GREEK SMALL LETTER ETA WITH PSILI
+<U0314> <Greek_eta> : "ἡ" U1F21 # GREEK SMALL LETTER ETA WITH DASIA
+<Multi_key> <parenleft> <Greek_eta> : "ἡ" U1F21 # GREEK SMALL LETTER ETA WITH DASIA
+<dead_grave> <U1f20> : "á¼¢" U1F22 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
+<Multi_key> <grave> <U1f20> : "á¼¢" U1F22 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
+<dead_grave> <U0313> <Greek_eta> : "á¼¢" U1F22 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
+<dead_grave> <Multi_key> <parenright> <Greek_eta> : "á¼¢" U1F22 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
+<Multi_key> <grave> <U0313> <Greek_eta> : "á¼¢" U1F22 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
+<Multi_key> <grave> <parenright> <Greek_eta> : "á¼¢" U1F22 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
+<combining_grave> <U1f20> : "á¼¢" U1F22 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
+<combining_grave> <U0313> <Greek_eta> : "á¼¢" U1F22 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
+<combining_grave> <Multi_key> <parenright> <Greek_eta> : "á¼¢" U1F22 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA
+<dead_grave> <U1f21> : "á¼£" U1F23 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
+<Multi_key> <grave> <U1f21> : "á¼£" U1F23 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
+<dead_grave> <U0314> <Greek_eta> : "á¼£" U1F23 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
+<dead_grave> <Multi_key> <parenleft> <Greek_eta> : "á¼£" U1F23 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
+<Multi_key> <grave> <U0314> <Greek_eta> : "á¼£" U1F23 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
+<Multi_key> <grave> <parenleft> <Greek_eta> : "á¼£" U1F23 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
+<combining_grave> <U1f21> : "á¼£" U1F23 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
+<combining_grave> <U0314> <Greek_eta> : "á¼£" U1F23 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
+<combining_grave> <Multi_key> <parenleft> <Greek_eta> : "á¼£" U1F23 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA
+<dead_acute> <U1f20> : "ἤ" U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
+<Multi_key> <acute> <U1f20> : "ἤ" U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U1f20> : "ἤ" U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
+<dead_acute> <U0313> <Greek_eta> : "ἤ" U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
+<dead_acute> <Multi_key> <parenright> <Greek_eta> : "ἤ" U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
+<Multi_key> <acute> <U0313> <Greek_eta> : "ἤ" U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
+<Multi_key> <acute> <parenright> <Greek_eta> : "ἤ" U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U0313> <Greek_eta> : "ἤ" U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <parenright> <Greek_eta> : "ἤ" U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
+<combining_acute> <U1f20> : "ἤ" U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
+<combining_acute> <U0313> <Greek_eta> : "ἤ" U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
+<combining_acute> <Multi_key> <parenright> <Greek_eta> : "ἤ" U1F24 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA
+<dead_acute> <U1f21> : "á¼¥" U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
+<Multi_key> <acute> <U1f21> : "á¼¥" U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U1f21> : "á¼¥" U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
+<dead_acute> <U0314> <Greek_eta> : "á¼¥" U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
+<dead_acute> <Multi_key> <parenleft> <Greek_eta> : "á¼¥" U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
+<Multi_key> <acute> <U0314> <Greek_eta> : "á¼¥" U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
+<Multi_key> <acute> <parenleft> <Greek_eta> : "á¼¥" U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U0314> <Greek_eta> : "á¼¥" U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <parenleft> <Greek_eta> : "á¼¥" U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
+<combining_acute> <U1f21> : "á¼¥" U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
+<combining_acute> <U0314> <Greek_eta> : "á¼¥" U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
+<combining_acute> <Multi_key> <parenleft> <Greek_eta> : "á¼¥" U1F25 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA
+<U0342> <U1f20> : "ἦ" U1F26 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
+<dead_tilde> <U1f20> : "ἦ" U1F26 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <U1f20> : "ἦ" U1F26 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
+<U0342> <U0313> <Greek_eta> : "ἦ" U1F26 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
+<U0342> <Multi_key> <parenright> <Greek_eta> : "ἦ" U1F26 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
+<dead_tilde> <U0313> <Greek_eta> : "ἦ" U1F26 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenright> <Greek_eta> : "ἦ" U1F26 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <U0313> <Greek_eta> : "ἦ" U1F26 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <parenright> <Greek_eta> : "ἦ" U1F26 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
+<U0342> <U1f21> : "ἧ" U1F27 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
+<dead_tilde> <U1f21> : "ἧ" U1F27 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <U1f21> : "ἧ" U1F27 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
+<U0342> <U0314> <Greek_eta> : "ἧ" U1F27 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
+<U0342> <Multi_key> <parenleft> <Greek_eta> : "ἧ" U1F27 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
+<dead_tilde> <U0314> <Greek_eta> : "ἧ" U1F27 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenleft> <Greek_eta> : "ἧ" U1F27 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <U0314> <Greek_eta> : "ἧ" U1F27 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <parenleft> <Greek_eta> : "ἧ" U1F27 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
+<U0313> <Greek_ETA> : "Ἠ" U1F28 # GREEK CAPITAL LETTER ETA WITH PSILI
+<Multi_key> <parenright> <Greek_ETA> : "Ἠ" U1F28 # GREEK CAPITAL LETTER ETA WITH PSILI
+<U0314> <Greek_ETA> : "Ἡ" U1F29 # GREEK CAPITAL LETTER ETA WITH DASIA
+<Multi_key> <parenleft> <Greek_ETA> : "Ἡ" U1F29 # GREEK CAPITAL LETTER ETA WITH DASIA
+<dead_grave> <U1f28> : "Ἢ" U1F2A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
+<Multi_key> <grave> <U1f28> : "Ἢ" U1F2A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
+<dead_grave> <U0313> <Greek_ETA> : "Ἢ" U1F2A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
+<dead_grave> <Multi_key> <parenright> <Greek_ETA> : "Ἢ" U1F2A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
+<Multi_key> <grave> <U0313> <Greek_ETA> : "Ἢ" U1F2A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
+<Multi_key> <grave> <parenright> <Greek_ETA> : "Ἢ" U1F2A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
+<combining_grave> <U1f28> : "Ἢ" U1F2A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
+<combining_grave> <U0313> <Greek_ETA> : "Ἢ" U1F2A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
+<combining_grave> <Multi_key> <parenright> <Greek_ETA> : "Ἢ" U1F2A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
+<dead_grave> <U1f29> : "Ἣ" U1F2B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
+<Multi_key> <grave> <U1f29> : "Ἣ" U1F2B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
+<dead_grave> <U0314> <Greek_ETA> : "Ἣ" U1F2B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
+<dead_grave> <Multi_key> <parenleft> <Greek_ETA> : "Ἣ" U1F2B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
+<Multi_key> <grave> <U0314> <Greek_ETA> : "Ἣ" U1F2B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
+<Multi_key> <grave> <parenleft> <Greek_ETA> : "Ἣ" U1F2B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
+<combining_grave> <U1f29> : "Ἣ" U1F2B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
+<combining_grave> <U0314> <Greek_ETA> : "Ἣ" U1F2B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
+<combining_grave> <Multi_key> <parenleft> <Greek_ETA> : "Ἣ" U1F2B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
+<dead_acute> <U1f28> : "Ἤ" U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+<Multi_key> <acute> <U1f28> : "Ἤ" U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U1f28> : "Ἤ" U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+<dead_acute> <U0313> <Greek_ETA> : "Ἤ" U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+<dead_acute> <Multi_key> <parenright> <Greek_ETA> : "Ἤ" U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+<Multi_key> <acute> <U0313> <Greek_ETA> : "Ἤ" U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+<Multi_key> <acute> <parenright> <Greek_ETA> : "Ἤ" U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U0313> <Greek_ETA> : "Ἤ" U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <parenright> <Greek_ETA> : "Ἤ" U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+<combining_acute> <U1f28> : "Ἤ" U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+<combining_acute> <U0313> <Greek_ETA> : "Ἤ" U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+<combining_acute> <Multi_key> <parenright> <Greek_ETA> : "Ἤ" U1F2C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+<dead_acute> <U1f29> : "á¼­" U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+<Multi_key> <acute> <U1f29> : "á¼­" U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U1f29> : "á¼­" U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+<dead_acute> <U0314> <Greek_ETA> : "á¼­" U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+<dead_acute> <Multi_key> <parenleft> <Greek_ETA> : "á¼­" U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+<Multi_key> <acute> <U0314> <Greek_ETA> : "á¼­" U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+<Multi_key> <acute> <parenleft> <Greek_ETA> : "á¼­" U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U0314> <Greek_ETA> : "á¼­" U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <parenleft> <Greek_ETA> : "á¼­" U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+<combining_acute> <U1f29> : "á¼­" U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+<combining_acute> <U0314> <Greek_ETA> : "á¼­" U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+<combining_acute> <Multi_key> <parenleft> <Greek_ETA> : "á¼­" U1F2D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+<U0342> <U1f28> : "á¼®" U1F2E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
+<dead_tilde> <U1f28> : "á¼®" U1F2E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <U1f28> : "á¼®" U1F2E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
+<U0342> <U0313> <Greek_ETA> : "á¼®" U1F2E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
+<U0342> <Multi_key> <parenright> <Greek_ETA> : "á¼®" U1F2E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
+<dead_tilde> <U0313> <Greek_ETA> : "á¼®" U1F2E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenright> <Greek_ETA> : "á¼®" U1F2E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <U0313> <Greek_ETA> : "á¼®" U1F2E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <parenright> <Greek_ETA> : "á¼®" U1F2E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
+<U0342> <U1f29> : "Ἧ" U1F2F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
+<dead_tilde> <U1f29> : "Ἧ" U1F2F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <U1f29> : "Ἧ" U1F2F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
+<U0342> <U0314> <Greek_ETA> : "Ἧ" U1F2F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
+<U0342> <Multi_key> <parenleft> <Greek_ETA> : "Ἧ" U1F2F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
+<dead_tilde> <U0314> <Greek_ETA> : "Ἧ" U1F2F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenleft> <Greek_ETA> : "Ἧ" U1F2F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <U0314> <Greek_ETA> : "Ἧ" U1F2F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <parenleft> <Greek_ETA> : "Ἧ" U1F2F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
+<U0313> <Greek_iota> : "á¼°" U1F30 # GREEK SMALL LETTER IOTA WITH PSILI
+<Multi_key> <parenright> <Greek_iota> : "á¼°" U1F30 # GREEK SMALL LETTER IOTA WITH PSILI
+<U0314> <Greek_iota> : "á¼±" U1F31 # GREEK SMALL LETTER IOTA WITH DASIA
+<Multi_key> <parenleft> <Greek_iota> : "á¼±" U1F31 # GREEK SMALL LETTER IOTA WITH DASIA
+<dead_grave> <U1f30> : "á¼²" U1F32 # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
+<Multi_key> <grave> <U1f30> : "á¼²" U1F32 # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
+<dead_grave> <U0313> <Greek_iota> : "á¼²" U1F32 # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
+<dead_grave> <Multi_key> <parenright> <Greek_iota> : "á¼²" U1F32 # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
+<Multi_key> <grave> <U0313> <Greek_iota> : "á¼²" U1F32 # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
+<Multi_key> <grave> <parenright> <Greek_iota> : "á¼²" U1F32 # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
+<combining_grave> <U1f30> : "á¼²" U1F32 # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
+<combining_grave> <U0313> <Greek_iota> : "á¼²" U1F32 # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
+<combining_grave> <Multi_key> <parenright> <Greek_iota> : "á¼²" U1F32 # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
+<dead_grave> <U1f31> : "á¼³" U1F33 # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
+<Multi_key> <grave> <U1f31> : "á¼³" U1F33 # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
+<dead_grave> <U0314> <Greek_iota> : "á¼³" U1F33 # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
+<dead_grave> <Multi_key> <parenleft> <Greek_iota> : "á¼³" U1F33 # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
+<Multi_key> <grave> <U0314> <Greek_iota> : "á¼³" U1F33 # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
+<Multi_key> <grave> <parenleft> <Greek_iota> : "á¼³" U1F33 # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
+<combining_grave> <U1f31> : "á¼³" U1F33 # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
+<combining_grave> <U0314> <Greek_iota> : "á¼³" U1F33 # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
+<combining_grave> <Multi_key> <parenleft> <Greek_iota> : "á¼³" U1F33 # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
+<dead_acute> <U1f30> : "á¼´" U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
+<Multi_key> <acute> <U1f30> : "á¼´" U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U1f30> : "á¼´" U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
+<dead_acute> <U0313> <Greek_iota> : "á¼´" U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
+<dead_acute> <Multi_key> <parenright> <Greek_iota> : "á¼´" U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
+<Multi_key> <acute> <U0313> <Greek_iota> : "á¼´" U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
+<Multi_key> <acute> <parenright> <Greek_iota> : "á¼´" U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U0313> <Greek_iota> : "á¼´" U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <parenright> <Greek_iota> : "á¼´" U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
+<combining_acute> <U1f30> : "á¼´" U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
+<combining_acute> <U0313> <Greek_iota> : "á¼´" U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
+<combining_acute> <Multi_key> <parenright> <Greek_iota> : "á¼´" U1F34 # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
+<dead_acute> <U1f31> : "á¼µ" U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
+<Multi_key> <acute> <U1f31> : "á¼µ" U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U1f31> : "á¼µ" U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
+<dead_acute> <U0314> <Greek_iota> : "á¼µ" U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
+<dead_acute> <Multi_key> <parenleft> <Greek_iota> : "á¼µ" U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
+<Multi_key> <acute> <U0314> <Greek_iota> : "á¼µ" U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
+<Multi_key> <acute> <parenleft> <Greek_iota> : "á¼µ" U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U0314> <Greek_iota> : "á¼µ" U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <parenleft> <Greek_iota> : "á¼µ" U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
+<combining_acute> <U1f31> : "á¼µ" U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
+<combining_acute> <U0314> <Greek_iota> : "á¼µ" U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
+<combining_acute> <Multi_key> <parenleft> <Greek_iota> : "á¼µ" U1F35 # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
+<U0342> <U1f30> : "ἶ" U1F36 # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
+<dead_tilde> <U1f30> : "ἶ" U1F36 # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <U1f30> : "ἶ" U1F36 # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
+<U0342> <U0313> <Greek_iota> : "ἶ" U1F36 # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
+<U0342> <Multi_key> <parenright> <Greek_iota> : "ἶ" U1F36 # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
+<dead_tilde> <U0313> <Greek_iota> : "ἶ" U1F36 # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenright> <Greek_iota> : "ἶ" U1F36 # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <U0313> <Greek_iota> : "ἶ" U1F36 # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <parenright> <Greek_iota> : "ἶ" U1F36 # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
+<U0342> <U1f31> : "á¼·" U1F37 # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
+<dead_tilde> <U1f31> : "á¼·" U1F37 # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <U1f31> : "á¼·" U1F37 # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
+<U0342> <U0314> <Greek_iota> : "á¼·" U1F37 # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
+<U0342> <Multi_key> <parenleft> <Greek_iota> : "á¼·" U1F37 # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
+<dead_tilde> <U0314> <Greek_iota> : "á¼·" U1F37 # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenleft> <Greek_iota> : "á¼·" U1F37 # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <U0314> <Greek_iota> : "á¼·" U1F37 # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <parenleft> <Greek_iota> : "á¼·" U1F37 # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
+<U0313> <Greek_IOTA> : "Ἰ" U1F38 # GREEK CAPITAL LETTER IOTA WITH PSILI
+<Multi_key> <parenright> <Greek_IOTA> : "Ἰ" U1F38 # GREEK CAPITAL LETTER IOTA WITH PSILI
+<U0314> <Greek_IOTA> : "á¼¹" U1F39 # GREEK CAPITAL LETTER IOTA WITH DASIA
+<Multi_key> <parenleft> <Greek_IOTA> : "á¼¹" U1F39 # GREEK CAPITAL LETTER IOTA WITH DASIA
+<dead_grave> <U1f38> : "Ἲ" U1F3A # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
+<Multi_key> <grave> <U1f38> : "Ἲ" U1F3A # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
+<dead_grave> <U0313> <Greek_IOTA> : "Ἲ" U1F3A # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
+<dead_grave> <Multi_key> <parenright> <Greek_IOTA> : "Ἲ" U1F3A # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
+<Multi_key> <grave> <U0313> <Greek_IOTA> : "Ἲ" U1F3A # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
+<Multi_key> <grave> <parenright> <Greek_IOTA> : "Ἲ" U1F3A # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
+<combining_grave> <U1f38> : "Ἲ" U1F3A # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
+<combining_grave> <U0313> <Greek_IOTA> : "Ἲ" U1F3A # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
+<combining_grave> <Multi_key> <parenright> <Greek_IOTA> : "Ἲ" U1F3A # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
+<dead_grave> <U1f39> : "á¼»" U1F3B # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
+<Multi_key> <grave> <U1f39> : "á¼»" U1F3B # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
+<dead_grave> <U0314> <Greek_IOTA> : "á¼»" U1F3B # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
+<dead_grave> <Multi_key> <parenleft> <Greek_IOTA> : "á¼»" U1F3B # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
+<Multi_key> <grave> <U0314> <Greek_IOTA> : "á¼»" U1F3B # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
+<Multi_key> <grave> <parenleft> <Greek_IOTA> : "á¼»" U1F3B # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
+<combining_grave> <U1f39> : "á¼»" U1F3B # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
+<combining_grave> <U0314> <Greek_IOTA> : "á¼»" U1F3B # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
+<combining_grave> <Multi_key> <parenleft> <Greek_IOTA> : "á¼»" U1F3B # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
+<dead_acute> <U1f38> : "á¼¼" U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+<Multi_key> <acute> <U1f38> : "á¼¼" U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U1f38> : "á¼¼" U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+<dead_acute> <U0313> <Greek_IOTA> : "á¼¼" U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+<dead_acute> <Multi_key> <parenright> <Greek_IOTA> : "á¼¼" U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+<Multi_key> <acute> <U0313> <Greek_IOTA> : "á¼¼" U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+<Multi_key> <acute> <parenright> <Greek_IOTA> : "á¼¼" U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U0313> <Greek_IOTA> : "á¼¼" U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <parenright> <Greek_IOTA> : "á¼¼" U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+<combining_acute> <U1f38> : "á¼¼" U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+<combining_acute> <U0313> <Greek_IOTA> : "á¼¼" U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+<combining_acute> <Multi_key> <parenright> <Greek_IOTA> : "á¼¼" U1F3C # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+<dead_acute> <U1f39> : "á¼½" U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+<Multi_key> <acute> <U1f39> : "á¼½" U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U1f39> : "á¼½" U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+<dead_acute> <U0314> <Greek_IOTA> : "á¼½" U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+<dead_acute> <Multi_key> <parenleft> <Greek_IOTA> : "á¼½" U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+<Multi_key> <acute> <U0314> <Greek_IOTA> : "á¼½" U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+<Multi_key> <acute> <parenleft> <Greek_IOTA> : "á¼½" U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U0314> <Greek_IOTA> : "á¼½" U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <parenleft> <Greek_IOTA> : "á¼½" U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+<combining_acute> <U1f39> : "á¼½" U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+<combining_acute> <U0314> <Greek_IOTA> : "á¼½" U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+<combining_acute> <Multi_key> <parenleft> <Greek_IOTA> : "á¼½" U1F3D # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+<U0342> <U1f38> : "á¼¾" U1F3E # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
+<dead_tilde> <U1f38> : "á¼¾" U1F3E # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <U1f38> : "á¼¾" U1F3E # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
+<U0342> <U0313> <Greek_IOTA> : "á¼¾" U1F3E # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
+<U0342> <Multi_key> <parenright> <Greek_IOTA> : "á¼¾" U1F3E # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
+<dead_tilde> <U0313> <Greek_IOTA> : "á¼¾" U1F3E # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenright> <Greek_IOTA> : "á¼¾" U1F3E # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <U0313> <Greek_IOTA> : "á¼¾" U1F3E # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <parenright> <Greek_IOTA> : "á¼¾" U1F3E # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
+<U0342> <U1f39> : "Ἷ" U1F3F # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
+<dead_tilde> <U1f39> : "Ἷ" U1F3F # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <U1f39> : "Ἷ" U1F3F # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
+<U0342> <U0314> <Greek_IOTA> : "Ἷ" U1F3F # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
+<U0342> <Multi_key> <parenleft> <Greek_IOTA> : "Ἷ" U1F3F # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
+<dead_tilde> <U0314> <Greek_IOTA> : "Ἷ" U1F3F # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenleft> <Greek_IOTA> : "Ἷ" U1F3F # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <U0314> <Greek_IOTA> : "Ἷ" U1F3F # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <parenleft> <Greek_IOTA> : "Ἷ" U1F3F # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
+<U0313> <Greek_omicron> : "á½€" U1F40 # GREEK SMALL LETTER OMICRON WITH PSILI
+<Multi_key> <parenright> <Greek_omicron> : "á½€" U1F40 # GREEK SMALL LETTER OMICRON WITH PSILI
+<U0314> <Greek_omicron> : "á½" U1F41 # GREEK SMALL LETTER OMICRON WITH DASIA
+<Multi_key> <parenleft> <Greek_omicron> : "á½" U1F41 # GREEK SMALL LETTER OMICRON WITH DASIA
+<dead_grave> <U1f40> : "ὂ" U1F42 # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
+<Multi_key> <grave> <U1f40> : "ὂ" U1F42 # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
+<dead_grave> <U0313> <Greek_omicron> : "ὂ" U1F42 # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
+<dead_grave> <Multi_key> <parenright> <Greek_omicron> : "ὂ" U1F42 # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
+<Multi_key> <grave> <U0313> <Greek_omicron> : "ὂ" U1F42 # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
+<Multi_key> <grave> <parenright> <Greek_omicron> : "ὂ" U1F42 # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
+<combining_grave> <U1f40> : "ὂ" U1F42 # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
+<combining_grave> <U0313> <Greek_omicron> : "ὂ" U1F42 # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
+<combining_grave> <Multi_key> <parenright> <Greek_omicron> : "ὂ" U1F42 # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
+<dead_grave> <U1f41> : "ὃ" U1F43 # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
+<Multi_key> <grave> <U1f41> : "ὃ" U1F43 # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
+<dead_grave> <U0314> <Greek_omicron> : "ὃ" U1F43 # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
+<dead_grave> <Multi_key> <parenleft> <Greek_omicron> : "ὃ" U1F43 # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
+<Multi_key> <grave> <U0314> <Greek_omicron> : "ὃ" U1F43 # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
+<Multi_key> <grave> <parenleft> <Greek_omicron> : "ὃ" U1F43 # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
+<combining_grave> <U1f41> : "ὃ" U1F43 # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
+<combining_grave> <U0314> <Greek_omicron> : "ὃ" U1F43 # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
+<combining_grave> <Multi_key> <parenleft> <Greek_omicron> : "ὃ" U1F43 # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA
+<dead_acute> <U1f40> : "ὄ" U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
+<Multi_key> <acute> <U1f40> : "ὄ" U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U1f40> : "ὄ" U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
+<dead_acute> <U0313> <Greek_omicron> : "ὄ" U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
+<dead_acute> <Multi_key> <parenright> <Greek_omicron> : "ὄ" U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
+<Multi_key> <acute> <U0313> <Greek_omicron> : "ὄ" U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
+<Multi_key> <acute> <parenright> <Greek_omicron> : "ὄ" U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U0313> <Greek_omicron> : "ὄ" U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <parenright> <Greek_omicron> : "ὄ" U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
+<combining_acute> <U1f40> : "ὄ" U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
+<combining_acute> <U0313> <Greek_omicron> : "ὄ" U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
+<combining_acute> <Multi_key> <parenright> <Greek_omicron> : "ὄ" U1F44 # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
+<dead_acute> <U1f41> : "á½…" U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+<Multi_key> <acute> <U1f41> : "á½…" U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U1f41> : "á½…" U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+<dead_acute> <U0314> <Greek_omicron> : "á½…" U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+<dead_acute> <Multi_key> <parenleft> <Greek_omicron> : "á½…" U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+<Multi_key> <acute> <U0314> <Greek_omicron> : "á½…" U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+<Multi_key> <acute> <parenleft> <Greek_omicron> : "á½…" U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U0314> <Greek_omicron> : "á½…" U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <parenleft> <Greek_omicron> : "á½…" U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+<combining_acute> <U1f41> : "á½…" U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+<combining_acute> <U0314> <Greek_omicron> : "á½…" U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+<combining_acute> <Multi_key> <parenleft> <Greek_omicron> : "á½…" U1F45 # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+<U0313> <Greek_OMICRON> : "Ὀ" U1F48 # GREEK CAPITAL LETTER OMICRON WITH PSILI
+<Multi_key> <parenright> <Greek_OMICRON> : "Ὀ" U1F48 # GREEK CAPITAL LETTER OMICRON WITH PSILI
+<U0314> <Greek_OMICRON> : "Ὁ" U1F49 # GREEK CAPITAL LETTER OMICRON WITH DASIA
+<Multi_key> <parenleft> <Greek_OMICRON> : "Ὁ" U1F49 # GREEK CAPITAL LETTER OMICRON WITH DASIA
+<dead_grave> <U1f48> : "Ὂ" U1F4A # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
+<Multi_key> <grave> <U1f48> : "Ὂ" U1F4A # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
+<dead_grave> <U0313> <Greek_OMICRON> : "Ὂ" U1F4A # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
+<dead_grave> <Multi_key> <parenright> <Greek_OMICRON> : "Ὂ" U1F4A # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
+<Multi_key> <grave> <U0313> <Greek_OMICRON> : "Ὂ" U1F4A # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
+<Multi_key> <grave> <parenright> <Greek_OMICRON> : "Ὂ" U1F4A # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
+<combining_grave> <U1f48> : "Ὂ" U1F4A # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
+<combining_grave> <U0313> <Greek_OMICRON> : "Ὂ" U1F4A # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
+<combining_grave> <Multi_key> <parenright> <Greek_OMICRON> : "Ὂ" U1F4A # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
+<dead_grave> <U1f49> : "Ὃ" U1F4B # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
+<Multi_key> <grave> <U1f49> : "Ὃ" U1F4B # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
+<dead_grave> <U0314> <Greek_OMICRON> : "Ὃ" U1F4B # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
+<dead_grave> <Multi_key> <parenleft> <Greek_OMICRON> : "Ὃ" U1F4B # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
+<Multi_key> <grave> <U0314> <Greek_OMICRON> : "Ὃ" U1F4B # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
+<Multi_key> <grave> <parenleft> <Greek_OMICRON> : "Ὃ" U1F4B # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
+<combining_grave> <U1f49> : "Ὃ" U1F4B # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
+<combining_grave> <U0314> <Greek_OMICRON> : "Ὃ" U1F4B # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
+<combining_grave> <Multi_key> <parenleft> <Greek_OMICRON> : "Ὃ" U1F4B # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
+<dead_acute> <U1f48> : "Ὄ" U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+<Multi_key> <acute> <U1f48> : "Ὄ" U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U1f48> : "Ὄ" U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+<dead_acute> <U0313> <Greek_OMICRON> : "Ὄ" U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+<dead_acute> <Multi_key> <parenright> <Greek_OMICRON> : "Ὄ" U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+<Multi_key> <acute> <U0313> <Greek_OMICRON> : "Ὄ" U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+<Multi_key> <acute> <parenright> <Greek_OMICRON> : "Ὄ" U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U0313> <Greek_OMICRON> : "Ὄ" U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <parenright> <Greek_OMICRON> : "Ὄ" U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+<combining_acute> <U1f48> : "Ὄ" U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+<combining_acute> <U0313> <Greek_OMICRON> : "Ὄ" U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+<combining_acute> <Multi_key> <parenright> <Greek_OMICRON> : "Ὄ" U1F4C # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+<dead_acute> <U1f49> : "á½" U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+<Multi_key> <acute> <U1f49> : "á½" U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U1f49> : "á½" U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+<dead_acute> <U0314> <Greek_OMICRON> : "á½" U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+<dead_acute> <Multi_key> <parenleft> <Greek_OMICRON> : "á½" U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+<Multi_key> <acute> <U0314> <Greek_OMICRON> : "á½" U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+<Multi_key> <acute> <parenleft> <Greek_OMICRON> : "á½" U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U0314> <Greek_OMICRON> : "á½" U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <parenleft> <Greek_OMICRON> : "á½" U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+<combining_acute> <U1f49> : "á½" U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+<combining_acute> <U0314> <Greek_OMICRON> : "á½" U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+<combining_acute> <Multi_key> <parenleft> <Greek_OMICRON> : "á½" U1F4D # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+<U0313> <Greek_upsilon> : "á½" U1F50 # GREEK SMALL LETTER UPSILON WITH PSILI
+<Multi_key> <parenright> <Greek_upsilon> : "á½" U1F50 # GREEK SMALL LETTER UPSILON WITH PSILI
+<U0314> <Greek_upsilon> : "ὑ" U1F51 # GREEK SMALL LETTER UPSILON WITH DASIA
+<Multi_key> <parenleft> <Greek_upsilon> : "ὑ" U1F51 # GREEK SMALL LETTER UPSILON WITH DASIA
+<dead_grave> <U1f50> : "á½’" U1F52 # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
+<Multi_key> <grave> <U1f50> : "á½’" U1F52 # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
+<dead_grave> <U0313> <Greek_upsilon> : "á½’" U1F52 # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
+<dead_grave> <Multi_key> <parenright> <Greek_upsilon> : "á½’" U1F52 # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
+<Multi_key> <grave> <U0313> <Greek_upsilon> : "á½’" U1F52 # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
+<Multi_key> <grave> <parenright> <Greek_upsilon> : "á½’" U1F52 # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
+<combining_grave> <U1f50> : "á½’" U1F52 # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
+<combining_grave> <U0313> <Greek_upsilon> : "á½’" U1F52 # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
+<combining_grave> <Multi_key> <parenright> <Greek_upsilon> : "á½’" U1F52 # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
+<dead_grave> <U1f51> : "ὓ" U1F53 # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
+<Multi_key> <grave> <U1f51> : "ὓ" U1F53 # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
+<dead_grave> <U0314> <Greek_upsilon> : "ὓ" U1F53 # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
+<dead_grave> <Multi_key> <parenleft> <Greek_upsilon> : "ὓ" U1F53 # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
+<Multi_key> <grave> <U0314> <Greek_upsilon> : "ὓ" U1F53 # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
+<Multi_key> <grave> <parenleft> <Greek_upsilon> : "ὓ" U1F53 # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
+<combining_grave> <U1f51> : "ὓ" U1F53 # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
+<combining_grave> <U0314> <Greek_upsilon> : "ὓ" U1F53 # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
+<combining_grave> <Multi_key> <parenleft> <Greek_upsilon> : "ὓ" U1F53 # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
+<dead_acute> <U1f50> : "á½”" U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
+<Multi_key> <acute> <U1f50> : "á½”" U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U1f50> : "á½”" U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
+<dead_acute> <U0313> <Greek_upsilon> : "á½”" U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
+<dead_acute> <Multi_key> <parenright> <Greek_upsilon> : "á½”" U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
+<Multi_key> <acute> <U0313> <Greek_upsilon> : "á½”" U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
+<Multi_key> <acute> <parenright> <Greek_upsilon> : "á½”" U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U0313> <Greek_upsilon> : "á½”" U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <parenright> <Greek_upsilon> : "á½”" U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
+<combining_acute> <U1f50> : "á½”" U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
+<combining_acute> <U0313> <Greek_upsilon> : "á½”" U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
+<combining_acute> <Multi_key> <parenright> <Greek_upsilon> : "á½”" U1F54 # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
+<dead_acute> <U1f51> : "ὕ" U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
+<Multi_key> <acute> <U1f51> : "ὕ" U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U1f51> : "ὕ" U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
+<dead_acute> <U0314> <Greek_upsilon> : "ὕ" U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
+<dead_acute> <Multi_key> <parenleft> <Greek_upsilon> : "ὕ" U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
+<Multi_key> <acute> <U0314> <Greek_upsilon> : "ὕ" U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
+<Multi_key> <acute> <parenleft> <Greek_upsilon> : "ὕ" U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U0314> <Greek_upsilon> : "ὕ" U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <parenleft> <Greek_upsilon> : "ὕ" U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
+<combining_acute> <U1f51> : "ὕ" U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
+<combining_acute> <U0314> <Greek_upsilon> : "ὕ" U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
+<combining_acute> <Multi_key> <parenleft> <Greek_upsilon> : "ὕ" U1F55 # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
+<U0342> <U1f50> : "á½–" U1F56 # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
+<dead_tilde> <U1f50> : "á½–" U1F56 # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <U1f50> : "á½–" U1F56 # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
+<U0342> <U0313> <Greek_upsilon> : "á½–" U1F56 # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
+<U0342> <Multi_key> <parenright> <Greek_upsilon> : "á½–" U1F56 # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
+<dead_tilde> <U0313> <Greek_upsilon> : "á½–" U1F56 # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenright> <Greek_upsilon> : "á½–" U1F56 # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <U0313> <Greek_upsilon> : "á½–" U1F56 # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <parenright> <Greek_upsilon> : "á½–" U1F56 # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
+<U0342> <U1f51> : "á½—" U1F57 # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+<dead_tilde> <U1f51> : "á½—" U1F57 # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <U1f51> : "á½—" U1F57 # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+<U0342> <U0314> <Greek_upsilon> : "á½—" U1F57 # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+<U0342> <Multi_key> <parenleft> <Greek_upsilon> : "á½—" U1F57 # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+<dead_tilde> <U0314> <Greek_upsilon> : "á½—" U1F57 # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenleft> <Greek_upsilon> : "á½—" U1F57 # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <U0314> <Greek_upsilon> : "á½—" U1F57 # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <parenleft> <Greek_upsilon> : "á½—" U1F57 # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+<U0314> <Greek_UPSILON> : "á½™" U1F59 # GREEK CAPITAL LETTER UPSILON WITH DASIA
+<Multi_key> <parenleft> <Greek_UPSILON> : "á½™" U1F59 # GREEK CAPITAL LETTER UPSILON WITH DASIA
+<dead_grave> <U1f59> : "á½›" U1F5B # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+<Multi_key> <grave> <U1f59> : "á½›" U1F5B # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+<dead_grave> <U0314> <Greek_UPSILON> : "á½›" U1F5B # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+<dead_grave> <Multi_key> <parenleft> <Greek_UPSILON> : "á½›" U1F5B # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+<Multi_key> <grave> <U0314> <Greek_UPSILON> : "á½›" U1F5B # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+<Multi_key> <grave> <parenleft> <Greek_UPSILON> : "á½›" U1F5B # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+<combining_grave> <U1f59> : "á½›" U1F5B # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+<combining_grave> <U0314> <Greek_UPSILON> : "á½›" U1F5B # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+<combining_grave> <Multi_key> <parenleft> <Greek_UPSILON> : "á½›" U1F5B # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+<dead_acute> <U1f59> : "á½" U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+<Multi_key> <acute> <U1f59> : "á½" U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U1f59> : "á½" U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+<dead_acute> <U0314> <Greek_UPSILON> : "á½" U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+<dead_acute> <Multi_key> <parenleft> <Greek_UPSILON> : "á½" U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+<Multi_key> <acute> <U0314> <Greek_UPSILON> : "á½" U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+<Multi_key> <acute> <parenleft> <Greek_UPSILON> : "á½" U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U0314> <Greek_UPSILON> : "á½" U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <parenleft> <Greek_UPSILON> : "á½" U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+<combining_acute> <U1f59> : "á½" U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+<combining_acute> <U0314> <Greek_UPSILON> : "á½" U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+<combining_acute> <Multi_key> <parenleft> <Greek_UPSILON> : "á½" U1F5D # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+<U0342> <U1f59> : "Ὗ" U1F5F # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
+<dead_tilde> <U1f59> : "Ὗ" U1F5F # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <U1f59> : "Ὗ" U1F5F # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
+<U0342> <U0314> <Greek_UPSILON> : "Ὗ" U1F5F # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
+<U0342> <Multi_key> <parenleft> <Greek_UPSILON> : "Ὗ" U1F5F # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
+<dead_tilde> <U0314> <Greek_UPSILON> : "Ὗ" U1F5F # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenleft> <Greek_UPSILON> : "Ὗ" U1F5F # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <U0314> <Greek_UPSILON> : "Ὗ" U1F5F # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <parenleft> <Greek_UPSILON> : "Ὗ" U1F5F # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
+<U0313> <Greek_omega> : "á½ " U1F60 # GREEK SMALL LETTER OMEGA WITH PSILI
+<Multi_key> <parenright> <Greek_omega> : "á½ " U1F60 # GREEK SMALL LETTER OMEGA WITH PSILI
+<U0314> <Greek_omega> : "ὡ" U1F61 # GREEK SMALL LETTER OMEGA WITH DASIA
+<Multi_key> <parenleft> <Greek_omega> : "ὡ" U1F61 # GREEK SMALL LETTER OMEGA WITH DASIA
+<dead_grave> <U1f60> : "á½¢" U1F62 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
+<Multi_key> <grave> <U1f60> : "á½¢" U1F62 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
+<dead_grave> <U0313> <Greek_omega> : "á½¢" U1F62 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
+<dead_grave> <Multi_key> <parenright> <Greek_omega> : "á½¢" U1F62 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
+<Multi_key> <grave> <U0313> <Greek_omega> : "á½¢" U1F62 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
+<Multi_key> <grave> <parenright> <Greek_omega> : "á½¢" U1F62 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
+<combining_grave> <U1f60> : "á½¢" U1F62 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
+<combining_grave> <U0313> <Greek_omega> : "á½¢" U1F62 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
+<combining_grave> <Multi_key> <parenright> <Greek_omega> : "á½¢" U1F62 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
+<dead_grave> <U1f61> : "á½£" U1F63 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
+<Multi_key> <grave> <U1f61> : "á½£" U1F63 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
+<dead_grave> <U0314> <Greek_omega> : "á½£" U1F63 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
+<dead_grave> <Multi_key> <parenleft> <Greek_omega> : "á½£" U1F63 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
+<Multi_key> <grave> <U0314> <Greek_omega> : "á½£" U1F63 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
+<Multi_key> <grave> <parenleft> <Greek_omega> : "á½£" U1F63 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
+<combining_grave> <U1f61> : "á½£" U1F63 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
+<combining_grave> <U0314> <Greek_omega> : "á½£" U1F63 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
+<combining_grave> <Multi_key> <parenleft> <Greek_omega> : "á½£" U1F63 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
+<dead_acute> <U1f60> : "ὤ" U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
+<Multi_key> <acute> <U1f60> : "ὤ" U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U1f60> : "ὤ" U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
+<dead_acute> <U0313> <Greek_omega> : "ὤ" U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
+<dead_acute> <Multi_key> <parenright> <Greek_omega> : "ὤ" U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
+<Multi_key> <acute> <U0313> <Greek_omega> : "ὤ" U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
+<Multi_key> <acute> <parenright> <Greek_omega> : "ὤ" U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U0313> <Greek_omega> : "ὤ" U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <parenright> <Greek_omega> : "ὤ" U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
+<combining_acute> <U1f60> : "ὤ" U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
+<combining_acute> <U0313> <Greek_omega> : "ὤ" U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
+<combining_acute> <Multi_key> <parenright> <Greek_omega> : "ὤ" U1F64 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
+<dead_acute> <U1f61> : "á½¥" U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
+<Multi_key> <acute> <U1f61> : "á½¥" U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U1f61> : "á½¥" U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
+<dead_acute> <U0314> <Greek_omega> : "á½¥" U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
+<dead_acute> <Multi_key> <parenleft> <Greek_omega> : "á½¥" U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
+<Multi_key> <acute> <U0314> <Greek_omega> : "á½¥" U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
+<Multi_key> <acute> <parenleft> <Greek_omega> : "á½¥" U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U0314> <Greek_omega> : "á½¥" U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <parenleft> <Greek_omega> : "á½¥" U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
+<combining_acute> <U1f61> : "á½¥" U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
+<combining_acute> <U0314> <Greek_omega> : "á½¥" U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
+<combining_acute> <Multi_key> <parenleft> <Greek_omega> : "á½¥" U1F65 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
+<U0342> <U1f60> : "ὦ" U1F66 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
+<dead_tilde> <U1f60> : "ὦ" U1F66 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <U1f60> : "ὦ" U1F66 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
+<U0342> <U0313> <Greek_omega> : "ὦ" U1F66 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
+<U0342> <Multi_key> <parenright> <Greek_omega> : "ὦ" U1F66 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
+<dead_tilde> <U0313> <Greek_omega> : "ὦ" U1F66 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenright> <Greek_omega> : "ὦ" U1F66 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <U0313> <Greek_omega> : "ὦ" U1F66 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <parenright> <Greek_omega> : "ὦ" U1F66 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
+<U0342> <U1f61> : "ὧ" U1F67 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
+<dead_tilde> <U1f61> : "ὧ" U1F67 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <U1f61> : "ὧ" U1F67 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
+<U0342> <U0314> <Greek_omega> : "ὧ" U1F67 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
+<U0342> <Multi_key> <parenleft> <Greek_omega> : "ὧ" U1F67 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
+<dead_tilde> <U0314> <Greek_omega> : "ὧ" U1F67 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenleft> <Greek_omega> : "ὧ" U1F67 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <U0314> <Greek_omega> : "ὧ" U1F67 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <parenleft> <Greek_omega> : "ὧ" U1F67 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
+<U0313> <Greek_OMEGA> : "Ὠ" U1F68 # GREEK CAPITAL LETTER OMEGA WITH PSILI
+<Multi_key> <parenright> <Greek_OMEGA> : "Ὠ" U1F68 # GREEK CAPITAL LETTER OMEGA WITH PSILI
+<U0314> <Greek_OMEGA> : "Ὡ" U1F69 # GREEK CAPITAL LETTER OMEGA WITH DASIA
+<Multi_key> <parenleft> <Greek_OMEGA> : "Ὡ" U1F69 # GREEK CAPITAL LETTER OMEGA WITH DASIA
+<dead_grave> <U1f68> : "Ὢ" U1F6A # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
+<Multi_key> <grave> <U1f68> : "Ὢ" U1F6A # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
+<dead_grave> <U0313> <Greek_OMEGA> : "Ὢ" U1F6A # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
+<dead_grave> <Multi_key> <parenright> <Greek_OMEGA> : "Ὢ" U1F6A # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
+<Multi_key> <grave> <U0313> <Greek_OMEGA> : "Ὢ" U1F6A # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
+<Multi_key> <grave> <parenright> <Greek_OMEGA> : "Ὢ" U1F6A # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
+<combining_grave> <U1f68> : "Ὢ" U1F6A # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
+<combining_grave> <U0313> <Greek_OMEGA> : "Ὢ" U1F6A # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
+<combining_grave> <Multi_key> <parenright> <Greek_OMEGA> : "Ὢ" U1F6A # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
+<dead_grave> <U1f69> : "Ὣ" U1F6B # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
+<Multi_key> <grave> <U1f69> : "Ὣ" U1F6B # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
+<dead_grave> <U0314> <Greek_OMEGA> : "Ὣ" U1F6B # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
+<dead_grave> <Multi_key> <parenleft> <Greek_OMEGA> : "Ὣ" U1F6B # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
+<Multi_key> <grave> <U0314> <Greek_OMEGA> : "Ὣ" U1F6B # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
+<Multi_key> <grave> <parenleft> <Greek_OMEGA> : "Ὣ" U1F6B # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
+<combining_grave> <U1f69> : "Ὣ" U1F6B # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
+<combining_grave> <U0314> <Greek_OMEGA> : "Ὣ" U1F6B # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
+<combining_grave> <Multi_key> <parenleft> <Greek_OMEGA> : "Ὣ" U1F6B # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
+<dead_acute> <U1f68> : "Ὤ" U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+<Multi_key> <acute> <U1f68> : "Ὤ" U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U1f68> : "Ὤ" U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+<dead_acute> <U0313> <Greek_OMEGA> : "Ὤ" U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+<dead_acute> <Multi_key> <parenright> <Greek_OMEGA> : "Ὤ" U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+<Multi_key> <acute> <U0313> <Greek_OMEGA> : "Ὤ" U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+<Multi_key> <acute> <parenright> <Greek_OMEGA> : "Ὤ" U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <U0313> <Greek_OMEGA> : "Ὤ" U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+<Multi_key> <apostrophe> <parenright> <Greek_OMEGA> : "Ὤ" U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+<combining_acute> <U1f68> : "Ὤ" U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+<combining_acute> <U0313> <Greek_OMEGA> : "Ὤ" U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+<combining_acute> <Multi_key> <parenright> <Greek_OMEGA> : "Ὤ" U1F6C # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+<dead_acute> <U1f69> : "á½­" U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+<Multi_key> <acute> <U1f69> : "á½­" U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U1f69> : "á½­" U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+<dead_acute> <U0314> <Greek_OMEGA> : "á½­" U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+<dead_acute> <Multi_key> <parenleft> <Greek_OMEGA> : "á½­" U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+<Multi_key> <acute> <U0314> <Greek_OMEGA> : "á½­" U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+<Multi_key> <acute> <parenleft> <Greek_OMEGA> : "á½­" U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <U0314> <Greek_OMEGA> : "á½­" U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+<Multi_key> <apostrophe> <parenleft> <Greek_OMEGA> : "á½­" U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+<combining_acute> <U1f69> : "á½­" U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+<combining_acute> <U0314> <Greek_OMEGA> : "á½­" U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+<combining_acute> <Multi_key> <parenleft> <Greek_OMEGA> : "á½­" U1F6D # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+<U0342> <U1f68> : "á½®" U1F6E # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
+<dead_tilde> <U1f68> : "á½®" U1F6E # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <U1f68> : "á½®" U1F6E # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
+<U0342> <U0313> <Greek_OMEGA> : "á½®" U1F6E # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
+<U0342> <Multi_key> <parenright> <Greek_OMEGA> : "á½®" U1F6E # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
+<dead_tilde> <U0313> <Greek_OMEGA> : "á½®" U1F6E # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenright> <Greek_OMEGA> : "á½®" U1F6E # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <U0313> <Greek_OMEGA> : "á½®" U1F6E # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
+<Multi_key> <asciitilde> <parenright> <Greek_OMEGA> : "á½®" U1F6E # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
+<U0342> <U1f69> : "Ὧ" U1F6F # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
+<dead_tilde> <U1f69> : "Ὧ" U1F6F # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <U1f69> : "Ὧ" U1F6F # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
+<U0342> <U0314> <Greek_OMEGA> : "Ὧ" U1F6F # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
+<U0342> <Multi_key> <parenleft> <Greek_OMEGA> : "Ὧ" U1F6F # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
+<dead_tilde> <U0314> <Greek_OMEGA> : "Ὧ" U1F6F # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
+<dead_tilde> <Multi_key> <parenleft> <Greek_OMEGA> : "Ὧ" U1F6F # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <U0314> <Greek_OMEGA> : "Ὧ" U1F6F # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
+<Multi_key> <asciitilde> <parenleft> <Greek_OMEGA> : "Ὧ" U1F6F # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
+<dead_grave> <Greek_alpha> : "á½°" U1F70 # GREEK SMALL LETTER ALPHA WITH VARIA
+<Multi_key> <grave> <Greek_alpha> : "á½°" U1F70 # GREEK SMALL LETTER ALPHA WITH VARIA
+<combining_grave> <Greek_alpha> : "á½°" U1F70 # GREEK SMALL LETTER ALPHA WITH VARIA
+<dead_grave> <Greek_epsilon> : "á½²" U1F72 # GREEK SMALL LETTER EPSILON WITH VARIA
+<Multi_key> <grave> <Greek_epsilon> : "á½²" U1F72 # GREEK SMALL LETTER EPSILON WITH VARIA
+<combining_grave> <Greek_epsilon> : "á½²" U1F72 # GREEK SMALL LETTER EPSILON WITH VARIA
+<dead_grave> <Greek_eta> : "á½´" U1F74 # GREEK SMALL LETTER ETA WITH VARIA
+<Multi_key> <grave> <Greek_eta> : "á½´" U1F74 # GREEK SMALL LETTER ETA WITH VARIA
+<combining_grave> <Greek_eta> : "á½´" U1F74 # GREEK SMALL LETTER ETA WITH VARIA
+<dead_grave> <Greek_iota> : "ὶ" U1F76 # GREEK SMALL LETTER IOTA WITH VARIA
+<Multi_key> <grave> <Greek_iota> : "ὶ" U1F76 # GREEK SMALL LETTER IOTA WITH VARIA
+<combining_grave> <Greek_iota> : "ὶ" U1F76 # GREEK SMALL LETTER IOTA WITH VARIA
+<dead_grave> <Greek_omicron> : "ὸ" U1F78 # GREEK SMALL LETTER OMICRON WITH VARIA
+<Multi_key> <grave> <Greek_omicron> : "ὸ" U1F78 # GREEK SMALL LETTER OMICRON WITH VARIA
+<combining_grave> <Greek_omicron> : "ὸ" U1F78 # GREEK SMALL LETTER OMICRON WITH VARIA
+<dead_grave> <Greek_upsilon> : "ὺ" U1F7A # GREEK SMALL LETTER UPSILON WITH VARIA
+<Multi_key> <grave> <Greek_upsilon> : "ὺ" U1F7A # GREEK SMALL LETTER UPSILON WITH VARIA
+<combining_grave> <Greek_upsilon> : "ὺ" U1F7A # GREEK SMALL LETTER UPSILON WITH VARIA
+<dead_grave> <Greek_omega> : "á½¼" U1F7C # GREEK SMALL LETTER OMEGA WITH VARIA
+<Multi_key> <grave> <Greek_omega> : "á½¼" U1F7C # GREEK SMALL LETTER OMEGA WITH VARIA
+<combining_grave> <Greek_omega> : "á½¼" U1F7C # GREEK SMALL LETTER OMEGA WITH VARIA
+<dead_iota> <U1f00> : "á¾€" U1F80 # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f00> : "á¾€" U1F80 # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
+<dead_iota> <U0313> <Greek_alpha> : "á¾€" U1F80 # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <parenright> <Greek_alpha> : "á¾€" U1F80 # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U0313> <Greek_alpha> : "á¾€" U1F80 # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <parenright> <Greek_alpha> : "á¾€" U1F80 # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
+<dead_iota> <U1f01> : "á¾" U1F81 # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f01> : "á¾" U1F81 # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
+<dead_iota> <U0314> <Greek_alpha> : "á¾" U1F81 # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <parenleft> <Greek_alpha> : "á¾" U1F81 # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U0314> <Greek_alpha> : "á¾" U1F81 # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <parenleft> <Greek_alpha> : "á¾" U1F81 # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
+<dead_iota> <U1f02> : "ᾂ" U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f02> : "ᾂ" U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <U1f00> : "ᾂ" U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U1f00> : "ᾂ" U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U1f00> : "ᾂ" U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U1f00> : "ᾂ" U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <U0313> <Greek_alpha> : "ᾂ" U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <Multi_key> <parenright> <Greek_alpha> : "ᾂ" U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U0313> <Greek_alpha> : "ᾂ" U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <parenright> <Greek_alpha> : "ᾂ" U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U0313> <Greek_alpha> : "ᾂ" U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <parenright> <Greek_alpha> : "ᾂ" U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U0313> <Greek_alpha> : "ᾂ" U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <parenright> <Greek_alpha> : "ᾂ" U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <combining_grave> <U1f00> : "ᾂ" U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <U1f00> : "ᾂ" U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <combining_grave> <U0313> <Greek_alpha> : "ᾂ" U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <combining_grave> <Multi_key> <parenright> <Greek_alpha> : "ᾂ" U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <U0313> <Greek_alpha> : "ᾂ" U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <parenright> <Greek_alpha> : "ᾂ" U1F82 # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <U1f03> : "ᾃ" U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f03> : "ᾃ" U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <U1f01> : "ᾃ" U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U1f01> : "ᾃ" U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U1f01> : "ᾃ" U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U1f01> : "ᾃ" U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <U0314> <Greek_alpha> : "ᾃ" U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <Multi_key> <parenleft> <Greek_alpha> : "ᾃ" U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U0314> <Greek_alpha> : "ᾃ" U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <parenleft> <Greek_alpha> : "ᾃ" U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U0314> <Greek_alpha> : "ᾃ" U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <parenleft> <Greek_alpha> : "ᾃ" U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U0314> <Greek_alpha> : "ᾃ" U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <parenleft> <Greek_alpha> : "ᾃ" U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <combining_grave> <U1f01> : "ᾃ" U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <U1f01> : "ᾃ" U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <combining_grave> <U0314> <Greek_alpha> : "ᾃ" U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <combining_grave> <Multi_key> <parenleft> <Greek_alpha> : "ᾃ" U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <U0314> <Greek_alpha> : "ᾃ" U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <parenleft> <Greek_alpha> : "ᾃ" U1F83 # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <U1f04> : "ᾄ" U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f04> : "ᾄ" U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <U1f00> : "ᾄ" U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U1f00> : "ᾄ" U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U1f00> : "ᾄ" U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U1f00> : "ᾄ" U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U1f00> : "ᾄ" U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U1f00> : "ᾄ" U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <U0313> <Greek_alpha> : "ᾄ" U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <Multi_key> <parenright> <Greek_alpha> : "ᾄ" U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U0313> <Greek_alpha> : "ᾄ" U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <parenright> <Greek_alpha> : "ᾄ" U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U0313> <Greek_alpha> : "ᾄ" U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <parenright> <Greek_alpha> : "ᾄ" U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U0313> <Greek_alpha> : "ᾄ" U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <parenright> <Greek_alpha> : "ᾄ" U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U0313> <Greek_alpha> : "ᾄ" U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <parenright> <Greek_alpha> : "ᾄ" U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U0313> <Greek_alpha> : "ᾄ" U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <parenright> <Greek_alpha> : "ᾄ" U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <combining_acute> <U1f00> : "ᾄ" U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <U1f00> : "ᾄ" U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <combining_acute> <U0313> <Greek_alpha> : "ᾄ" U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <combining_acute> <Multi_key> <parenright> <Greek_alpha> : "ᾄ" U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <U0313> <Greek_alpha> : "ᾄ" U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <parenright> <Greek_alpha> : "ᾄ" U1F84 # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <U1f05> : "á¾…" U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f05> : "á¾…" U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <U1f01> : "á¾…" U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U1f01> : "á¾…" U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U1f01> : "á¾…" U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U1f01> : "á¾…" U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U1f01> : "á¾…" U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U1f01> : "á¾…" U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <U0314> <Greek_alpha> : "á¾…" U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <Multi_key> <parenleft> <Greek_alpha> : "á¾…" U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U0314> <Greek_alpha> : "á¾…" U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <parenleft> <Greek_alpha> : "á¾…" U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U0314> <Greek_alpha> : "á¾…" U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <parenleft> <Greek_alpha> : "á¾…" U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U0314> <Greek_alpha> : "á¾…" U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <parenleft> <Greek_alpha> : "á¾…" U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U0314> <Greek_alpha> : "á¾…" U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <parenleft> <Greek_alpha> : "á¾…" U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U0314> <Greek_alpha> : "á¾…" U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <parenleft> <Greek_alpha> : "á¾…" U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <combining_acute> <U1f01> : "á¾…" U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <U1f01> : "á¾…" U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <combining_acute> <U0314> <Greek_alpha> : "á¾…" U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <combining_acute> <Multi_key> <parenleft> <Greek_alpha> : "á¾…" U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <U0314> <Greek_alpha> : "á¾…" U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <parenleft> <Greek_alpha> : "á¾…" U1F85 # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <U1f06> : "ᾆ" U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f06> : "ᾆ" U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U0342> <U1f00> : "ᾆ" U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <U1f00> : "ᾆ" U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U1f00> : "ᾆ" U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <U1f00> : "ᾆ" U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U1f00> : "ᾆ" U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U1f00> : "ᾆ" U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U0342> <U0313> <Greek_alpha> : "ᾆ" U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U0342> <Multi_key> <parenright> <Greek_alpha> : "ᾆ" U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <U0313> <Greek_alpha> : "ᾆ" U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <Multi_key> <parenright> <Greek_alpha> : "ᾆ" U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U0313> <Greek_alpha> : "ᾆ" U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <parenright> <Greek_alpha> : "ᾆ" U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <U0313> <Greek_alpha> : "ᾆ" U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <parenright> <Greek_alpha> : "ᾆ" U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U0313> <Greek_alpha> : "ᾆ" U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <parenright> <Greek_alpha> : "ᾆ" U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U0313> <Greek_alpha> : "ᾆ" U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <parenright> <Greek_alpha> : "ᾆ" U1F86 # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U1f07> : "ᾇ" U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f07> : "ᾇ" U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U0342> <U1f01> : "ᾇ" U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <U1f01> : "ᾇ" U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U1f01> : "ᾇ" U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <U1f01> : "ᾇ" U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U1f01> : "ᾇ" U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U1f01> : "ᾇ" U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U0342> <U0314> <Greek_alpha> : "ᾇ" U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U0342> <Multi_key> <parenleft> <Greek_alpha> : "ᾇ" U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <U0314> <Greek_alpha> : "ᾇ" U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <Multi_key> <parenleft> <Greek_alpha> : "ᾇ" U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U0314> <Greek_alpha> : "ᾇ" U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <parenleft> <Greek_alpha> : "ᾇ" U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <U0314> <Greek_alpha> : "ᾇ" U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <parenleft> <Greek_alpha> : "ᾇ" U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U0314> <Greek_alpha> : "ᾇ" U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <parenleft> <Greek_alpha> : "ᾇ" U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U0314> <Greek_alpha> : "ᾇ" U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <parenleft> <Greek_alpha> : "ᾇ" U1F87 # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U1f08> : "ᾈ" U1F88 # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f08> : "ᾈ" U1F88 # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
+<dead_iota> <U0313> <Greek_ALPHA> : "ᾈ" U1F88 # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <parenright> <Greek_ALPHA> : "ᾈ" U1F88 # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U0313> <Greek_ALPHA> : "ᾈ" U1F88 # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <parenright> <Greek_ALPHA> : "ᾈ" U1F88 # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
+<dead_iota> <U1f09> : "ᾉ" U1F89 # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f09> : "ᾉ" U1F89 # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
+<dead_iota> <U0314> <Greek_ALPHA> : "ᾉ" U1F89 # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <parenleft> <Greek_ALPHA> : "ᾉ" U1F89 # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U0314> <Greek_ALPHA> : "ᾉ" U1F89 # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <parenleft> <Greek_ALPHA> : "ᾉ" U1F89 # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
+<dead_iota> <U1f0a> : "ᾊ" U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f0a> : "ᾊ" U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <U1f08> : "ᾊ" U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U1f08> : "ᾊ" U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U1f08> : "ᾊ" U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U1f08> : "ᾊ" U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <U0313> <Greek_ALPHA> : "ᾊ" U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <Multi_key> <parenright> <Greek_ALPHA> : "ᾊ" U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U0313> <Greek_ALPHA> : "ᾊ" U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <parenright> <Greek_ALPHA> : "ᾊ" U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U0313> <Greek_ALPHA> : "ᾊ" U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <parenright> <Greek_ALPHA> : "ᾊ" U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U0313> <Greek_ALPHA> : "ᾊ" U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <parenright> <Greek_ALPHA> : "ᾊ" U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <combining_grave> <U1f08> : "ᾊ" U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <U1f08> : "ᾊ" U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <combining_grave> <U0313> <Greek_ALPHA> : "ᾊ" U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <combining_grave> <Multi_key> <parenright> <Greek_ALPHA> : "ᾊ" U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <U0313> <Greek_ALPHA> : "ᾊ" U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <parenright> <Greek_ALPHA> : "ᾊ" U1F8A # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <U1f0b> : "ᾋ" U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f0b> : "ᾋ" U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <U1f09> : "ᾋ" U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U1f09> : "ᾋ" U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U1f09> : "ᾋ" U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U1f09> : "ᾋ" U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <U0314> <Greek_ALPHA> : "ᾋ" U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <Multi_key> <parenleft> <Greek_ALPHA> : "ᾋ" U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U0314> <Greek_ALPHA> : "ᾋ" U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <parenleft> <Greek_ALPHA> : "ᾋ" U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U0314> <Greek_ALPHA> : "ᾋ" U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <parenleft> <Greek_ALPHA> : "ᾋ" U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U0314> <Greek_ALPHA> : "ᾋ" U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <parenleft> <Greek_ALPHA> : "ᾋ" U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <combining_grave> <U1f09> : "ᾋ" U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <U1f09> : "ᾋ" U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <combining_grave> <U0314> <Greek_ALPHA> : "ᾋ" U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <combining_grave> <Multi_key> <parenleft> <Greek_ALPHA> : "ᾋ" U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <U0314> <Greek_ALPHA> : "ᾋ" U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <parenleft> <Greek_ALPHA> : "ᾋ" U1F8B # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <U1f0c> : "ᾌ" U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f0c> : "ᾌ" U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <U1f08> : "ᾌ" U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U1f08> : "ᾌ" U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U1f08> : "ᾌ" U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U1f08> : "ᾌ" U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U1f08> : "ᾌ" U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U1f08> : "ᾌ" U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <U0313> <Greek_ALPHA> : "ᾌ" U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <Multi_key> <parenright> <Greek_ALPHA> : "ᾌ" U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U0313> <Greek_ALPHA> : "ᾌ" U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <parenright> <Greek_ALPHA> : "ᾌ" U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U0313> <Greek_ALPHA> : "ᾌ" U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <parenright> <Greek_ALPHA> : "ᾌ" U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U0313> <Greek_ALPHA> : "ᾌ" U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <parenright> <Greek_ALPHA> : "ᾌ" U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U0313> <Greek_ALPHA> : "ᾌ" U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <parenright> <Greek_ALPHA> : "ᾌ" U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U0313> <Greek_ALPHA> : "ᾌ" U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <parenright> <Greek_ALPHA> : "ᾌ" U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <combining_acute> <U1f08> : "ᾌ" U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <U1f08> : "ᾌ" U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <combining_acute> <U0313> <Greek_ALPHA> : "ᾌ" U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <combining_acute> <Multi_key> <parenright> <Greek_ALPHA> : "ᾌ" U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <U0313> <Greek_ALPHA> : "ᾌ" U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <parenright> <Greek_ALPHA> : "ᾌ" U1F8C # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <U1f0d> : "á¾" U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f0d> : "á¾" U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <U1f09> : "á¾" U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U1f09> : "á¾" U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U1f09> : "á¾" U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U1f09> : "á¾" U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U1f09> : "á¾" U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U1f09> : "á¾" U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <U0314> <Greek_ALPHA> : "á¾" U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <Multi_key> <parenleft> <Greek_ALPHA> : "á¾" U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U0314> <Greek_ALPHA> : "á¾" U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <parenleft> <Greek_ALPHA> : "á¾" U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U0314> <Greek_ALPHA> : "á¾" U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <parenleft> <Greek_ALPHA> : "á¾" U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U0314> <Greek_ALPHA> : "á¾" U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <parenleft> <Greek_ALPHA> : "á¾" U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U0314> <Greek_ALPHA> : "á¾" U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <parenleft> <Greek_ALPHA> : "á¾" U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U0314> <Greek_ALPHA> : "á¾" U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <parenleft> <Greek_ALPHA> : "á¾" U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <combining_acute> <U1f09> : "á¾" U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <U1f09> : "á¾" U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <combining_acute> <U0314> <Greek_ALPHA> : "á¾" U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <combining_acute> <Multi_key> <parenleft> <Greek_ALPHA> : "á¾" U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <U0314> <Greek_ALPHA> : "á¾" U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <parenleft> <Greek_ALPHA> : "á¾" U1F8D # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <U1f0e> : "ᾎ" U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f0e> : "ᾎ" U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <U0342> <U1f08> : "ᾎ" U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <U1f08> : "ᾎ" U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U1f08> : "ᾎ" U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <U1f08> : "ᾎ" U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U1f08> : "ᾎ" U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U1f08> : "ᾎ" U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <U0342> <U0313> <Greek_ALPHA> : "ᾎ" U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <U0342> <Multi_key> <parenright> <Greek_ALPHA> : "ᾎ" U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <U0313> <Greek_ALPHA> : "ᾎ" U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <Multi_key> <parenright> <Greek_ALPHA> : "ᾎ" U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U0313> <Greek_ALPHA> : "ᾎ" U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <parenright> <Greek_ALPHA> : "ᾎ" U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <U0313> <Greek_ALPHA> : "ᾎ" U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <parenright> <Greek_ALPHA> : "ᾎ" U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U0313> <Greek_ALPHA> : "ᾎ" U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <parenright> <Greek_ALPHA> : "ᾎ" U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U0313> <Greek_ALPHA> : "ᾎ" U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <parenright> <Greek_ALPHA> : "ᾎ" U1F8E # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <U1f0f> : "á¾" U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f0f> : "á¾" U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <U0342> <U1f09> : "á¾" U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <U1f09> : "á¾" U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U1f09> : "á¾" U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <U1f09> : "á¾" U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U1f09> : "á¾" U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U1f09> : "á¾" U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <U0342> <U0314> <Greek_ALPHA> : "á¾" U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <U0342> <Multi_key> <parenleft> <Greek_ALPHA> : "á¾" U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <U0314> <Greek_ALPHA> : "á¾" U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <Multi_key> <parenleft> <Greek_ALPHA> : "á¾" U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U0314> <Greek_ALPHA> : "á¾" U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <parenleft> <Greek_ALPHA> : "á¾" U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <U0314> <Greek_ALPHA> : "á¾" U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <parenleft> <Greek_ALPHA> : "á¾" U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U0314> <Greek_ALPHA> : "á¾" U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <parenleft> <Greek_ALPHA> : "á¾" U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U0314> <Greek_ALPHA> : "á¾" U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <parenleft> <Greek_ALPHA> : "á¾" U1F8F # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <U1f20> : "á¾" U1F90 # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f20> : "á¾" U1F90 # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
+<dead_iota> <U0313> <Greek_eta> : "á¾" U1F90 # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <parenright> <Greek_eta> : "á¾" U1F90 # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U0313> <Greek_eta> : "á¾" U1F90 # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <parenright> <Greek_eta> : "á¾" U1F90 # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
+<dead_iota> <U1f21> : "ᾑ" U1F91 # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f21> : "ᾑ" U1F91 # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
+<dead_iota> <U0314> <Greek_eta> : "ᾑ" U1F91 # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <parenleft> <Greek_eta> : "ᾑ" U1F91 # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U0314> <Greek_eta> : "ᾑ" U1F91 # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <parenleft> <Greek_eta> : "ᾑ" U1F91 # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
+<dead_iota> <U1f22> : "á¾’" U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f22> : "á¾’" U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <U1f20> : "á¾’" U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U1f20> : "á¾’" U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U1f20> : "á¾’" U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U1f20> : "á¾’" U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <U0313> <Greek_eta> : "á¾’" U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <Multi_key> <parenright> <Greek_eta> : "á¾’" U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U0313> <Greek_eta> : "á¾’" U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <parenright> <Greek_eta> : "á¾’" U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U0313> <Greek_eta> : "á¾’" U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <parenright> <Greek_eta> : "á¾’" U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U0313> <Greek_eta> : "á¾’" U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <parenright> <Greek_eta> : "á¾’" U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <combining_grave> <U1f20> : "á¾’" U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <U1f20> : "á¾’" U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <combining_grave> <U0313> <Greek_eta> : "á¾’" U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <combining_grave> <Multi_key> <parenright> <Greek_eta> : "á¾’" U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <U0313> <Greek_eta> : "á¾’" U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <parenright> <Greek_eta> : "á¾’" U1F92 # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <U1f23> : "ᾓ" U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f23> : "ᾓ" U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <U1f21> : "ᾓ" U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U1f21> : "ᾓ" U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U1f21> : "ᾓ" U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U1f21> : "ᾓ" U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <U0314> <Greek_eta> : "ᾓ" U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <Multi_key> <parenleft> <Greek_eta> : "ᾓ" U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U0314> <Greek_eta> : "ᾓ" U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <parenleft> <Greek_eta> : "ᾓ" U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U0314> <Greek_eta> : "ᾓ" U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <parenleft> <Greek_eta> : "ᾓ" U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U0314> <Greek_eta> : "ᾓ" U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <parenleft> <Greek_eta> : "ᾓ" U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <combining_grave> <U1f21> : "ᾓ" U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <U1f21> : "ᾓ" U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <combining_grave> <U0314> <Greek_eta> : "ᾓ" U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <combining_grave> <Multi_key> <parenleft> <Greek_eta> : "ᾓ" U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <U0314> <Greek_eta> : "ᾓ" U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <parenleft> <Greek_eta> : "ᾓ" U1F93 # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <U1f24> : "á¾”" U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f24> : "á¾”" U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <U1f20> : "á¾”" U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U1f20> : "á¾”" U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U1f20> : "á¾”" U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U1f20> : "á¾”" U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U1f20> : "á¾”" U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U1f20> : "á¾”" U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <U0313> <Greek_eta> : "á¾”" U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <Multi_key> <parenright> <Greek_eta> : "á¾”" U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U0313> <Greek_eta> : "á¾”" U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <parenright> <Greek_eta> : "á¾”" U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U0313> <Greek_eta> : "á¾”" U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <parenright> <Greek_eta> : "á¾”" U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U0313> <Greek_eta> : "á¾”" U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <parenright> <Greek_eta> : "á¾”" U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U0313> <Greek_eta> : "á¾”" U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <parenright> <Greek_eta> : "á¾”" U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U0313> <Greek_eta> : "á¾”" U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <parenright> <Greek_eta> : "á¾”" U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <combining_acute> <U1f20> : "á¾”" U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <U1f20> : "á¾”" U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <combining_acute> <U0313> <Greek_eta> : "á¾”" U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <combining_acute> <Multi_key> <parenright> <Greek_eta> : "á¾”" U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <U0313> <Greek_eta> : "á¾”" U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <parenright> <Greek_eta> : "á¾”" U1F94 # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <U1f25> : "ᾕ" U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f25> : "ᾕ" U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <U1f21> : "ᾕ" U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U1f21> : "ᾕ" U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U1f21> : "ᾕ" U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U1f21> : "ᾕ" U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U1f21> : "ᾕ" U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U1f21> : "ᾕ" U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <U0314> <Greek_eta> : "ᾕ" U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <Multi_key> <parenleft> <Greek_eta> : "ᾕ" U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U0314> <Greek_eta> : "ᾕ" U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <parenleft> <Greek_eta> : "ᾕ" U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U0314> <Greek_eta> : "ᾕ" U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <parenleft> <Greek_eta> : "ᾕ" U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U0314> <Greek_eta> : "ᾕ" U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <parenleft> <Greek_eta> : "ᾕ" U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U0314> <Greek_eta> : "ᾕ" U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <parenleft> <Greek_eta> : "ᾕ" U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U0314> <Greek_eta> : "ᾕ" U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <parenleft> <Greek_eta> : "ᾕ" U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <combining_acute> <U1f21> : "ᾕ" U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <U1f21> : "ᾕ" U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <combining_acute> <U0314> <Greek_eta> : "ᾕ" U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <combining_acute> <Multi_key> <parenleft> <Greek_eta> : "ᾕ" U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <U0314> <Greek_eta> : "ᾕ" U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <parenleft> <Greek_eta> : "ᾕ" U1F95 # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <U1f26> : "á¾–" U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f26> : "á¾–" U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U0342> <U1f20> : "á¾–" U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <U1f20> : "á¾–" U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U1f20> : "á¾–" U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <U1f20> : "á¾–" U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U1f20> : "á¾–" U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U1f20> : "á¾–" U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U0342> <U0313> <Greek_eta> : "á¾–" U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U0342> <Multi_key> <parenright> <Greek_eta> : "á¾–" U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <U0313> <Greek_eta> : "á¾–" U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <Multi_key> <parenright> <Greek_eta> : "á¾–" U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U0313> <Greek_eta> : "á¾–" U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <parenright> <Greek_eta> : "á¾–" U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <U0313> <Greek_eta> : "á¾–" U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <parenright> <Greek_eta> : "á¾–" U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U0313> <Greek_eta> : "á¾–" U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <parenright> <Greek_eta> : "á¾–" U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U0313> <Greek_eta> : "á¾–" U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <parenright> <Greek_eta> : "á¾–" U1F96 # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U1f27> : "á¾—" U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f27> : "á¾—" U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U0342> <U1f21> : "á¾—" U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <U1f21> : "á¾—" U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U1f21> : "á¾—" U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <U1f21> : "á¾—" U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U1f21> : "á¾—" U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U1f21> : "á¾—" U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U0342> <U0314> <Greek_eta> : "á¾—" U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U0342> <Multi_key> <parenleft> <Greek_eta> : "á¾—" U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <U0314> <Greek_eta> : "á¾—" U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <Multi_key> <parenleft> <Greek_eta> : "á¾—" U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U0314> <Greek_eta> : "á¾—" U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <parenleft> <Greek_eta> : "á¾—" U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <U0314> <Greek_eta> : "á¾—" U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <parenleft> <Greek_eta> : "á¾—" U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U0314> <Greek_eta> : "á¾—" U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <parenleft> <Greek_eta> : "á¾—" U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U0314> <Greek_eta> : "á¾—" U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <parenleft> <Greek_eta> : "á¾—" U1F97 # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U1f28> : "ᾘ" U1F98 # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f28> : "ᾘ" U1F98 # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
+<dead_iota> <U0313> <Greek_ETA> : "ᾘ" U1F98 # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <parenright> <Greek_ETA> : "ᾘ" U1F98 # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U0313> <Greek_ETA> : "ᾘ" U1F98 # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <parenright> <Greek_ETA> : "ᾘ" U1F98 # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
+<dead_iota> <U1f29> : "á¾™" U1F99 # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f29> : "á¾™" U1F99 # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
+<dead_iota> <U0314> <Greek_ETA> : "á¾™" U1F99 # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <parenleft> <Greek_ETA> : "á¾™" U1F99 # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U0314> <Greek_ETA> : "á¾™" U1F99 # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <parenleft> <Greek_ETA> : "á¾™" U1F99 # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
+<dead_iota> <U1f2a> : "ᾚ" U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f2a> : "ᾚ" U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <U1f28> : "ᾚ" U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U1f28> : "ᾚ" U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U1f28> : "ᾚ" U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U1f28> : "ᾚ" U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <U0313> <Greek_ETA> : "ᾚ" U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <Multi_key> <parenright> <Greek_ETA> : "ᾚ" U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U0313> <Greek_ETA> : "ᾚ" U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <parenright> <Greek_ETA> : "ᾚ" U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U0313> <Greek_ETA> : "ᾚ" U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <parenright> <Greek_ETA> : "ᾚ" U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U0313> <Greek_ETA> : "ᾚ" U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <parenright> <Greek_ETA> : "ᾚ" U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <combining_grave> <U1f28> : "ᾚ" U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <U1f28> : "ᾚ" U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <combining_grave> <U0313> <Greek_ETA> : "ᾚ" U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <combining_grave> <Multi_key> <parenright> <Greek_ETA> : "ᾚ" U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <U0313> <Greek_ETA> : "ᾚ" U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <parenright> <Greek_ETA> : "ᾚ" U1F9A # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <U1f2b> : "á¾›" U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f2b> : "á¾›" U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <U1f29> : "á¾›" U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U1f29> : "á¾›" U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U1f29> : "á¾›" U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U1f29> : "á¾›" U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <U0314> <Greek_ETA> : "á¾›" U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <Multi_key> <parenleft> <Greek_ETA> : "á¾›" U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U0314> <Greek_ETA> : "á¾›" U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <parenleft> <Greek_ETA> : "á¾›" U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U0314> <Greek_ETA> : "á¾›" U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <parenleft> <Greek_ETA> : "á¾›" U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U0314> <Greek_ETA> : "á¾›" U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <parenleft> <Greek_ETA> : "á¾›" U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <combining_grave> <U1f29> : "á¾›" U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <U1f29> : "á¾›" U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <combining_grave> <U0314> <Greek_ETA> : "á¾›" U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <combining_grave> <Multi_key> <parenleft> <Greek_ETA> : "á¾›" U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <U0314> <Greek_ETA> : "á¾›" U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <parenleft> <Greek_ETA> : "á¾›" U1F9B # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <U1f2c> : "ᾜ" U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f2c> : "ᾜ" U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <U1f28> : "ᾜ" U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U1f28> : "ᾜ" U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U1f28> : "ᾜ" U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U1f28> : "ᾜ" U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U1f28> : "ᾜ" U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U1f28> : "ᾜ" U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <U0313> <Greek_ETA> : "ᾜ" U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <Multi_key> <parenright> <Greek_ETA> : "ᾜ" U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U0313> <Greek_ETA> : "ᾜ" U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <parenright> <Greek_ETA> : "ᾜ" U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U0313> <Greek_ETA> : "ᾜ" U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <parenright> <Greek_ETA> : "ᾜ" U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U0313> <Greek_ETA> : "ᾜ" U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <parenright> <Greek_ETA> : "ᾜ" U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U0313> <Greek_ETA> : "ᾜ" U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <parenright> <Greek_ETA> : "ᾜ" U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U0313> <Greek_ETA> : "ᾜ" U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <parenright> <Greek_ETA> : "ᾜ" U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <combining_acute> <U1f28> : "ᾜ" U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <U1f28> : "ᾜ" U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <combining_acute> <U0313> <Greek_ETA> : "ᾜ" U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <combining_acute> <Multi_key> <parenright> <Greek_ETA> : "ᾜ" U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <U0313> <Greek_ETA> : "ᾜ" U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <parenright> <Greek_ETA> : "ᾜ" U1F9C # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <U1f2d> : "á¾" U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f2d> : "á¾" U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <U1f29> : "á¾" U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U1f29> : "á¾" U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U1f29> : "á¾" U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U1f29> : "á¾" U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U1f29> : "á¾" U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U1f29> : "á¾" U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <U0314> <Greek_ETA> : "á¾" U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <Multi_key> <parenleft> <Greek_ETA> : "á¾" U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U0314> <Greek_ETA> : "á¾" U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <parenleft> <Greek_ETA> : "á¾" U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U0314> <Greek_ETA> : "á¾" U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <parenleft> <Greek_ETA> : "á¾" U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U0314> <Greek_ETA> : "á¾" U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <parenleft> <Greek_ETA> : "á¾" U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U0314> <Greek_ETA> : "á¾" U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <parenleft> <Greek_ETA> : "á¾" U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U0314> <Greek_ETA> : "á¾" U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <parenleft> <Greek_ETA> : "á¾" U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <combining_acute> <U1f29> : "á¾" U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <U1f29> : "á¾" U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <combining_acute> <U0314> <Greek_ETA> : "á¾" U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <combining_acute> <Multi_key> <parenleft> <Greek_ETA> : "á¾" U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <U0314> <Greek_ETA> : "á¾" U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <parenleft> <Greek_ETA> : "á¾" U1F9D # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <U1f2e> : "ᾞ" U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f2e> : "ᾞ" U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <U0342> <U1f28> : "ᾞ" U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <U1f28> : "ᾞ" U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U1f28> : "ᾞ" U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <U1f28> : "ᾞ" U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U1f28> : "ᾞ" U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U1f28> : "ᾞ" U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <U0342> <U0313> <Greek_ETA> : "ᾞ" U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <U0342> <Multi_key> <parenright> <Greek_ETA> : "ᾞ" U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <U0313> <Greek_ETA> : "ᾞ" U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <Multi_key> <parenright> <Greek_ETA> : "ᾞ" U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U0313> <Greek_ETA> : "ᾞ" U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <parenright> <Greek_ETA> : "ᾞ" U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <U0313> <Greek_ETA> : "ᾞ" U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <parenright> <Greek_ETA> : "ᾞ" U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U0313> <Greek_ETA> : "ᾞ" U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <parenright> <Greek_ETA> : "ᾞ" U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U0313> <Greek_ETA> : "ᾞ" U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <parenright> <Greek_ETA> : "ᾞ" U1F9E # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <U1f2f> : "ᾟ" U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f2f> : "ᾟ" U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <U0342> <U1f29> : "ᾟ" U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <U1f29> : "ᾟ" U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U1f29> : "ᾟ" U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <U1f29> : "ᾟ" U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U1f29> : "ᾟ" U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U1f29> : "ᾟ" U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <U0342> <U0314> <Greek_ETA> : "ᾟ" U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <U0342> <Multi_key> <parenleft> <Greek_ETA> : "ᾟ" U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <U0314> <Greek_ETA> : "ᾟ" U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <Multi_key> <parenleft> <Greek_ETA> : "ᾟ" U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U0314> <Greek_ETA> : "ᾟ" U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <parenleft> <Greek_ETA> : "ᾟ" U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <U0314> <Greek_ETA> : "ᾟ" U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <parenleft> <Greek_ETA> : "ᾟ" U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U0314> <Greek_ETA> : "ᾟ" U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <parenleft> <Greek_ETA> : "ᾟ" U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U0314> <Greek_ETA> : "ᾟ" U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <parenleft> <Greek_ETA> : "ᾟ" U1F9F # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <U1f60> : "á¾ " U1FA0 # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f60> : "á¾ " U1FA0 # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
+<dead_iota> <U0313> <Greek_omega> : "á¾ " U1FA0 # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <parenright> <Greek_omega> : "á¾ " U1FA0 # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U0313> <Greek_omega> : "á¾ " U1FA0 # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <parenright> <Greek_omega> : "á¾ " U1FA0 # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
+<dead_iota> <U1f61> : "ᾡ" U1FA1 # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f61> : "ᾡ" U1FA1 # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
+<dead_iota> <U0314> <Greek_omega> : "ᾡ" U1FA1 # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <parenleft> <Greek_omega> : "ᾡ" U1FA1 # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U0314> <Greek_omega> : "ᾡ" U1FA1 # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <parenleft> <Greek_omega> : "ᾡ" U1FA1 # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
+<dead_iota> <U1f62> : "á¾¢" U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f62> : "á¾¢" U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <U1f60> : "á¾¢" U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U1f60> : "á¾¢" U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U1f60> : "á¾¢" U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U1f60> : "á¾¢" U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <U0313> <Greek_omega> : "á¾¢" U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <Multi_key> <parenright> <Greek_omega> : "á¾¢" U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U0313> <Greek_omega> : "á¾¢" U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <parenright> <Greek_omega> : "á¾¢" U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U0313> <Greek_omega> : "á¾¢" U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <parenright> <Greek_omega> : "á¾¢" U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U0313> <Greek_omega> : "á¾¢" U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <parenright> <Greek_omega> : "á¾¢" U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <combining_grave> <U1f60> : "á¾¢" U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <U1f60> : "á¾¢" U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <combining_grave> <U0313> <Greek_omega> : "á¾¢" U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <combining_grave> <Multi_key> <parenright> <Greek_omega> : "á¾¢" U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <U0313> <Greek_omega> : "á¾¢" U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <parenright> <Greek_omega> : "á¾¢" U1FA2 # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <U1f63> : "á¾£" U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f63> : "á¾£" U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <U1f61> : "á¾£" U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U1f61> : "á¾£" U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U1f61> : "á¾£" U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U1f61> : "á¾£" U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <U0314> <Greek_omega> : "á¾£" U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <Multi_key> <parenleft> <Greek_omega> : "á¾£" U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U0314> <Greek_omega> : "á¾£" U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <parenleft> <Greek_omega> : "á¾£" U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U0314> <Greek_omega> : "á¾£" U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <parenleft> <Greek_omega> : "á¾£" U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U0314> <Greek_omega> : "á¾£" U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <parenleft> <Greek_omega> : "á¾£" U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <combining_grave> <U1f61> : "á¾£" U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <U1f61> : "á¾£" U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <combining_grave> <U0314> <Greek_omega> : "á¾£" U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <combining_grave> <Multi_key> <parenleft> <Greek_omega> : "á¾£" U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <U0314> <Greek_omega> : "á¾£" U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <parenleft> <Greek_omega> : "á¾£" U1FA3 # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+<dead_iota> <U1f64> : "ᾤ" U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f64> : "ᾤ" U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <U1f60> : "ᾤ" U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U1f60> : "ᾤ" U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U1f60> : "ᾤ" U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U1f60> : "ᾤ" U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U1f60> : "ᾤ" U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U1f60> : "ᾤ" U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <U0313> <Greek_omega> : "ᾤ" U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <Multi_key> <parenright> <Greek_omega> : "ᾤ" U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U0313> <Greek_omega> : "ᾤ" U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <parenright> <Greek_omega> : "ᾤ" U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U0313> <Greek_omega> : "ᾤ" U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <parenright> <Greek_omega> : "ᾤ" U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U0313> <Greek_omega> : "ᾤ" U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <parenright> <Greek_omega> : "ᾤ" U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U0313> <Greek_omega> : "ᾤ" U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <parenright> <Greek_omega> : "ᾤ" U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U0313> <Greek_omega> : "ᾤ" U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <parenright> <Greek_omega> : "ᾤ" U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <combining_acute> <U1f60> : "ᾤ" U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <U1f60> : "ᾤ" U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <combining_acute> <U0313> <Greek_omega> : "ᾤ" U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <combining_acute> <Multi_key> <parenright> <Greek_omega> : "ᾤ" U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <U0313> <Greek_omega> : "ᾤ" U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <parenright> <Greek_omega> : "ᾤ" U1FA4 # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <U1f65> : "á¾¥" U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f65> : "á¾¥" U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <U1f61> : "á¾¥" U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U1f61> : "á¾¥" U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U1f61> : "á¾¥" U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U1f61> : "á¾¥" U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U1f61> : "á¾¥" U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U1f61> : "á¾¥" U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <U0314> <Greek_omega> : "á¾¥" U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <Multi_key> <parenleft> <Greek_omega> : "á¾¥" U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U0314> <Greek_omega> : "á¾¥" U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <parenleft> <Greek_omega> : "á¾¥" U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U0314> <Greek_omega> : "á¾¥" U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <parenleft> <Greek_omega> : "á¾¥" U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U0314> <Greek_omega> : "á¾¥" U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <parenleft> <Greek_omega> : "á¾¥" U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U0314> <Greek_omega> : "á¾¥" U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <parenleft> <Greek_omega> : "á¾¥" U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U0314> <Greek_omega> : "á¾¥" U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <parenleft> <Greek_omega> : "á¾¥" U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <combining_acute> <U1f61> : "á¾¥" U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <U1f61> : "á¾¥" U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <combining_acute> <U0314> <Greek_omega> : "á¾¥" U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <combining_acute> <Multi_key> <parenleft> <Greek_omega> : "á¾¥" U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <U0314> <Greek_omega> : "á¾¥" U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <parenleft> <Greek_omega> : "á¾¥" U1FA5 # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+<dead_iota> <U1f66> : "ᾦ" U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f66> : "ᾦ" U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U0342> <U1f60> : "ᾦ" U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <U1f60> : "ᾦ" U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U1f60> : "ᾦ" U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <U1f60> : "ᾦ" U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U1f60> : "ᾦ" U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U1f60> : "ᾦ" U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U0342> <U0313> <Greek_omega> : "ᾦ" U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U0342> <Multi_key> <parenright> <Greek_omega> : "ᾦ" U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <U0313> <Greek_omega> : "ᾦ" U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <Multi_key> <parenright> <Greek_omega> : "ᾦ" U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U0313> <Greek_omega> : "ᾦ" U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <parenright> <Greek_omega> : "ᾦ" U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <U0313> <Greek_omega> : "ᾦ" U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <parenright> <Greek_omega> : "ᾦ" U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U0313> <Greek_omega> : "ᾦ" U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <parenright> <Greek_omega> : "ᾦ" U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U0313> <Greek_omega> : "ᾦ" U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <parenright> <Greek_omega> : "ᾦ" U1FA6 # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U1f67> : "ᾧ" U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f67> : "ᾧ" U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U0342> <U1f61> : "ᾧ" U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <U1f61> : "ᾧ" U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U1f61> : "ᾧ" U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <U1f61> : "ᾧ" U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U1f61> : "ᾧ" U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U1f61> : "ᾧ" U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U0342> <U0314> <Greek_omega> : "ᾧ" U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U0342> <Multi_key> <parenleft> <Greek_omega> : "ᾧ" U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <U0314> <Greek_omega> : "ᾧ" U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <Multi_key> <parenleft> <Greek_omega> : "ᾧ" U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U0314> <Greek_omega> : "ᾧ" U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <parenleft> <Greek_omega> : "ᾧ" U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <U0314> <Greek_omega> : "ᾧ" U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <parenleft> <Greek_omega> : "ᾧ" U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U0314> <Greek_omega> : "ᾧ" U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <parenleft> <Greek_omega> : "ᾧ" U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U0314> <Greek_omega> : "ᾧ" U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <parenleft> <Greek_omega> : "ᾧ" U1FA7 # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U1f68> : "ᾨ" U1FA8 # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f68> : "ᾨ" U1FA8 # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
+<dead_iota> <U0313> <Greek_OMEGA> : "ᾨ" U1FA8 # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <parenright> <Greek_OMEGA> : "ᾨ" U1FA8 # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U0313> <Greek_OMEGA> : "ᾨ" U1FA8 # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <parenright> <Greek_OMEGA> : "ᾨ" U1FA8 # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
+<dead_iota> <U1f69> : "ᾩ" U1FA9 # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f69> : "ᾩ" U1FA9 # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
+<dead_iota> <U0314> <Greek_OMEGA> : "ᾩ" U1FA9 # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <parenleft> <Greek_OMEGA> : "ᾩ" U1FA9 # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U0314> <Greek_OMEGA> : "ᾩ" U1FA9 # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <parenleft> <Greek_OMEGA> : "ᾩ" U1FA9 # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
+<dead_iota> <U1f6a> : "ᾪ" U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f6a> : "ᾪ" U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <U1f68> : "ᾪ" U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U1f68> : "ᾪ" U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U1f68> : "ᾪ" U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U1f68> : "ᾪ" U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <U0313> <Greek_OMEGA> : "ᾪ" U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <Multi_key> <parenright> <Greek_OMEGA> : "ᾪ" U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U0313> <Greek_OMEGA> : "ᾪ" U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <parenright> <Greek_OMEGA> : "ᾪ" U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U0313> <Greek_OMEGA> : "ᾪ" U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <parenright> <Greek_OMEGA> : "ᾪ" U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U0313> <Greek_OMEGA> : "ᾪ" U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <parenright> <Greek_OMEGA> : "ᾪ" U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <combining_grave> <U1f68> : "ᾪ" U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <U1f68> : "ᾪ" U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <combining_grave> <U0313> <Greek_OMEGA> : "ᾪ" U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <combining_grave> <Multi_key> <parenright> <Greek_OMEGA> : "ᾪ" U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <U0313> <Greek_OMEGA> : "ᾪ" U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <parenright> <Greek_OMEGA> : "ᾪ" U1FAA # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <U1f6b> : "ᾫ" U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f6b> : "ᾫ" U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <U1f69> : "ᾫ" U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U1f69> : "ᾫ" U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U1f69> : "ᾫ" U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U1f69> : "ᾫ" U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <U0314> <Greek_OMEGA> : "ᾫ" U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <dead_grave> <Multi_key> <parenleft> <Greek_OMEGA> : "ᾫ" U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <U0314> <Greek_OMEGA> : "ᾫ" U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <parenleft> <Greek_OMEGA> : "ᾫ" U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <U0314> <Greek_OMEGA> : "ᾫ" U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <parenleft> <Greek_OMEGA> : "ᾫ" U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <U0314> <Greek_OMEGA> : "ᾫ" U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <parenleft> <Greek_OMEGA> : "ᾫ" U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <combining_grave> <U1f69> : "ᾫ" U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <U1f69> : "ᾫ" U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <combining_grave> <U0314> <Greek_OMEGA> : "ᾫ" U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <combining_grave> <Multi_key> <parenleft> <Greek_OMEGA> : "ᾫ" U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <U0314> <Greek_OMEGA> : "ᾫ" U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <parenleft> <Greek_OMEGA> : "ᾫ" U1FAB # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+<dead_iota> <U1f6c> : "ᾬ" U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f6c> : "ᾬ" U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <U1f68> : "ᾬ" U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U1f68> : "ᾬ" U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U1f68> : "ᾬ" U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U1f68> : "ᾬ" U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U1f68> : "ᾬ" U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U1f68> : "ᾬ" U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <U0313> <Greek_OMEGA> : "ᾬ" U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <Multi_key> <parenright> <Greek_OMEGA> : "ᾬ" U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U0313> <Greek_OMEGA> : "ᾬ" U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <parenright> <Greek_OMEGA> : "ᾬ" U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U0313> <Greek_OMEGA> : "ᾬ" U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <parenright> <Greek_OMEGA> : "ᾬ" U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U0313> <Greek_OMEGA> : "ᾬ" U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <parenright> <Greek_OMEGA> : "ᾬ" U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U0313> <Greek_OMEGA> : "ᾬ" U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <parenright> <Greek_OMEGA> : "ᾬ" U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U0313> <Greek_OMEGA> : "ᾬ" U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <parenright> <Greek_OMEGA> : "ᾬ" U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <combining_acute> <U1f68> : "ᾬ" U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <U1f68> : "ᾬ" U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <combining_acute> <U0313> <Greek_OMEGA> : "ᾬ" U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <combining_acute> <Multi_key> <parenright> <Greek_OMEGA> : "ᾬ" U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <U0313> <Greek_OMEGA> : "ᾬ" U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <parenright> <Greek_OMEGA> : "ᾬ" U1FAC # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <U1f6d> : "á¾­" U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f6d> : "á¾­" U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <U1f69> : "á¾­" U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U1f69> : "á¾­" U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U1f69> : "á¾­" U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U1f69> : "á¾­" U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U1f69> : "á¾­" U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U1f69> : "á¾­" U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <U0314> <Greek_OMEGA> : "á¾­" U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <dead_acute> <Multi_key> <parenleft> <Greek_OMEGA> : "á¾­" U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <U0314> <Greek_OMEGA> : "á¾­" U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <parenleft> <Greek_OMEGA> : "á¾­" U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <U0314> <Greek_OMEGA> : "á¾­" U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <parenleft> <Greek_OMEGA> : "á¾­" U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <U0314> <Greek_OMEGA> : "á¾­" U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <parenleft> <Greek_OMEGA> : "á¾­" U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <U0314> <Greek_OMEGA> : "á¾­" U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <parenleft> <Greek_OMEGA> : "á¾­" U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <U0314> <Greek_OMEGA> : "á¾­" U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <parenleft> <Greek_OMEGA> : "á¾­" U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <combining_acute> <U1f69> : "á¾­" U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <U1f69> : "á¾­" U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <combining_acute> <U0314> <Greek_OMEGA> : "á¾­" U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <combining_acute> <Multi_key> <parenleft> <Greek_OMEGA> : "á¾­" U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <U0314> <Greek_OMEGA> : "á¾­" U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <parenleft> <Greek_OMEGA> : "á¾­" U1FAD # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+<dead_iota> <U1f6e> : "á¾®" U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f6e> : "á¾®" U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <U0342> <U1f68> : "á¾®" U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <U1f68> : "á¾®" U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U1f68> : "á¾®" U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <U1f68> : "á¾®" U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U1f68> : "á¾®" U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U1f68> : "á¾®" U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <U0342> <U0313> <Greek_OMEGA> : "á¾®" U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <U0342> <Multi_key> <parenright> <Greek_OMEGA> : "á¾®" U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <U0313> <Greek_OMEGA> : "á¾®" U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <Multi_key> <parenright> <Greek_OMEGA> : "á¾®" U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U0313> <Greek_OMEGA> : "á¾®" U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <parenright> <Greek_OMEGA> : "á¾®" U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <U0313> <Greek_OMEGA> : "á¾®" U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <parenright> <Greek_OMEGA> : "á¾®" U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U0313> <Greek_OMEGA> : "á¾®" U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <parenright> <Greek_OMEGA> : "á¾®" U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U0313> <Greek_OMEGA> : "á¾®" U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <parenright> <Greek_OMEGA> : "á¾®" U1FAE # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <U1f6f> : "ᾯ" U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f6f> : "ᾯ" U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <U0342> <U1f69> : "ᾯ" U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <U1f69> : "ᾯ" U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U1f69> : "ᾯ" U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <U1f69> : "ᾯ" U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U1f69> : "ᾯ" U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U1f69> : "ᾯ" U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <U0342> <U0314> <Greek_OMEGA> : "ᾯ" U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <U0342> <Multi_key> <parenleft> <Greek_OMEGA> : "ᾯ" U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <U0314> <Greek_OMEGA> : "ᾯ" U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <dead_tilde> <Multi_key> <parenleft> <Greek_OMEGA> : "ᾯ" U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <U0314> <Greek_OMEGA> : "ᾯ" U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <parenleft> <Greek_OMEGA> : "ᾯ" U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <U0314> <Greek_OMEGA> : "ᾯ" U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <parenleft> <Greek_OMEGA> : "ᾯ" U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <U0314> <Greek_OMEGA> : "ᾯ" U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <parenleft> <Greek_OMEGA> : "ᾯ" U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <U0314> <Greek_OMEGA> : "ᾯ" U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <parenleft> <Greek_OMEGA> : "ᾯ" U1FAF # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+<dead_breve> <Greek_alpha> : "á¾°" U1FB0 # GREEK SMALL LETTER ALPHA WITH VRACHY
+<Multi_key> <U> <Greek_alpha> : "á¾°" U1FB0 # GREEK SMALL LETTER ALPHA WITH VRACHY
+<Multi_key> <b> <Greek_alpha> : "á¾°" U1FB0 # GREEK SMALL LETTER ALPHA WITH VRACHY
+<dead_macron> <Greek_alpha> : "á¾±" U1FB1 # GREEK SMALL LETTER ALPHA WITH MACRON
+<Multi_key> <macron> <Greek_alpha> : "á¾±" U1FB1 # GREEK SMALL LETTER ALPHA WITH MACRON
+<Multi_key> <underscore> <Greek_alpha> : "á¾±" U1FB1 # GREEK SMALL LETTER ALPHA WITH MACRON
+<dead_iota> <U1f70> : "á¾²" U1FB2 # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f70> : "á¾²" U1FB2 # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <Greek_alpha> : "á¾²" U1FB2 # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <Greek_alpha> : "á¾²" U1FB2 # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <Greek_alpha> : "á¾²" U1FB2 # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <Greek_alpha> : "á¾²" U1FB2 # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
+<dead_iota> <combining_grave> <Greek_alpha> : "á¾²" U1FB2 # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <Greek_alpha> : "á¾²" U1FB2 # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
+<dead_iota> <Greek_alpha> : "á¾³" U1FB3 # GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <Greek_alpha> : "á¾³" U1FB3 # GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
+<dead_iota> <Greek_alphaaccent> : "á¾´" U1FB4 # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <Greek_alphaaccent> : "á¾´" U1FB4 # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <Greek_alpha> : "á¾´" U1FB4 # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <Greek_alpha> : "á¾´" U1FB4 # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <Greek_alpha> : "á¾´" U1FB4 # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <Greek_alpha> : "á¾´" U1FB4 # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <Greek_alpha> : "á¾´" U1FB4 # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <Greek_alpha> : "á¾´" U1FB4 # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+<dead_iota> <combining_acute> <Greek_alpha> : "á¾´" U1FB4 # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <Greek_alpha> : "á¾´" U1FB4 # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+<U0342> <Greek_alpha> : "ᾶ" U1FB6 # GREEK SMALL LETTER ALPHA WITH PERISPOMENI
+<dead_tilde> <Greek_alpha> : "ᾶ" U1FB6 # GREEK SMALL LETTER ALPHA WITH PERISPOMENI
+<Multi_key> <asciitilde> <Greek_alpha> : "ᾶ" U1FB6 # GREEK SMALL LETTER ALPHA WITH PERISPOMENI
+<dead_iota> <U1fb6> : "á¾·" U1FB7 # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1fb6> : "á¾·" U1FB7 # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U0342> <Greek_alpha> : "á¾·" U1FB7 # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <Greek_alpha> : "á¾·" U1FB7 # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <Greek_alpha> : "á¾·" U1FB7 # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <Greek_alpha> : "á¾·" U1FB7 # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <Greek_alpha> : "á¾·" U1FB7 # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <Greek_alpha> : "á¾·" U1FB7 # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
+<dead_breve> <Greek_ALPHA> : "Ᾰ" U1FB8 # GREEK CAPITAL LETTER ALPHA WITH VRACHY
+<Multi_key> <U> <Greek_ALPHA> : "Ᾰ" U1FB8 # GREEK CAPITAL LETTER ALPHA WITH VRACHY
+<Multi_key> <b> <Greek_ALPHA> : "Ᾰ" U1FB8 # GREEK CAPITAL LETTER ALPHA WITH VRACHY
+<dead_macron> <Greek_ALPHA> : "á¾¹" U1FB9 # GREEK CAPITAL LETTER ALPHA WITH MACRON
+<Multi_key> <macron> <Greek_ALPHA> : "á¾¹" U1FB9 # GREEK CAPITAL LETTER ALPHA WITH MACRON
+<Multi_key> <underscore> <Greek_ALPHA> : "á¾¹" U1FB9 # GREEK CAPITAL LETTER ALPHA WITH MACRON
+<dead_grave> <Greek_ALPHA> : "Ὰ" U1FBA # GREEK CAPITAL LETTER ALPHA WITH VARIA
+<Multi_key> <grave> <Greek_ALPHA> : "Ὰ" U1FBA # GREEK CAPITAL LETTER ALPHA WITH VARIA
+<combining_grave> <Greek_ALPHA> : "Ὰ" U1FBA # GREEK CAPITAL LETTER ALPHA WITH VARIA
+<dead_iota> <Greek_ALPHA> : "á¾¼" U1FBC # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <Greek_ALPHA> : "á¾¼" U1FBC # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
+<Multi_key> <diaeresis> <U0342> : "á¿" U1FC1 # GREEK DIALYTIKA AND PERISPOMENI
+<Multi_key> <diaeresis> <dead_tilde> : "á¿" U1FC1 # GREEK DIALYTIKA AND PERISPOMENI
+<Multi_key> <diaeresis> <asciitilde> : "á¿" U1FC1 # GREEK DIALYTIKA AND PERISPOMENI
+<dead_iota> <U1f74> : "á¿‚" U1FC2 # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f74> : "á¿‚" U1FC2 # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <Greek_eta> : "á¿‚" U1FC2 # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <Greek_eta> : "á¿‚" U1FC2 # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <Greek_eta> : "á¿‚" U1FC2 # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <Greek_eta> : "á¿‚" U1FC2 # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
+<dead_iota> <combining_grave> <Greek_eta> : "á¿‚" U1FC2 # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <Greek_eta> : "á¿‚" U1FC2 # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
+<dead_iota> <Greek_eta> : "ῃ" U1FC3 # GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <Greek_eta> : "ῃ" U1FC3 # GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
+<dead_iota> <Greek_etaaccent> : "á¿„" U1FC4 # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <Greek_etaaccent> : "á¿„" U1FC4 # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <Greek_eta> : "á¿„" U1FC4 # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <Greek_eta> : "á¿„" U1FC4 # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <Greek_eta> : "á¿„" U1FC4 # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <Greek_eta> : "á¿„" U1FC4 # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <Greek_eta> : "á¿„" U1FC4 # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <Greek_eta> : "á¿„" U1FC4 # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+<dead_iota> <combining_acute> <Greek_eta> : "á¿„" U1FC4 # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <Greek_eta> : "á¿„" U1FC4 # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+<U0342> <Greek_eta> : "ῆ" U1FC6 # GREEK SMALL LETTER ETA WITH PERISPOMENI
+<dead_tilde> <Greek_eta> : "ῆ" U1FC6 # GREEK SMALL LETTER ETA WITH PERISPOMENI
+<Multi_key> <asciitilde> <Greek_eta> : "ῆ" U1FC6 # GREEK SMALL LETTER ETA WITH PERISPOMENI
+<dead_iota> <U1fc6> : "ῇ" U1FC7 # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1fc6> : "ῇ" U1FC7 # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U0342> <Greek_eta> : "ῇ" U1FC7 # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <Greek_eta> : "ῇ" U1FC7 # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <Greek_eta> : "ῇ" U1FC7 # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <Greek_eta> : "ῇ" U1FC7 # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <Greek_eta> : "ῇ" U1FC7 # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <Greek_eta> : "ῇ" U1FC7 # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
+<dead_grave> <Greek_EPSILON> : "Ὲ" U1FC8 # GREEK CAPITAL LETTER EPSILON WITH VARIA
+<Multi_key> <grave> <Greek_EPSILON> : "Ὲ" U1FC8 # GREEK CAPITAL LETTER EPSILON WITH VARIA
+<combining_grave> <Greek_EPSILON> : "Ὲ" U1FC8 # GREEK CAPITAL LETTER EPSILON WITH VARIA
+<dead_grave> <Greek_ETA> : "á¿Š" U1FCA # GREEK CAPITAL LETTER ETA WITH VARIA
+<Multi_key> <grave> <Greek_ETA> : "á¿Š" U1FCA # GREEK CAPITAL LETTER ETA WITH VARIA
+<combining_grave> <Greek_ETA> : "á¿Š" U1FCA # GREEK CAPITAL LETTER ETA WITH VARIA
+<dead_iota> <Greek_ETA> : "ῌ" U1FCC # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <Greek_ETA> : "ῌ" U1FCC # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
+<Multi_key> <U1fbf> <dead_grave> : "á¿" U1FCD # GREEK PSILI AND VARIA
+<Multi_key> <U1fbf> <grave> : "á¿" U1FCD # GREEK PSILI AND VARIA
+<Multi_key> <U1fbf> <combining_grave> : "á¿" U1FCD # GREEK PSILI AND VARIA
+<Multi_key> <U1fbf> <dead_acute> : "á¿Ž" U1FCE # GREEK PSILI AND OXIA
+<Multi_key> <U1fbf> <acute> : "á¿Ž" U1FCE # GREEK PSILI AND OXIA
+<Multi_key> <U1fbf> <apostrophe> : "á¿Ž" U1FCE # GREEK PSILI AND OXIA
+<Multi_key> <U1fbf> <combining_acute> : "á¿Ž" U1FCE # GREEK PSILI AND OXIA
+<Multi_key> <U1fbf> <U0342> : "á¿" U1FCF # GREEK PSILI AND PERISPOMENI
+<Multi_key> <U1fbf> <dead_tilde> : "á¿" U1FCF # GREEK PSILI AND PERISPOMENI
+<Multi_key> <U1fbf> <asciitilde> : "á¿" U1FCF # GREEK PSILI AND PERISPOMENI
+<dead_breve> <Greek_iota> : "á¿" U1FD0 # GREEK SMALL LETTER IOTA WITH VRACHY
+<Multi_key> <U> <Greek_iota> : "á¿" U1FD0 # GREEK SMALL LETTER IOTA WITH VRACHY
+<Multi_key> <b> <Greek_iota> : "á¿" U1FD0 # GREEK SMALL LETTER IOTA WITH VRACHY
+<dead_macron> <Greek_iota> : "á¿‘" U1FD1 # GREEK SMALL LETTER IOTA WITH MACRON
+<Multi_key> <macron> <Greek_iota> : "á¿‘" U1FD1 # GREEK SMALL LETTER IOTA WITH MACRON
+<Multi_key> <underscore> <Greek_iota> : "á¿‘" U1FD1 # GREEK SMALL LETTER IOTA WITH MACRON
+<dead_grave> <Greek_iotadieresis> : "á¿’" U1FD2 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
+<Multi_key> <grave> <Greek_iotadieresis> : "á¿’" U1FD2 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
+<dead_grave> <dead_diaeresis> <Greek_iota> : "á¿’" U1FD2 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
+<dead_grave> <Multi_key> <quotedbl> <Greek_iota> : "á¿’" U1FD2 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
+<Multi_key> <grave> <dead_diaeresis> <Greek_iota> : "á¿’" U1FD2 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
+<Multi_key> <grave> <quotedbl> <Greek_iota> : "á¿’" U1FD2 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
+<combining_grave> <Greek_iotadieresis> : "á¿’" U1FD2 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
+<combining_grave> <dead_diaeresis> <Greek_iota> : "á¿’" U1FD2 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
+<combining_grave> <Multi_key> <quotedbl> <Greek_iota> : "á¿’" U1FD2 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
+<U0342> <Greek_iota> : "á¿–" U1FD6 # GREEK SMALL LETTER IOTA WITH PERISPOMENI
+<dead_tilde> <Greek_iota> : "á¿–" U1FD6 # GREEK SMALL LETTER IOTA WITH PERISPOMENI
+<Multi_key> <asciitilde> <Greek_iota> : "á¿–" U1FD6 # GREEK SMALL LETTER IOTA WITH PERISPOMENI
+<U0342> <Greek_iotadieresis> : "á¿—" U1FD7 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
+<dead_tilde> <Greek_iotadieresis> : "á¿—" U1FD7 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
+<Multi_key> <asciitilde> <Greek_iotadieresis> : "á¿—" U1FD7 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
+<U0342> <dead_diaeresis> <Greek_iota> : "á¿—" U1FD7 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
+<U0342> <Multi_key> <quotedbl> <Greek_iota> : "á¿—" U1FD7 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
+<dead_tilde> <dead_diaeresis> <Greek_iota> : "á¿—" U1FD7 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
+<dead_tilde> <Multi_key> <quotedbl> <Greek_iota> : "á¿—" U1FD7 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
+<Multi_key> <asciitilde> <dead_diaeresis> <Greek_iota> : "á¿—" U1FD7 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
+<Multi_key> <asciitilde> <quotedbl> <Greek_iota> : "á¿—" U1FD7 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
+<dead_breve> <Greek_IOTA> : "Ῐ" U1FD8 # GREEK CAPITAL LETTER IOTA WITH VRACHY
+<Multi_key> <U> <Greek_IOTA> : "Ῐ" U1FD8 # GREEK CAPITAL LETTER IOTA WITH VRACHY
+<Multi_key> <b> <Greek_IOTA> : "Ῐ" U1FD8 # GREEK CAPITAL LETTER IOTA WITH VRACHY
+<dead_macron> <Greek_IOTA> : "á¿™" U1FD9 # GREEK CAPITAL LETTER IOTA WITH MACRON
+<Multi_key> <macron> <Greek_IOTA> : "á¿™" U1FD9 # GREEK CAPITAL LETTER IOTA WITH MACRON
+<Multi_key> <underscore> <Greek_IOTA> : "á¿™" U1FD9 # GREEK CAPITAL LETTER IOTA WITH MACRON
+<dead_grave> <Greek_IOTA> : "á¿š" U1FDA # GREEK CAPITAL LETTER IOTA WITH VARIA
+<Multi_key> <grave> <Greek_IOTA> : "á¿š" U1FDA # GREEK CAPITAL LETTER IOTA WITH VARIA
+<combining_grave> <Greek_IOTA> : "á¿š" U1FDA # GREEK CAPITAL LETTER IOTA WITH VARIA
+<Multi_key> <U1ffe> <dead_grave> : "á¿" U1FDD # GREEK DASIA AND VARIA
+<Multi_key> <U1ffe> <grave> : "á¿" U1FDD # GREEK DASIA AND VARIA
+<Multi_key> <U1ffe> <combining_grave> : "á¿" U1FDD # GREEK DASIA AND VARIA
+<Multi_key> <U1ffe> <dead_acute> : "á¿ž" U1FDE # GREEK DASIA AND OXIA
+<Multi_key> <U1ffe> <acute> : "á¿ž" U1FDE # GREEK DASIA AND OXIA
+<Multi_key> <U1ffe> <apostrophe> : "á¿ž" U1FDE # GREEK DASIA AND OXIA
+<Multi_key> <U1ffe> <combining_acute> : "á¿ž" U1FDE # GREEK DASIA AND OXIA
+<Multi_key> <U1ffe> <U0342> : "á¿Ÿ" U1FDF # GREEK DASIA AND PERISPOMENI
+<Multi_key> <U1ffe> <dead_tilde> : "á¿Ÿ" U1FDF # GREEK DASIA AND PERISPOMENI
+<Multi_key> <U1ffe> <asciitilde> : "á¿Ÿ" U1FDF # GREEK DASIA AND PERISPOMENI
+<dead_breve> <Greek_upsilon> : "á¿ " U1FE0 # GREEK SMALL LETTER UPSILON WITH VRACHY
+<Multi_key> <U> <Greek_upsilon> : "á¿ " U1FE0 # GREEK SMALL LETTER UPSILON WITH VRACHY
+<Multi_key> <b> <Greek_upsilon> : "á¿ " U1FE0 # GREEK SMALL LETTER UPSILON WITH VRACHY
+<dead_macron> <Greek_upsilon> : "á¿¡" U1FE1 # GREEK SMALL LETTER UPSILON WITH MACRON
+<Multi_key> <macron> <Greek_upsilon> : "á¿¡" U1FE1 # GREEK SMALL LETTER UPSILON WITH MACRON
+<Multi_key> <underscore> <Greek_upsilon> : "á¿¡" U1FE1 # GREEK SMALL LETTER UPSILON WITH MACRON
+<dead_grave> <Greek_upsilondieresis> : "á¿¢" U1FE2 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
+<Multi_key> <grave> <Greek_upsilondieresis> : "á¿¢" U1FE2 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
+<dead_grave> <dead_diaeresis> <Greek_upsilon> : "á¿¢" U1FE2 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
+<dead_grave> <Multi_key> <quotedbl> <Greek_upsilon> : "á¿¢" U1FE2 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
+<Multi_key> <grave> <dead_diaeresis> <Greek_upsilon> : "á¿¢" U1FE2 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
+<Multi_key> <grave> <quotedbl> <Greek_upsilon> : "á¿¢" U1FE2 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
+<combining_grave> <Greek_upsilondieresis> : "á¿¢" U1FE2 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
+<combining_grave> <dead_diaeresis> <Greek_upsilon> : "á¿¢" U1FE2 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
+<combining_grave> <Multi_key> <quotedbl> <Greek_upsilon> : "á¿¢" U1FE2 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
+<U0313> <Greek_rho> : "ῤ" U1FE4 # GREEK SMALL LETTER RHO WITH PSILI
+<Multi_key> <parenright> <Greek_rho> : "ῤ" U1FE4 # GREEK SMALL LETTER RHO WITH PSILI
+<U0314> <Greek_rho> : "á¿¥" U1FE5 # GREEK SMALL LETTER RHO WITH DASIA
+<Multi_key> <parenleft> <Greek_rho> : "á¿¥" U1FE5 # GREEK SMALL LETTER RHO WITH DASIA
+<U0342> <Greek_upsilon> : "ῦ" U1FE6 # GREEK SMALL LETTER UPSILON WITH PERISPOMENI
+<dead_tilde> <Greek_upsilon> : "ῦ" U1FE6 # GREEK SMALL LETTER UPSILON WITH PERISPOMENI
+<Multi_key> <asciitilde> <Greek_upsilon> : "ῦ" U1FE6 # GREEK SMALL LETTER UPSILON WITH PERISPOMENI
+<U0342> <Greek_upsilondieresis> : "ῧ" U1FE7 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
+<dead_tilde> <Greek_upsilondieresis> : "ῧ" U1FE7 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
+<Multi_key> <asciitilde> <Greek_upsilondieresis> : "ῧ" U1FE7 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
+<U0342> <dead_diaeresis> <Greek_upsilon> : "ῧ" U1FE7 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
+<U0342> <Multi_key> <quotedbl> <Greek_upsilon> : "ῧ" U1FE7 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
+<dead_tilde> <dead_diaeresis> <Greek_upsilon> : "ῧ" U1FE7 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
+<dead_tilde> <Multi_key> <quotedbl> <Greek_upsilon> : "ῧ" U1FE7 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
+<Multi_key> <asciitilde> <dead_diaeresis> <Greek_upsilon> : "ῧ" U1FE7 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
+<Multi_key> <asciitilde> <quotedbl> <Greek_upsilon> : "ῧ" U1FE7 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
+<dead_breve> <Greek_UPSILON> : "Ῠ" U1FE8 # GREEK CAPITAL LETTER UPSILON WITH VRACHY
+<Multi_key> <U> <Greek_UPSILON> : "Ῠ" U1FE8 # GREEK CAPITAL LETTER UPSILON WITH VRACHY
+<Multi_key> <b> <Greek_UPSILON> : "Ῠ" U1FE8 # GREEK CAPITAL LETTER UPSILON WITH VRACHY
+<dead_macron> <Greek_UPSILON> : "á¿©" U1FE9 # GREEK CAPITAL LETTER UPSILON WITH MACRON
+<Multi_key> <macron> <Greek_UPSILON> : "á¿©" U1FE9 # GREEK CAPITAL LETTER UPSILON WITH MACRON
+<Multi_key> <underscore> <Greek_UPSILON> : "á¿©" U1FE9 # GREEK CAPITAL LETTER UPSILON WITH MACRON
+<dead_grave> <Greek_UPSILON> : "Ὺ" U1FEA # GREEK CAPITAL LETTER UPSILON WITH VARIA
+<Multi_key> <grave> <Greek_UPSILON> : "Ὺ" U1FEA # GREEK CAPITAL LETTER UPSILON WITH VARIA
+<combining_grave> <Greek_UPSILON> : "Ὺ" U1FEA # GREEK CAPITAL LETTER UPSILON WITH VARIA
+<U0314> <Greek_RHO> : "Ῥ" U1FEC # GREEK CAPITAL LETTER RHO WITH DASIA
+<Multi_key> <parenleft> <Greek_RHO> : "Ῥ" U1FEC # GREEK CAPITAL LETTER RHO WITH DASIA
+<Multi_key> <diaeresis> <dead_grave> : "á¿­" U1FED # GREEK DIALYTIKA AND VARIA
+<Multi_key> <diaeresis> <grave> : "á¿­" U1FED # GREEK DIALYTIKA AND VARIA
+<Multi_key> <diaeresis> <combining_grave> : "á¿­" U1FED # GREEK DIALYTIKA AND VARIA
+<dead_iota> <U1f7c> : "ῲ" U1FF2 # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1f7c> : "ῲ" U1FF2 # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
+<dead_iota> <dead_grave> <Greek_omega> : "ῲ" U1FF2 # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <grave> <Greek_omega> : "ῲ" U1FF2 # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_grave> <Greek_omega> : "ῲ" U1FF2 # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <grave> <Greek_omega> : "ῲ" U1FF2 # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
+<dead_iota> <combining_grave> <Greek_omega> : "ῲ" U1FF2 # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_grave> <Greek_omega> : "ῲ" U1FF2 # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
+<dead_iota> <Greek_omega> : "ῳ" U1FF3 # GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <Greek_omega> : "ῳ" U1FF3 # GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
+<dead_iota> <Greek_omegaaccent> : "á¿´" U1FF4 # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <Greek_omegaaccent> : "á¿´" U1FF4 # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+<dead_iota> <dead_acute> <Greek_omega> : "á¿´" U1FF4 # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <acute> <Greek_omega> : "á¿´" U1FF4 # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <apostrophe> <Greek_omega> : "á¿´" U1FF4 # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_acute> <Greek_omega> : "á¿´" U1FF4 # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <acute> <Greek_omega> : "á¿´" U1FF4 # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <apostrophe> <Greek_omega> : "á¿´" U1FF4 # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+<dead_iota> <combining_acute> <Greek_omega> : "á¿´" U1FF4 # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <combining_acute> <Greek_omega> : "á¿´" U1FF4 # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+<U0342> <Greek_omega> : "ῶ" U1FF6 # GREEK SMALL LETTER OMEGA WITH PERISPOMENI
+<dead_tilde> <Greek_omega> : "ῶ" U1FF6 # GREEK SMALL LETTER OMEGA WITH PERISPOMENI
+<Multi_key> <asciitilde> <Greek_omega> : "ῶ" U1FF6 # GREEK SMALL LETTER OMEGA WITH PERISPOMENI
+<dead_iota> <U1ff6> : "á¿·" U1FF7 # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U1ff6> : "á¿·" U1FF7 # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <U0342> <Greek_omega> : "á¿·" U1FF7 # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <dead_tilde> <Greek_omega> : "á¿·" U1FF7 # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
+<dead_iota> <Multi_key> <asciitilde> <Greek_omega> : "á¿·" U1FF7 # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <U0342> <Greek_omega> : "á¿·" U1FF7 # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <dead_tilde> <Greek_omega> : "á¿·" U1FF7 # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
+<Multi_key> <Greek_iota> <asciitilde> <Greek_omega> : "á¿·" U1FF7 # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
+<dead_grave> <Greek_OMICRON> : "Ὸ" U1FF8 # GREEK CAPITAL LETTER OMICRON WITH VARIA
+<Multi_key> <grave> <Greek_OMICRON> : "Ὸ" U1FF8 # GREEK CAPITAL LETTER OMICRON WITH VARIA
+<combining_grave> <Greek_OMICRON> : "Ὸ" U1FF8 # GREEK CAPITAL LETTER OMICRON WITH VARIA
+<dead_grave> <Greek_OMEGA> : "Ὼ" U1FFA # GREEK CAPITAL LETTER OMEGA WITH VARIA
+<Multi_key> <grave> <Greek_OMEGA> : "Ὼ" U1FFA # GREEK CAPITAL LETTER OMEGA WITH VARIA
+<combining_grave> <Greek_OMEGA> : "Ὼ" U1FFA # GREEK CAPITAL LETTER OMEGA WITH VARIA
+<dead_iota> <Greek_OMEGA> : "ῼ" U1FFC # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+<Multi_key> <Greek_iota> <Greek_OMEGA> : "ῼ" U1FFC # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+<dead_circumflex> <0> : "â°" U2070 # SUPERSCRIPT ZERO
+<Multi_key> <asciicircum> <0> : "â°" U2070 # SUPERSCRIPT ZERO
+<dead_circumflex> <KP_0> : "â°" U2070 # SUPERSCRIPT ZERO
+<Multi_key> <asciicircum> <KP_0> : "â°" U2070 # SUPERSCRIPT ZERO
+<dead_circumflex> <Multi_key> <underscore> <i> : "â±" U2071 # SUPERSCRIPT LATIN SMALL LETTER I
+<Multi_key> <asciicircum> <underscore> <i> : "â±" U2071 # SUPERSCRIPT LATIN SMALL LETTER I
+<dead_circumflex> <Multi_key> <underbar> <i> : "â±" U2071 # SUPERSCRIPT LATIN SMALL LETTER I
+<Multi_key> <asciicircum> <underbar> <i> : "â±" U2071 # SUPERSCRIPT LATIN SMALL LETTER I
+<dead_circumflex> <4> : "â´" U2074 # SUPERSCRIPT FOUR
+<Multi_key> <asciicircum> <4> : "â´" U2074 # SUPERSCRIPT FOUR
+<dead_circumflex> <KP_4> : "â´" U2074 # SUPERSCRIPT FOUR
+<Multi_key> <asciicircum> <KP_4> : "â´" U2074 # SUPERSCRIPT FOUR
+<dead_circumflex> <5> : "âµ" U2075 # SUPERSCRIPT FIVE
+<Multi_key> <asciicircum> <5> : "âµ" U2075 # SUPERSCRIPT FIVE
+<dead_circumflex> <KP_5> : "âµ" U2075 # SUPERSCRIPT FIVE
+<Multi_key> <asciicircum> <KP_5> : "âµ" U2075 # SUPERSCRIPT FIVE
+<dead_circumflex> <6> : "â¶" U2076 # SUPERSCRIPT SIX
+<Multi_key> <asciicircum> <6> : "â¶" U2076 # SUPERSCRIPT SIX
+<dead_circumflex> <KP_6> : "â¶" U2076 # SUPERSCRIPT SIX
+<Multi_key> <asciicircum> <KP_6> : "â¶" U2076 # SUPERSCRIPT SIX
+<dead_circumflex> <7> : "â·" U2077 # SUPERSCRIPT SEVEN
+<Multi_key> <asciicircum> <7> : "â·" U2077 # SUPERSCRIPT SEVEN
+<dead_circumflex> <KP_7> : "â·" U2077 # SUPERSCRIPT SEVEN
+<Multi_key> <asciicircum> <KP_7> : "â·" U2077 # SUPERSCRIPT SEVEN
+<dead_circumflex> <8> : "â¸" U2078 # SUPERSCRIPT EIGHT
+<Multi_key> <asciicircum> <8> : "â¸" U2078 # SUPERSCRIPT EIGHT
+<dead_circumflex> <KP_8> : "â¸" U2078 # SUPERSCRIPT EIGHT
+<Multi_key> <asciicircum> <KP_8> : "â¸" U2078 # SUPERSCRIPT EIGHT
+<dead_circumflex> <9> : "â¹" U2079 # SUPERSCRIPT NINE
+<Multi_key> <asciicircum> <9> : "â¹" U2079 # SUPERSCRIPT NINE
+<dead_circumflex> <KP_9> : "â¹" U2079 # SUPERSCRIPT NINE
+<Multi_key> <asciicircum> <KP_9> : "â¹" U2079 # SUPERSCRIPT NINE
+<dead_circumflex> <plus> : "âº" U207A # SUPERSCRIPT PLUS SIGN
+<Multi_key> <asciicircum> <plus> : "âº" U207A # SUPERSCRIPT PLUS SIGN
+<dead_circumflex> <KP_Add> : "âº" U207A # SUPERSCRIPT PLUS SIGN
+<Multi_key> <asciicircum> <KP_Add> : "âº" U207A # SUPERSCRIPT PLUS SIGN
+<dead_circumflex> <U2212> : "â»" U207B # SUPERSCRIPT MINUS
+<Multi_key> <asciicircum> <U2212> : "â»" U207B # SUPERSCRIPT MINUS
+<dead_circumflex> <equal> : "â¼" U207C # SUPERSCRIPT EQUALS SIGN
+<Multi_key> <asciicircum> <equal> : "â¼" U207C # SUPERSCRIPT EQUALS SIGN
+<dead_circumflex> <KP_Equal> : "â¼" U207C # SUPERSCRIPT EQUALS SIGN
+<Multi_key> <asciicircum> <KP_Equal> : "â¼" U207C # SUPERSCRIPT EQUALS SIGN
+<dead_circumflex> <parenleft> : "â½" U207D # SUPERSCRIPT LEFT PARENTHESIS
+<Multi_key> <asciicircum> <parenleft> : "â½" U207D # SUPERSCRIPT LEFT PARENTHESIS
+<dead_circumflex> <parenright> : "â¾" U207E # SUPERSCRIPT RIGHT PARENTHESIS
+<Multi_key> <asciicircum> <parenright> : "â¾" U207E # SUPERSCRIPT RIGHT PARENTHESIS
+<dead_circumflex> <Multi_key> <underscore> <n> : "â¿" U207F # SUPERSCRIPT LATIN SMALL LETTER N
+<Multi_key> <asciicircum> <underscore> <n> : "â¿" U207F # SUPERSCRIPT LATIN SMALL LETTER N
+<dead_circumflex> <Multi_key> <underbar> <n> : "â¿" U207F # SUPERSCRIPT LATIN SMALL LETTER N
+<Multi_key> <asciicircum> <underbar> <n> : "â¿" U207F # SUPERSCRIPT LATIN SMALL LETTER N
+<Multi_key> <underscore> <0> : "â‚€" U2080 # SUBSCRIPT ZERO
+<Multi_key> <underscore> <KP_0> : "â‚€" U2080 # SUBSCRIPT ZERO
+<Multi_key> <underbar> <0> : "â‚€" U2080 # SUBSCRIPT ZERO
+<Multi_key> <underbar> <KP_0> : "â‚€" U2080 # SUBSCRIPT ZERO
+<Multi_key> <underscore> <1> : "â‚" U2081 # SUBSCRIPT ONE
+<Multi_key> <underscore> <KP_1> : "â‚" U2081 # SUBSCRIPT ONE
+<Multi_key> <underbar> <1> : "â‚" U2081 # SUBSCRIPT ONE
+<Multi_key> <underbar> <KP_1> : "â‚" U2081 # SUBSCRIPT ONE
+<Multi_key> <underscore> <2> : "â‚‚" U2082 # SUBSCRIPT TWO
+<Multi_key> <underscore> <KP_Space> : "â‚‚" U2082 # SUBSCRIPT TWO
+<Multi_key> <underscore> <KP_2> : "â‚‚" U2082 # SUBSCRIPT TWO
+<Multi_key> <underbar> <2> : "â‚‚" U2082 # SUBSCRIPT TWO
+<Multi_key> <underbar> <KP_Space> : "â‚‚" U2082 # SUBSCRIPT TWO
+<Multi_key> <underbar> <KP_2> : "â‚‚" U2082 # SUBSCRIPT TWO
+<Multi_key> <underscore> <3> : "₃" U2083 # SUBSCRIPT THREE
+<Multi_key> <underscore> <KP_3> : "₃" U2083 # SUBSCRIPT THREE
+<Multi_key> <underbar> <3> : "₃" U2083 # SUBSCRIPT THREE
+<Multi_key> <underbar> <KP_3> : "₃" U2083 # SUBSCRIPT THREE
+<Multi_key> <underscore> <4> : "â‚„" U2084 # SUBSCRIPT FOUR
+<Multi_key> <underscore> <KP_4> : "â‚„" U2084 # SUBSCRIPT FOUR
+<Multi_key> <underbar> <4> : "â‚„" U2084 # SUBSCRIPT FOUR
+<Multi_key> <underbar> <KP_4> : "â‚„" U2084 # SUBSCRIPT FOUR
+<Multi_key> <underscore> <5> : "â‚…" U2085 # SUBSCRIPT FIVE
+<Multi_key> <underscore> <KP_5> : "â‚…" U2085 # SUBSCRIPT FIVE
+<Multi_key> <underbar> <5> : "â‚…" U2085 # SUBSCRIPT FIVE
+<Multi_key> <underbar> <KP_5> : "â‚…" U2085 # SUBSCRIPT FIVE
+<Multi_key> <underscore> <6> : "₆" U2086 # SUBSCRIPT SIX
+<Multi_key> <underscore> <KP_6> : "₆" U2086 # SUBSCRIPT SIX
+<Multi_key> <underbar> <6> : "₆" U2086 # SUBSCRIPT SIX
+<Multi_key> <underbar> <KP_6> : "₆" U2086 # SUBSCRIPT SIX
+<Multi_key> <underscore> <7> : "₇" U2087 # SUBSCRIPT SEVEN
+<Multi_key> <underscore> <KP_7> : "₇" U2087 # SUBSCRIPT SEVEN
+<Multi_key> <underbar> <7> : "₇" U2087 # SUBSCRIPT SEVEN
+<Multi_key> <underbar> <KP_7> : "₇" U2087 # SUBSCRIPT SEVEN
+<Multi_key> <underscore> <8> : "₈" U2088 # SUBSCRIPT EIGHT
+<Multi_key> <underscore> <KP_8> : "₈" U2088 # SUBSCRIPT EIGHT
+<Multi_key> <underbar> <8> : "₈" U2088 # SUBSCRIPT EIGHT
+<Multi_key> <underbar> <KP_8> : "₈" U2088 # SUBSCRIPT EIGHT
+<Multi_key> <underscore> <9> : "₉" U2089 # SUBSCRIPT NINE
+<Multi_key> <underscore> <KP_9> : "₉" U2089 # SUBSCRIPT NINE
+<Multi_key> <underbar> <9> : "₉" U2089 # SUBSCRIPT NINE
+<Multi_key> <underbar> <KP_9> : "₉" U2089 # SUBSCRIPT NINE
+<Multi_key> <underscore> <plus> : "â‚Š" U208A # SUBSCRIPT PLUS SIGN
+<Multi_key> <underscore> <KP_Add> : "â‚Š" U208A # SUBSCRIPT PLUS SIGN
+<Multi_key> <underbar> <plus> : "â‚Š" U208A # SUBSCRIPT PLUS SIGN
+<Multi_key> <underbar> <KP_Add> : "â‚Š" U208A # SUBSCRIPT PLUS SIGN
+<Multi_key> <underscore> <U2212> : "â‚‹" U208B # SUBSCRIPT MINUS
+<Multi_key> <underbar> <U2212> : "â‚‹" U208B # SUBSCRIPT MINUS
+<Multi_key> <underscore> <equal> : "₌" U208C # SUBSCRIPT EQUALS SIGN
+<Multi_key> <underscore> <KP_Equal> : "₌" U208C # SUBSCRIPT EQUALS SIGN
+<Multi_key> <underbar> <equal> : "₌" U208C # SUBSCRIPT EQUALS SIGN
+<Multi_key> <underbar> <KP_Equal> : "₌" U208C # SUBSCRIPT EQUALS SIGN
+<Multi_key> <underscore> <parenleft> : "â‚" U208D # SUBSCRIPT LEFT PARENTHESIS
+<Multi_key> <underbar> <parenleft> : "â‚" U208D # SUBSCRIPT LEFT PARENTHESIS
+<Multi_key> <underscore> <parenright> : "â‚Ž" U208E # SUBSCRIPT RIGHT PARENTHESIS
+<Multi_key> <underbar> <parenright> : "â‚Ž" U208E # SUBSCRIPT RIGHT PARENTHESIS
+<dead_circumflex> <Multi_key> <S> <M> : "â„ " U2120 # SERVICE MARK
+<Multi_key> <asciicircum> <S> <M> : "â„ " U2120 # SERVICE MARK
+<dead_circumflex> <Multi_key> <T> <M> : "â„¢" U2122 # TRADE MARK SIGN
+<Multi_key> <asciicircum> <T> <M> : "â„¢" U2122 # TRADE MARK SIGN
+<Multi_key> <slash> <leftarrow> : "↚" U219A # LEFTWARDS ARROW WITH STROKE
+<Multi_key> <KP_Divide> <leftarrow> : "↚" U219A # LEFTWARDS ARROW WITH STROKE
+<Multi_key> <slash> <rightarrow> : "↛" U219B # RIGHTWARDS ARROW WITH STROKE
+<Multi_key> <KP_Divide> <rightarrow> : "↛" U219B # RIGHTWARDS ARROW WITH STROKE
+<Multi_key> <slash> <U2194> : "↮" U21AE # LEFT RIGHT ARROW WITH STROKE
+<Multi_key> <KP_Divide> <U2194> : "↮" U21AE # LEFT RIGHT ARROW WITH STROKE
+<Multi_key> <U2203> <U0338> : "∄" U2204 # THERE DOES NOT EXIST
+<Multi_key> <U2208> <U0338> : "∉" U2209 # NOT AN ELEMENT OF
+<Multi_key> <U220b> <U0338> : "∌" U220C # DOES NOT CONTAIN AS MEMBER
+<Multi_key> <U2223> <U0338> : "∤" U2224 # DOES NOT DIVIDE
+<Multi_key> <U2225> <U0338> : "∦" U2226 # NOT PARALLEL TO
+<Multi_key> <U223c> <U0338> : "â‰" U2241 # NOT TILDE
+<Multi_key> <U2243> <U0338> : "≄" U2244 # NOT ASYMPTOTICALLY EQUAL TO
+<Multi_key> <approximate> <U0338> : "≇" U2247 # NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
+<Multi_key> <U2248> <U0338> : "≉" U2249 # NOT ALMOST EQUAL TO
+<Multi_key> <equal> <U0338> : "≠" U2260 # NOT EQUAL TO
+<Multi_key> <KP_Equal> <U0338> : "≠" U2260 # NOT EQUAL TO
+<Multi_key> <identical> <U0338> : "≢" U2262 # NOT IDENTICAL TO
+<Multi_key> <U224d> <U0338> : "≭" U226D # NOT EQUIVALENT TO
+<Multi_key> <less> <U0338> : "≮" U226E # NOT LESS-THAN
+<Multi_key> <leftcaret> <U0338> : "≮" U226E # NOT LESS-THAN
+<Multi_key> <greater> <U0338> : "≯" U226F # NOT GREATER-THAN
+<Multi_key> <rightcaret> <U0338> : "≯" U226F # NOT GREATER-THAN
+<Multi_key> <lessthanequal> <U0338> : "≰" U2270 # NEITHER LESS-THAN NOR EQUAL TO
+<Multi_key> <greaterthanequal> <U0338> : "≱" U2271 # NEITHER GREATER-THAN NOR EQUAL TO
+<Multi_key> <U2272> <U0338> : "≴" U2274 # NEITHER LESS-THAN NOR EQUIVALENT TO
+<Multi_key> <U2273> <U0338> : "≵" U2275 # NEITHER GREATER-THAN NOR EQUIVALENT TO
+<Multi_key> <U2276> <U0338> : "≸" U2278 # NEITHER LESS-THAN NOR GREATER-THAN
+<Multi_key> <U2277> <U0338> : "≹" U2279 # NEITHER GREATER-THAN NOR LESS-THAN
+<Multi_key> <U227a> <U0338> : "⊀" U2280 # DOES NOT PRECEDE
+<Multi_key> <U227b> <U0338> : "âŠ" U2281 # DOES NOT SUCCEED
+<Multi_key> <includedin> <U0338> : "⊄" U2284 # NOT A SUBSET OF
+<Multi_key> <leftshoe> <U0338> : "⊄" U2284 # NOT A SUBSET OF
+<Multi_key> <includes> <U0338> : "⊅" U2285 # NOT A SUPERSET OF
+<Multi_key> <rightshoe> <U0338> : "⊅" U2285 # NOT A SUPERSET OF
+<Multi_key> <U2286> <U0338> : "⊈" U2288 # NEITHER A SUBSET OF NOR EQUAL TO
+<Multi_key> <U2287> <U0338> : "⊉" U2289 # NEITHER A SUPERSET OF NOR EQUAL TO
+<Multi_key> <righttack> <U0338> : "⊬" U22AC # DOES NOT PROVE
+<Multi_key> <U22a8> <U0338> : "⊭" U22AD # NOT TRUE
+<Multi_key> <U22a9> <U0338> : "⊮" U22AE # DOES NOT FORCE
+<Multi_key> <U22ab> <U0338> : "⊯" U22AF # NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
+<Multi_key> <U227c> <U0338> : "â‹ " U22E0 # DOES NOT PRECEDE OR EQUAL
+<Multi_key> <U227d> <U0338> : "â‹¡" U22E1 # DOES NOT SUCCEED OR EQUAL
+<Multi_key> <U2291> <U0338> : "â‹¢" U22E2 # NOT SQUARE IMAGE OF OR EQUAL TO
+<Multi_key> <U2292> <U0338> : "â‹£" U22E3 # NOT SQUARE ORIGINAL OF OR EQUAL TO
+<Multi_key> <U22b2> <U0338> : "⋪" U22EA # NOT NORMAL SUBGROUP OF
+<Multi_key> <U22b3> <U0338> : "â‹«" U22EB # DOES NOT CONTAIN AS NORMAL SUBGROUP
+<Multi_key> <U22b4> <U0338> : "⋬" U22EC # NOT NORMAL SUBGROUP OF OR EQUAL TO
+<Multi_key> <U22b5> <U0338> : "â‹­" U22ED # DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
+<Multi_key> <parenleft> <1> <parenright> : "â‘ " U2460 # CIRCLED DIGIT ONE
+<Multi_key> <parenleft> <KP_1> <parenright> : "â‘ " U2460 # CIRCLED DIGIT ONE
+<Multi_key> <parenleft> <2> <parenright> : "â‘¡" U2461 # CIRCLED DIGIT TWO
+<Multi_key> <parenleft> <KP_Space> <parenright> : "â‘¡" U2461 # CIRCLED DIGIT TWO
+<Multi_key> <parenleft> <KP_2> <parenright> : "â‘¡" U2461 # CIRCLED DIGIT TWO
+<Multi_key> <parenleft> <3> <parenright> : "â‘¢" U2462 # CIRCLED DIGIT THREE
+<Multi_key> <parenleft> <KP_3> <parenright> : "â‘¢" U2462 # CIRCLED DIGIT THREE
+<Multi_key> <parenleft> <4> <parenright> : "â‘£" U2463 # CIRCLED DIGIT FOUR
+<Multi_key> <parenleft> <KP_4> <parenright> : "â‘£" U2463 # CIRCLED DIGIT FOUR
+<Multi_key> <parenleft> <5> <parenright> : "⑤" U2464 # CIRCLED DIGIT FIVE
+<Multi_key> <parenleft> <KP_5> <parenright> : "⑤" U2464 # CIRCLED DIGIT FIVE
+<Multi_key> <parenleft> <6> <parenright> : "â‘¥" U2465 # CIRCLED DIGIT SIX
+<Multi_key> <parenleft> <KP_6> <parenright> : "â‘¥" U2465 # CIRCLED DIGIT SIX
+<Multi_key> <parenleft> <7> <parenright> : "⑦" U2466 # CIRCLED DIGIT SEVEN
+<Multi_key> <parenleft> <KP_7> <parenright> : "⑦" U2466 # CIRCLED DIGIT SEVEN
+<Multi_key> <parenleft> <8> <parenright> : "⑧" U2467 # CIRCLED DIGIT EIGHT
+<Multi_key> <parenleft> <KP_8> <parenright> : "⑧" U2467 # CIRCLED DIGIT EIGHT
+<Multi_key> <parenleft> <9> <parenright> : "⑨" U2468 # CIRCLED DIGIT NINE
+<Multi_key> <parenleft> <KP_9> <parenright> : "⑨" U2468 # CIRCLED DIGIT NINE
+<Multi_key> <parenleft> <1> <0> <parenright> : "â‘©" U2469 # CIRCLED NUMBER TEN
+<Multi_key> <parenleft> <1> <KP_0> <parenright> : "â‘©" U2469 # CIRCLED NUMBER TEN
+<Multi_key> <parenleft> <KP_1> <0> <parenright> : "â‘©" U2469 # CIRCLED NUMBER TEN
+<Multi_key> <parenleft> <KP_1> <KP_0> <parenright> : "â‘©" U2469 # CIRCLED NUMBER TEN
+<Multi_key> <parenleft> <1> <1> <parenright> : "⑪" U246A # CIRCLED NUMBER ELEVEN
+<Multi_key> <parenleft> <1> <KP_1> <parenright> : "⑪" U246A # CIRCLED NUMBER ELEVEN
+<Multi_key> <parenleft> <KP_1> <1> <parenright> : "⑪" U246A # CIRCLED NUMBER ELEVEN
+<Multi_key> <parenleft> <KP_1> <KP_1> <parenright> : "⑪" U246A # CIRCLED NUMBER ELEVEN
+<Multi_key> <parenleft> <1> <2> <parenright> : "â‘«" U246B # CIRCLED NUMBER TWELVE
+<Multi_key> <parenleft> <1> <KP_Space> <parenright> : "â‘«" U246B # CIRCLED NUMBER TWELVE
+<Multi_key> <parenleft> <1> <KP_2> <parenright> : "â‘«" U246B # CIRCLED NUMBER TWELVE
+<Multi_key> <parenleft> <KP_1> <2> <parenright> : "â‘«" U246B # CIRCLED NUMBER TWELVE
+<Multi_key> <parenleft> <KP_1> <KP_Space> <parenright> : "â‘«" U246B # CIRCLED NUMBER TWELVE
+<Multi_key> <parenleft> <KP_1> <KP_2> <parenright> : "â‘«" U246B # CIRCLED NUMBER TWELVE
+<Multi_key> <parenleft> <1> <3> <parenright> : "⑬" U246C # CIRCLED NUMBER THIRTEEN
+<Multi_key> <parenleft> <1> <KP_3> <parenright> : "⑬" U246C # CIRCLED NUMBER THIRTEEN
+<Multi_key> <parenleft> <KP_1> <3> <parenright> : "⑬" U246C # CIRCLED NUMBER THIRTEEN
+<Multi_key> <parenleft> <KP_1> <KP_3> <parenright> : "⑬" U246C # CIRCLED NUMBER THIRTEEN
+<Multi_key> <parenleft> <1> <4> <parenright> : "â‘­" U246D # CIRCLED NUMBER FOURTEEN
+<Multi_key> <parenleft> <1> <KP_4> <parenright> : "â‘­" U246D # CIRCLED NUMBER FOURTEEN
+<Multi_key> <parenleft> <KP_1> <4> <parenright> : "â‘­" U246D # CIRCLED NUMBER FOURTEEN
+<Multi_key> <parenleft> <KP_1> <KP_4> <parenright> : "â‘­" U246D # CIRCLED NUMBER FOURTEEN
+<Multi_key> <parenleft> <1> <5> <parenright> : "â‘®" U246E # CIRCLED NUMBER FIFTEEN
+<Multi_key> <parenleft> <1> <KP_5> <parenright> : "â‘®" U246E # CIRCLED NUMBER FIFTEEN
+<Multi_key> <parenleft> <KP_1> <5> <parenright> : "â‘®" U246E # CIRCLED NUMBER FIFTEEN
+<Multi_key> <parenleft> <KP_1> <KP_5> <parenright> : "â‘®" U246E # CIRCLED NUMBER FIFTEEN
+<Multi_key> <parenleft> <1> <6> <parenright> : "⑯" U246F # CIRCLED NUMBER SIXTEEN
+<Multi_key> <parenleft> <1> <KP_6> <parenright> : "⑯" U246F # CIRCLED NUMBER SIXTEEN
+<Multi_key> <parenleft> <KP_1> <6> <parenright> : "⑯" U246F # CIRCLED NUMBER SIXTEEN
+<Multi_key> <parenleft> <KP_1> <KP_6> <parenright> : "⑯" U246F # CIRCLED NUMBER SIXTEEN
+<Multi_key> <parenleft> <1> <7> <parenright> : "â‘°" U2470 # CIRCLED NUMBER SEVENTEEN
+<Multi_key> <parenleft> <1> <KP_7> <parenright> : "â‘°" U2470 # CIRCLED NUMBER SEVENTEEN
+<Multi_key> <parenleft> <KP_1> <7> <parenright> : "â‘°" U2470 # CIRCLED NUMBER SEVENTEEN
+<Multi_key> <parenleft> <KP_1> <KP_7> <parenright> : "â‘°" U2470 # CIRCLED NUMBER SEVENTEEN
+<Multi_key> <parenleft> <1> <8> <parenright> : "⑱" U2471 # CIRCLED NUMBER EIGHTEEN
+<Multi_key> <parenleft> <1> <KP_8> <parenright> : "⑱" U2471 # CIRCLED NUMBER EIGHTEEN
+<Multi_key> <parenleft> <KP_1> <8> <parenright> : "⑱" U2471 # CIRCLED NUMBER EIGHTEEN
+<Multi_key> <parenleft> <KP_1> <KP_8> <parenright> : "⑱" U2471 # CIRCLED NUMBER EIGHTEEN
+<Multi_key> <parenleft> <1> <9> <parenright> : "⑲" U2472 # CIRCLED NUMBER NINETEEN
+<Multi_key> <parenleft> <1> <KP_9> <parenright> : "⑲" U2472 # CIRCLED NUMBER NINETEEN
+<Multi_key> <parenleft> <KP_1> <9> <parenright> : "⑲" U2472 # CIRCLED NUMBER NINETEEN
+<Multi_key> <parenleft> <KP_1> <KP_9> <parenright> : "⑲" U2472 # CIRCLED NUMBER NINETEEN
+<Multi_key> <parenleft> <2> <0> <parenright> : "⑳" U2473 # CIRCLED NUMBER TWENTY
+<Multi_key> <parenleft> <2> <KP_0> <parenright> : "⑳" U2473 # CIRCLED NUMBER TWENTY
+<Multi_key> <parenleft> <KP_Space> <0> <parenright> : "⑳" U2473 # CIRCLED NUMBER TWENTY
+<Multi_key> <parenleft> <KP_Space> <KP_0> <parenright> : "⑳" U2473 # CIRCLED NUMBER TWENTY
+<Multi_key> <parenleft> <KP_2> <0> <parenright> : "⑳" U2473 # CIRCLED NUMBER TWENTY
+<Multi_key> <parenleft> <KP_2> <KP_0> <parenright> : "⑳" U2473 # CIRCLED NUMBER TWENTY
+<Multi_key> <parenleft> <A> <parenright> : "â’¶" U24B6 # CIRCLED LATIN CAPITAL LETTER A
+<Multi_key> <parenleft> <B> <parenright> : "â’·" U24B7 # CIRCLED LATIN CAPITAL LETTER B
+<Multi_key> <parenleft> <C> <parenright> : "â’¸" U24B8 # CIRCLED LATIN CAPITAL LETTER C
+<Multi_key> <parenleft> <D> <parenright> : "â’¹" U24B9 # CIRCLED LATIN CAPITAL LETTER D
+<Multi_key> <parenleft> <E> <parenright> : "â’º" U24BA # CIRCLED LATIN CAPITAL LETTER E
+<Multi_key> <parenleft> <F> <parenright> : "â’»" U24BB # CIRCLED LATIN CAPITAL LETTER F
+<Multi_key> <parenleft> <G> <parenright> : "â’¼" U24BC # CIRCLED LATIN CAPITAL LETTER G
+<Multi_key> <parenleft> <H> <parenright> : "â’½" U24BD # CIRCLED LATIN CAPITAL LETTER H
+<Multi_key> <parenleft> <I> <parenright> : "â’¾" U24BE # CIRCLED LATIN CAPITAL LETTER I
+<Multi_key> <parenleft> <J> <parenright> : "â’¿" U24BF # CIRCLED LATIN CAPITAL LETTER J
+<Multi_key> <parenleft> <K> <parenright> : "â“€" U24C0 # CIRCLED LATIN CAPITAL LETTER K
+<Multi_key> <parenleft> <L> <parenright> : "â“" U24C1 # CIRCLED LATIN CAPITAL LETTER L
+<Multi_key> <parenleft> <M> <parenright> : "â“‚" U24C2 # CIRCLED LATIN CAPITAL LETTER M
+<Multi_key> <parenleft> <N> <parenright> : "Ⓝ" U24C3 # CIRCLED LATIN CAPITAL LETTER N
+<Multi_key> <parenleft> <O> <parenright> : "â“„" U24C4 # CIRCLED LATIN CAPITAL LETTER O
+<Multi_key> <parenleft> <P> <parenright> : "â“…" U24C5 # CIRCLED LATIN CAPITAL LETTER P
+<Multi_key> <parenleft> <Q> <parenright> : "Ⓠ" U24C6 # CIRCLED LATIN CAPITAL LETTER Q
+<Multi_key> <parenleft> <R> <parenright> : "Ⓡ" U24C7 # CIRCLED LATIN CAPITAL LETTER R
+<Multi_key> <parenleft> <S> <parenright> : "Ⓢ" U24C8 # CIRCLED LATIN CAPITAL LETTER S
+<Multi_key> <parenleft> <T> <parenright> : "Ⓣ" U24C9 # CIRCLED LATIN CAPITAL LETTER T
+<Multi_key> <parenleft> <U> <parenright> : "â“Š" U24CA # CIRCLED LATIN CAPITAL LETTER U
+<Multi_key> <parenleft> <V> <parenright> : "â“‹" U24CB # CIRCLED LATIN CAPITAL LETTER V
+<Multi_key> <parenleft> <W> <parenright> : "Ⓦ" U24CC # CIRCLED LATIN CAPITAL LETTER W
+<Multi_key> <parenleft> <X> <parenright> : "â“" U24CD # CIRCLED LATIN CAPITAL LETTER X
+<Multi_key> <parenleft> <Y> <parenright> : "â“Ž" U24CE # CIRCLED LATIN CAPITAL LETTER Y
+<Multi_key> <parenleft> <Z> <parenright> : "â“" U24CF # CIRCLED LATIN CAPITAL LETTER Z
+<Multi_key> <parenleft> <a> <parenright> : "â“" U24D0 # CIRCLED LATIN SMALL LETTER A
+<Multi_key> <parenleft> <b> <parenright> : "â“‘" U24D1 # CIRCLED LATIN SMALL LETTER B
+<Multi_key> <parenleft> <c> <parenright> : "â“’" U24D2 # CIRCLED LATIN SMALL LETTER C
+<Multi_key> <parenleft> <d> <parenright> : "â““" U24D3 # CIRCLED LATIN SMALL LETTER D
+<Multi_key> <parenleft> <e> <parenright> : "â“”" U24D4 # CIRCLED LATIN SMALL LETTER E
+<Multi_key> <parenleft> <f> <parenright> : "â“•" U24D5 # CIRCLED LATIN SMALL LETTER F
+<Multi_key> <parenleft> <g> <parenright> : "â“–" U24D6 # CIRCLED LATIN SMALL LETTER G
+<Multi_key> <parenleft> <h> <parenright> : "â“—" U24D7 # CIRCLED LATIN SMALL LETTER H
+<Multi_key> <parenleft> <i> <parenright> : "ⓘ" U24D8 # CIRCLED LATIN SMALL LETTER I
+<Multi_key> <parenleft> <j> <parenright> : "â“™" U24D9 # CIRCLED LATIN SMALL LETTER J
+<Multi_key> <parenleft> <k> <parenright> : "â“š" U24DA # CIRCLED LATIN SMALL LETTER K
+<Multi_key> <parenleft> <l> <parenright> : "â“›" U24DB # CIRCLED LATIN SMALL LETTER L
+<Multi_key> <parenleft> <m> <parenright> : "ⓜ" U24DC # CIRCLED LATIN SMALL LETTER M
+<Multi_key> <parenleft> <n> <parenright> : "â“" U24DD # CIRCLED LATIN SMALL LETTER N
+<Multi_key> <parenleft> <o> <parenright> : "â“ž" U24DE # CIRCLED LATIN SMALL LETTER O
+<Multi_key> <parenleft> <p> <parenright> : "â“Ÿ" U24DF # CIRCLED LATIN SMALL LETTER P
+<Multi_key> <parenleft> <q> <parenright> : "â“ " U24E0 # CIRCLED LATIN SMALL LETTER Q
+<Multi_key> <parenleft> <r> <parenright> : "â“¡" U24E1 # CIRCLED LATIN SMALL LETTER R
+<Multi_key> <parenleft> <s> <parenright> : "â“¢" U24E2 # CIRCLED LATIN SMALL LETTER S
+<Multi_key> <parenleft> <t> <parenright> : "â“£" U24E3 # CIRCLED LATIN SMALL LETTER T
+<Multi_key> <parenleft> <u> <parenright> : "ⓤ" U24E4 # CIRCLED LATIN SMALL LETTER U
+<Multi_key> <parenleft> <v> <parenright> : "â“¥" U24E5 # CIRCLED LATIN SMALL LETTER V
+<Multi_key> <parenleft> <w> <parenright> : "ⓦ" U24E6 # CIRCLED LATIN SMALL LETTER W
+<Multi_key> <parenleft> <x> <parenright> : "ⓧ" U24E7 # CIRCLED LATIN SMALL LETTER X
+<Multi_key> <parenleft> <y> <parenright> : "ⓨ" U24E8 # CIRCLED LATIN SMALL LETTER Y
+<Multi_key> <parenleft> <z> <parenright> : "â“©" U24E9 # CIRCLED LATIN SMALL LETTER Z
+<Multi_key> <parenleft> <0> <parenright> : "⓪" U24EA # CIRCLED DIGIT ZERO
+<Multi_key> <parenleft> <KP_0> <parenright> : "⓪" U24EA # CIRCLED DIGIT ZERO
+<Multi_key> <U2add> <U0338> : "⫝̸" U2ADC # FORKING
+<dead_voiced_sound> <U304b> : "ãŒ" U304C # HIRAGANA LETTER GA
+<dead_voiced_sound> <U304d> : "ãŽ" U304E # HIRAGANA LETTER GI
+<dead_voiced_sound> <U304f> : "ã" U3050 # HIRAGANA LETTER GU
+<dead_voiced_sound> <U3051> : "ã’" U3052 # HIRAGANA LETTER GE
+<dead_voiced_sound> <U3053> : "ã”" U3054 # HIRAGANA LETTER GO
+<dead_voiced_sound> <U3055> : "ã–" U3056 # HIRAGANA LETTER ZA
+<dead_voiced_sound> <U3057> : "ã˜" U3058 # HIRAGANA LETTER ZI
+<dead_voiced_sound> <U3059> : "ãš" U305A # HIRAGANA LETTER ZU
+<dead_voiced_sound> <U305b> : "ãœ" U305C # HIRAGANA LETTER ZE
+<dead_voiced_sound> <U305d> : "ãž" U305E # HIRAGANA LETTER ZO
+<dead_voiced_sound> <U305f> : "ã " U3060 # HIRAGANA LETTER DA
+<dead_voiced_sound> <U3061> : "ã¢" U3062 # HIRAGANA LETTER DI
+<dead_voiced_sound> <U3064> : "ã¥" U3065 # HIRAGANA LETTER DU
+<dead_voiced_sound> <U3066> : "ã§" U3067 # HIRAGANA LETTER DE
+<dead_voiced_sound> <U3068> : "ã©" U3069 # HIRAGANA LETTER DO
+<dead_voiced_sound> <U306f> : "ã°" U3070 # HIRAGANA LETTER BA
+<dead_semivoiced_sound> <U306f> : "ã±" U3071 # HIRAGANA LETTER PA
+<dead_voiced_sound> <U3072> : "ã³" U3073 # HIRAGANA LETTER BI
+<dead_semivoiced_sound> <U3072> : "ã´" U3074 # HIRAGANA LETTER PI
+<dead_voiced_sound> <U3075> : "ã¶" U3076 # HIRAGANA LETTER BU
+<dead_semivoiced_sound> <U3075> : "ã·" U3077 # HIRAGANA LETTER PU
+<dead_voiced_sound> <U3078> : "ã¹" U3079 # HIRAGANA LETTER BE
+<dead_semivoiced_sound> <U3078> : "ãº" U307A # HIRAGANA LETTER PE
+<dead_voiced_sound> <U307b> : "ã¼" U307C # HIRAGANA LETTER BO
+<dead_semivoiced_sound> <U307b> : "ã½" U307D # HIRAGANA LETTER PO
+<dead_voiced_sound> <U3046> : "ã‚”" U3094 # HIRAGANA LETTER VU
+<dead_voiced_sound> <U309d> : "ã‚ž" U309E # HIRAGANA VOICED ITERATION MARK
+<dead_voiced_sound> <kana_KA> : "ガ" U30AC # KATAKANA LETTER GA
+<dead_voiced_sound> <kana_KI> : "ã‚®" U30AE # KATAKANA LETTER GI
+<dead_voiced_sound> <kana_KU> : "ã‚°" U30B0 # KATAKANA LETTER GU
+<dead_voiced_sound> <kana_KE> : "ゲ" U30B2 # KATAKANA LETTER GE
+<dead_voiced_sound> <kana_KO> : "ã‚´" U30B4 # KATAKANA LETTER GO
+<dead_voiced_sound> <kana_SA> : "ザ" U30B6 # KATAKANA LETTER ZA
+<dead_voiced_sound> <kana_SHI> : "ジ" U30B8 # KATAKANA LETTER ZI
+<dead_voiced_sound> <kana_SU> : "ズ" U30BA # KATAKANA LETTER ZU
+<dead_voiced_sound> <kana_SE> : "ゼ" U30BC # KATAKANA LETTER ZE
+<dead_voiced_sound> <kana_SO> : "ゾ" U30BE # KATAKANA LETTER ZO
+<dead_voiced_sound> <kana_TA> : "ダ" U30C0 # KATAKANA LETTER DA
+<dead_voiced_sound> <kana_CHI> : "ヂ" U30C2 # KATAKANA LETTER DI
+<dead_voiced_sound> <kana_TSU> : "ヅ" U30C5 # KATAKANA LETTER DU
+<dead_voiced_sound> <kana_TE> : "デ" U30C7 # KATAKANA LETTER DE
+<dead_voiced_sound> <kana_TO> : "ド" U30C9 # KATAKANA LETTER DO
+<dead_voiced_sound> <kana_HA> : "ãƒ" U30D0 # KATAKANA LETTER BA
+<dead_semivoiced_sound> <kana_HA> : "パ" U30D1 # KATAKANA LETTER PA
+<dead_voiced_sound> <kana_HI> : "ビ" U30D3 # KATAKANA LETTER BI
+<dead_semivoiced_sound> <kana_HI> : "ピ" U30D4 # KATAKANA LETTER PI
+<dead_voiced_sound> <kana_FU> : "ブ" U30D6 # KATAKANA LETTER BU
+<dead_semivoiced_sound> <kana_FU> : "プ" U30D7 # KATAKANA LETTER PU
+<dead_voiced_sound> <kana_HE> : "ベ" U30D9 # KATAKANA LETTER BE
+<dead_semivoiced_sound> <kana_HE> : "ペ" U30DA # KATAKANA LETTER PE
+<dead_voiced_sound> <kana_HO> : "ボ" U30DC # KATAKANA LETTER BO
+<dead_semivoiced_sound> <kana_HO> : "ãƒ" U30DD # KATAKANA LETTER PO
+<dead_voiced_sound> <kana_U> : "ヴ" U30F4 # KATAKANA LETTER VU
+<dead_voiced_sound> <kana_WA> : "ヷ" U30F7 # KATAKANA LETTER VA
+<dead_voiced_sound> <U30f0> : "ヸ" U30F8 # KATAKANA LETTER VI
+<dead_voiced_sound> <U30f1> : "ヹ" U30F9 # KATAKANA LETTER VE
+<dead_voiced_sound> <kana_WO> : "ヺ" U30FA # KATAKANA LETTER VO
+<dead_voiced_sound> <U30fd> : "ヾ" U30FE # KATAKANA VOICED ITERATION MARK
+<dead_circumflex> <U4e00> : "㆒" U3192 # IDEOGRAPHIC ANNOTATION ONE MARK
+<Multi_key> <asciicircum> <U4e00> : "㆒" U3192 # IDEOGRAPHIC ANNOTATION ONE MARK
+<dead_circumflex> <U4e8c> : "㆓" U3193 # IDEOGRAPHIC ANNOTATION TWO MARK
+<Multi_key> <asciicircum> <U4e8c> : "㆓" U3193 # IDEOGRAPHIC ANNOTATION TWO MARK
+<dead_circumflex> <U4e09> : "㆔" U3194 # IDEOGRAPHIC ANNOTATION THREE MARK
+<Multi_key> <asciicircum> <U4e09> : "㆔" U3194 # IDEOGRAPHIC ANNOTATION THREE MARK
+<dead_circumflex> <U56db> : "㆕" U3195 # IDEOGRAPHIC ANNOTATION FOUR MARK
+<Multi_key> <asciicircum> <U56db> : "㆕" U3195 # IDEOGRAPHIC ANNOTATION FOUR MARK
+<dead_circumflex> <U4e0a> : "㆖" U3196 # IDEOGRAPHIC ANNOTATION TOP MARK
+<Multi_key> <asciicircum> <U4e0a> : "㆖" U3196 # IDEOGRAPHIC ANNOTATION TOP MARK
+<dead_circumflex> <U4e2d> : "㆗" U3197 # IDEOGRAPHIC ANNOTATION MIDDLE MARK
+<Multi_key> <asciicircum> <U4e2d> : "㆗" U3197 # IDEOGRAPHIC ANNOTATION MIDDLE MARK
+<dead_circumflex> <U4e0b> : "㆘" U3198 # IDEOGRAPHIC ANNOTATION BOTTOM MARK
+<Multi_key> <asciicircum> <U4e0b> : "㆘" U3198 # IDEOGRAPHIC ANNOTATION BOTTOM MARK
+<dead_circumflex> <U7532> : "㆙" U3199 # IDEOGRAPHIC ANNOTATION FIRST MARK
+<Multi_key> <asciicircum> <U7532> : "㆙" U3199 # IDEOGRAPHIC ANNOTATION FIRST MARK
+<dead_circumflex> <U4e59> : "㆚" U319A # IDEOGRAPHIC ANNOTATION SECOND MARK
+<Multi_key> <asciicircum> <U4e59> : "㆚" U319A # IDEOGRAPHIC ANNOTATION SECOND MARK
+<dead_circumflex> <U4e19> : "㆛" U319B # IDEOGRAPHIC ANNOTATION THIRD MARK
+<Multi_key> <asciicircum> <U4e19> : "㆛" U319B # IDEOGRAPHIC ANNOTATION THIRD MARK
+<dead_circumflex> <U4e01> : "㆜" U319C # IDEOGRAPHIC ANNOTATION FOURTH MARK
+<Multi_key> <asciicircum> <U4e01> : "㆜" U319C # IDEOGRAPHIC ANNOTATION FOURTH MARK
+<dead_circumflex> <U5929> : "ã†" U319D # IDEOGRAPHIC ANNOTATION HEAVEN MARK
+<Multi_key> <asciicircum> <U5929> : "ã†" U319D # IDEOGRAPHIC ANNOTATION HEAVEN MARK
+<dead_circumflex> <U5730> : "㆞" U319E # IDEOGRAPHIC ANNOTATION EARTH MARK
+<Multi_key> <asciicircum> <U5730> : "㆞" U319E # IDEOGRAPHIC ANNOTATION EARTH MARK
+<dead_circumflex> <U4eba> : "㆟" U319F # IDEOGRAPHIC ANNOTATION MAN MARK
+<Multi_key> <asciicircum> <U4eba> : "㆟" U319F # IDEOGRAPHIC ANNOTATION MAN MARK
+<Multi_key> <parenleft> <2> <1> <parenright> : "㉑" U3251 # CIRCLED NUMBER TWENTY ONE
+<Multi_key> <parenleft> <2> <KP_1> <parenright> : "㉑" U3251 # CIRCLED NUMBER TWENTY ONE
+<Multi_key> <parenleft> <KP_Space> <1> <parenright> : "㉑" U3251 # CIRCLED NUMBER TWENTY ONE
+<Multi_key> <parenleft> <KP_Space> <KP_1> <parenright> : "㉑" U3251 # CIRCLED NUMBER TWENTY ONE
+<Multi_key> <parenleft> <KP_2> <1> <parenright> : "㉑" U3251 # CIRCLED NUMBER TWENTY ONE
+<Multi_key> <parenleft> <KP_2> <KP_1> <parenright> : "㉑" U3251 # CIRCLED NUMBER TWENTY ONE
+<Multi_key> <parenleft> <2> <2> <parenright> : "㉒" U3252 # CIRCLED NUMBER TWENTY TWO
+<Multi_key> <parenleft> <2> <KP_Space> <parenright> : "㉒" U3252 # CIRCLED NUMBER TWENTY TWO
+<Multi_key> <parenleft> <2> <KP_2> <parenright> : "㉒" U3252 # CIRCLED NUMBER TWENTY TWO
+<Multi_key> <parenleft> <KP_Space> <2> <parenright> : "㉒" U3252 # CIRCLED NUMBER TWENTY TWO
+<Multi_key> <parenleft> <KP_Space> <KP_Space> <parenright> : "㉒" U3252 # CIRCLED NUMBER TWENTY TWO
+<Multi_key> <parenleft> <KP_Space> <KP_2> <parenright> : "㉒" U3252 # CIRCLED NUMBER TWENTY TWO
+<Multi_key> <parenleft> <KP_2> <2> <parenright> : "㉒" U3252 # CIRCLED NUMBER TWENTY TWO
+<Multi_key> <parenleft> <KP_2> <KP_Space> <parenright> : "㉒" U3252 # CIRCLED NUMBER TWENTY TWO
+<Multi_key> <parenleft> <KP_2> <KP_2> <parenright> : "㉒" U3252 # CIRCLED NUMBER TWENTY TWO
+<Multi_key> <parenleft> <2> <3> <parenright> : "㉓" U3253 # CIRCLED NUMBER TWENTY THREE
+<Multi_key> <parenleft> <2> <KP_3> <parenright> : "㉓" U3253 # CIRCLED NUMBER TWENTY THREE
+<Multi_key> <parenleft> <KP_Space> <3> <parenright> : "㉓" U3253 # CIRCLED NUMBER TWENTY THREE
+<Multi_key> <parenleft> <KP_Space> <KP_3> <parenright> : "㉓" U3253 # CIRCLED NUMBER TWENTY THREE
+<Multi_key> <parenleft> <KP_2> <3> <parenright> : "㉓" U3253 # CIRCLED NUMBER TWENTY THREE
+<Multi_key> <parenleft> <KP_2> <KP_3> <parenright> : "㉓" U3253 # CIRCLED NUMBER TWENTY THREE
+<Multi_key> <parenleft> <2> <4> <parenright> : "㉔" U3254 # CIRCLED NUMBER TWENTY FOUR
+<Multi_key> <parenleft> <2> <KP_4> <parenright> : "㉔" U3254 # CIRCLED NUMBER TWENTY FOUR
+<Multi_key> <parenleft> <KP_Space> <4> <parenright> : "㉔" U3254 # CIRCLED NUMBER TWENTY FOUR
+<Multi_key> <parenleft> <KP_Space> <KP_4> <parenright> : "㉔" U3254 # CIRCLED NUMBER TWENTY FOUR
+<Multi_key> <parenleft> <KP_2> <4> <parenright> : "㉔" U3254 # CIRCLED NUMBER TWENTY FOUR
+<Multi_key> <parenleft> <KP_2> <KP_4> <parenright> : "㉔" U3254 # CIRCLED NUMBER TWENTY FOUR
+<Multi_key> <parenleft> <2> <5> <parenright> : "㉕" U3255 # CIRCLED NUMBER TWENTY FIVE
+<Multi_key> <parenleft> <2> <KP_5> <parenright> : "㉕" U3255 # CIRCLED NUMBER TWENTY FIVE
+<Multi_key> <parenleft> <KP_Space> <5> <parenright> : "㉕" U3255 # CIRCLED NUMBER TWENTY FIVE
+<Multi_key> <parenleft> <KP_Space> <KP_5> <parenright> : "㉕" U3255 # CIRCLED NUMBER TWENTY FIVE
+<Multi_key> <parenleft> <KP_2> <5> <parenright> : "㉕" U3255 # CIRCLED NUMBER TWENTY FIVE
+<Multi_key> <parenleft> <KP_2> <KP_5> <parenright> : "㉕" U3255 # CIRCLED NUMBER TWENTY FIVE
+<Multi_key> <parenleft> <2> <6> <parenright> : "㉖" U3256 # CIRCLED NUMBER TWENTY SIX
+<Multi_key> <parenleft> <2> <KP_6> <parenright> : "㉖" U3256 # CIRCLED NUMBER TWENTY SIX
+<Multi_key> <parenleft> <KP_Space> <6> <parenright> : "㉖" U3256 # CIRCLED NUMBER TWENTY SIX
+<Multi_key> <parenleft> <KP_Space> <KP_6> <parenright> : "㉖" U3256 # CIRCLED NUMBER TWENTY SIX
+<Multi_key> <parenleft> <KP_2> <6> <parenright> : "㉖" U3256 # CIRCLED NUMBER TWENTY SIX
+<Multi_key> <parenleft> <KP_2> <KP_6> <parenright> : "㉖" U3256 # CIRCLED NUMBER TWENTY SIX
+<Multi_key> <parenleft> <2> <7> <parenright> : "㉗" U3257 # CIRCLED NUMBER TWENTY SEVEN
+<Multi_key> <parenleft> <2> <KP_7> <parenright> : "㉗" U3257 # CIRCLED NUMBER TWENTY SEVEN
+<Multi_key> <parenleft> <KP_Space> <7> <parenright> : "㉗" U3257 # CIRCLED NUMBER TWENTY SEVEN
+<Multi_key> <parenleft> <KP_Space> <KP_7> <parenright> : "㉗" U3257 # CIRCLED NUMBER TWENTY SEVEN
+<Multi_key> <parenleft> <KP_2> <7> <parenright> : "㉗" U3257 # CIRCLED NUMBER TWENTY SEVEN
+<Multi_key> <parenleft> <KP_2> <KP_7> <parenright> : "㉗" U3257 # CIRCLED NUMBER TWENTY SEVEN
+<Multi_key> <parenleft> <2> <8> <parenright> : "㉘" U3258 # CIRCLED NUMBER TWENTY EIGHT
+<Multi_key> <parenleft> <2> <KP_8> <parenright> : "㉘" U3258 # CIRCLED NUMBER TWENTY EIGHT
+<Multi_key> <parenleft> <KP_Space> <8> <parenright> : "㉘" U3258 # CIRCLED NUMBER TWENTY EIGHT
+<Multi_key> <parenleft> <KP_Space> <KP_8> <parenright> : "㉘" U3258 # CIRCLED NUMBER TWENTY EIGHT
+<Multi_key> <parenleft> <KP_2> <8> <parenright> : "㉘" U3258 # CIRCLED NUMBER TWENTY EIGHT
+<Multi_key> <parenleft> <KP_2> <KP_8> <parenright> : "㉘" U3258 # CIRCLED NUMBER TWENTY EIGHT
+<Multi_key> <parenleft> <2> <9> <parenright> : "㉙" U3259 # CIRCLED NUMBER TWENTY NINE
+<Multi_key> <parenleft> <2> <KP_9> <parenright> : "㉙" U3259 # CIRCLED NUMBER TWENTY NINE
+<Multi_key> <parenleft> <KP_Space> <9> <parenright> : "㉙" U3259 # CIRCLED NUMBER TWENTY NINE
+<Multi_key> <parenleft> <KP_Space> <KP_9> <parenright> : "㉙" U3259 # CIRCLED NUMBER TWENTY NINE
+<Multi_key> <parenleft> <KP_2> <9> <parenright> : "㉙" U3259 # CIRCLED NUMBER TWENTY NINE
+<Multi_key> <parenleft> <KP_2> <KP_9> <parenright> : "㉙" U3259 # CIRCLED NUMBER TWENTY NINE
+<Multi_key> <parenleft> <3> <0> <parenright> : "㉚" U325A # CIRCLED NUMBER THIRTY
+<Multi_key> <parenleft> <3> <KP_0> <parenright> : "㉚" U325A # CIRCLED NUMBER THIRTY
+<Multi_key> <parenleft> <KP_3> <0> <parenright> : "㉚" U325A # CIRCLED NUMBER THIRTY
+<Multi_key> <parenleft> <KP_3> <KP_0> <parenright> : "㉚" U325A # CIRCLED NUMBER THIRTY
+<Multi_key> <parenleft> <3> <1> <parenright> : "㉛" U325B # CIRCLED NUMBER THIRTY ONE
+<Multi_key> <parenleft> <3> <KP_1> <parenright> : "㉛" U325B # CIRCLED NUMBER THIRTY ONE
+<Multi_key> <parenleft> <KP_3> <1> <parenright> : "㉛" U325B # CIRCLED NUMBER THIRTY ONE
+<Multi_key> <parenleft> <KP_3> <KP_1> <parenright> : "㉛" U325B # CIRCLED NUMBER THIRTY ONE
+<Multi_key> <parenleft> <3> <2> <parenright> : "㉜" U325C # CIRCLED NUMBER THIRTY TWO
+<Multi_key> <parenleft> <3> <KP_Space> <parenright> : "㉜" U325C # CIRCLED NUMBER THIRTY TWO
+<Multi_key> <parenleft> <3> <KP_2> <parenright> : "㉜" U325C # CIRCLED NUMBER THIRTY TWO
+<Multi_key> <parenleft> <KP_3> <2> <parenright> : "㉜" U325C # CIRCLED NUMBER THIRTY TWO
+<Multi_key> <parenleft> <KP_3> <KP_Space> <parenright> : "㉜" U325C # CIRCLED NUMBER THIRTY TWO
+<Multi_key> <parenleft> <KP_3> <KP_2> <parenright> : "㉜" U325C # CIRCLED NUMBER THIRTY TWO
+<Multi_key> <parenleft> <3> <3> <parenright> : "ã‰" U325D # CIRCLED NUMBER THIRTY THREE
+<Multi_key> <parenleft> <3> <KP_3> <parenright> : "ã‰" U325D # CIRCLED NUMBER THIRTY THREE
+<Multi_key> <parenleft> <KP_3> <3> <parenright> : "ã‰" U325D # CIRCLED NUMBER THIRTY THREE
+<Multi_key> <parenleft> <KP_3> <KP_3> <parenright> : "ã‰" U325D # CIRCLED NUMBER THIRTY THREE
+<Multi_key> <parenleft> <3> <4> <parenright> : "㉞" U325E # CIRCLED NUMBER THIRTY FOUR
+<Multi_key> <parenleft> <3> <KP_4> <parenright> : "㉞" U325E # CIRCLED NUMBER THIRTY FOUR
+<Multi_key> <parenleft> <KP_3> <4> <parenright> : "㉞" U325E # CIRCLED NUMBER THIRTY FOUR
+<Multi_key> <parenleft> <KP_3> <KP_4> <parenright> : "㉞" U325E # CIRCLED NUMBER THIRTY FOUR
+<Multi_key> <parenleft> <3> <5> <parenright> : "㉟" U325F # CIRCLED NUMBER THIRTY FIVE
+<Multi_key> <parenleft> <3> <KP_5> <parenright> : "㉟" U325F # CIRCLED NUMBER THIRTY FIVE
+<Multi_key> <parenleft> <KP_3> <5> <parenright> : "㉟" U325F # CIRCLED NUMBER THIRTY FIVE
+<Multi_key> <parenleft> <KP_3> <KP_5> <parenright> : "㉟" U325F # CIRCLED NUMBER THIRTY FIVE
+<Multi_key> <parenleft> <U1100> <parenright> : "㉠" U3260 # CIRCLED HANGUL KIYEOK
+<Multi_key> <parenleft> <U1102> <parenright> : "㉡" U3261 # CIRCLED HANGUL NIEUN
+<Multi_key> <parenleft> <U1103> <parenright> : "㉢" U3262 # CIRCLED HANGUL TIKEUT
+<Multi_key> <parenleft> <U1105> <parenright> : "㉣" U3263 # CIRCLED HANGUL RIEUL
+<Multi_key> <parenleft> <U1106> <parenright> : "㉤" U3264 # CIRCLED HANGUL MIEUM
+<Multi_key> <parenleft> <U1107> <parenright> : "㉥" U3265 # CIRCLED HANGUL PIEUP
+<Multi_key> <parenleft> <U1109> <parenright> : "㉦" U3266 # CIRCLED HANGUL SIOS
+<Multi_key> <parenleft> <U110b> <parenright> : "㉧" U3267 # CIRCLED HANGUL IEUNG
+<Multi_key> <parenleft> <U110c> <parenright> : "㉨" U3268 # CIRCLED HANGUL CIEUC
+<Multi_key> <parenleft> <U110e> <parenright> : "㉩" U3269 # CIRCLED HANGUL CHIEUCH
+<Multi_key> <parenleft> <U110f> <parenright> : "㉪" U326A # CIRCLED HANGUL KHIEUKH
+<Multi_key> <parenleft> <U1110> <parenright> : "㉫" U326B # CIRCLED HANGUL THIEUTH
+<Multi_key> <parenleft> <U1111> <parenright> : "㉬" U326C # CIRCLED HANGUL PHIEUPH
+<Multi_key> <parenleft> <U1112> <parenright> : "㉭" U326D # CIRCLED HANGUL HIEUH
+<Multi_key> <parenleft> <U1100> <U1161> <parenright> : "㉮" U326E # CIRCLED HANGUL KIYEOK A
+<Multi_key> <parenleft> <U1102> <U1161> <parenright> : "㉯" U326F # CIRCLED HANGUL NIEUN A
+<Multi_key> <parenleft> <U1103> <U1161> <parenright> : "㉰" U3270 # CIRCLED HANGUL TIKEUT A
+<Multi_key> <parenleft> <U1105> <U1161> <parenright> : "㉱" U3271 # CIRCLED HANGUL RIEUL A
+<Multi_key> <parenleft> <U1106> <U1161> <parenright> : "㉲" U3272 # CIRCLED HANGUL MIEUM A
+<Multi_key> <parenleft> <U1107> <U1161> <parenright> : "㉳" U3273 # CIRCLED HANGUL PIEUP A
+<Multi_key> <parenleft> <U1109> <U1161> <parenright> : "㉴" U3274 # CIRCLED HANGUL SIOS A
+<Multi_key> <parenleft> <U110b> <U1161> <parenright> : "㉵" U3275 # CIRCLED HANGUL IEUNG A
+<Multi_key> <parenleft> <U110c> <U1161> <parenright> : "㉶" U3276 # CIRCLED HANGUL CIEUC A
+<Multi_key> <parenleft> <U110e> <U1161> <parenright> : "㉷" U3277 # CIRCLED HANGUL CHIEUCH A
+<Multi_key> <parenleft> <U110f> <U1161> <parenright> : "㉸" U3278 # CIRCLED HANGUL KHIEUKH A
+<Multi_key> <parenleft> <U1110> <U1161> <parenright> : "㉹" U3279 # CIRCLED HANGUL THIEUTH A
+<Multi_key> <parenleft> <U1111> <U1161> <parenright> : "㉺" U327A # CIRCLED HANGUL PHIEUPH A
+<Multi_key> <parenleft> <U1112> <U1161> <parenright> : "㉻" U327B # CIRCLED HANGUL HIEUH A
+<Multi_key> <parenleft> <U4e00> <parenright> : "㊀" U3280 # CIRCLED IDEOGRAPH ONE
+<Multi_key> <parenleft> <U4e8c> <parenright> : "ãŠ" U3281 # CIRCLED IDEOGRAPH TWO
+<Multi_key> <parenleft> <U4e09> <parenright> : "㊂" U3282 # CIRCLED IDEOGRAPH THREE
+<Multi_key> <parenleft> <U56db> <parenright> : "㊃" U3283 # CIRCLED IDEOGRAPH FOUR
+<Multi_key> <parenleft> <U4e94> <parenright> : "㊄" U3284 # CIRCLED IDEOGRAPH FIVE
+<Multi_key> <parenleft> <U516d> <parenright> : "㊅" U3285 # CIRCLED IDEOGRAPH SIX
+<Multi_key> <parenleft> <U4e03> <parenright> : "㊆" U3286 # CIRCLED IDEOGRAPH SEVEN
+<Multi_key> <parenleft> <U516b> <parenright> : "㊇" U3287 # CIRCLED IDEOGRAPH EIGHT
+<Multi_key> <parenleft> <U4e5d> <parenright> : "㊈" U3288 # CIRCLED IDEOGRAPH NINE
+<Multi_key> <parenleft> <U5341> <parenright> : "㊉" U3289 # CIRCLED IDEOGRAPH TEN
+<Multi_key> <parenleft> <U6708> <parenright> : "㊊" U328A # CIRCLED IDEOGRAPH MOON
+<Multi_key> <parenleft> <U706b> <parenright> : "㊋" U328B # CIRCLED IDEOGRAPH FIRE
+<Multi_key> <parenleft> <U6c34> <parenright> : "㊌" U328C # CIRCLED IDEOGRAPH WATER
+<Multi_key> <parenleft> <U6728> <parenright> : "ãŠ" U328D # CIRCLED IDEOGRAPH WOOD
+<Multi_key> <parenleft> <U91d1> <parenright> : "㊎" U328E # CIRCLED IDEOGRAPH METAL
+<Multi_key> <parenleft> <U571f> <parenright> : "ãŠ" U328F # CIRCLED IDEOGRAPH EARTH
+<Multi_key> <parenleft> <U65e5> <parenright> : "ãŠ" U3290 # CIRCLED IDEOGRAPH SUN
+<Multi_key> <parenleft> <U682a> <parenright> : "㊑" U3291 # CIRCLED IDEOGRAPH STOCK
+<Multi_key> <parenleft> <U6709> <parenright> : "㊒" U3292 # CIRCLED IDEOGRAPH HAVE
+<Multi_key> <parenleft> <U793e> <parenright> : "㊓" U3293 # CIRCLED IDEOGRAPH SOCIETY
+<Multi_key> <parenleft> <U540d> <parenright> : "㊔" U3294 # CIRCLED IDEOGRAPH NAME
+<Multi_key> <parenleft> <U7279> <parenright> : "㊕" U3295 # CIRCLED IDEOGRAPH SPECIAL
+<Multi_key> <parenleft> <U8ca1> <parenright> : "㊖" U3296 # CIRCLED IDEOGRAPH FINANCIAL
+<Multi_key> <parenleft> <U795d> <parenright> : "㊗" U3297 # CIRCLED IDEOGRAPH CONGRATULATION
+<Multi_key> <parenleft> <U52b4> <parenright> : "㊘" U3298 # CIRCLED IDEOGRAPH LABOR
+<Multi_key> <parenleft> <U79d8> <parenright> : "㊙" U3299 # CIRCLED IDEOGRAPH SECRET
+<Multi_key> <parenleft> <U7537> <parenright> : "㊚" U329A # CIRCLED IDEOGRAPH MALE
+<Multi_key> <parenleft> <U5973> <parenright> : "㊛" U329B # CIRCLED IDEOGRAPH FEMALE
+<Multi_key> <parenleft> <U9069> <parenright> : "㊜" U329C # CIRCLED IDEOGRAPH SUITABLE
+<Multi_key> <parenleft> <U512a> <parenright> : "ãŠ" U329D # CIRCLED IDEOGRAPH EXCELLENT
+<Multi_key> <parenleft> <U5370> <parenright> : "㊞" U329E # CIRCLED IDEOGRAPH PRINT
+<Multi_key> <parenleft> <U6ce8> <parenright> : "㊟" U329F # CIRCLED IDEOGRAPH ATTENTION
+<Multi_key> <parenleft> <U9805> <parenright> : "㊠" U32A0 # CIRCLED IDEOGRAPH ITEM
+<Multi_key> <parenleft> <U4f11> <parenright> : "㊡" U32A1 # CIRCLED IDEOGRAPH REST
+<Multi_key> <parenleft> <U5199> <parenright> : "㊢" U32A2 # CIRCLED IDEOGRAPH COPY
+<Multi_key> <parenleft> <U6b63> <parenright> : "㊣" U32A3 # CIRCLED IDEOGRAPH CORRECT
+<Multi_key> <parenleft> <U4e0a> <parenright> : "㊤" U32A4 # CIRCLED IDEOGRAPH HIGH
+<Multi_key> <parenleft> <U4e2d> <parenright> : "㊥" U32A5 # CIRCLED IDEOGRAPH CENTRE
+<Multi_key> <parenleft> <U4e0b> <parenright> : "㊦" U32A6 # CIRCLED IDEOGRAPH LOW
+<Multi_key> <parenleft> <U5de6> <parenright> : "㊧" U32A7 # CIRCLED IDEOGRAPH LEFT
+<Multi_key> <parenleft> <U53f3> <parenright> : "㊨" U32A8 # CIRCLED IDEOGRAPH RIGHT
+<Multi_key> <parenleft> <U533b> <parenright> : "㊩" U32A9 # CIRCLED IDEOGRAPH MEDICINE
+<Multi_key> <parenleft> <U5b97> <parenright> : "㊪" U32AA # CIRCLED IDEOGRAPH RELIGION
+<Multi_key> <parenleft> <U5b66> <parenright> : "㊫" U32AB # CIRCLED IDEOGRAPH STUDY
+<Multi_key> <parenleft> <U76e3> <parenright> : "㊬" U32AC # CIRCLED IDEOGRAPH SUPERVISE
+<Multi_key> <parenleft> <U4f01> <parenright> : "㊭" U32AD # CIRCLED IDEOGRAPH ENTERPRISE
+<Multi_key> <parenleft> <U8cc7> <parenright> : "㊮" U32AE # CIRCLED IDEOGRAPH RESOURCE
+<Multi_key> <parenleft> <U5354> <parenright> : "㊯" U32AF # CIRCLED IDEOGRAPH ALLIANCE
+<Multi_key> <parenleft> <U591c> <parenright> : "㊰" U32B0 # CIRCLED IDEOGRAPH NIGHT
+<Multi_key> <parenleft> <3> <6> <parenright> : "㊱" U32B1 # CIRCLED NUMBER THIRTY SIX
+<Multi_key> <parenleft> <3> <KP_6> <parenright> : "㊱" U32B1 # CIRCLED NUMBER THIRTY SIX
+<Multi_key> <parenleft> <KP_3> <6> <parenright> : "㊱" U32B1 # CIRCLED NUMBER THIRTY SIX
+<Multi_key> <parenleft> <KP_3> <KP_6> <parenright> : "㊱" U32B1 # CIRCLED NUMBER THIRTY SIX
+<Multi_key> <parenleft> <3> <7> <parenright> : "㊲" U32B2 # CIRCLED NUMBER THIRTY SEVEN
+<Multi_key> <parenleft> <3> <KP_7> <parenright> : "㊲" U32B2 # CIRCLED NUMBER THIRTY SEVEN
+<Multi_key> <parenleft> <KP_3> <7> <parenright> : "㊲" U32B2 # CIRCLED NUMBER THIRTY SEVEN
+<Multi_key> <parenleft> <KP_3> <KP_7> <parenright> : "㊲" U32B2 # CIRCLED NUMBER THIRTY SEVEN
+<Multi_key> <parenleft> <3> <8> <parenright> : "㊳" U32B3 # CIRCLED NUMBER THIRTY EIGHT
+<Multi_key> <parenleft> <3> <KP_8> <parenright> : "㊳" U32B3 # CIRCLED NUMBER THIRTY EIGHT
+<Multi_key> <parenleft> <KP_3> <8> <parenright> : "㊳" U32B3 # CIRCLED NUMBER THIRTY EIGHT
+<Multi_key> <parenleft> <KP_3> <KP_8> <parenright> : "㊳" U32B3 # CIRCLED NUMBER THIRTY EIGHT
+<Multi_key> <parenleft> <3> <9> <parenright> : "㊴" U32B4 # CIRCLED NUMBER THIRTY NINE
+<Multi_key> <parenleft> <3> <KP_9> <parenright> : "㊴" U32B4 # CIRCLED NUMBER THIRTY NINE
+<Multi_key> <parenleft> <KP_3> <9> <parenright> : "㊴" U32B4 # CIRCLED NUMBER THIRTY NINE
+<Multi_key> <parenleft> <KP_3> <KP_9> <parenright> : "㊴" U32B4 # CIRCLED NUMBER THIRTY NINE
+<Multi_key> <parenleft> <4> <0> <parenright> : "㊵" U32B5 # CIRCLED NUMBER FORTY
+<Multi_key> <parenleft> <4> <KP_0> <parenright> : "㊵" U32B5 # CIRCLED NUMBER FORTY
+<Multi_key> <parenleft> <KP_4> <0> <parenright> : "㊵" U32B5 # CIRCLED NUMBER FORTY
+<Multi_key> <parenleft> <KP_4> <KP_0> <parenright> : "㊵" U32B5 # CIRCLED NUMBER FORTY
+<Multi_key> <parenleft> <4> <1> <parenright> : "㊶" U32B6 # CIRCLED NUMBER FORTY ONE
+<Multi_key> <parenleft> <4> <KP_1> <parenright> : "㊶" U32B6 # CIRCLED NUMBER FORTY ONE
+<Multi_key> <parenleft> <KP_4> <1> <parenright> : "㊶" U32B6 # CIRCLED NUMBER FORTY ONE
+<Multi_key> <parenleft> <KP_4> <KP_1> <parenright> : "㊶" U32B6 # CIRCLED NUMBER FORTY ONE
+<Multi_key> <parenleft> <4> <2> <parenright> : "㊷" U32B7 # CIRCLED NUMBER FORTY TWO
+<Multi_key> <parenleft> <4> <KP_Space> <parenright> : "㊷" U32B7 # CIRCLED NUMBER FORTY TWO
+<Multi_key> <parenleft> <4> <KP_2> <parenright> : "㊷" U32B7 # CIRCLED NUMBER FORTY TWO
+<Multi_key> <parenleft> <KP_4> <2> <parenright> : "㊷" U32B7 # CIRCLED NUMBER FORTY TWO
+<Multi_key> <parenleft> <KP_4> <KP_Space> <parenright> : "㊷" U32B7 # CIRCLED NUMBER FORTY TWO
+<Multi_key> <parenleft> <KP_4> <KP_2> <parenright> : "㊷" U32B7 # CIRCLED NUMBER FORTY TWO
+<Multi_key> <parenleft> <4> <3> <parenright> : "㊸" U32B8 # CIRCLED NUMBER FORTY THREE
+<Multi_key> <parenleft> <4> <KP_3> <parenright> : "㊸" U32B8 # CIRCLED NUMBER FORTY THREE
+<Multi_key> <parenleft> <KP_4> <3> <parenright> : "㊸" U32B8 # CIRCLED NUMBER FORTY THREE
+<Multi_key> <parenleft> <KP_4> <KP_3> <parenright> : "㊸" U32B8 # CIRCLED NUMBER FORTY THREE
+<Multi_key> <parenleft> <4> <4> <parenright> : "㊹" U32B9 # CIRCLED NUMBER FORTY FOUR
+<Multi_key> <parenleft> <4> <KP_4> <parenright> : "㊹" U32B9 # CIRCLED NUMBER FORTY FOUR
+<Multi_key> <parenleft> <KP_4> <4> <parenright> : "㊹" U32B9 # CIRCLED NUMBER FORTY FOUR
+<Multi_key> <parenleft> <KP_4> <KP_4> <parenright> : "㊹" U32B9 # CIRCLED NUMBER FORTY FOUR
+<Multi_key> <parenleft> <4> <5> <parenright> : "㊺" U32BA # CIRCLED NUMBER FORTY FIVE
+<Multi_key> <parenleft> <4> <KP_5> <parenright> : "㊺" U32BA # CIRCLED NUMBER FORTY FIVE
+<Multi_key> <parenleft> <KP_4> <5> <parenright> : "㊺" U32BA # CIRCLED NUMBER FORTY FIVE
+<Multi_key> <parenleft> <KP_4> <KP_5> <parenright> : "㊺" U32BA # CIRCLED NUMBER FORTY FIVE
+<Multi_key> <parenleft> <4> <6> <parenright> : "㊻" U32BB # CIRCLED NUMBER FORTY SIX
+<Multi_key> <parenleft> <4> <KP_6> <parenright> : "㊻" U32BB # CIRCLED NUMBER FORTY SIX
+<Multi_key> <parenleft> <KP_4> <6> <parenright> : "㊻" U32BB # CIRCLED NUMBER FORTY SIX
+<Multi_key> <parenleft> <KP_4> <KP_6> <parenright> : "㊻" U32BB # CIRCLED NUMBER FORTY SIX
+<Multi_key> <parenleft> <4> <7> <parenright> : "㊼" U32BC # CIRCLED NUMBER FORTY SEVEN
+<Multi_key> <parenleft> <4> <KP_7> <parenright> : "㊼" U32BC # CIRCLED NUMBER FORTY SEVEN
+<Multi_key> <parenleft> <KP_4> <7> <parenright> : "㊼" U32BC # CIRCLED NUMBER FORTY SEVEN
+<Multi_key> <parenleft> <KP_4> <KP_7> <parenright> : "㊼" U32BC # CIRCLED NUMBER FORTY SEVEN
+<Multi_key> <parenleft> <4> <8> <parenright> : "㊽" U32BD # CIRCLED NUMBER FORTY EIGHT
+<Multi_key> <parenleft> <4> <KP_8> <parenright> : "㊽" U32BD # CIRCLED NUMBER FORTY EIGHT
+<Multi_key> <parenleft> <KP_4> <8> <parenright> : "㊽" U32BD # CIRCLED NUMBER FORTY EIGHT
+<Multi_key> <parenleft> <KP_4> <KP_8> <parenright> : "㊽" U32BD # CIRCLED NUMBER FORTY EIGHT
+<Multi_key> <parenleft> <4> <9> <parenright> : "㊾" U32BE # CIRCLED NUMBER FORTY NINE
+<Multi_key> <parenleft> <4> <KP_9> <parenright> : "㊾" U32BE # CIRCLED NUMBER FORTY NINE
+<Multi_key> <parenleft> <KP_4> <9> <parenright> : "㊾" U32BE # CIRCLED NUMBER FORTY NINE
+<Multi_key> <parenleft> <KP_4> <KP_9> <parenright> : "㊾" U32BE # CIRCLED NUMBER FORTY NINE
+<Multi_key> <parenleft> <5> <0> <parenright> : "㊿" U32BF # CIRCLED NUMBER FIFTY
+<Multi_key> <parenleft> <5> <KP_0> <parenright> : "㊿" U32BF # CIRCLED NUMBER FIFTY
+<Multi_key> <parenleft> <KP_5> <0> <parenright> : "㊿" U32BF # CIRCLED NUMBER FIFTY
+<Multi_key> <parenleft> <KP_5> <KP_0> <parenright> : "㊿" U32BF # CIRCLED NUMBER FIFTY
+<Multi_key> <parenleft> <kana_A> <parenright> : "ã‹" U32D0 # CIRCLED KATAKANA A
+<Multi_key> <parenleft> <kana_I> <parenright> : "ã‹‘" U32D1 # CIRCLED KATAKANA I
+<Multi_key> <parenleft> <kana_U> <parenright> : "ã‹’" U32D2 # CIRCLED KATAKANA U
+<Multi_key> <parenleft> <kana_E> <parenright> : "ã‹“" U32D3 # CIRCLED KATAKANA E
+<Multi_key> <parenleft> <kana_O> <parenright> : "ã‹”" U32D4 # CIRCLED KATAKANA O
+<Multi_key> <parenleft> <kana_KA> <parenright> : "ã‹•" U32D5 # CIRCLED KATAKANA KA
+<Multi_key> <parenleft> <kana_KI> <parenright> : "ã‹–" U32D6 # CIRCLED KATAKANA KI
+<Multi_key> <parenleft> <kana_KU> <parenright> : "ã‹—" U32D7 # CIRCLED KATAKANA KU
+<Multi_key> <parenleft> <kana_KE> <parenright> : "㋘" U32D8 # CIRCLED KATAKANA KE
+<Multi_key> <parenleft> <kana_KO> <parenright> : "ã‹™" U32D9 # CIRCLED KATAKANA KO
+<Multi_key> <parenleft> <kana_SA> <parenright> : "ã‹š" U32DA # CIRCLED KATAKANA SA
+<Multi_key> <parenleft> <kana_SHI> <parenright> : "ã‹›" U32DB # CIRCLED KATAKANA SI
+<Multi_key> <parenleft> <kana_SU> <parenright> : "㋜" U32DC # CIRCLED KATAKANA SU
+<Multi_key> <parenleft> <kana_SE> <parenright> : "ã‹" U32DD # CIRCLED KATAKANA SE
+<Multi_key> <parenleft> <kana_SO> <parenright> : "ã‹ž" U32DE # CIRCLED KATAKANA SO
+<Multi_key> <parenleft> <kana_TA> <parenright> : "ã‹Ÿ" U32DF # CIRCLED KATAKANA TA
+<Multi_key> <parenleft> <kana_CHI> <parenright> : "ã‹ " U32E0 # CIRCLED KATAKANA TI
+<Multi_key> <parenleft> <kana_TSU> <parenright> : "ã‹¡" U32E1 # CIRCLED KATAKANA TU
+<Multi_key> <parenleft> <kana_TE> <parenright> : "ã‹¢" U32E2 # CIRCLED KATAKANA TE
+<Multi_key> <parenleft> <kana_TO> <parenright> : "ã‹£" U32E3 # CIRCLED KATAKANA TO
+<Multi_key> <parenleft> <kana_NA> <parenright> : "㋤" U32E4 # CIRCLED KATAKANA NA
+<Multi_key> <parenleft> <kana_NI> <parenright> : "ã‹¥" U32E5 # CIRCLED KATAKANA NI
+<Multi_key> <parenleft> <kana_NU> <parenright> : "㋦" U32E6 # CIRCLED KATAKANA NU
+<Multi_key> <parenleft> <kana_NE> <parenright> : "㋧" U32E7 # CIRCLED KATAKANA NE
+<Multi_key> <parenleft> <kana_NO> <parenright> : "㋨" U32E8 # CIRCLED KATAKANA NO
+<Multi_key> <parenleft> <kana_HA> <parenright> : "ã‹©" U32E9 # CIRCLED KATAKANA HA
+<Multi_key> <parenleft> <kana_HI> <parenright> : "㋪" U32EA # CIRCLED KATAKANA HI
+<Multi_key> <parenleft> <kana_FU> <parenright> : "ã‹«" U32EB # CIRCLED KATAKANA HU
+<Multi_key> <parenleft> <kana_HE> <parenright> : "㋬" U32EC # CIRCLED KATAKANA HE
+<Multi_key> <parenleft> <kana_HO> <parenright> : "ã‹­" U32ED # CIRCLED KATAKANA HO
+<Multi_key> <parenleft> <kana_MA> <parenright> : "ã‹®" U32EE # CIRCLED KATAKANA MA
+<Multi_key> <parenleft> <kana_MI> <parenright> : "㋯" U32EF # CIRCLED KATAKANA MI
+<Multi_key> <parenleft> <kana_MU> <parenright> : "ã‹°" U32F0 # CIRCLED KATAKANA MU
+<Multi_key> <parenleft> <kana_ME> <parenright> : "㋱" U32F1 # CIRCLED KATAKANA ME
+<Multi_key> <parenleft> <kana_MO> <parenright> : "㋲" U32F2 # CIRCLED KATAKANA MO
+<Multi_key> <parenleft> <kana_YA> <parenright> : "㋳" U32F3 # CIRCLED KATAKANA YA
+<Multi_key> <parenleft> <kana_YU> <parenright> : "ã‹´" U32F4 # CIRCLED KATAKANA YU
+<Multi_key> <parenleft> <kana_YO> <parenright> : "㋵" U32F5 # CIRCLED KATAKANA YO
+<Multi_key> <parenleft> <kana_RA> <parenright> : "㋶" U32F6 # CIRCLED KATAKANA RA
+<Multi_key> <parenleft> <kana_RI> <parenright> : "ã‹·" U32F7 # CIRCLED KATAKANA RI
+<Multi_key> <parenleft> <kana_RU> <parenright> : "㋸" U32F8 # CIRCLED KATAKANA RU
+<Multi_key> <parenleft> <kana_RE> <parenright> : "㋹" U32F9 # CIRCLED KATAKANA RE
+<Multi_key> <parenleft> <kana_RO> <parenright> : "㋺" U32FA # CIRCLED KATAKANA RO
+<Multi_key> <parenleft> <kana_WA> <parenright> : "ã‹»" U32FB # CIRCLED KATAKANA WA
+<Multi_key> <parenleft> <U30f0> <parenright> : "㋼" U32FC # CIRCLED KATAKANA WI
+<Multi_key> <parenleft> <U30f1> <parenright> : "㋽" U32FD # CIRCLED KATAKANA WE
+<Multi_key> <parenleft> <kana_WO> <parenright> : "㋾" U32FE # CIRCLED KATAKANA WO
+<Multi_key> <U05b4> <hebrew_yod> : "ï¬" UFB1D # HEBREW LETTER YOD WITH HIRIQ
+<Multi_key> <U05b7> <U05f2> : "ײַ" UFB1F # HEBREW LIGATURE YIDDISH YOD YOD PATAH
+<Multi_key> <U05c1> <hebrew_shin> : "שׁ" UFB2A # HEBREW LETTER SHIN WITH SHIN DOT
+<Multi_key> <U05c2> <hebrew_shin> : "שׂ" UFB2B # HEBREW LETTER SHIN WITH SIN DOT
+<Multi_key> <U05c1> <Ufb49> : "שּׁ" UFB2C # HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT
+<Multi_key> <U05c1> <U05bc> <hebrew_shin> : "שּׁ" UFB2C # HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT
+<Multi_key> <U05c2> <Ufb49> : "שּׂ" UFB2D # HEBREW LETTER SHIN WITH DAGESH AND SIN DOT
+<Multi_key> <U05c2> <U05bc> <hebrew_shin> : "שּׂ" UFB2D # HEBREW LETTER SHIN WITH DAGESH AND SIN DOT
+<Multi_key> <U05b7> <hebrew_aleph> : "אַ" UFB2E # HEBREW LETTER ALEF WITH PATAH
+<Multi_key> <U05b8> <hebrew_aleph> : "אָ" UFB2F # HEBREW LETTER ALEF WITH QAMATS
+<Multi_key> <U05bc> <hebrew_aleph> : "אּ" UFB30 # HEBREW LETTER ALEF WITH MAPIQ
+<Multi_key> <U05bc> <hebrew_bet> : "בּ" UFB31 # HEBREW LETTER BET WITH DAGESH
+<Multi_key> <U05bc> <hebrew_beth> : "בּ" UFB31 # HEBREW LETTER BET WITH DAGESH
+<Multi_key> <U05bc> <hebrew_gimel> : "גּ" UFB32 # HEBREW LETTER GIMEL WITH DAGESH
+<Multi_key> <U05bc> <hebrew_gimmel> : "גּ" UFB32 # HEBREW LETTER GIMEL WITH DAGESH
+<Multi_key> <U05bc> <hebrew_dalet> : "דּ" UFB33 # HEBREW LETTER DALET WITH DAGESH
+<Multi_key> <U05bc> <hebrew_daleth> : "דּ" UFB33 # HEBREW LETTER DALET WITH DAGESH
+<Multi_key> <U05bc> <hebrew_he> : "הּ" UFB34 # HEBREW LETTER HE WITH MAPIQ
+<Multi_key> <U05bc> <hebrew_waw> : "וּ" UFB35 # HEBREW LETTER VAV WITH DAGESH
+<Multi_key> <U05bc> <hebrew_zain> : "זּ" UFB36 # HEBREW LETTER ZAYIN WITH DAGESH
+<Multi_key> <U05bc> <hebrew_zayin> : "זּ" UFB36 # HEBREW LETTER ZAYIN WITH DAGESH
+<Multi_key> <U05bc> <hebrew_tet> : "טּ" UFB38 # HEBREW LETTER TET WITH DAGESH
+<Multi_key> <U05bc> <hebrew_teth> : "טּ" UFB38 # HEBREW LETTER TET WITH DAGESH
+<Multi_key> <U05bc> <hebrew_yod> : "יּ" UFB39 # HEBREW LETTER YOD WITH DAGESH
+<Multi_key> <U05bc> <hebrew_finalkaph> : "ךּ" UFB3A # HEBREW LETTER FINAL KAF WITH DAGESH
+<Multi_key> <U05bc> <hebrew_kaph> : "כּ" UFB3B # HEBREW LETTER KAF WITH DAGESH
+<Multi_key> <U05bc> <hebrew_lamed> : "לּ" UFB3C # HEBREW LETTER LAMED WITH DAGESH
+<Multi_key> <U05bc> <hebrew_mem> : "מּ" UFB3E # HEBREW LETTER MEM WITH DAGESH
+<Multi_key> <U05bc> <hebrew_nun> : "ï­€" UFB40 # HEBREW LETTER NUN WITH DAGESH
+<Multi_key> <U05bc> <hebrew_samech> : "ï­" UFB41 # HEBREW LETTER SAMEKH WITH DAGESH
+<Multi_key> <U05bc> <hebrew_samekh> : "ï­" UFB41 # HEBREW LETTER SAMEKH WITH DAGESH
+<Multi_key> <U05bc> <hebrew_finalpe> : "ï­ƒ" UFB43 # HEBREW LETTER FINAL PE WITH DAGESH
+<Multi_key> <U05bc> <hebrew_pe> : "ï­„" UFB44 # HEBREW LETTER PE WITH DAGESH
+<Multi_key> <U05bc> <hebrew_zade> : "ï­†" UFB46 # HEBREW LETTER TSADI WITH DAGESH
+<Multi_key> <U05bc> <hebrew_zadi> : "ï­†" UFB46 # HEBREW LETTER TSADI WITH DAGESH
+<Multi_key> <U05bc> <hebrew_kuf> : "ï­‡" UFB47 # HEBREW LETTER QOF WITH DAGESH
+<Multi_key> <U05bc> <hebrew_qoph> : "ï­‡" UFB47 # HEBREW LETTER QOF WITH DAGESH
+<Multi_key> <U05bc> <hebrew_resh> : "ï­ˆ" UFB48 # HEBREW LETTER RESH WITH DAGESH
+<Multi_key> <U05bc> <hebrew_shin> : "ï­‰" UFB49 # HEBREW LETTER SHIN WITH DAGESH
+<Multi_key> <U05bc> <hebrew_taf> : "ï­Š" UFB4A # HEBREW LETTER TAV WITH DAGESH
+<Multi_key> <U05bc> <hebrew_taw> : "ï­Š" UFB4A # HEBREW LETTER TAV WITH DAGESH
+<Multi_key> <U05b9> <hebrew_waw> : "ï­‹" UFB4B # HEBREW LETTER VAV WITH HOLAM
+<Multi_key> <U05bf> <hebrew_bet> : "בֿ" UFB4C # HEBREW LETTER BET WITH RAFE
+<Multi_key> <U05bf> <hebrew_beth> : "בֿ" UFB4C # HEBREW LETTER BET WITH RAFE
+<Multi_key> <U05bf> <hebrew_kaph> : "ï­" UFB4D # HEBREW LETTER KAF WITH RAFE
+<Multi_key> <U05bf> <hebrew_pe> : "ï­Ž" UFB4E # HEBREW LETTER PE WITH RAFE
+<Multi_key> <U1d157> <U1d165> : "í…ž" U1D15E # MUSICAL SYMBOL HALF NOTE
+<Multi_key> <U1d158> <U1d165> : "í…Ÿ" U1D15F # MUSICAL SYMBOL QUARTER NOTE
+<Multi_key> <U1d15f> <U1d16e> : "í… " U1D160 # MUSICAL SYMBOL EIGHTH NOTE
+<Multi_key> <U1d158> <U1d165> <U1d16e> : "í… " U1D160 # MUSICAL SYMBOL EIGHTH NOTE
+<Multi_key> <U1d15f> <U1d16f> : "í…¡" U1D161 # MUSICAL SYMBOL SIXTEENTH NOTE
+<Multi_key> <U1d158> <U1d165> <U1d16f> : "í…¡" U1D161 # MUSICAL SYMBOL SIXTEENTH NOTE
+<Multi_key> <U1d15f> <U1d170> : "í…¢" U1D162 # MUSICAL SYMBOL THIRTY-SECOND NOTE
+<Multi_key> <U1d158> <U1d165> <U1d170> : "í…¢" U1D162 # MUSICAL SYMBOL THIRTY-SECOND NOTE
+<Multi_key> <U1d15f> <U1d171> : "í…£" U1D163 # MUSICAL SYMBOL SIXTY-FOURTH NOTE
+<Multi_key> <U1d158> <U1d165> <U1d171> : "í…£" U1D163 # MUSICAL SYMBOL SIXTY-FOURTH NOTE
+<Multi_key> <U1d15f> <U1d172> : "í…¤" U1D164 # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
+<Multi_key> <U1d158> <U1d165> <U1d172> : "í…¤" U1D164 # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
+<Multi_key> <U1d1b9> <U1d165> : "톻" U1D1BB # MUSICAL SYMBOL MINIMA
+<Multi_key> <U1d1ba> <U1d165> : "톼" U1D1BC # MUSICAL SYMBOL MINIMA BLACK
+<Multi_key> <U1d1bb> <U1d16e> : "톽" U1D1BD # MUSICAL SYMBOL SEMIMINIMA WHITE
+<Multi_key> <U1d1b9> <U1d165> <U1d16e> : "톽" U1D1BD # MUSICAL SYMBOL SEMIMINIMA WHITE
+<Multi_key> <U1d1bc> <U1d16e> : "톾" U1D1BE # MUSICAL SYMBOL SEMIMINIMA BLACK
+<Multi_key> <U1d1ba> <U1d165> <U1d16e> : "톾" U1D1BE # MUSICAL SYMBOL SEMIMINIMA BLACK
+<Multi_key> <U1d1bb> <U1d16f> : "톿" U1D1BF # MUSICAL SYMBOL FUSA WHITE
+<Multi_key> <U1d1b9> <U1d165> <U1d16f> : "톿" U1D1BF # MUSICAL SYMBOL FUSA WHITE
+<Multi_key> <U1d1bc> <U1d16f> : "퇀" U1D1C0 # MUSICAL SYMBOL FUSA BLACK
+<Multi_key> <U1d1ba> <U1d165> <U1d16f> : "퇀" U1D1C0 # MUSICAL SYMBOL FUSA BLACK
diff --git a/nls/en_US.UTF-8/XLC_LOCALE.pre b/nls/en_US.UTF-8/XLC_LOCALE.pre
index d1e7e2c2..3af71e25 100644
--- a/nls/en_US.UTF-8/XLC_LOCALE.pre
+++ b/nls/en_US.UTF-8/XLC_LOCALE.pre
@@ -1,365 +1,142 @@
-XCOMM
-XCOMM Copyright (c) 1996-1998 by Sun Microsystems, Inc.
-XCOMM All rights reserved.
-XCOMM
-#ident "@(#)en_US.UTF-8 1.26 98/11/17 SMI"
+XCOMM $XFree86: xc/nls/XLC_LOCALE/en_US.UTF-8,v 1.2 2000/02/29 03:09:07 dawes Exp $
+XCOMM XLocale Database Sample for en_US.UTF-8
+XCOMM
+
XCOMM
XCOMM XLC_FONTSET category
XCOMM
XLC_FONTSET
-XCOMM fs0 class
+on_demand_loading True
+
+object_name generic
+
+XCOMM fs0 class
fs0 {
- charset ISO8859-1:GL
- font {
- primary ISO8859-1:GL
+ charset {
+ name ISO10646-1
}
-}
-
-XCOMM fs1 class
-fs1 {
- charset ISO8859-1:GR
- font {
- primary ISO8859-1:GR
+ font {
+ primary ISO10646-1
}
}
-
-XCOMM fs2 class
-fs2 {
- charset ISO8859-5:GR
- font {
- load_option delay_nocheck
- primary ISO8859-5:GR
+XCOMM We leave the legacy encodings in for the moment, because we don't
+XCOMM have that many ISO10646 fonts yet.
+XCOMM fs1 class (7 bit ASCII)
+fs1 {
+ charset {
+ name ISO8859-1:GL
}
-}
-XCOMM fs3 class
-fs3 {
- charset ISO8859-7:GR
- font {
- load_option delay_nocheck
- primary ISO8859-7:GR
+ font {
+ primary ISO8859-1:GL
+ vertical_rotate all
}
}
-
-XCOMM fs4 class
-fs4 {
- charset ISO8859-2:GR
- font {
- load_option delay_nocheck
- primary ISO8859-2:GR
+XCOMM fs2 class (ISO8859 families)
+fs2 {
+ charset {
+ name ISO8859-1:GR
}
-}
-
-XCOMM fs5 class
-fs5 {
- charset ISO8859-4:GR
- font {
- load_option delay_nocheck
- primary ISO8859-4:GR
+ font {
+ primary ISO8859-1:GR
}
}
-
-XCOMM fs6 class
-fs6 {
- charset ISO8859-9:GR
- font {
- load_option delay_nocheck
- primary ISO8859-9:GR
+XCOMM fs3 class (Kanji)
+fs3 {
+ charset {
+ name JISX0208.1983-0:GL
}
-}
-
-XCOMM fs7 class
-fs7 {
- charset ISO8859-15:GR
- font {
- load_option delay_nocheck
- primary ISO8859-15:GR
+ font {
+ primary JISX0208.1983-0:GL
}
}
-
-XCOMM fs8 class for JISX0208
-fs8 {
- charset JISX0208.1983-0:GR
- font {
- load_option delay_nocheck
- primary JISX0208.1983-0:GL
+XCOMM fs4 class (Korean Character)
+fs4 {
+ charset {
+ name KSC5601.1987-0:GL
}
-}
-
-XCOMM fs9 class for JISX0201 kana
-fs9 {
- charset JISX0201.1976-0:GR
- font {
- load_option delay_nocheck
- primary JISX0201.1976-0:GR
+ font {
+ primary KSC5601.1987-0:GL
}
}
-
-XCOMM fs10 calss for KS C 5601-1992 Supplementary Codes 3
-fs10 {
- charset KSC5601.1992-3:GLGR
- font {
- primary KSC5601.1992-3:GLGR
- }
-}
-
-XCOMM fs11 class
-fs11 {
- charset GB2312.1980-0:GR
- font {
- load_option delay_nocheck
- primary GB2312.1980-0:GL
- }
-}
-
-XCOMM fs12 class
-fs12 {
- charset BIG5-1:GLGR
- font {
- load_option delay_nocheck
- primary BIG5-1:GLGR
- }
-}
-
-XCOMM fs13 class (Thai)
-fs13 {
- charset TIS620.2533-0:GR
- font {
- primary TIS620.2533-0:GR
+XCOMM fs5 class (Chinese Han Character)
+fs5 {
+ charset {
+ name GB2312.1980-0:GL
}
-}
-
-XCOMM fs14 class (ISO8859-6) (Arabic)
-fs14 {
- charset ISO8859-6:GLGR
- font {
- primary ISO8859-6:GLGR
+ font {
+ primary GB2312.1980-0:GL
}
}
-
-XCOMM fs15 class (ISO8859-8) (Hebrew)
-fs15 {
- charset ISO8859-8:GR
- font {
- primary ISO8859-8:GR
+XCOMM fs6 class (Half Kana)
+fs6 {
+ charset {
+ name JISX0201.1976-0:GR
}
-}
-
-XCOMM fs16 (Last, fallback) class (unicode-fontspecific)
-fs16 {
- charset UNICODE-FONTSPECIFIC:GLGR
- font {
- load_option delay_nocheck
- primary UNICODE-FONTSPECIFIC:GLGR
+ font {
+ primary JISX0201.1976-0:GR
+ vertical_rotate all
}
}
-
END XLC_FONTSET
-
XCOMM
XCOMM XLC_XLOCALE category
XCOMM
XLC_XLOCALE
-encoding_name en_US.UTF-8
-mb_cur_max 8
+encoding_name UTF-8
+mb_cur_max 6
state_depend_encoding False
-mb_encoding_name UTF-8
-wc_encoding_name UCS-4
-wc_valid_length 2
-wc_conversion_table conv_tables/UCS_TO_CS
-
-
-XCOMM cs0 class
+XCOMM cs0 class
cs0 {
side GL:Default
length 1
ct_encoding ISO8859-1:GL
- byte1 \x00,\x7f
- cs_range \x00,\x7f
- cs_conversion [\x00,\x7f]->\x00
- cs_conversion_table conv_tables/ISO8859-1.GL
-}
-
-
-XCOMM cs1 class
-cs1 {
- side GR:Default
- length 1
- ct_encoding ISO8859-1:GR
- byte1 \x80,\xff
- cs_range \x80,\xff
- cs_conversion [\x80,\xff]->\x80
- cs_conversion_table conv_tables/ISO8859-1.GR
-}
-
-XCOMM cs2 class
-cs2 {
- side GR:Default
- length 1
- ct_encoding ISO8859-5:GR
- byte1 \xa0,\xff
- cs_range \xa0,\xff
- cs_conversion_file conv_tables/ISO8859-5.GR.txt
- cs_conversion_table conv_tables/ISO8859-5.GR
-}
-
-XCOMM cs3 class
-cs3 {
- side GR:Default
- length 1
- ct_encoding ISO8859-7:GR
- byte1 \xa0,\xfe
- cs_range \xa0,\xfe
- cs_conversion_file conv_tables/ISO8859-7.GR.txt
- cs_conversion_table conv_tables/ISO8859-7.GR
-}
-
-XCOMM cs4 class
-cs4 {
- side GR:Default
- length 1
- ct_encoding ISO8859-2:GR
- byte1 \xa0,\xfe
- cs_range \xa0,\xfe
- cs_conversion_file conv_tables/ISO8859-2.GR.txt
- cs_conversion_table conv_tables/ISO8859-2.GR
-}
-
-XCOMM cs5 class
-cs5 {
- side GR:Default
- length 1
- ct_encoding ISO8859-4:GR
- byte1 \xa0,\xfe
- cs_range \xa0,\xfe
- cs_conversion_file conv_tables/ISO8859-4.GR.txt
- cs_conversion_table conv_tables/ISO8859-4.GR
-}
-
-XCOMM cs6 class
-cs6 {
- side GR:Default
- length 1
- ct_encoding ISO8859-9:GR
- byte1 \xa0,\xfe
- cs_range \xa0,\xfe
- cs_conversion_file conv_tables/ISO8859-9.GR.txt
- cs_conversion_table conv_tables/ISO8859-9.GR
-}
-
-XCOMM cs7 class
-cs7 {
- side GR:Default
- length 1
- ct_encoding ISO8859-15:GR
- byte1 \xa0,\xfe
- cs_range \xa0,\xfe
- cs_conversion_file conv_tables/ISO8859-15.GR.txt
- cs_conversion_table conv_tables/ISO8859-15.GR
-}
-
-XCOMM cs8 class
-cs8 {
- side GR:Default
- length 2
- ct_encoding JISX0208.1983-0:GR;
- byte1 \xa1,\xfe
- byte2 \xa1,\xfe
- cs_conversion_file conv_tables/JISX0208-0.GR.txt
- cs_conversion_table conv_tables/JISX0208-0.GR
}
-XCOMM cs9 class
-cs9 {
+XCOMM cs1 class
+cs1 {
side GR:Default
length 1
- ct_encoding JISX0201.1976-0:GR
- byte1 \xa0,\xfe
- cs_range \xa0,\xfe
- cs_conversion_file conv_tables/JISX0201-0.GR.txt
- cs_conversion_table conv_tables/JISX0201-0.GR
-}
-
-XCOMM cs10 class
-cs10 {
- side GR:Default
- length 2
- ct_encoding KSC5601.1992-3:GLGR
- byte1 \x88,\xf9
- byte2 \x31,\xfe
- cs_conversion_file conv_tables/KSC-JOHAP.GLGR.txt
- cs_conversion_table conv_tables/KSC-JOHAP.GLGR
-
+ ct_encoding ISO8859-1:GR
}
-
-XCOMM cs11 class
-cs11 {
- side GR:Default
+
+XCOMM cs2 class
+cs2 {
+ side GR
length 2
- ct_encoding GB2312.1980-0:GR
- byte1 \xa1,\xfe
- byte2 \xa1,\xfe
- cs_conversion_file conv_tables/GB2312-0.GR.txt
- cs_conversion_table conv_tables/GB2312-0.GR
+ ct_encoding JISX0208.1983-0:GL; JISX0208.1983-0:GR;\
+ JISX0208.1983-1:GL; JISX0208.1983-1:GR
}
-XCOMM cs12 class
-cs12 {
- side GR:Default
+XCOMM cs3 class
+cs3 {
+ side GL
length 2
- ct_encoding BIG5-1:GLGR
- byte1 \xa1,\xf9
- byte2 \x31,\xfe
- cs_conversion_file conv_tables/BIG5-1.GLGR.txt
- cs_conversion_table conv_tables/BIG5-1.GLGR
-
-}
-
-XCOMM cs13 class
-cs13 {
- side GR:Default
- length 1
- ct_encoding TIS620.2533-0:GR
- byte1 \xa0,\xfe
- cs_range \xa0,\xfe
- cs_conversion_file conv_tables/TIS620.2533-0.GR.txt
- cs_conversion_table conv_tables/TIS620.2533-0.GR
+ ct_encoding KSC5601.1987-0:GL; KSC5601.1987-0:GR;\
+ KSC5601.1987-1:GL; KSC5601.1987-1:GR
}
-
-XCOMM cs14 class
-cs14 {
- side GR:Default
- length 2
- ct_encoding ISO8859-6:GLGR
- byte1 \x00,\xff
- byte2 \x00,\xff
- cs_conversion_file conv_tables/ISO8859-6.GLGR.txt
- cs_conversion_table conv_tables/ISO8859-6.GLGR
+
+XCOMM cs4 class
+cs4 {
+ side GR
+ length 2
+ ct_encoding GB2312.1980-0:GL; GB2312.1980-0:GR
}
-
-XCOMM cs15 class
-cs15 {
- side GR:Default
+
+XCOMM cs5 class
+cs5 {
+ side GR
length 1
- ct_encoding ISO8859-8:GR
- byte1 \xa0,\xfe
- cs_range \xa0,\xfe
- cs_conversion_file conv_tables/ISO8859-8.GR.txt
- cs_conversion_table conv_tables/ISO8859-8.GR
+ ct_encoding JISX0201.1976-0:GR
}
-XCOMM Last, fallback class
-cs16 {
- side GR:Default
- length 2
- ct_encoding UNICODE-FONTSPECIFIC:GLGR
- byte1 \x00,\xff
- byte2 \x00,\xff
- cs_conversion [\x0000,\xffff]->\x0000
- cs_conversion_table conv_tables/UNICODE-FONTSPECIFIC.GLGR
+XCOMM cs6 class
+cs6 {
+ side none
+ ct_encoding ISO10646-1
}
END XLC_XLOCALE
diff --git a/nls/georgian-academy/Compose.pre b/nls/georgian-academy/Compose.pre
index 707901f6..81e5fc61 100644
--- a/nls/georgian-academy/Compose.pre
+++ b/nls/georgian-academy/Compose.pre
@@ -3,7 +3,7 @@ XCOMM georgian-academy Compose Sequence
XCOMM
XCOMM Sequence Definition
XCOMM
-XCOMM $XFree86: xc/nls/Compose/georgian-academy,v 1.2 2001/04/26 21:09:40 dawes Exp $
+XCOMM $XFree86: xc/nls/Compose/georgian-academy,v 1.1 1999/08/28 09:00:34 dawes Exp $
XCOMM
XCOMM This file currently has no entries. It appears that a compose file (even
XCOMM just an empty one) is required for the appropriate keysyms to work for
diff --git a/nls/georgian-academy/XLC_LOCALE.pre b/nls/georgian-academy/XLC_LOCALE.pre
index 37adcb78..e60a53ac 100644
--- a/nls/georgian-academy/XLC_LOCALE.pre
+++ b/nls/georgian-academy/XLC_LOCALE.pre
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/nls/XLC_LOCALE/georgian-academy,v 1.2 2000/12/01 17:43:02 dawes Exp $
+XCOMM $XFree86: xc/nls/XLC_LOCALE/georgian-academy,v 1.1 1999/06/06 14:05:58 dawes Exp $
XCOMM XLocale Database Sample for georgian-academy
XCOMM
diff --git a/nls/georgian-ps/Compose.pre b/nls/georgian-ps/Compose.pre
index 553d6a3d..8ef6d6f7 100644
--- a/nls/georgian-ps/Compose.pre
+++ b/nls/georgian-ps/Compose.pre
@@ -3,7 +3,7 @@ XCOMM georgian-ps Compose Sequence
XCOMM
XCOMM Sequence Definition
XCOMM
-XCOMM $XFree86: xc/nls/Compose/georgian-ps,v 1.2 2001/04/26 21:09:40 dawes Exp $
+XCOMM $XFree86: xc/nls/Compose/georgian-ps,v 1.1 1999/08/28 09:00:34 dawes Exp $
XCOMM
XCOMM This file currently has no entries. It appears that a compose file (even
XCOMM just an empty one) is required for the appropriate keysyms to work for
diff --git a/nls/georgian-ps/XLC_LOCALE.pre b/nls/georgian-ps/XLC_LOCALE.pre
index 49f449bf..da7bcc34 100644
--- a/nls/georgian-ps/XLC_LOCALE.pre
+++ b/nls/georgian-ps/XLC_LOCALE.pre
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/nls/XLC_LOCALE/georgian-ps,v 1.2 2000/12/01 17:43:02 dawes Exp $
+XCOMM $XFree86: xc/nls/XLC_LOCALE/georgian-ps,v 1.1 1999/06/06 14:05:58 dawes Exp $
XCOMM XLocale Database Sample for georgian-ps
XCOMM
diff --git a/nls/ibm-cp1133/Compose.pre b/nls/ibm-cp1133/Compose.pre
index 6b2009e0..86fc3afc 100644
--- a/nls/ibm-cp1133/Compose.pre
+++ b/nls/ibm-cp1133/Compose.pre
@@ -3,7 +3,7 @@ XCOMM ibm-cp1133 Compose Sequence
XCOMM
XCOMM Sequence Definition
XCOMM
-XCOMM $XFree86: xc/nls/Compose/ibm-cp1133,v 1.2 2001/04/26 21:09:40 dawes Exp $
+XCOMM $XFree86: xc/nls/Compose/ibm-cp1133,v 1.1 1999/08/28 09:00:34 dawes Exp $
XCOMM
XCOMM This file currently has no entries. It appears that a compose file (even
XCOMM just an empty one) is required for the appropriate keysyms to work for
diff --git a/nls/ibm-cp1133/XLC_LOCALE.pre b/nls/ibm-cp1133/XLC_LOCALE.pre
index e08fbb1b..1d3185ae 100644
--- a/nls/ibm-cp1133/XLC_LOCALE.pre
+++ b/nls/ibm-cp1133/XLC_LOCALE.pre
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/nls/XLC_LOCALE/ibm-cp1133,v 1.2 2000/12/01 17:43:03 dawes Exp $
+XCOMM $XFree86: xc/nls/XLC_LOCALE/ibm-cp1133,v 1.1 1999/06/06 14:05:59 dawes Exp $
XCOMM XLocale Database Sample for ibm-cp1133.
XCOMM
diff --git a/nls/iscii-dev/XLC_LOCALE.pre b/nls/iscii-dev/XLC_LOCALE.pre
index 9910e713..085f2157 100644
--- a/nls/iscii-dev/XLC_LOCALE.pre
+++ b/nls/iscii-dev/XLC_LOCALE.pre
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/nls/XLC_LOCALE/iscii-dev,v 1.2 2000/12/01 17:43:03 dawes Exp $
+XCOMM $XFree86: xc/nls/XLC_LOCALE/iscii-dev,v 1.1 2000/10/27 18:30:53 dawes Exp $
XCOMM XLocale Database Sample for mulelao-1.
XCOMM
diff --git a/nls/isiri-3342/XLC_LOCALE.pre b/nls/isiri-3342/XLC_LOCALE.pre
index d76a0359..5a219ad5 100644
--- a/nls/isiri-3342/XLC_LOCALE.pre
+++ b/nls/isiri-3342/XLC_LOCALE.pre
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/nls/XLC_LOCALE/isiri-3342,v 1.2 2000/12/01 17:43:03 dawes Exp $
+XCOMM $XFree86: xc/nls/XLC_LOCALE/isiri-3342,v 1.1 2000/10/27 18:30:55 dawes Exp $
XCOMM XLocale Database Sample for mulelao-1.
XCOMM
diff --git a/nls/iso8859-1/Compose.pre b/nls/iso8859-1/Compose.pre
index 63038ca0..ced68ad0 100644
--- a/nls/iso8859-1/Compose.pre
+++ b/nls/iso8859-1/Compose.pre
@@ -1,15 +1,18 @@
-# $Xorg: iso8859-1,v 1.3 2000/08/17 19:46:59 cpqbld Exp $
-#
-# ISO 8859-1 (Latin1) Compose Sequence
-#
-# Sequence Definition
-#
-# <Multi_key> Means <Compose>
-# Special Character
+XCOMM $Xorg: iso8859-1,v 1.3 2000/08/17 19:46:59 cpqbld Exp $
+XCOMM
+XCOMM ISO 8859-1 (Latin1) Compose Sequence
+XCOMM
+XCOMM
+XCOMM $XFree86: xc/nls/Compose/iso8859-1,v 1.8 2001/12/24 17:15:09 dawes Exp $
+XCOMM
+XCOMM Sequence Definition
+XCOMM
+XCOMM <Multi_key> Means <Compose>
+XCOMM Special Character
<Multi_key> <plus> <plus> : "#" numbersign
<Multi_key> <apostrophe> <space> : "'" apostrophe
<Multi_key> <space> <apostrophe> : "'" apostrophe
-<Multi_key> <A> <A> : "@" at
+<Multi_key> <A> <T> : "@" at
<Multi_key> <parenleft> <parenleft> : "[" bracketleft
<Multi_key> <slash> <slash> : "\\" backslash
<Multi_key> <slash> <less> : "\\" backslash
@@ -17,8 +20,8 @@
<Multi_key> <parenright> <parenright> : "]" bracketright
<Multi_key> <asciicircum> <space> : "^" asciicircum
<Multi_key> <space> <asciicircum> : "^" asciicircum
-<Multi_key> <greater> <space> : "^" asciicirum
-<Multi_key> <space> <greater> : "^" asciicirum
+<Multi_key> <greater> <space> : "^" asciicircum
+<Multi_key> <space> <greater> : "^" asciicircum
<Multi_key> <grave> <space> : "`" grave
<Multi_key> <space> <grave> : "`" grave
<Multi_key> <parenleft> <minus> : "{" braceleft
@@ -96,6 +99,7 @@
<Multi_key> <0> <c> : "\251" copyright
<Multi_key> <C> <0> : "\251" copyright
<Multi_key> <0> <C> : "\251" copyright
+<Multi_key> <parenleft> <c> : "\251" copyright
<Multi_key> <a> <underscore> : "\252" ordfeminine
<Multi_key> <underscore> <a> : "\252" ordfeminine
<Multi_key> <A> <underscore> : "\252" ordfeminine
@@ -158,6 +162,7 @@
<Multi_key> <minus> <minus> : "\255" hyphen
<Multi_key> <R> <O> : "\256" registered
<Multi_key> <O> <R> : "\256" registered
+<Multi_key> <parenleft> <r> : "\256" registered
<Multi_key> <minus> <asciicircum> : "\257" macron
<Multi_key> <asciicircum> <minus> : "\257" macron
<Multi_key> <underscore> <asciicircum> : "\257" macron
@@ -169,7 +174,7 @@
<Multi_key> <apostrophe> <apostrophe> : "\264" acute
<Multi_key> <comma> <comma> : "\270" cedilla
<Multi_key> <quotedbl> <quotedbl> : "\250" diaeresis
-# Accented Alphabet
+XCOMM Accented Alphabet
<Multi_key> <A> <grave> : "\300" Agrave
<Multi_key> <grave> <A> : "\300" Agrave
<Multi_key> <A> <acute> : "\301" Aacute
@@ -190,6 +195,8 @@
<Multi_key> <diaeresis> <A> : "\304" Adiaeresis
<Multi_key> <A> <asterisk> : "\305" Aring
<Multi_key> <asterisk> <A> : "\305" Aring
+<Multi_key> <A> <A> : "\305" Aring
+<Multi_key> <A> <O> : "\305" Aring
<Multi_key> <A> <E> : "\306" AE
<Multi_key> <a> <grave> : "\340" agrave
<Multi_key> <grave> <a> : "\340" agrave
@@ -211,7 +218,11 @@
<Multi_key> <diaeresis> <a> : "\344" adiaeresis
<Multi_key> <a> <asterisk> : "\345" aring
<Multi_key> <asterisk> <a> : "\345" aring
+<Multi_key> <a> <a> : "\345" aring
+<Multi_key> <a> <o> : "\345" aring
<Multi_key> <a> <e> : "\346" ae
+<Multi_key> <acute> <C> : "\307" Ccedilla
+<Multi_key> <acute> <c> : "\347" ccedilla
<Multi_key> <C> <comma> : "\307" Ccedilla
<Multi_key> <comma> <C> : "\307" Ccedilla
<Multi_key> <c> <comma> : "\347" ccedilla
@@ -367,18 +378,25 @@
<Multi_key> <quotedbl> <y> : "\377" ydiaeresis
<Multi_key> <y> <diaeresis> : "\377" ydiaeresis
<Multi_key> <diaeresis> <y> : "\377" ydiaeresis
-#
-#
-# dead key accent keysyms
-# Special Character
-<dead_circumflex> <slash> : "|" bar
-<dead_grave> <space> : "`" grave
-<dead_acute> <space> : "'" apostrophe
-<dead_diaeresis> <space> : "\250" diaeresis
+XCOMM
+XCOMM
+XCOMM dead key accent keysyms
+XCOMM Special Character
+<dead_circumflex> <slash> : "|" bar
<dead_circumflex> <space> : "^" asciicircum
+<dead_circumflex> <dead_circumflex> : "^" asciicircum
<dead_tilde> <space> : "~" asciitilde
+<dead_tilde> <dead_tilde> : "~" asciitilde
<dead_grave> <space> : "`" grave
+<dead_grave> <dead_grave> : "`" grave
+XCOMM These are for us_intl, that does not have diaeresis, etc
<dead_acute> <space> : "'" apostrophe
+<dead_acute> <dead_acute> : "\264" acute
+<dead_diaeresis> <space> : "\"" quotedbl
+<dead_diaeresis> <dead_diaeresis> : "\250" diaeresis
+<dead_doubleacute> <space> : "\"" quotedbl
+<dead_abovering> <space> : "\260" degree
+<dead_abovering> <dead_abovering> : "\260" degree
<dead_circumflex> <0> : "\260" degree
<dead_circumflex> <1> : "\271" onesuperior
<dead_circumflex> <2> : "\262" twosuperior
@@ -391,12 +409,14 @@
<dead_acute> <apostrophe> : "\264" acute
<dead_cedilla> <comma> : "\270" cedilla
<dead_diaeresis> <quotedbl> : "\250" diaeresis
-# Accented Alphabet
+XCOMM Accented Alphabet
+<dead_abovering> <A> : "\305" Aring
<dead_grave> <A> : "\300" Agrave
<dead_acute> <A> : "\301" Aacute
<dead_circumflex> <A> : "\302" Acircumflex
<dead_tilde> <A> : "\303" Atilde
<dead_diaeresis> <A> : "\304" Adiaeresis
+<dead_abovering> <a> : "\345" aring
<dead_grave> <a> : "\340" agrave
<dead_acute> <a> : "\341" aacute
<dead_circumflex> <a> : "\342" acircumflex
@@ -435,17 +455,23 @@
<dead_grave> <U> : "\331" Ugrave
<dead_acute> <U> : "\332" Uacute
<dead_circumflex> <U> : "\333" Ucircumflex
+<dead_doubleacute> <U> : "\334" Udiaeresis
<dead_diaeresis> <U> : "\334" Udiaeresis
<dead_grave> <u> : "\371" ugrave
<dead_acute> <u> : "\372" uacute
<dead_circumflex> <u> : "\373" ucircumflex
+<dead_doubleacute> <u> : "\374" udiaeresis
<dead_diaeresis> <u> : "\374" udiaeresis
<dead_acute> <Y> : "\335" Yacute
<dead_acute> <y> : "\375" yacute
<dead_diaeresis> <y> : "\377" ydiaeresis
-#
-# Ctrl<T> Means <Compose>
-# Special Character
+XCOMM Useful for portuguese language
+<dead_acute> <C> : "\307" Ccedilla
+<dead_acute> <c> : "\347" ccedilla
+XCOMM
+#ifdef USE_CTRL_SHIFT_T_SEQS
+XCOMM Ctrl<T> Means <Compose>
+XCOMM Special Character
Ctrl<T> <plus> <plus> : "#" numbersign
Ctrl<T> <apostrophe> <space> : "'" apostrophe
Ctrl<T> <space> <apostrophe> : "'" apostrophe
@@ -457,8 +483,8 @@ Ctrl<T> <less> <slash> : "\\" backslash
Ctrl<T> <parenright> <parenright> : "]" bracketright
Ctrl<T> <asciicircum> <space> : "^" asciicircum
Ctrl<T> <space> <asciicircum> : "^" asciicircum
-Ctrl<T> <greater> <space> : "^" asciicirum
-Ctrl<T> <space> <greater> : "^" asciicirum
+Ctrl<T> <greater> <space> : "^" asciicircum
+Ctrl<T> <space> <greater> : "^" asciicircum
Ctrl<T> <grave> <space> : "`" grave
Ctrl<T> <space> <grave> : "`" grave
Ctrl<T> <parenleft> <minus> : "{" braceleft
@@ -609,7 +635,7 @@ Ctrl<T> <x> <x> : "\327" multiply
Ctrl<T> <apostrophe> <apostrophe> : "\264" acute
Ctrl<T> <comma> <comma> : "\270" cedilla
Ctrl<T> <quotedbl> <quotedbl> : "\250" diaeresis
-# Accented Alphabet
+XCOMM Accented Alphabet
Ctrl<T> <A> <grave> : "\300" Agrave
Ctrl<T> <grave> <A> : "\300" Agrave
Ctrl<T> <A> <acute> : "\301" Aacute
@@ -630,6 +656,8 @@ Ctrl<T> <A> <diaeresis> : "\304" Adiaeresis
Ctrl<T> <diaeresis> <A> : "\304" Adiaeresis
Ctrl<T> <A> <asterisk> : "\305" Aring
Ctrl<T> <asterisk> <A> : "\305" Aring
+Ctrl<T> <A> <A> : "\305" Aring
+Ctrl<T> <A> <O> : "\305" Aring
Ctrl<T> <A> <E> : "\306" AE
Ctrl<T> <a> <grave> : "\340" agrave
Ctrl<T> <grave> <a> : "\340" agrave
@@ -651,6 +679,8 @@ Ctrl<T> <a> <diaeresis> : "\344" adiaeresis
Ctrl<T> <diaeresis> <a> : "\344" adiaeresis
Ctrl<T> <a> <asterisk> : "\345" aring
Ctrl<T> <asterisk> <a> : "\345" aring
+Ctrl<T> <a> <a> : "\345" aring
+Ctrl<T> <a> <o> : "\345" aring
Ctrl<T> <a> <e> : "\346" ae
Ctrl<T> <C> <comma> : "\307" Ccedilla
Ctrl<T> <comma> <C> : "\307" Ccedilla
@@ -807,4 +837,5 @@ Ctrl<T> <y> <quotedbl> : "\377" ydiaeresis
Ctrl<T> <quotedbl> <y> : "\377" ydiaeresis
Ctrl<T> <y> <diaeresis> : "\377" ydiaeresis
Ctrl<T> <diaeresis> <y> : "\377" ydiaeresis
-# End of Sequence Definition
+#endif /* USE_CTRL_SHIFT_T_SEQS */
+XCOMM End of Sequence Definition
diff --git a/nls/iso8859-10/Compose.pre b/nls/iso8859-10/Compose.pre
index ec3b2e8a..8161934b 100644
--- a/nls/iso8859-10/Compose.pre
+++ b/nls/iso8859-10/Compose.pre
@@ -3,7 +3,7 @@ XCOMM ISO 8859-10 Compose Sequence
XCOMM
XCOMM Sequence Definition
XCOMM
-XCOMM $XFree86: xc/nls/Compose/iso8859-10,v 1.2 2001/04/26 21:09:40 dawes Exp $
+XCOMM $XFree86: xc/nls/Compose/iso8859-10,v 1.1 1999/08/28 09:00:35 dawes Exp $
XCOMM
XCOMM This file currently has no entries. It appears that a compose file (even
XCOMM just an empty one) is required for the appropriate keysyms to work for
diff --git a/nls/iso8859-11/XI18N_OBJS b/nls/iso8859-11/XI18N_OBJS
index fa240362..785f3093 100644
--- a/nls/iso8859-11/XI18N_OBJS
+++ b/nls/iso8859-11/XI18N_OBJS
@@ -2,7 +2,7 @@
#
# XI18N objects table for iso8859-11 locale
#
-# $XFree86: xc/nls/XI18N_OBJS/iso8859-11,v 1.1 2002/10/08 23:31:41 dawes Exp $
+# $XFree86$
#
XLC common/xlcDef _XlcDefaultLoader # XLC_open
XIM common/ximcp _XimOpenIM _XimRegisterIMInstantiateCallback _XimUnRegisterIMInstantiateCallback # XIM_open XIM_register XIM_unregister
diff --git a/nls/iso8859-11/XLC_LOCALE.pre b/nls/iso8859-11/XLC_LOCALE.pre
index 3df0ef8b..b0c39169 100644
--- a/nls/iso8859-11/XLC_LOCALE.pre
+++ b/nls/iso8859-11/XLC_LOCALE.pre
@@ -1,7 +1,7 @@
XCOMM XLocale Database Sample for iso8859-11.
XCOMM
XCOMM Id: xf-cvs20020709-iso8859_11locale.patch,v 1.1 2002/07/09 12:24:01 thep Exp
-XCOMM $XFree86: xc/nls/XLC_LOCALE/iso8859-11,v 1.1 2002/10/08 23:31:42 dawes Exp $
+XCOMM $XFree86$
XCOMM
XCOMM XLC_FONTSET category
diff --git a/nls/iso8859-13/Compose.pre b/nls/iso8859-13/Compose.pre
index 52042bc9..3c07f4c7 100644
--- a/nls/iso8859-13/Compose.pre
+++ b/nls/iso8859-13/Compose.pre
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/nls/Compose/iso8859-13,v 1.2 2001/04/26 21:09:40 dawes Exp $
+XCOMM $XFree86: xc/nls/Compose/iso8859-13,v 1.1 2000/10/27 18:30:50 dawes Exp $
XCOMM
XCOMM ISO 8859-13 (Latin7) Compose Sequence
XCOMM
diff --git a/nls/iso8859-13/XLC_LOCALE.pre b/nls/iso8859-13/XLC_LOCALE.pre
index 4faa3292..9f5fd2c2 100644
--- a/nls/iso8859-13/XLC_LOCALE.pre
+++ b/nls/iso8859-13/XLC_LOCALE.pre
@@ -1,7 +1,7 @@
XCOMM $TOG: iso8859-13 /main/1 1998/05/20 13:49:21 kaleb $
XCOMM XLocale Database Sample for iso8859-13.
XCOMM
-XCOMM $XFree86: xc/nls/XLC_LOCALE/iso8859-13,v 1.1 2000/10/27 18:30:56 dawes Exp $
+XCOMM $XFree86: xc/nls/XLC_LOCALE/iso8859-13,v 1.1 1999/06/06 13:05:59 dawes Exp $
XCOMM
XCOMM XLC_FONTSET category
diff --git a/nls/iso8859-14/Compose.pre b/nls/iso8859-14/Compose.pre
index 3452b0f1..b0e14d4f 100644
--- a/nls/iso8859-14/Compose.pre
+++ b/nls/iso8859-14/Compose.pre
@@ -3,7 +3,7 @@ XCOMM
XCOMM Original version by Alastair McKinstry, <amck@maths.tcd.ie>
XCOMM Fixed and tidied up by Seamus O Ciardhuain <seoc@cnds.ucd.ie> (Dec 2002)
XCOMM
-XCOMM $XFree86: xc/nls/Compose/iso8859-14,v 1.5 2002/12/19 00:57:15 dawes Exp $
+XCOMM $XFree86: xc/nls/Compose/iso8859-14,v 1.4 2001/04/26 21:09:40 dawes Exp $
XCOMM
XCOMM First part is taken from the Latin-1 definitions,
XCOMM i.e. characters the same in 8859-1 and 8859-14.
diff --git a/nls/iso8859-14/XLC_LOCALE.pre b/nls/iso8859-14/XLC_LOCALE.pre
index 56afe701..1f7b2f5d 100644
--- a/nls/iso8859-14/XLC_LOCALE.pre
+++ b/nls/iso8859-14/XLC_LOCALE.pre
@@ -1,7 +1,7 @@
XCOMM $TOG: iso8859-14 /main/1 1998/05/20 14:49:21 kaleb $
XCOMM XLocale Database Sample for iso8859-14.
XCOMM
-XCOMM $XFree86: xc/nls/XLC_LOCALE/iso8859-14,v 1.1 1999/06/06 14:05:59 dawes Exp $
+XCOMM $XFree86$
XCOMM
XCOMM XLC_FONTSET category
diff --git a/nls/iso8859-15/Compose.pre b/nls/iso8859-15/Compose.pre
index 3770e803..b936e58e 100644
--- a/nls/iso8859-15/Compose.pre
+++ b/nls/iso8859-15/Compose.pre
@@ -2,7 +2,7 @@ XCOMM $TOG: fcd8859-15 /main/2 1998/06/17 15:53:45 kaleb $
XCOMM
XCOMM ISO 8859-15 (Latin1) Compose Sequence
XCOMM
-XCOMM $XFree86: xc/nls/Compose/iso8859-15,v 1.9 2002/12/17 04:58:42 dawes Exp $
+XCOMM $XFree86: xc/nls/Compose/iso8859-15,v 1.8 2002/10/16 01:44:48 dawes Exp $
XCOMM
XCOMM Sequence Definition
XCOMM
diff --git a/nls/iso8859-15/XLC_LOCALE.pre b/nls/iso8859-15/XLC_LOCALE.pre
index a6525974..fa3e13c5 100644
--- a/nls/iso8859-15/XLC_LOCALE.pre
+++ b/nls/iso8859-15/XLC_LOCALE.pre
@@ -6,7 +6,7 @@ XCOMM This file is provided as preliminary support for the Latin-9
XCOMM (a.k.a. Latin-0) character set so that Europeans who want
XCOMM the Euro currency character can do so.
XCOMM
-XCOMM $XFree86: xc/nls/XLC_LOCALE/iso8859-15,v 1.3 1998/10/25 12:47:53 dawes Exp $
+XCOMM $XFree86$
XCOMM
XCOMM
diff --git a/nls/iso8859-2/Compose.pre b/nls/iso8859-2/Compose.pre
index 3e7c0a4d..f301bded 100644
--- a/nls/iso8859-2/Compose.pre
+++ b/nls/iso8859-2/Compose.pre
@@ -1,11 +1,13 @@
-# $Xorg: iso8859-2,v 1.3 2000/08/17 19:46:59 cpqbld Exp $
-#
-# ISO 8859-2 (Latin2) Compose Sequence
-#
-# Sequence Definition
-#
-# <Multi_key> Means <Compose>
-# Special Character
+XCOMM $Xorg: iso8859-2,v 1.3 2000/08/17 19:46:59 cpqbld Exp $
+XCOMM
+XCOMM ISO 8859-2 (Latin2) Compose Sequence
+XCOMM
+XCOMM $XFree86: xc/nls/Compose/iso8859-2,v 1.6 2001/05/18 23:35:29 dawes Exp $
+XCOMM
+XCOMM Sequence Definition
+XCOMM
+XCOMM <Multi_key> Means <Compose>
+XCOMM Special Character
<Multi_key> <plus> <plus> : "#" numbersign
<Multi_key> <apostrophe> <space> : "'" apostrophe
<Multi_key> <space> <apostrophe> : "'" apostrophe
@@ -51,10 +53,10 @@
<Multi_key> <exclam> <p> : "\266" paragraph
<Multi_key> <P> <exclam> : "\266" paragraph
<Multi_key> <exclam> <P> : "\266" paragraph
-# Right-hand side (Accented Alphabet)
-# These compose sequences are pure supposition on my part.
-# It would be nice to know what the real cultural conventions
-# are for compose sequences.
+XCOMM Right-hand side (Accented Alphabet)
+XCOMM These compose sequences are pure supposition on my part.
+XCOMM It would be nice to know what the real cultural conventions
+XCOMM are for compose sequences.
<Multi_key> <A> <comma> : "\241" Aogonek
<Multi_key> <comma> <A> : "\241" Aogonek
<Multi_key> <A> <ogonek> : "\241" Aogonek
@@ -332,10 +334,10 @@
<Multi_key> <less> <n> : "\362" ncaron
<Multi_key> <n> <caron> : "\362" ncaron
<Multi_key> <caron> <n> : "\362" ncaron
-<Multi_key> <o> <acute> : "\363" nacute
-<Multi_key> <acute> <o> : "\363" nacute
-<Multi_key> <o> <apostrophe> : "\363" nacute
-<Multi_key> <apostrophe> <o> : "\363" nacute
+<Multi_key> <o> <acute> : "\363" oacute
+<Multi_key> <acute> <o> : "\363" oacute
+<Multi_key> <o> <apostrophe> : "\363" oacute
+<Multi_key> <apostrophe> <o> : "\363" oacute
<Multi_key> <o> <asciicircum> : "\364" ocircumflex
<Multi_key> <asciicircum> <o> : "\364" ocircumflex
<Multi_key> <o> <greater> : "\364" ocircumflex
@@ -387,7 +389,7 @@
<dead_acute> <i> : "\355" iacute
<dead_acute> <l> : "\345" lacute
<dead_acute> <n> : "\361" nacute
-<dead_acute> <o> : "\363" nacute
+<dead_acute> <o> : "\363" oacute
<dead_acute> <r> : "\340" racute
<dead_acute> <s> : "\266" sacute
<dead_acute> <u> : "\372" uacute
@@ -447,4 +449,120 @@
<dead_ogonek> <E> : "\312" Eogonek
<dead_ogonek> <a> : "\261" aogonek
<dead_ogonek> <e> : "\352" eogonek
-# End of Sequence Definition
+XCOMM those are for ease of use
+<dead_abovedot> <U> : "\331" Uring
+<dead_abovedot> <u> : "\371" uring
+<dead_caron> <U> : "\331" Uring
+<dead_caron> <u> : "\371" uring
+XCOMM traditional sequences
+<Multi_key> <O> <E> : "\274" OE
+<Multi_key> <o> <e> : "\275" oe
+<dead_abovering> <A> : "\305" Aring
+<dead_abovering> <a> : "\345" aring
+<dead_abovering> <dead_abovering> : "\260" degree
+<dead_abovering> <degree> : "\260" degree
+<dead_abovering> <space> : "\260" degree
+<dead_abovering> <nobreakspace> : "\260" degree
+<dead_tilde> <I> : "\245" Itilde
+<dead_tilde> <i> : "\265" itilde
+<dead_tilde> <A> : "\303" Atilde
+<dead_tilde> <O> : "\325" Otilde
+<dead_tilde> <U> : "\335" Utilde
+<dead_tilde> <a> : "\343" atilde
+<dead_tilde> <o> : "\365" otilde
+<dead_tilde> <u> : "\375" utilde
+<dead_tilde> <N> : "\321" Ntilde
+<dead_tilde> <n> : "\361" ntilde
+<dead_tilde> <dead_tilde> : "~" asciitilde
+<dead_tilde> <asciitilde> : "~" asciitilde
+<dead_tilde> <space> : "~" asciitilde
+<dead_tilde> <nobreakspace> : "~" asciitilde
+<dead_caron> <caron> : "\267" caron
+<dead_caron> <dead_caron> : "\267" caron
+<dead_caron> <space> : "\267" caron
+<dead_caron> <nobreakspace> : "\267" caron
+<dead_circumflex> <A> : "\302" Acircumflex
+<dead_circumflex> <I> : "\316" Icircumflex
+<dead_circumflex> <O> : "\324" Ocircumflex
+<dead_circumflex> <U> : "\333" Ucircumflex
+<dead_circumflex> <a> : "\342" acircumflex
+<dead_circumflex> <i> : "\356" icircumflex
+<dead_circumflex> <o> : "\364" ocircumflex
+<dead_circumflex> <u> : "\373" ucircumflex
+<dead_circumflex> <u> : "\373" ucircumflex
+<dead_circumflex> <dead_circumflex> : "\136" asciicircum
+<dead_circumflex> <asciicircum> : "\136" asciicircum
+<dead_circumflex> <space> : "\136" asciicircum
+<dead_circumflex> <nobreakspace> : "\136" asciicircum
+<dead_breve> <G> : "\253" Gbreve
+<dead_breve> <g> : "\273" gbreve
+<dead_breve> <U> : "\335" Ubreve
+<dead_breve> <u> : "\375" ubreve
+<dead_breve> <dead_breve> : "\242" breve
+<dead_breve> <breve> : "\242" breve
+<dead_breve> <space> : "\242" breve
+<dead_breve> <nobreakspace> : "\242" breve
+<dead_ogonek> <A> : "\241" Aogonek
+<dead_ogonek> <a> : "\261" aogonek
+<dead_ogonek> <ogonek> : "\262" ogonek
+<dead_ogonek> <dead_ogonek> : "\262" ogonek
+<dead_ogonek> <I> : "\307" Iogonek
+<dead_ogonek> <E> : "\312" Eogonek
+<dead_ogonek> <U> : "\331" Uogonek
+<dead_ogonek> <i> : "\347" iogonek
+<dead_ogonek> <e> : "\352" eogonek
+<dead_ogonek> <u> : "\371" uogonek
+<dead_ogonek> <dead_ogonek> : "\662" ogonek
+<dead_ogonek> <ogonek> : "\662" ogonek
+<dead_ogonek> <space> : "\662" ogonek
+<dead_ogonek> <nobreakspace> : "\662" ogonek
+<dead_grave> <A> : "\300" Agrave
+<dead_grave> <a> : "\340" agrave
+<dead_grave> <E> : "\310" Egrave
+<dead_grave> <e> : "\350" egrave
+<dead_grave> <I> : "\314" Igrave
+<dead_grave> <i> : "\354" igrave
+<dead_grave> <O> : "\322" Ograve
+<dead_grave> <o> : "\362" ograve
+<dead_grave> <U> : "\331" Ugrave
+<dead_grave> <u> : "\371" ugrave
+<dead_grave> <dead_grave> : "`" grave
+<dead_grave> <grave> : "`" grave
+<dead_grave> <space> : "`" grave
+<dead_grave> <nobreakspace> : "`" grave
+<dead_abovedot> <C> : "\305" Cabovedot
+<dead_abovedot> <c> : "\345" cabovedot
+<dead_abovedot> <I> : "\251" Iabovedot
+<dead_abovedot> <i> : "\271" idotless
+<dead_abovedot> <Z> : "\257" Zabovedot
+<dead_abovedot> <z> : "\277" zabovedot
+<dead_abovedot> <E> : "\314" Eabovedot
+<dead_abovedot> <e> : "\354" eabovedot
+<dead_abovedot> <dead_abovedot> : "\377" abovedot
+<dead_abovedot> <abovedot> : "\377" abovedot
+<dead_abovedot> <space> : "\377" abovedot
+<dead_abovedot> <nobreakspace> : "\377" abovedot
+<dead_acute> <dead_acute> : "\264" acute
+<dead_acute> <acute> : "\264" acute
+<dead_acute> <space> : "\264" acute
+<dead_acute> <nobreakspace> : "\264" acute
+<dead_doubleacute> <dead_doubleacute> : "\675" doubleacute
+<dead_doubleacute> <doubleacute> : "\675" doubleacute
+<dead_doubleacute> <space> : "\675" doubleacute
+<dead_doubleacute> <nobreakspace> : "\675" doubleacute
+<dead_diaeresis> <I> : "\317" Idiaeresis
+<dead_diaeresis> <i> : "\357" idiaeresis
+<dead_diaeresis> <y> : "\377" ydiaeresis
+<dead_diaeresis> <dead_diaeresis> : "\250" diaeresis
+<dead_diaeresis> <diaeresis> : "\250" diaeresis
+<dead_diaeresis> <space> : "\250" diaeresis
+<dead_diaeresis> <nobreakspace> : "\250" diaeresis
+<dead_cedilla> <dead_cedilla> : "\270" cedilla
+<dead_cedilla> <cedilla> : "\270" cedilla
+<dead_cedilla> <space> : "\270" cedilla
+<dead_cedilla> <nobreakspace> : "\270" cedilla
+<dead_macron> <dead_macron> : "\257" macron
+<dead_macron> <macron> : "\257" macron
+<dead_macron> <space> : "\257" macron
+<dead_macron> <nobreakspace> : "\257" macron
+XCOMM End of Sequence Definition
diff --git a/nls/iso8859-3/Compose.pre b/nls/iso8859-3/Compose.pre
index b98b2501..a6d3c726 100644
--- a/nls/iso8859-3/Compose.pre
+++ b/nls/iso8859-3/Compose.pre
@@ -4,7 +4,7 @@ XCOMM ISO 8859-3 (Latin3) Compose Sequence
XCOMM
XCOMM Sequence Definition
XCOMM
-XCOMM $XFree86: xc/nls/Compose/iso8859-3,v 1.2 2001/04/26 21:09:40 dawes Exp $
+XCOMM $XFree86: xc/nls/Compose/iso8859-3,v 1.1 1999/06/06 14:05:57 dawes Exp $
XCOMM
XCOMM <Multi_key> Means <Compose>
XCOMM Special Character
diff --git a/nls/iso8859-4/Compose.pre b/nls/iso8859-4/Compose.pre
index a04bde67..cbbe226d 100644
--- a/nls/iso8859-4/Compose.pre
+++ b/nls/iso8859-4/Compose.pre
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/nls/Compose/iso8859-4,v 1.3 2001/04/26 21:09:40 dawes Exp $
+XCOMM $XFree86: xc/nls/Compose/iso8859-4,v 1.2 2000/10/27 18:30:51 dawes Exp $
XCOMM
XCOMM ISO 8859-4 (Latin4) Compose Sequence
XCOMM
diff --git a/nls/iso8859-5/Compose.pre b/nls/iso8859-5/Compose.pre
index bcc9b2f1..7581e431 100644
--- a/nls/iso8859-5/Compose.pre
+++ b/nls/iso8859-5/Compose.pre
@@ -3,7 +3,7 @@ XCOMM ISO 8859-5 Compose Sequence
XCOMM
XCOMM Sequence Definition
XCOMM
-XCOMM $XFree86: xc/nls/Compose/iso8859-5,v 1.2 2001/04/26 21:09:40 dawes Exp $
+XCOMM $XFree86: xc/nls/Compose/iso8859-5,v 1.1 1999/08/28 09:00:36 dawes Exp $
XCOMM
XCOMM This file currently has no entries. It appears that a compose file (even
XCOMM just an empty one) is required for the appropriate keysyms to work for
diff --git a/nls/iso8859-6/Compose.pre b/nls/iso8859-6/Compose.pre
index 438eb91e..20d68a4d 100644
--- a/nls/iso8859-6/Compose.pre
+++ b/nls/iso8859-6/Compose.pre
@@ -3,7 +3,7 @@ XCOMM ISO 8859-6 Compose Sequence
XCOMM
XCOMM Sequence Definition
XCOMM
-XCOMM $XFree86: xc/nls/Compose/iso8859-6,v 1.2 2001/04/26 21:09:40 dawes Exp $
+XCOMM $XFree86: xc/nls/Compose/iso8859-6,v 1.1 1999/08/28 09:00:36 dawes Exp $
XCOMM
XCOMM This file currently has no entries. It appears that a compose file (even
XCOMM just an empty one) is required for the appropriate keysyms to work for
diff --git a/nls/iso8859-7/Compose.pre b/nls/iso8859-7/Compose.pre
index d383d618..ac802004 100644
--- a/nls/iso8859-7/Compose.pre
+++ b/nls/iso8859-7/Compose.pre
@@ -3,7 +3,7 @@ XCOMM
XCOMM ISO 8859-7 (Greek) Compose Sequence
XCOMM
XCOMM
-XCOMM $XFree86: xc/nls/Compose/iso8859-7,v 1.5 2001/12/24 17:15:10 dawes Exp $
+XCOMM $XFree86: xc/nls/Compose/iso8859-7,v 1.4 2001/04/26 21:09:40 dawes Exp $
XCOMM
XCOMM Sequence Definition
XCOMM
diff --git a/nls/iso8859-8/Compose.pre b/nls/iso8859-8/Compose.pre
index 37446d24..c35b0f1c 100644
--- a/nls/iso8859-8/Compose.pre
+++ b/nls/iso8859-8/Compose.pre
@@ -3,7 +3,7 @@ XCOMM ISO 8859-8 Compose Sequence
XCOMM
XCOMM Sequence Definition
XCOMM
-XCOMM $XFree86: xc/nls/Compose/iso8859-8,v 1.2 2001/04/26 21:09:40 dawes Exp $
+XCOMM $XFree86: xc/nls/Compose/iso8859-8,v 1.1 1999/08/28 09:00:36 dawes Exp $
XCOMM
XCOMM This file currently has no entries. It appears that a compose file (even
XCOMM just an empty one) is required for the appropriate keysyms to work for
diff --git a/nls/iso8859-9/Compose.pre b/nls/iso8859-9/Compose.pre
index c21eb74f..1d82c15a 100644
--- a/nls/iso8859-9/Compose.pre
+++ b/nls/iso8859-9/Compose.pre
@@ -4,7 +4,7 @@ XCOMM ISO 8859-9 (Latin5) Compose Sequence
XCOMM
XCOMM Sequence Definition
XCOMM
-XCOMM $XFree86: xc/nls/Compose/iso8859-9,v 1.2 2001/04/26 21:09:40 dawes Exp $
+XCOMM $XFree86: xc/nls/Compose/iso8859-9,v 1.1 1999/06/06 14:05:57 dawes Exp $
XCOMM
XCOMM <Multi_key> Means <Compose>
XCOMM Special Character
diff --git a/nls/iso8859-9e/Compose.pre b/nls/iso8859-9e/Compose.pre
index 7ac31462..ff415809 100644
--- a/nls/iso8859-9e/Compose.pre
+++ b/nls/iso8859-9e/Compose.pre
@@ -3,7 +3,7 @@ XCOMM ISO 8859-9e (Latin??) Compose Sequence
XCOMM
XCOMM Sequence Definition
XCOMM
-XCOMM $XFree86: xc/nls/Compose/iso8859-9e,v 1.2 2001/04/26 21:09:40 dawes Exp $
+XCOMM $XFree86: xc/nls/Compose/iso8859-9e,v 1.1 2000/10/27 18:30:51 dawes Exp $
XCOMM
XCOMM <Multi_key> Means <Compose>
XCOMM Special Character
diff --git a/nls/iso8859-9e/XLC_LOCALE.pre b/nls/iso8859-9e/XLC_LOCALE.pre
index 8157a2f3..bcef86a3 100644
--- a/nls/iso8859-9e/XLC_LOCALE.pre
+++ b/nls/iso8859-9e/XLC_LOCALE.pre
@@ -1,7 +1,7 @@
XCOMM $XConsortium: iso8859-9e /main/7 1996/09/28 16:51:50 rws $
XCOMM XLocale Database Sample for iso8859-9e.
XCOMM
-XCOMM $XFree86: xc/nls/XLC_LOCALE/iso8859-9e,v 1.3 2000/12/01 17:43:03 dawes Exp $
+XCOMM $XFree86: xc/nls/XLC_LOCALE/iso8859-9e,v 1.2 2000/10/28 00:34:03 dawes Exp $
XCOMM
XCOMM XLC_FONTSET category
diff --git a/nls/ja.JIS/Compose.pre b/nls/ja.JIS/Compose.pre
index 45092b62..46f880e7 100644
--- a/nls/ja.JIS/Compose.pre
+++ b/nls/ja.JIS/Compose.pre
@@ -3,7 +3,7 @@ XCOMM ja.JIS Compose Sequence
XCOMM
XCOMM Sequence Definition
XCOMM
-XCOMM $XFree86: xc/nls/Compose/ja.JIS,v 1.2 2001/04/26 21:09:40 dawes Exp $
+XCOMM $XFree86: xc/nls/Compose/ja.JIS,v 1.1 1999/08/28 09:00:37 dawes Exp $
XCOMM
XCOMM This file currently has no entries. It appears that a compose file (even
XCOMM just an empty one) is required for the appropriate keysyms to work for
diff --git a/nls/ja.JIS/XLC_LOCALE.pre b/nls/ja.JIS/XLC_LOCALE.pre
index 6a8e2bbb..0743f02c 100644
--- a/nls/ja.JIS/XLC_LOCALE.pre
+++ b/nls/ja.JIS/XLC_LOCALE.pre
@@ -1,4 +1,9 @@
+XCOMM $XFree86: xc/nls/XLC_LOCALE/ja.JIS,v 1.3 1997/08/26 11:57:23 hohndel Exp $
+XCOMM
+XCOMM
+XCOMM
XCOMM $Xorg: ja.JIS,v 1.3 2000/08/17 19:47:00 cpqbld Exp $
+XCOMM
XCOMM XLocale Database Sample for ja_JP.jis
XCOMM
@@ -34,6 +39,7 @@ fs2 {
}
font {
primary JISX0201.1976-0:GR
+ substitute JISX0201.1976-0:GR
vertical_rotate all
}
}
diff --git a/nls/ja.SJIS/Compose.pre b/nls/ja.SJIS/Compose.pre
index 9bce23d0..cb292944 100644
--- a/nls/ja.SJIS/Compose.pre
+++ b/nls/ja.SJIS/Compose.pre
@@ -3,7 +3,7 @@ XCOMM ja.SJIS Compose Sequence
XCOMM
XCOMM Sequence Definition
XCOMM
-XCOMM $XFree86: xc/nls/Compose/ja.SJIS,v 1.2 2001/04/26 21:09:40 dawes Exp $
+XCOMM $XFree86: xc/nls/Compose/ja.SJIS,v 1.1 1999/08/28 09:00:37 dawes Exp $
XCOMM
XCOMM This file currently has no entries. It appears that a compose file (even
XCOMM just an empty one) is required for the appropriate keysyms to work for
diff --git a/nls/ja.SJIS/XLC_LOCALE.pre b/nls/ja.SJIS/XLC_LOCALE.pre
index d5b65e1a..2d83f764 100644
--- a/nls/ja.SJIS/XLC_LOCALE.pre
+++ b/nls/ja.SJIS/XLC_LOCALE.pre
@@ -1,4 +1,9 @@
+XCOMM $XFree86: xc/nls/XLC_LOCALE/ja.SJIS,v 1.3 1997/08/26 11:57:23 hohndel Exp $
+XCOMM
+XCOMM
+XCOMM
XCOMM $Xorg: ja.SJIS,v 1.3 2000/08/17 19:47:00 cpqbld Exp $
+XCOMM
XCOMM XLocale Database Sample for ja_JP.sjis
XCOMM
@@ -36,6 +41,7 @@ fs2 {
}
font {
primary JISX0201.1976-0:GR
+ substitute JISX0201.1976-0:GR
vertical_rotate all
}
}
diff --git a/nls/ja/Compose.pre b/nls/ja/Compose.pre
index b7a95a76..ba4de5a5 100644
--- a/nls/ja/Compose.pre
+++ b/nls/ja/Compose.pre
@@ -3,7 +3,7 @@ XCOMM ja Compose Sequence
XCOMM
XCOMM Sequence Definition
XCOMM
-XCOMM $XFree86: xc/nls/Compose/ja,v 1.2 2001/04/26 21:09:40 dawes Exp $
+XCOMM $XFree86: xc/nls/Compose/ja,v 1.1 1999/08/28 09:00:37 dawes Exp $
XCOMM
XCOMM This file currently has no entries. It appears that a compose file (even
XCOMM just an empty one) is required for the appropriate keysyms to work for
diff --git a/nls/ja/XLC_LOCALE.pre b/nls/ja/XLC_LOCALE.pre
index 60c71fee..a538ed5e 100644
--- a/nls/ja/XLC_LOCALE.pre
+++ b/nls/ja/XLC_LOCALE.pre
@@ -1,4 +1,9 @@
+XCOMM $XFree86: xc/nls/XLC_LOCALE/ja,v 1.3 1997/08/26 11:57:22 hohndel Exp $
+XCOMM
+XCOMM
+XCOMM
XCOMM $Xorg: ja,v 1.3 2000/08/17 19:47:00 cpqbld Exp $
+XCOMM
XCOMM XLocale Database Sample for ja_JP.euc
XCOMM
@@ -35,6 +40,7 @@ fs2 {
}
font {
primary JISX0201.1976-0:GR
+ substitute JISX0201.1976-0:GR
vertical_rotate all
}
}
diff --git a/nls/ja_JP.UTF-8/XI18N_OBJS b/nls/ja_JP.UTF-8/XI18N_OBJS
index 0cd6e275..8223d7ca 100644
--- a/nls/ja_JP.UTF-8/XI18N_OBJS
+++ b/nls/ja_JP.UTF-8/XI18N_OBJS
@@ -2,7 +2,7 @@
#
# XI18N objects table for ja_JP.UTF-8 locale
#
-# $XFree86: xc/nls/XI18N_OBJS/ja_JP.UTF-8,v 1.1 2002/12/17 03:41:53 dawes Exp $
+# $XFree86$
#
XLC common/xlcUTF8Load _XlcUtf8Loader # XLC_open
XIM common/ximcp _XimOpenIM _XimRegisterIMInstantiateCallback _XimUnRegisterIMInstantiateCallback # XIM_open XIM_register XIM_unregister
diff --git a/nls/ja_JP.UTF-8/XLC_LOCALE.pre b/nls/ja_JP.UTF-8/XLC_LOCALE.pre
index fcf383f7..0db4e20b 100644
--- a/nls/ja_JP.UTF-8/XLC_LOCALE.pre
+++ b/nls/ja_JP.UTF-8/XLC_LOCALE.pre
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/nls/XLC_LOCALE/ja_JP.UTF-8,v 1.1 2002/10/17 01:12:57 dawes Exp $
+XCOMM $XFree86$
XCOMM
XCOMM
@@ -32,23 +32,8 @@ fs1 {
}
}
-XCOMM ISO10646-1 is put after iso8859-1 to make usually better-looking
-XCOMM iso8859-x fonts are picked up before iso10646-1 fonts.
-XCOMM Moreover, some iso10646-1 fonts don't have any glyph at all
-XCOMM in ISO8859-X ranges.
-
-XCOMM fs2 class
-fs2 {
- charset {
- name ISO10646-1
- }
- font {
- primary ISO10646-1
- }
-}
-
-XCOMM fs3 class (Kanji)
-fs3 {
+XCOMM fs2 class (Kanji)
+fs2 {
charset {
name JISX0208.1983-0:GL
}
@@ -57,8 +42,8 @@ fs3 {
}
}
-XCOMM fs4 class (Korean Character)
-fs4 {
+XCOMM fs3 class (Korean Character)
+fs3 {
charset {
name KSC5601.1987-0:GL
}
@@ -67,8 +52,8 @@ fs4 {
}
}
-XCOMM fs5 class (Chinese Han Character)
-fs5 {
+XCOMM fs4 class (Chinese Han Character)
+fs4 {
charset {
name GB2312.1980-0:GL
}
@@ -76,8 +61,8 @@ fs5 {
primary GB2312.1980-0:GL
}
}
-XCOMM fs6 class (Half Kana)
-fs6 {
+XCOMM fs5 class (Half Kana)
+fs5 {
charset {
name JISX0201.1976-0:GR
}
@@ -86,6 +71,21 @@ fs6 {
vertical_rotate all
}
}
+XCOMM ISO10646-1 is put last to make usually better-looking
+XCOMM other fonts are picked up before iso10646-1 fonts.
+XCOMM Moreover, some iso10646-1 fonts don't have any glyph at all
+XCOMM in ISO8859-X ranges.
+
+XCOMM fs6 class
+fs6 {
+ charset {
+ name ISO10646-1
+ }
+ font {
+ primary ISO10646-1
+ }
+}
+
END XLC_FONTSET
XCOMM
diff --git a/nls/ko/Compose.pre b/nls/ko/Compose.pre
index 965289fe..6327b98a 100644
--- a/nls/ko/Compose.pre
+++ b/nls/ko/Compose.pre
@@ -3,7 +3,7 @@ XCOMM ko Compose Sequence
XCOMM
XCOMM Sequence Definition
XCOMM
-XCOMM $XFree86: xc/nls/Compose/ko,v 1.2 2001/04/26 21:09:40 dawes Exp $
+XCOMM $XFree86: xc/nls/Compose/ko,v 1.1 1999/08/28 09:00:38 dawes Exp $
XCOMM
XCOMM This file currently has no entries. It appears that a compose file (even
XCOMM just an empty one) is required for the appropriate keysyms to work for
diff --git a/nls/ko/XLC_LOCALE.pre b/nls/ko/XLC_LOCALE.pre
index 8f19ea90..5263ad99 100644
--- a/nls/ko/XLC_LOCALE.pre
+++ b/nls/ko/XLC_LOCALE.pre
@@ -1,6 +1,7 @@
XCOMM $Xorg: ko,v 1.3 2000/08/17 19:47:00 cpqbld Exp $
XCOMM XLocale Database Sample for ko.
XCOMM
+XCOMM $XFree86$
XCOMM
XCOMM XLC_FONTSET category
@@ -22,7 +23,8 @@ fs1 {
name KSC5601.1987-0:GL
}
font {
- primary KSC5601.1987-0:GL
+ primary KSC5601.1987-0:GL
+ substitute KSC5601.1987-0:GL
}
}
END XLC_FONTSET
diff --git a/nls/ko_KR.UTF-8/XI18N_OBJS b/nls/ko_KR.UTF-8/XI18N_OBJS
index 44f68237..fc3c33d9 100644
--- a/nls/ko_KR.UTF-8/XI18N_OBJS
+++ b/nls/ko_KR.UTF-8/XI18N_OBJS
@@ -2,7 +2,7 @@
#
# XI18N objects table for ko_KR.UTF-8 locale
#
-# $XFree86: xc/nls/XI18N_OBJS/ko_KR.UTF-8,v 1.1 2002/12/17 03:41:53 dawes Exp $
+# $XFree86$
#
XLC common/xlcUTF8Load _XlcUtf8Loader # XLC_open
XIM common/ximcp _XimOpenIM _XimRegisterIMInstantiateCallback _XimUnRegisterIMInstantiateCallback # XIM_open XIM_register XIM_unregister
diff --git a/nls/ko_KR.UTF-8/XLC_LOCALE.pre b/nls/ko_KR.UTF-8/XLC_LOCALE.pre
index a67b90e2..8c27c560 100644
--- a/nls/ko_KR.UTF-8/XLC_LOCALE.pre
+++ b/nls/ko_KR.UTF-8/XLC_LOCALE.pre
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/nls/XLC_LOCALE/ko_KR.UTF-8,v 1.1 2002/10/17 01:12:57 dawes Exp $
+XCOMM $XFree86$
XCOMM
XCOMM XLC_FONTSET category
@@ -31,24 +31,8 @@ fs1 {
}
}
-XCOMM ISO10646-1 is put after iso8859-1 to make usually better-looking
-XCOMM iso8859-x fonts are picked up before iso10646-1 fonts.
-XCOMM Moreover, some iso10646-1 fonts don't have any glyph at all
-XCOMM in ISO8859-X ranges.
-
-XCOMM fs2 class
-fs2 {
- charset {
- name ISO10646-1
- }
- font {
- primary ISO10646-1
- }
-}
-
-
-XCOMM fs3 class (Korean Character)
-fs3 {
+XCOMM fs2 class (Korean Character)
+fs2 {
charset {
name KSC5601.1987-0:GL
}
@@ -56,8 +40,8 @@ fs3 {
primary KSC5601.1987-0:GL
}
}
-XCOMM fs4 class (Kanji)
-fs4 {
+XCOMM fs3 class (Kanji)
+fs3 {
charset {
name JISX0208.1983-0:GL
}
@@ -65,8 +49,8 @@ fs4 {
primary JISX0208.1983-0:GL
}
}
-XCOMM fs5 class (Chinese Han Character)
-fs5 {
+XCOMM fs4 class (Chinese Han Character)
+fs4 {
charset {
name GB2312.1980-0:GL
}
@@ -74,8 +58,8 @@ fs5 {
primary GB2312.1980-0:GL
}
}
-XCOMM fs6 class (Half Kana)
-fs6 {
+XCOMM fs5 class (Half Kana)
+fs5 {
charset {
name JISX0201.1976-0:GR
}
@@ -84,6 +68,22 @@ fs6 {
vertical_rotate all
}
}
+
+XCOMM ISO10646-1 is put last to make usually better-looking
+XCOMM other fonts are picked up before iso10646-1 fonts.
+XCOMM Moreover, some iso10646-1 fonts don't have any glyph at all
+XCOMM in ISO8859-X ranges.
+
+XCOMM fs6 class
+fs6 {
+ charset {
+ name ISO10646-1
+ }
+ font {
+ primary ISO10646-1
+ }
+}
+
END XLC_FONTSET
XCOMM
diff --git a/nls/koi8-c/Compose.pre b/nls/koi8-c/Compose.pre
index 11c1cc74..99bd3a04 100644
--- a/nls/koi8-c/Compose.pre
+++ b/nls/koi8-c/Compose.pre
@@ -3,7 +3,7 @@ XCOMM koi8-c Compose Sequence
XCOMM
XCOMM Sequence Definition
XCOMM
-XCOMM $XFree86: xc/nls/Compose/koi8-c,v 1.2 2001/04/26 21:09:40 dawes Exp $
+XCOMM $XFree86: xc/nls/Compose/koi8-c,v 1.1 2000/10/27 18:30:52 dawes Exp $
XCOMM
XCOMM <Multi_key> Means <Compose>
diff --git a/nls/koi8-c/XLC_LOCALE.pre b/nls/koi8-c/XLC_LOCALE.pre
index 4941705d..702097cb 100644
--- a/nls/koi8-c/XLC_LOCALE.pre
+++ b/nls/koi8-c/XLC_LOCALE.pre
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/nls/XLC_LOCALE/koi8-c,v 1.2 2000/12/01 17:43:03 dawes Exp $
+XCOMM $XFree86: xc/nls/XLC_LOCALE/koi8-c,v 1.1 2000/10/27 18:30:56 dawes Exp $
XCOMM XLocale Database Sample for koi8-c.
XCOMM
diff --git a/nls/koi8-r/Compose.pre b/nls/koi8-r/Compose.pre
index 62dba3bf..e3f6f70f 100644
--- a/nls/koi8-r/Compose.pre
+++ b/nls/koi8-r/Compose.pre
@@ -3,7 +3,7 @@ XCOMM koi8-r Compose Sequence
XCOMM
XCOMM Sequence Definition
XCOMM
-XCOMM $XFree86: xc/nls/Compose/koi8-r,v 1.2 2001/04/26 21:09:40 dawes Exp $
+XCOMM $XFree86: xc/nls/Compose/koi8-r,v 1.1 1999/08/28 09:00:38 dawes Exp $
XCOMM
XCOMM This file currently has no entries. It appears that a compose file (even
XCOMM just an empty one) is required for the appropriate keysyms to work for
diff --git a/nls/koi8-r/XLC_LOCALE.pre b/nls/koi8-r/XLC_LOCALE.pre
index 8f7f06a2..ed4933f1 100644
--- a/nls/koi8-r/XLC_LOCALE.pre
+++ b/nls/koi8-r/XLC_LOCALE.pre
@@ -1,6 +1,8 @@
XCOMM $Xorg: koi8-r,v 1.3 2000/08/17 19:47:00 cpqbld Exp $
XCOMM XLocale Database Sample for koi8-r.
XCOMM
+XCOMM
+XCOMM $XFree86: xc/nls/XLC_LOCALE/koi8-r,v 3.3 2000/12/01 17:43:03 dawes Exp $
XCOMM
XCOMM XLC_FONTSET category
@@ -8,8 +10,13 @@ XCOMM
XLC_FONTSET
XCOMM fs0 class (7 bit ASCII)
fs0 {
- charset ISO8859-1:GL
- font KOI8-R:GL; ISO8859-1:GL
+ charset {
+ name ISO8859-1:GL
+ }
+ font {
+ primary KOI8-R:GL
+ substitute ISO8859-1:GL
+ }
}
XCOMM fs1 class
fs1 {
@@ -18,6 +25,19 @@ fs1 {
}
END XLC_FONTSET
+XCOMM
+XCOMM XLC_CHARSET_DEFINE category
+XCOMM
+XLC_CHARSET_DEFINE
+csd0 {
+ charset_name KOI8-R
+ side GR
+ length 1
+ string_encoding False
+ sequence \x1b%/1
+}
+END XLC_CHARSET_DEFINE
+
XCOMM
XCOMM XLC_XLOCALE category
XCOMM
@@ -34,6 +54,10 @@ wc_encoding_mask \x00008080
wc_shift_bits 8
#endif
+#ifndef X_LOCALE
+use_stdc_env True
+#endif
+
XCOMM cs0 class
cs0 {
side GL:Default
diff --git a/nls/koi8-u/Compose.pre b/nls/koi8-u/Compose.pre
index e7434980..617ebd1e 100644
--- a/nls/koi8-u/Compose.pre
+++ b/nls/koi8-u/Compose.pre
@@ -3,7 +3,7 @@ XCOMM koi8-u Compose Sequence
XCOMM
XCOMM Sequence Definition
XCOMM
-XCOMM $XFree86: xc/nls/Compose/koi8-u,v 1.2 2001/04/26 21:09:40 dawes Exp $
+XCOMM $XFree86: xc/nls/Compose/koi8-u,v 1.1 1999/08/28 09:00:38 dawes Exp $
XCOMM
XCOMM This file currently has no entries. It appears that a compose file (even
XCOMM just an empty one) is required for the appropriate keysyms to work for
diff --git a/nls/koi8-u/XLC_LOCALE.pre b/nls/koi8-u/XLC_LOCALE.pre
index 4fb8d321..158d4bf0 100644
--- a/nls/koi8-u/XLC_LOCALE.pre
+++ b/nls/koi8-u/XLC_LOCALE.pre
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/nls/XLC_LOCALE/koi8-u,v 1.2 2000/12/01 17:43:03 dawes Exp $
+XCOMM $XFree86: xc/nls/XLC_LOCALE/koi8-u,v 1.1 1999/05/30 02:28:03 dawes Exp $
XCOMM XLocale Database Sample for koi8-u.
XCOMM
diff --git a/nls/locale.alias.pre b/nls/locale.alias.pre
index ed5009a1..c00e1413 100644
--- a/nls/locale.alias.pre
+++ b/nls/locale.alias.pre
@@ -1,10 +1,14 @@
-XCOMM $Xorg: locale.alias,v 1.4 2000/12/12 13:00:42 coskrey Exp $
+XCOMM $XdotOrg: lib/X11/nls/locale.alias.pre,v 1.2 2004-04-23 18:44:33 eich Exp $
+XCOMM $Xorg: locale.alias,v 1.3 2000/08/17 19:46:48 cpqbld Exp $
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 $XFree86: xc/nls/locale.alias,v 1.65 2004/01/03 03:31:00 dawes Exp $
+XCOMM
+
POSIX: C
POSIX-UTF2: C
C_C.C: C
@@ -13,142 +17,483 @@ C.iso88591: en_US.ISO8859-1
Cextend: en_US.ISO8859-1
Cextend.en: en_US.ISO8859-1
English_United-States.437: C
-XCOMM
+af: af_ZA.ISO8859-1
+af_ZA: af_ZA.ISO8859-1
+af_ZA.iso88591: af_ZA.ISO8859-1
+am: 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_AE: ar_AE.ISO8859-6
+ar_AE.utf8: ar_AE.UTF-8
+ar_BH: ar_BH.ISO8859-6
+ar_BH.utf8: ar_BH.UTF-8
+ar_DZ: 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.utf8: ar_EG.UTF-8
+ar_IQ: ar_IQ.ISO8859-6
+ar_IQ.utf8: ar_IQ.UTF-8
+ar_JO: ar_JO.ISO8859-6
+ar_JO.utf8: ar_JO.UTF-8
+ar_KW: ar_KW.ISO8859-6
+ar_KW.utf8: ar_KW.UTF-8
+ar_LB: ar_LB.ISO8859-6
+ar_LB.utf8: ar_LB.UTF-8
+ar_LY: ar_LY.ISO8859-6
+ar_LY.utf8: ar_LY.UTF-8
+ar_MA: ar_MA.ISO8859-6
+ar_MA.utf8: ar_MA.UTF-8
+ar_OM: ar_OM.ISO8859-6
+ar_OM.utf8: ar_OM.UTF-8
+ar_QA: ar_QA.ISO8859-6
+ar_QA.utf8: ar_QA.UTF-8
+ar_SA: ar_SA.ISO8859-6
ar_SA.iso88596: ar_SA.ISO8859-6
-bg: bg_BG.ISO8859-5
-bg_BG: bg_BG.ISO8859-5
+ar_SA.utf8: ar_SA.UTF-8
+ar_SD: ar_SD.ISO8859-6
+ar_SD.utf8: ar_SD.UTF-8
+ar_SY: ar_SY.ISO8859-6
+ar_SY.utf8: ar_SY.UTF-8
+ar_TN: ar_TN.ISO8859-6
+ar_TN.utf8: ar_TN.UTF-8
+ar_YE: 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
+a3: a3_AZKOI8-C
+a3_AZ: a3_AZ.KOI8-C
+a3_AZ.koi8c: a3_AZ.KOI8-C
+be: be_BY.CP1251
+be_BY: be_BY.CP1251
+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
bg_BG.iso88595: bg_BG.ISO8859-5
+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.koi8r: bg_BG.KOI8-R
+be_BG.utf8: be_BG.UTF-8
+br: br_FR.ISO8859-1
+br_FR: br_FR.ISO8859-1
+br_FR.iso88591: br_FR.ISO8859-1
+br_FR.iso885914: br_FR.ISO8859-14
+br_FR.iso885915: br_FR.ISO8859-15
+br_FR@euro: br_FR.ISO8859-15
+ca: ca_ES.ISO8859-1
+ca_ES: ca_ES.ISO8859-1
+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@euro: ca_ES.ISO8859-15
+ca_ES.utf8: ca_ES.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
-cz: cz_CZ.ISO8859-2
-cz_CZ: cz_CZ.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 old name for cs, should be deleted in the future:
+cz: cs_CZ.ISO8859-2
+cz_CZ: cs_CZ.ISO8859-2
+cy: cy_GB.ISO8859-1
+cy_GB: cy_GB.ISO8859-1
+cy_GB.iso88591: cy_GB.ISO8859-1
+cy_GB.iso885914: cy_GB.ISO8859-14
+cy_GB.iso885915: cy_GB.ISO8859-15
da: da_DK.ISO8859-1
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.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_AT: de_AT.ISO8859-1
+de_AT.iso88591: de_AT.ISO8859-1
de_AT.ISO_8859-1: de_AT.ISO8859-1
+de_AT.iso885915: de_AT.ISO8859-15
+de_AT@euro: de_AT.ISO8859-15
+de_AT.utf8: de_AT.UTF-8
+de_BE: de_BE.ISO8859-1
+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@euro: de_BE.ISO8859-15
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.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@euro: de_DE.ISO8859-15
+de_DE.utf8: de_DE.UTF-8
+de_LU: de_LU.ISO8859-1
+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@euro: de_LU.ISO8859-15
+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_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.iso885915: en_GB.ISO8859-15
+en_GB.ISO-8859-1: en_GB.ISO8859-1
en_GB.ISO_8859-1: en_GB.ISO8859-1
+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_IE: en_IE.ISO8859-1
+en_IE.iso88591: en_IE.ISO8859-1
+en_IE.iso885915: en_IE.ISO8859-15
+en_IE@euro: en_IE.ISO8859-15
+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.utf8: en_NZ.UTF-8
+en_PH: en_PH.ISO8859-1
+en_SG: 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.UTF-8: en_US.UTF-8
+en_US.iso885915: 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_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.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.ISO-8859-15: en_ZA.ISO8859-15
+en_ZA.iso885915: en_ZA.ISO8859-15
+en_ZA.utf8: en_ZA.UTF-8
+en_ZW: 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_AR: es_AR.ISO8859-1
+es_AR.iso88591: 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.utf8: es_BO.UTF-8
es_CL: es_CL.ISO8859-1
+es_CL.iso88591: 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.utf8: es_CO.UTF-8
es_CR: es_CR.ISO8859-1
+es_CR.iso88591: 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.utf8: es_DO.UTF-8
es_EC: es_EC.ISO8859-1
+es_EC.iso88591: 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@euro: es_ES.ISO8859-15
+es_ES.utf8: es_ES.UTF-8
es_GT: es_GT.ISO8859-1
+es_GT.iso88591: 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.utf8: es_HN.UTF-8
es_MX: es_MX.ISO8859-1
+es_MX.iso88591: 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.utf8: es_NI.UTF-8
es_PA: es_PA.ISO8859-1
+es_PA.iso88591: 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.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.utf8: es_PR.UTF-8
es_PY: es_PY.ISO8859-1
+es_PY.iso88591: 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.iso885915: es_SV.ISO8859-15
+es_SV.utf8: es_SV.UTF-8
+es_US: es_US.ISO8859-1
es_UY: es_UY.ISO8859-1
+es_UY.iso88591: 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.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
-et: et_EE.ISO8859-4
-et_EE: et_EE.ISO8859-4
-fi: fi_FI.ISO8859-1
-fi_FI: fi_FI.ISO8859-1
+XCOMM According to Estonian local standards, ISO8859-4 is not recommended
+XCOMM charset. EVS8:2000 specifies ISO8859-15 as 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.iso885913: et_EE.ISO8859-13
+et_EE.iso885915: 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.iso885915: eu_ES.ISO8859-15
+eu_ES@euro: eu_ES.ISO8859-15
+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_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@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.iso885915: fo_FO.ISO8859-15
+fo_FO.utf8: fo_FO.UTF-8
fr: fr_FR.ISO8859-1
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.iso885915: fr_BE.ISO8859-15
+fr_BE@euro: fr_BE.ISO8859-15
+fr_BE.utf8: 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.iso885915: 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.iso885915: 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@euro: fr_FR.ISO8859-15
+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@euro: fr_LU.ISO8859-15
+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.iso885914: ga_IE.ISO8859-14
+ga_IE.iso885915: ga_IE.ISO8859-15
+ga_IE@euro: ga_IE.ISO8859-15
+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.iso885914: gd_GB.ISO8859-14
+gd_GB.iso885915: 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@euro: gl_ES.ISO8859-15
+gl_ES.utf8: gl_ES.UTF-8
+gv: gv_GB.ISO8859-1
+gv_GB: gv_GB.ISO8859-1
+gv_GB.iso88591: gv_GB.ISO8859-1
+gv_GB.iso885914: gv_GB.ISO8859-14
+gv_GB.iso885915: 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.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
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
+XCOMM those lines should be deleted in a near 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.utf8: is_IS.UTF-8
it: it_IT.ISO8859-1
it_CH: it_CH.ISO8859-1
+it_CH.iso88591: 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
-iw: iw_IL.ISO8859-8
-iw_IL: iw_IL.ISO8859-8
-iw_IL.iso88598: iw_IL.ISO8859-8
-ja: ja_JP.eucJP
-ja.JIS: ja_JP.JIS7
-ja.SJIS: ja_JP.SJIS
+it_IT.iso885915: it_IT.ISO8859-15
+it_IT@euro: it_IT.ISO8859-15
+it_IT.utf8: 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)
+XCOMM those lines should be deleted in a near 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__ */
@@ -156,97 +501,353 @@ 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: ja_JP.eucJP
ja_JP.ujis: ja_JP.eucJP
-ja_JP.eucJP: ja_JP.eucJP
+ja_JP.eucjp: 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.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.iso885915: kl_GL.ISO8859-15
+kl_GL.utf8: kl_GL.UTF-8
ko: ko_KR.eucKR
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
-#if defined(__FreeBSD__)
+ko_KR.euckr: ko_KR.eucKR
+ko_KR.utf8: ko_KR.UTF-8
+KO_KR.UTF-8: ko_KR.UTF-8
+kw: kw_GB.ISO8859-1
+kw_GB: kw_GB.ISO8859-1
+kw_GB.iso88591: kw_GB.ISO8859-1
+kw_GB.iso885914: kw_GB.ISO8859-14
+kw_GB.iso885915: kw_GB.ISO8859-15
+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-4.
+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-4
-lv: lv_LV.ISO8859-4
+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.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.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
+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.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
+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
+mt: mt_MT.ISO8859-3
+mt_MT: mt_MT.ISO8859-3
+mt_MT.ISO8859-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.ISO-8859-1: nb_NO.ISO8859-1
+nb_NO.iso885915: nb_NO.ISO8859-15
nl: nl_NL.ISO8859-1
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.iso885915: nl_BE.ISO8859-15
+nl_BE@euro: nl_BE.ISO8859-15
+nl_BE.utf8: 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@euro: nl_NL.ISO8859-15
+nl_NL.utf8: 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.iso885915: nn_NO.ISO8859-15
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.ISO-8859-1: no_NO.ISO8859-1
+no_NO.iso885915: no_NO.ISO8859-15
+no_NO.utf8: no_NO.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.iso885915: oc_FR.ISO8859-15
+oc_FR@euro: oc_FR.ISO8859-15
+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_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_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@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
-ru: ru_RU.ISO8859-5
-ru_RU: ru_RU.ISO8859-5
+ro_RO.ISO-8859-2: ro_RO.ISO8859-2
+ro_RO.utf8: ro_RO.UTF-8
+ru: ru_RU.KOI8-R
+ru_RU: ru_RU.KOI8-R
ru_RU.iso88595: ru_RU.ISO8859-5
-ru_SU: 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
+se_NO: se_NO.UTF-8
+se_NO.utf8: se_NO.UTF-8
sh: sh_YU.ISO8859-2
sh_HR.iso88592: sh_HR.ISO8859-2
-sh_YU: sh_YU.ISO8859-2
sh_SP: sh_YU.ISO8859-2
+sh_YU: sh_YU.ISO8859-2
+sh_YU.utf8: sh_YU.UTF-8
sk: sk_SK.ISO8859-2
sk_SK: sk_SK.ISO8859-2
-sk_sK.iso88592: sk_SK.ISO8859-2
-sl: sl_CS.ISO8859-2
-sl_CS: sl_CS.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
sp: sp_YU.ISO8859-5
sp_YU: sp_YU.ISO8859-5
+sq: sq_AL.ISO8859-2
+sq_AL: sq_AL.ISO8859-2
+sq_AL.iso88592: sq_AL.ISO8859-2
+sq_AL.utf8: sq_AL.UTF-8
sr_SP: sr_SP.ISO8859-2
+sr: sr_YU.ISO8859-5
+sr_YU: sr_YU.ISO8859-5
+sr_YU.iso88592: sr_YU.ISO8859-2
+sr_YU.iso88595: sr_YU.ISO8859-5
+sr@cyrillic: sr_YU.ISO8859-5
+sr_YU@cyrillic: sr_YU.ISO8859-5
+sr_YU.iso88595@cyrillic: sr_YU.ISO8859-5
+sr_YU.ISO8859-5@cyrillic: sr_YU.ISO8859-5
+sr_YU.cp1251@cyrillic: sr_YU.CP1251
+sr_YU.CP1251@cyrillic: sr_YU.CP1251
+sr_YU.microsoftcp1251@cyrillic: sr_YU.CP1251
+sr_YU.microsoft-cp1251@cyrillic: sr_YU.CP1251
+sr_YU.MICROSOFT-CP1251@cyrillic: sr_YU.CP1251
+sr_YU.utf8: sr_YU.UTF-8
+sr_YU.UTF-8@cyrillic: sr_YU.UTF-8
sv: sv_SE.ISO8859-1
+sv_FI: sv_FI.ISO8859-1
+sv_FI.iso88591: sv_FI.ISO8859-1
+sv_FI.iso885915: sv_FI.ISO8859-15
+sv_FI@euro: sv_FI.ISO8859-15
+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
-th_TH: th_TH.TACTIS
-th_TH.tis620: th_TH.TACTIS
+sv_SE.iso885915: 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
+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
tr: tr_TR.ISO8859-9
tr_TR: tr_TR.ISO8859-9
+TR_TR: tr_TR.ISO8859-9
tr_TR.iso88599: tr_TR.ISO8859-9
-zh: zh_CN.eucCN
-zh_CN: zh_CN.eucCN
+tr_TR.ISO-8859-9: tr_TR.ISO8859-9
+tr_TR.utf8: tr_TR.UTF-8
+TR_TR.utf8: tr_TR.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_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
+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.iso885915: wa_BE.ISO8859-15
+wa_BE@euro: wa_BE.ISO8859-15
+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_TW: zh_TW.eucTW
+zh_CN.GB2312: zh_CN.gb2312
+zh_CN.GBK: zh_CN.gbk
+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.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_CN.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.EUC: zh_TW.eucTW
-zh_CN.big5: zh_TW.eucTW
+zh_TW.utf8: zh_TW.UTF-8
+ZH_TW.UTF-8: zh_TW.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
@@ -258,47 +859,75 @@ 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
-bulgarian: bg_BG.ISO8859-5
+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_CS.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
-#if ! (defined(SVR4) && defined(sun))
-japanese: ja_JP.SJIS
-#else
japanese: ja_JP.eucJP
-#endif
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_SU.ISO8859-5
+russian: ru_RU.ISO8859-5
serbocroatian: sh_YU.ISO8859-2
slovak: sk_SK.ISO8859-2
-slovene: sl_CS.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
-univ.utf8: en_US.utf
+thai: th_TH.ISO8859-11
+univ.utf8: en_US.UTF-8
XCOMM Digital Unix utf
-universal.utf8@ucs4: en_US.utf
-XCOMM Solaris 2.6
-XCOMM Solaris and SunOS have iso_8859_1 LC_CTYPES to augment LANG=C
+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
@@ -358,7 +987,7 @@ 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-4
+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
@@ -376,8 +1005,8 @@ 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-4
-Latvian_Latvia.1257: lv_LV.iso8859-4
+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
@@ -409,9 +1038,3 @@ japan: ja_JP.eucJP
japan: ja_JP.U90
#endif
Japanese-EUC: ja_JP.eucJP
-
-XCOMM Added by Sun
-ja_JP.PCK: ja_JP.SJIS
-zh_CN.GBK: zh.GBK
-zh.GBK: zh.GBK
-zh_TW.BIG5: zh_TW.BIG5
diff --git a/nls/locale.dir.pre b/nls/locale.dir.pre
index 692efc02..6e4b09ae 100644
--- a/nls/locale.dir.pre
+++ b/nls/locale.dir.pre
@@ -1,123 +1,392 @@
-XCOMM $Xorg: locale.dir,v 1.4 2000/12/12 13:00:42 coskrey Exp $
+XCOMM $XdotOrg: lib/X11/nls/locale.dir.pre,v 1.2 2004-04-23 18:44:33 eich Exp $
+XCOMM $Xorg: locale.dir,v 1.3 2000/08/17 19:46:48 cpqbld Exp $
XCOMM
-XCOMM This file contains locALE: database file name
-XCOMM The first word is the locALE: database file name and
-XCOMM the second word is full locALE: name.
+XCOMM This file contains locale database file names
+XCOMM The first word is the locale database file name and
+XCOMM the second word is the full locale name.
XCOMM
-C/XLC_LOCALE: C
-iso8859-1/XLC_LOCALE: af_ZA.ISO8859-1
-iso8859-6/XLC_LOCALE: ar_AA.ISO8859-6
-iso8859-6/XLC_LOCALE: ar_BH.ISO8859-6
-iso8859-6/XLC_LOCALE: ar_DZ.ISO8859-6
-iso8859-6/XLC_LOCALE: ar_EG.ISO8859-6
-iso8859-6/XLC_LOCALE: ar_IQ.ISO8859-6
-iso8859-6/XLC_LOCALE: ar_JO.ISO8859-6
-iso8859-6/XLC_LOCALE: ar_KW.ISO8859-6
-iso8859-6/XLC_LOCALE: ar_LB.ISO8859-6
-iso8859-6/XLC_LOCALE: ar_LY.ISO8859-6
-iso8859-6/XLC_LOCALE: ar_MA.ISO8859-6
-iso8859-6/XLC_LOCALE: ar_OM.ISO8859-6
-iso8859-6/XLC_LOCALE: ar_QA.ISO8859-6
-iso8859-6/XLC_LOCALE: ar_SA.ISO8859-6
-iso8859-6/XLC_LOCALE: ar_TN.ISO8859-6
-iso8859-6/XLC_LOCALE: ar_YE.ISO8859-6
-iso8859-5/XLC_LOCALE: bg_BG.ISO8859-5
-iso8859-1/XLC_LOCALE: ca_ES.ISO8859-1
-iso8859-2/XLC_LOCALE: cs_CZ.ISO8859-2
-iso8859-2/XLC_LOCALE: cz_CZ.ISO8859-2
-iso8859-1/XLC_LOCALE: da_DK.ISO8859-1
-iso8859-1/XLC_LOCALE: de_AT.ISO8859-1
-iso8859-1/XLC_LOCALE: de_CH.ISO8859-1
-iso8859-1/XLC_LOCALE: de_DE.ISO8859-1
-iso8859-1/XLC_LOCALE: de_LI.ISO8859-1
-iso8859-1/XLC_LOCALE: de_LU.ISO8859-1
-iso8859-7/XLC_LOCALE: el_GR.ISO8859-7
-iso8859-1/XLC_LOCALE: en_AU.ISO8859-1
-iso8859-1/XLC_LOCALE: en_BZ.ISO8859-1
-iso8859-1/XLC_LOCALE: en_CA.ISO8859-1
-iso8859-1/XLC_LOCALE: en_GB.ISO8859-1
-iso8859-1/XLC_LOCALE: en_IE.ISO8859-1
-iso8859-1/XLC_LOCALE: en_JM.ISO8859-1
-iso8859-1/XLC_LOCALE: en_NZ.ISO8859-1
-iso8859-1/XLC_LOCALE: en_TT.ISO8859-1
-iso8859-1/XLC_LOCALE: en_UK.ISO8859-1
-iso8859-1/XLC_LOCALE: en_US.ISO8859-1
-iso8859-1/XLC_LOCALE: en_ZA.ISO8859-1
-iso8859-1/XLC_LOCALE: es_AR.ISO8859-1
-iso8859-1/XLC_LOCALE: es_BO.ISO8859-1
-iso8859-1/XLC_LOCALE: es_CL.ISO8859-1
-iso8859-1/XLC_LOCALE: es_CO.ISO8859-1
-iso8859-1/XLC_LOCALE: es_CR.ISO8859-1
-iso8859-1/XLC_LOCALE: es_DO.ISO8859-1
-iso8859-1/XLC_LOCALE: es_EC.ISO8859-1
-iso8859-1/XLC_LOCALE: es_ES.ISO8859-1
-iso8859-1/XLC_LOCALE: es_GT.ISO8859-1
-iso8859-1/XLC_LOCALE: es_HN.ISO8859-1
-iso8859-1/XLC_LOCALE: es_MX.ISO8859-1
-iso8859-1/XLC_LOCALE: es_NI.ISO8859-1
-iso8859-1/XLC_LOCALE: es_PA.ISO8859-1
-iso8859-1/XLC_LOCALE: es_PE.ISO8859-1
-iso8859-1/XLC_LOCALE: es_PR.ISO8859-1
-iso8859-1/XLC_LOCALE: es_PY.ISO8859-1
-iso8859-1/XLC_LOCALE: es_SV.ISO8859-1
-iso8859-1/XLC_LOCALE: es_UY.ISO8859-1
-iso8859-1/XLC_LOCALE: es_VE.ISO8859-1
-iso8859-4/XLC_LOCALE: et_EE.ISO8859-4
-iso8859-1/XLC_LOCALE: eu_ES.ISO8859-1
-iso8859-1/XLC_LOCALE: fi_FI.ISO8859-1
-iso8859-1/XLC_LOCALE: fo_FO.ISO8859-1
-iso8859-1/XLC_LOCALE: fr_BE.ISO8859-1
-iso8859-1/XLC_LOCALE: fr_CA.ISO8859-1
-iso8859-1/XLC_LOCALE: fr_CH.ISO8859-1
-iso8859-1/XLC_LOCALE: fr_FR.ISO8859-1
-iso8859-1/XLC_LOCALE: fr_LU.ISO8859-1
-iso8859-8/XLC_LOCALE: he_IL.ISO8859-8
-iso8859-2/XLC_LOCALE: hr_HR.ISO8859-2
-iso8859-2/XLC_LOCALE: hu_HU.ISO8859-2
-iso8859-1/XLC_LOCALE: id_ID.ISO8859-1
-iso8859-1/XLC_LOCALE: is_IS.ISO8859-1
-iso8859-1/XLC_LOCALE: it_CH.ISO8859-1
-iso8859-1/XLC_LOCALE: it_IT.ISO8859-1
-iso8859-8/XLC_LOCALE: iw_IL.ISO8859-8
-ja/XLC_LOCALE: ja_JP.eucJP
-ja.SJIS/XLC_LOCALE: ja_JP.SJIS
-ja.JIS/XLC_LOCALE: ja_JP.JIS7
-ko/XLC_LOCALE: ko_KR.eucKR
-iso8859-1/XLC_LOCALE: lt_LN.ISO8859-1
-iso8859-1/XLC_LOCALE: lt_LT.ISO8859-4
-iso8859-1/XLC_LOCALE: lv_LV.ISO8859-4
-iso8859-5/XLC_LOCALE: mk_MK.ISO8859-5
-iso8859-1/XLC_LOCALE: nl_BE.ISO8859-1
-iso8859-1/XLC_LOCALE: nl_NL.ISO8859-1
-iso8859-1/XLC_LOCALE: no_NO.ISO8859-1
-iso8859-2/XLC_LOCALE: pl_PL.ISO8859-2
-iso8859-1/XLC_LOCALE: pt_BR.ISO8859-1
-iso8859-1/XLC_LOCALE: pt_PT.ISO8859-1
-iso8859-2/XLC_LOCALE: ro_RO.ISO8859-2
-iso8859-5/XLC_LOCALE: ru_RU.ISO8859-5
-koi8-r/XLC_LOCALE: ru_RU.KOI8-R
-iso8859-2/XLC_LOCALE: sh_YU.ISO8859-2
-iso8859-2/XLC_LOCALE: sk_SK.ISO8859-2
-iso8859-2/XLC_LOCALE: sl_CS.ISO8859-2
-iso8859-2/XLC_LOCALE: sl_SI.ISO8859-2
-iso8859-5/XLC_LOCALE: sp_YU.ISO8859-5
-iso8859-2/XLC_LOCALE: sq_AL.ISO8859-2
-iso8859-2/XLC_LOCALE: sr_SP.ISO8859-2
-iso8859-2/XLC_LOCALE: sr_YU.ISO8859-2
-iso8859-1/XLC_LOCALE: sv_FI.ISO8859-1
-iso8859-1/XLC_LOCALE: sv_SE.ISO8859-1
-th_TH/XLC_LOCALE: th_TH.TACTIS
-iso8859-9/XLC_LOCALE: tr_TR.ISO8859-9
-iso8859-5/XLC_LOCALE: uk_UA.ISO8859-5
-zh/XLC_LOCALE: zh_CN.eucCN
-zh_TW/XLC_LOCALE: zh_TW.eucTW
-en_US.utf/XLC_LOCALE: en_US.utf
+XCOMM $XFree86: xc/nls/locale.dir,v 1.44 2003/12/18 04:14:22 dawes Exp $
+XCOMM
+
+C/XLC_LOCALE: C
+iso8859-1/XLC_LOCALE: af_ZA.ISO8859-1
+iso8859-6/XLC_LOCALE: ar_AA.ISO8859-6
+iso8859-6/XLC_LOCALE: ar_BH.ISO8859-6
+iso8859-6/XLC_LOCALE: ar_DZ.ISO8859-6
+iso8859-6/XLC_LOCALE: ar_EG.ISO8859-6
+iso8859-6/XLC_LOCALE: ar_IQ.ISO8859-6
+iso8859-6/XLC_LOCALE: ar_JO.ISO8859-6
+iso8859-6/XLC_LOCALE: ar_KW.ISO8859-6
+iso8859-6/XLC_LOCALE: ar_LB.ISO8859-6
+iso8859-6/XLC_LOCALE: ar_LY.ISO8859-6
+iso8859-6/XLC_LOCALE: ar_MA.ISO8859-6
+iso8859-6/XLC_LOCALE: ar_OM.ISO8859-6
+iso8859-6/XLC_LOCALE: ar_QA.ISO8859-6
+iso8859-6/XLC_LOCALE: ar_SA.ISO8859-6
+iso8859-6/XLC_LOCALE: ar_SD.ISO8859-6
+iso8859-6/XLC_LOCALE: ar_SY.ISO8859-6
+iso8859-6/XLC_LOCALE: ar_TN.ISO8859-6
+iso8859-6/XLC_LOCALE: ar_YE.ISO8859-6
+iso8859-9e/XLC_LOCALE: az_AZ.ISO8859-9E
+koi8-c/XLC_LOCALE: az_AZ.KOI8-C
+iso8859-5/XLC_LOCALE: be_BY.ISO8859-5
+microsoft-cp1251/XLC_LOCALE: be_BY.CP1251
+iso8859-5/XLC_LOCALE: bg_BG.ISO8859-5
+microsoft-cp1251/XLC_LOCALE: bg_BG.CP1251
+koi8-r/XLC_LOCALE: bg_BG.KOI8-R
+iso8859-1/XLC_LOCALE: br_FR.ISO8859-1
+iso8859-14/XLC_LOCALE: br_FR.ISO8859-14
+iso8859-15/XLC_LOCALE: br_FR.ISO8859-15
+iso8859-1/XLC_LOCALE: ca_ES.ISO8859-1
+iso8859-15/XLC_LOCALE: ca_ES.ISO8859-15
+iso8859-2/XLC_LOCALE: cs_CZ.ISO8859-2
+iso8859-1/XLC_LOCALE: cy_GB.ISO8859-1
+iso8859-14/XLC_LOCALE: cy_GB.ISO8859-14
+iso8859-15/XLC_LOCALE: cy_GB.ISO8859-15
+iso8859-2/XLC_LOCALE: cz_CZ.ISO8859-2
+iso8859-1/XLC_LOCALE: da_DK.ISO8859-1
+iso8859-15/XLC_LOCALE: da_DK.ISO8859-15
+iso8859-1/XLC_LOCALE: de_AT.ISO8859-1
+iso8859-15/XLC_LOCALE: de_AT.ISO8859-15
+iso8859-1/XLC_LOCALE: de_BE.ISO8859-1
+iso8859-15/XLC_LOCALE: de_BE.ISO8859-15
+iso8859-1/XLC_LOCALE: de_CH.ISO8859-1
+iso8859-15/XLC_LOCALE: de_CH.ISO8859-15
+iso8859-1/XLC_LOCALE: de_DE.ISO8859-1
+iso8859-15/XLC_LOCALE: de_DE.ISO8859-15
+iso8859-1/XLC_LOCALE: de_LI.ISO8859-1
+iso8859-1/XLC_LOCALE: de_LU.ISO8859-1
+iso8859-15/XLC_LOCALE: de_LU.ISO8859-15
+iso8859-7/XLC_LOCALE: el_GR.ISO8859-7
+iso8859-15/XLC_LOCALE: el_GR.ISO8859-15
+iso8859-1/XLC_LOCALE: en_AU.ISO8859-1
+iso8859-1/XLC_LOCALE: en_BE.ISO8859-1
+iso8859-1/XLC_LOCALE: en_BZ.ISO8859-1
+iso8859-1/XLC_LOCALE: en_BW.ISO8859-1
+iso8859-1/XLC_LOCALE: en_CA.ISO8859-1
+iso8859-1/XLC_LOCALE: en_GB.ISO8859-1
+iso8859-15/XLC_LOCALE: en_GB.ISO8859-15
+iso8859-1/XLC_LOCALE: en_HK.ISO8859-1
+iso8859-1/XLC_LOCALE: en_IE.ISO8859-1
+iso8859-15/XLC_LOCALE: en_IE.ISO8859-15
+iso8859-15/XLC_LOCALE: en_IN.ISO8859-15
+iso8859-1/XLC_LOCALE: en_JM.ISO8859-1
+iso8859-1/XLC_LOCALE: en_NZ.ISO8859-1
+iso8859-1/XLC_LOCALE: en_PH.ISO8859-1
+iso8859-1/XLC_LOCALE: en_SG.ISO8859-1
+iso8859-1/XLC_LOCALE: en_TT.ISO8859-1
+iso8859-1/XLC_LOCALE: en_UK.ISO8859-1
+iso8859-15/XLC_LOCALE: en_UK.ISO8859-15
+iso8859-1/XLC_LOCALE: en_US.ISO8859-1
+iso8859-15/XLC_LOCALE: en_US.ISO8859-15
+iso8859-1/XLC_LOCALE: en_ZA.ISO8859-1
+iso8859-15/XLC_LOCALE: en_ZA.ISO8859-15
+iso8859-3/XLC_LOCALE: eo_EO.ISO8859-3
+iso8859-3/XLC_LOCALE: eo_XX.ISO8859-3
+iso8859-1/XLC_LOCALE: es_AR.ISO8859-1
+iso8859-1/XLC_LOCALE: es_BO.ISO8859-1
+iso8859-1/XLC_LOCALE: es_CL.ISO8859-1
+iso8859-1/XLC_LOCALE: es_CO.ISO8859-1
+iso8859-1/XLC_LOCALE: es_CR.ISO8859-1
+iso8859-1/XLC_LOCALE: es_DO.ISO8859-1
+iso8859-1/XLC_LOCALE: es_EC.ISO8859-1
+iso8859-1/XLC_LOCALE: es_ES.ISO8859-1
+iso8859-15/XLC_LOCALE: es_ES.ISO8859-15
+iso8859-1/XLC_LOCALE: es_GT.ISO8859-1
+iso8859-1/XLC_LOCALE: es_HN.ISO8859-1
+iso8859-1/XLC_LOCALE: es_MX.ISO8859-1
+iso8859-1/XLC_LOCALE: es_NI.ISO8859-1
+iso8859-1/XLC_LOCALE: es_PA.ISO8859-1
+iso8859-1/XLC_LOCALE: es_PE.ISO8859-1
+iso8859-1/XLC_LOCALE: es_PR.ISO8859-1
+iso8859-1/XLC_LOCALE: es_PY.ISO8859-1
+iso8859-1/XLC_LOCALE: es_SV.ISO8859-1
+iso8859-1/XLC_LOCALE: es_US.ISO8859-1
+iso8859-1/XLC_LOCALE: es_UY.ISO8859-1
+iso8859-1/XLC_LOCALE: es_VE.ISO8859-1
+iso8859-1/XLC_LOCALE: et_EE.ISO8859-1
+iso8859-4/XLC_LOCALE: et_EE.ISO8859-4
+iso8859-13/XLC_LOCALE: et_EE.ISO8859-13
+iso8859-15/XLC_LOCALE: et_EE.ISO8859-15
+iso8859-1/XLC_LOCALE: eu_ES.ISO8859-1
+iso8859-15/XLC_LOCALE: eu_ES.ISO8859-15
+isiri-3342/XLC_LOCALE: fa_IR.ISIRI-3342
+iso8859-1/XLC_LOCALE: fi_FI.ISO8859-1
+iso8859-15/XLC_LOCALE: fi_FI.ISO8859-15
+iso8859-1/XLC_LOCALE: fo_FO.ISO8859-1
+iso8859-15/XLC_LOCALE: fo_FO.ISO8859-15
+iso8859-1/XLC_LOCALE: fr_BE.ISO8859-1
+iso8859-15/XLC_LOCALE: fr_BE.ISO8859-15
+iso8859-1/XLC_LOCALE: fr_CA.ISO8859-1
+iso8859-15/XLC_LOCALE: fr_CA.ISO8859-15
+iso8859-1/XLC_LOCALE: fr_CH.ISO8859-1
+iso8859-15/XLC_LOCALE: fr_CH.ISO8859-15
+iso8859-1/XLC_LOCALE: fr_FR.ISO8859-1
+iso8859-15/XLC_LOCALE: fr_FR.ISO8859-15
+iso8859-1/XLC_LOCALE: fr_LU.ISO8859-1
+iso8859-15/XLC_LOCALE: fr_LU.ISO8859-15
+iso8859-1/XLC_LOCALE: ga_IE.ISO8859-1
+iso8859-14/XLC_LOCALE: ga_IE.ISO8859-14
+iso8859-15/XLC_LOCALE: ga_IE.ISO8859-15
+iso8859-1/XLC_LOCALE: gd_GB.ISO8859-1
+iso8859-14/XLC_LOCALE: gd_GB.ISO8859-14
+iso8859-15/XLC_LOCALE: gd_GB.ISO8859-15
+iso8859-1/XLC_LOCALE: gl_ES.ISO8859-1
+iso8859-15/XLC_LOCALE: gl_ES.ISO8859-15
+iso8859-1/XLC_LOCALE: gv_GB.ISO8859-1
+iso8859-14/XLC_LOCALE: gv_GB.ISO8859-14
+iso8859-15/XLC_LOCALE: gv_GB.ISO8859-15
+iso8859-8/XLC_LOCALE: he_IL.ISO8859-8
+microsoft-cp1255/XLC_LOCALE: he_IL.CP1255
+iscii-dev/XLC_LOCALE: hi_IN.ISCII-DEV
+iso8859-2/XLC_LOCALE: hr_HR.ISO8859-2
+iso8859-2/XLC_LOCALE: hu_HU.ISO8859-2
+armscii-8/XLC_LOCALE: hy_AM.ARMSCII-8
+iso8859-1/XLC_LOCALE: id_ID.ISO8859-1
+iso8859-1/XLC_LOCALE: is_IS.ISO8859-1
+iso8859-15/XLC_LOCALE: is_IS.ISO8859-15
+iso8859-1/XLC_LOCALE: it_CH.ISO8859-1
+iso8859-1/XLC_LOCALE: it_IT.ISO8859-1
+iso8859-15/XLC_LOCALE: it_IT.ISO8859-15
+ja/XLC_LOCALE: ja_JP.eucJP
+ja.SJIS/XLC_LOCALE: ja_JP.SJIS
+ja.JIS/XLC_LOCALE: ja_JP.JIS7
+georgian-academy/XLC_LOCALE: ka_GE.GEORGIAN-ACADEMY
+georgian-ps/XLC_LOCALE: ka_GE.GEORGIAN-PS
+iso8859-1/XLC_LOCALE: kl_GL.ISO8859-1
+ko/XLC_LOCALE: ko_KR.eucKR
+iso8859-1/XLC_LOCALE: kw_GB.ISO8859-1
+iso8859-14/XLC_LOCALE: kw_GB.ISO8859-14
+iso8859-15/XLC_LOCALE: kw_GB.ISO8859-15
+ibm-cp1133/XLC_LOCALE: lo_LA.IBM-CP1133
+mulelao-1/XLC_LOCALE: lo_LA.MULELAO-1
+iso8859-4/XLC_LOCALE: lt_LT.ISO8859-4
+iso8859-13/XLC_LOCALE: lt_LT.ISO8859-13
+iso8859-4/XLC_LOCALE: lv_LV.ISO8859-4
+iso8859-13/XLC_LOCALE: lv_LV.ISO8859-13
+iso8859-13/XLC_LOCALE: mi_NZ.ISO8859-13
+iso8859-5/XLC_LOCALE: mk_MK.ISO8859-5
+microsoft-cp1251/XLC_LOCALE: mk_MK.CP1251
+iso8859-1/XLC_LOCALE: ms_MY.ISO8859-1
+iso8859-3/XLC_LOCALE: mt_MT.ISO8859-3
+iso8859-1/XLC_LOCALE: nb_NO.ISO8859-1
+iso8859-1/XLC_LOCALE: nb_NO.ISO8859-15
+iso8859-1/XLC_LOCALE: nl_BE.ISO8859-1
+iso8859-15/XLC_LOCALE: nl_BE.ISO8859-15
+iso8859-1/XLC_LOCALE: nl_NL.ISO8859-1
+iso8859-15/XLC_LOCALE: nl_NL.ISO8859-15
+iso8859-1/XLC_LOCALE: nn_NO.ISO8859-1
+iso8859-1/XLC_LOCALE: nn_NO.ISO8859-15
+iso8859-1/XLC_LOCALE: no_NO.ISO8859-1
+iso8859-1/XLC_LOCALE: no_NO.ISO8859-15
+iso8859-1/XLC_LOCALE: ny_NO.ISO8859-1
+iso8859-1/XLC_LOCALE: ny_NO.ISO8859-15
+iso8859-1/XLC_LOCALE: oc_FR.ISO8859-1
+iso8859-15/XLC_LOCALE: oc_FR.ISO8859-15
+iso8859-1/XLC_LOCALE: pd_DE.ISO8859-1
+iso8859-1/XLC_LOCALE: ph_PH.ISO8859-1
+iso8859-2/XLC_LOCALE: pl_PL.ISO8859-2
+iso8859-1/XLC_LOCALE: pp_AN.ISO8859-1
+iso8859-1/XLC_LOCALE: pt_BR.ISO8859-1
+iso8859-1/XLC_LOCALE: pt_PT.ISO8859-1
+iso8859-15/XLC_LOCALE: pt_PT.ISO8859-15
+iso8859-2/XLC_LOCALE: ro_RO.ISO8859-2
+iso8859-5/XLC_LOCALE: ru_RU.ISO8859-5
+microsoft-cp1251/XLC_LOCALE: ru_RU.CP1251
+koi8-r/XLC_LOCALE: ru_RU.KOI8-R
+koi8-u/XLC_LOCALE: ru_UA.KOI8-U
+iso8859-2/XLC_LOCALE: sh_YU.ISO8859-2
+iso8859-2/XLC_LOCALE: sk_SK.ISO8859-2
+iso8859-2/XLC_LOCALE: sl_SI.ISO8859-2
+iso8859-5/XLC_LOCALE: sp_YU.ISO8859-5
+iso8859-2/XLC_LOCALE: sq_AL.ISO8859-2
+iso8859-2/XLC_LOCALE: sr_SP.ISO8859-2
+iso8859-2/XLC_LOCALE: sr_YU.ISO8859-2
+iso8859-5/XLC_LOCALE: sr_YU.ISO8859-5
+microsoft-cp1251/XLC_LOCALE: sr_YU.CP1251
+iso8859-1/XLC_LOCALE: sv_FI.ISO8859-1
+iso8859-15/XLC_LOCALE: sv_FI.ISO8859-15
+iso8859-1/XLC_LOCALE: sv_SE.ISO8859-1
+iso8859-15/XLC_LOCALE: sv_SE.ISO8859-15
+tscii-0/XLC_LOCALE: ta_IN.TSCII-0
+koi8-c/XLC_LOCALE: tg_TJ.KOI8-C
+th_TH/XLC_LOCALE: th_TH.TIS620
+iso8859-11/XLC_LOCALE: th_TH.ISO8859-11
+iso8859-1/XLC_LOCALE: tl_PH.ISO8859-1
+iso8859-9/XLC_LOCALE: tr_TR.ISO8859-9
+tatar-cyr/XLC_LOCALE: tt_RU.TATAR-CYR
+koi8-c/XLC_LOCALE: tt_RU.KOI8-C
+iso8859-5/XLC_LOCALE: uk_UA.ISO8859-5
+microsoft-cp1251/XLC_LOCALE: uk_UA.CP1251
+koi8-u/XLC_LOCALE: uk_UA.KOI8-U
+microsoft-cp1256/XLC_LOCALE: ur_PK.CP1256
+vi_VN.tcvn/XLC_LOCALE: vi_VN.TCVN
+vi_VN.viscii/XLC_LOCALE: vi_VN.VISCII
+iso8859-1/XLC_LOCALE: wa_BE.ISO8859-1
+iso8859-15/XLC_LOCALE: wa_BE.ISO8859-15
+microsoft-cp1255/XLC_LOCALE: yi_US.CP1255
+zh_CN/XLC_LOCALE: zh_CN.eucCN
+zh_CN/XLC_LOCALE: zh_CN.gb2312
+zh_CN.gbk/XLC_LOCALE: zh_CN.gbk
+zh_HK.big5/XLC_LOCALE: zh_HK.big5
+zh_HK.big5hkscs/XLC_LOCALE: zh_HK.big5-hkscs
+zh_HK.big5hkscs/XLC_LOCALE: zh_HK.Big5-HKSCS
+zh_HK.big5hkscs/XLC_LOCALE: zh_HK.big5hkscs
+zh_HK.big5hkscs/XLC_LOCALE: zh_HK.Big5HKSCS
+zh_TW.big5/XLC_LOCALE: zh_TW.big5
+zh_TW/XLC_LOCALE: zh_TW.eucTW
+XCOMM Note: The UTF-8 locales don't work correctly yet. Work in progress.
+en_US.UTF-8/XLC_LOCALE: af_ZA.UTF-8
+en_US.UTF-8/XLC_LOCALE: am_ET.UTF-8
+en_US.UTF-8/XLC_LOCALE: ar_AA.UTF-8
+en_US.UTF-8/XLC_LOCALE: ar_AE.UTF-8
+en_US.UTF-8/XLC_LOCALE: ar_BH.UTF-8
+en_US.UTF-8/XLC_LOCALE: ar_DZ.UTF-8
+en_US.UTF-8/XLC_LOCALE: ar_EG.UTF-8
+en_US.UTF-8/XLC_LOCALE: ar_IQ.UTF-8
+en_US.UTF-8/XLC_LOCALE: ar_JO.UTF-8
+en_US.UTF-8/XLC_LOCALE: ar_KW.UTF-8
+en_US.UTF-8/XLC_LOCALE: ar_LB.UTF-8
+en_US.UTF-8/XLC_LOCALE: ar_LY.UTF-8
+en_US.UTF-8/XLC_LOCALE: ar_MA.UTF-8
+en_US.UTF-8/XLC_LOCALE: ar_OM.UTF-8
+en_US.UTF-8/XLC_LOCALE: ar_QA.UTF-8
+en_US.UTF-8/XLC_LOCALE: ar_SA.UTF-8
+en_US.UTF-8/XLC_LOCALE: ar_SD.UTF-8
+en_US.UTF-8/XLC_LOCALE: ar_SY.UTF-8
+en_US.UTF-8/XLC_LOCALE: ar_TN.UTF-8
+en_US.UTF-8/XLC_LOCALE: ar_YE.UTF-8
+en_US.UTF-8/XLC_LOCALE: az_AZ.UTF-8
+en_US.UTF-8/XLC_LOCALE: a3_AZ.UTF-8
+en_US.UTF-8/XLC_LOCALE: be_BY.UTF-8
+en_US.UTF-8/XLC_LOCALE: bg_BG.UTF-8
+en_US.UTF-8/XLC_LOCALE: bn_BD.UTF-8
+en_US.UTF-8/XLC_LOCALE: br_FR.UTF-8
+en_US.UTF-8/XLC_LOCALE: ca_ES.UTF-8
+en_US.UTF-8/XLC_LOCALE: cs_CZ.UTF-8
+en_US.UTF-8/XLC_LOCALE: cy_GB.UTF-8
+en_US.UTF-8/XLC_LOCALE: cs_CZ.UTF-8
+en_US.UTF-8/XLC_LOCALE: da_DK.UTF-8
+en_US.UTF-8/XLC_LOCALE: de_AT.UTF-8
+en_US.UTF-8/XLC_LOCALE: de_BE.UTF-8
+en_US.UTF-8/XLC_LOCALE: de_CH.UTF-8
+en_US.UTF-8/XLC_LOCALE: de_DE.UTF-8
+en_US.UTF-8/XLC_LOCALE: de_LI.UTF-8
+en_US.UTF-8/XLC_LOCALE: de_LU.UTF-8
+en_US.UTF-8/XLC_LOCALE: el_GR.UTF-8
+en_US.UTF-8/XLC_LOCALE: en_AU.UTF-8
+en_US.UTF-8/XLC_LOCALE: en_BE.UTF-8
+en_US.UTF-8/XLC_LOCALE: en_BZ.UTF-8
+en_US.UTF-8/XLC_LOCALE: en_CA.UTF-8
+en_US.UTF-8/XLC_LOCALE: en_GB.UTF-8
+en_US.UTF-8/XLC_LOCALE: en_IE.UTF-8
+en_US.UTF-8/XLC_LOCALE: en_JM.UTF-8
+en_US.UTF-8/XLC_LOCALE: en_NZ.UTF-8
+en_US.UTF-8/XLC_LOCALE: en_TT.UTF-8
+en_US.UTF-8/XLC_LOCALE: en_UK.UTF-8
+en_US.UTF-8/XLC_LOCALE: en_US.UTF-8
+en_US.UTF-8/XLC_LOCALE: en_ZA.UTF-8
+en_US.UTF-8/XLC_LOCALE: eo_EO.UTF-8
+en_US.UTF-8/XLC_LOCALE: eo_XX.UTF-8
+en_US.UTF-8/XLC_LOCALE: es_AR.UTF-8
+en_US.UTF-8/XLC_LOCALE: es_BO.UTF-8
+en_US.UTF-8/XLC_LOCALE: es_CL.UTF-8
+en_US.UTF-8/XLC_LOCALE: es_CO.UTF-8
+en_US.UTF-8/XLC_LOCALE: es_CR.UTF-8
+en_US.UTF-8/XLC_LOCALE: es_DO.UTF-8
+en_US.UTF-8/XLC_LOCALE: es_EC.UTF-8
+en_US.UTF-8/XLC_LOCALE: es_ES.UTF-8
+en_US.UTF-8/XLC_LOCALE: es_GT.UTF-8
+en_US.UTF-8/XLC_LOCALE: es_HN.UTF-8
+en_US.UTF-8/XLC_LOCALE: es_MX.UTF-8
+en_US.UTF-8/XLC_LOCALE: es_NI.UTF-8
+en_US.UTF-8/XLC_LOCALE: es_PA.UTF-8
+en_US.UTF-8/XLC_LOCALE: es_PE.UTF-8
+en_US.UTF-8/XLC_LOCALE: es_PR.UTF-8
+en_US.UTF-8/XLC_LOCALE: es_PY.UTF-8
+en_US.UTF-8/XLC_LOCALE: es_SV.UTF-8
+en_US.UTF-8/XLC_LOCALE: es_UY.UTF-8
+en_US.UTF-8/XLC_LOCALE: es_VE.UTF-8
+en_US.UTF-8/XLC_LOCALE: et_EE.UTF-8
+en_US.UTF-8/XLC_LOCALE: eu_ES.UTF-8
+en_US.UTF-8/XLC_LOCALE: fa_IR.UTF-8
+en_US.UTF-8/XLC_LOCALE: fi_FI.UTF-8
+en_US.UTF-8/XLC_LOCALE: fo_FO.UTF-8
+en_US.UTF-8/XLC_LOCALE: fr_BE.UTF-8
+en_US.UTF-8/XLC_LOCALE: fr_CA.UTF-8
+en_US.UTF-8/XLC_LOCALE: fr_CH.UTF-8
+en_US.UTF-8/XLC_LOCALE: fr_FR.UTF-8
+en_US.UTF-8/XLC_LOCALE: fr_LU.UTF-8
+en_US.UTF-8/XLC_LOCALE: ga_IE.UTF-8
+en_US.UTF-8/XLC_LOCALE: gd_GB.UTF-8
+en_US.UTF-8/XLC_LOCALE: gl_ES.UTF-8
+en_US.UTF-8/XLC_LOCALE: gv_GB.UTF-8
+en_US.UTF-8/XLC_LOCALE: he_IL.UTF-8
+en_US.UTF-8/XLC_LOCALE: hi_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE: hr_HR.UTF-8
+en_US.UTF-8/XLC_LOCALE: hu_HU.UTF-8
+en_US.UTF-8/XLC_LOCALE: hy_AM.UTF-8
+en_US.UTF-8/XLC_LOCALE: id_ID.UTF-8
+en_US.UTF-8/XLC_LOCALE: is_IS.UTF-8
+en_US.UTF-8/XLC_LOCALE: it_CH.UTF-8
+en_US.UTF-8/XLC_LOCALE: it_IT.UTF-8
+en_US.UTF-8/XLC_LOCALE: iu_CA.UTF-8
+ja_JP.UTF-8/XLC_LOCALE: ja_JP.UTF-8
+en_US.UTF-8/XLC_LOCALE: ka_GE.UTF-8
+en_US.UTF-8/XLC_LOCALE: kl_GL.UTF-8
+ko_KR.UTF-8/XLC_LOCALE: ko_KR.UTF-8
+en_US.UTF-8/XLC_LOCALE: kw_GB.UTF-8
+en_US.UTF-8/XLC_LOCALE: lo_LA.UTF-8
+en_US.UTF-8/XLC_LOCALE: lt_LT.UTF-8
+en_US.UTF-8/XLC_LOCALE: lv_LV.UTF-8
+en_US.UTF-8/XLC_LOCALE: mi_NZ.UTF-8
+en_US.UTF-8/XLC_LOCALE: mk_MK.UTF-8
+en_US.UTF-8/XLC_LOCALE: mr_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE: ms_MY.UTF-8
+en_US.UTF-8/XLC_LOCALE: nl_BE.UTF-8
+en_US.UTF-8/XLC_LOCALE: nl_NL.UTF-8
+en_US.UTF-8/XLC_LOCALE: nb_NO.UTF-8
+en_US.UTF-8/XLC_LOCALE: nn_NO.UTF-8
+en_US.UTF-8/XLC_LOCALE: no_NO.UTF-8
+en_US.UTF-8/XLC_LOCALE: ny_NO.UTF-8
+en_US.UTF-8/XLC_LOCALE: oc_FR.UTF-8
+en_US.UTF-8/XLC_LOCALE: pd_DE.UTF-8
+en_US.UTF-8/XLC_LOCALE: pd_US.UTF-8
+en_US.UTF-8/XLC_LOCALE: ph_PH.UTF-8
+en_US.UTF-8/XLC_LOCALE: pl_PL.UTF-8
+en_US.UTF-8/XLC_LOCALE: pp_AN.UTF-8
+en_US.UTF-8/XLC_LOCALE: pt_BR.UTF-8
+en_US.UTF-8/XLC_LOCALE: pt_PT.UTF-8
+en_US.UTF-8/XLC_LOCALE: ro_RO.UTF-8
+en_US.UTF-8/XLC_LOCALE: ru_RU.UTF-8
+en_US.UTF-8/XLC_LOCALE: ru_UA.UTF-8
+en_US.UTF-8/XLC_LOCALE: se_NO.UTF-8
+en_US.UTF-8/XLC_LOCALE: sh_YU.UTF-8
+en_US.UTF-8/XLC_LOCALE: sk_SK.UTF-8
+en_US.UTF-8/XLC_LOCALE: sl_SI.UTF-8
+en_US.UTF-8/XLC_LOCALE: sq_AL.UTF-8
+en_US.UTF-8/XLC_LOCALE: sr_YU.UTF-8
+en_US.UTF-8/XLC_LOCALE: sv_FI.UTF-8
+en_US.UTF-8/XLC_LOCALE: sv_SE.UTF-8
+en_US.UTF-8/XLC_LOCALE: ta_IN.UTF-8
+en_US.UTF-8/XLC_LOCALE: tg_TJ.UTF-8
+th_TH.UTF-8/XLC_LOCALE: th_TH.UTF-8
+en_US.UTF-8/XLC_LOCALE: ti_ER.UTF-8
+en_US.UTF-8/XLC_LOCALE: ti_ET.UTF-8
+en_US.UTF-8/XLC_LOCALE: tl_PH.UTF-8
+en_US.UTF-8/XLC_LOCALE: tr_TR.UTF-8
+en_US.UTF-8/XLC_LOCALE: tt_RU.UTF-8
+en_US.UTF-8/XLC_LOCALE: uk_UA.UTF-8
+en_US.UTF-8/XLC_LOCALE: ur_PK.UTF-8
+en_US.UTF-8/XLC_LOCALE: uz_UZ.UTF-8
+en_US.UTF-8/XLC_LOCALE: vi_VN.UTF-8
+en_US.UTF-8/XLC_LOCALE: wa_BE.UTF-8
+en_US.UTF-8/XLC_LOCALE: yi_US.UTF-8
+zh_CN.UTF-8/XLC_LOCALE: zh_CN.UTF-8
+zh_CN.UTF-8/XLC_LOCALE: zh_HK.UTF-8
+zh_CN.UTF-8/XLC_LOCALE: zh_SG.UTF-8
+zh_TW.UTF-8/XLC_LOCALE: zh_TW.UTF-8
#ifdef __uxp__
-ja.U90/XLC_LOCALE: ja_JP.U90
-ja.S90/XLC_LOCALE: ja_JP.S90
+ja.U90/XLC_LOCALE: ja_JP.U90
+ja.S90/XLC_LOCALE: ja_JP.S90
#endif
-
-XCOMM Added by Sun
-en_US.UTF-8/XLC_LOCALE: en_US.UTF-8
-zh_TW.BIG5/XLC_LOCALE: zh_TW.BIG5
-zh.GBK/XLC_LOCALE: zh.GBK
diff --git a/nls/microsoft-cp1251/XLC_LOCALE.pre b/nls/microsoft-cp1251/XLC_LOCALE.pre
index 3725553c..0821074b 100644
--- a/nls/microsoft-cp1251/XLC_LOCALE.pre
+++ b/nls/microsoft-cp1251/XLC_LOCALE.pre
@@ -1,7 +1,7 @@
XCOMM $TOG: microsoft-cp1251 /main/1 1998/05/20 14:49:21 kaleb $
XCOMM XLocale Database Sample for microsoft-cp1251.
XCOMM
-XCOMM $XFree86: xc/nls/XLC_LOCALE/microsoft-cp1251,v 1.2 2000/12/01 17:43:03 dawes Exp $
+XCOMM $XFree86: xc/nls/XLC_LOCALE/microsoft-cp1251,v 1.1 2000/10/27 18:30:56 dawes Exp $
XCOMM
XCOMM XLC_FONTSET category
diff --git a/nls/microsoft-cp1255/XLC_LOCALE.pre b/nls/microsoft-cp1255/XLC_LOCALE.pre
index da910306..bf9e17fe 100644
--- a/nls/microsoft-cp1255/XLC_LOCALE.pre
+++ b/nls/microsoft-cp1255/XLC_LOCALE.pre
@@ -1,7 +1,7 @@
XCOMM $TOG: microsoft-cp1255 /main/1 1998/05/20 14:49:21 kaleb $
XCOMM XLocale Database Sample for microsoft-cp1255.
XCOMM
-XCOMM $XFree86: xc/nls/XLC_LOCALE/microsoft-cp1255,v 1.2 2000/12/01 17:43:03 dawes Exp $
+XCOMM $XFree86: xc/nls/XLC_LOCALE/microsoft-cp1255,v 1.1 2000/10/27 18:30:56 dawes Exp $
XCOMM
XCOMM XLC_FONTSET category
diff --git a/nls/microsoft-cp1256/XLC_LOCALE.pre b/nls/microsoft-cp1256/XLC_LOCALE.pre
index 3fb6dc96..39bf8d31 100644
--- a/nls/microsoft-cp1256/XLC_LOCALE.pre
+++ b/nls/microsoft-cp1256/XLC_LOCALE.pre
@@ -1,7 +1,7 @@
XCOMM $TOG: microsoft-cp1256 /main/1 1998/05/20 14:49:21 kaleb $
XCOMM XLocale Database Sample for microsoft-cp1256.
XCOMM
-XCOMM $XFree86: xc/nls/XLC_LOCALE/microsoft-cp1256,v 1.2 2000/12/01 17:43:03 dawes Exp $
+XCOMM $XFree86: xc/nls/XLC_LOCALE/microsoft-cp1256,v 1.1 2000/10/27 18:30:57 dawes Exp $
XCOMM
XCOMM XLC_FONTSET category
diff --git a/nls/mulelao-1/Compose.pre b/nls/mulelao-1/Compose.pre
index bd218bb7..a8c419a0 100644
--- a/nls/mulelao-1/Compose.pre
+++ b/nls/mulelao-1/Compose.pre
@@ -3,7 +3,7 @@ XCOMM mulelao-1 Compose Sequence
XCOMM
XCOMM Sequence Definition
XCOMM
-XCOMM $XFree86: xc/nls/Compose/mulelao-1,v 1.2 2001/04/26 21:09:40 dawes Exp $
+XCOMM $XFree86: xc/nls/Compose/mulelao-1,v 1.1 1999/08/28 09:00:38 dawes Exp $
XCOMM
XCOMM This file currently has no entries. It appears that a compose file (even
XCOMM just an empty one) is required for the appropriate keysyms to work for
diff --git a/nls/mulelao-1/XLC_LOCALE.pre b/nls/mulelao-1/XLC_LOCALE.pre
index 7b96302c..d6fa080b 100644
--- a/nls/mulelao-1/XLC_LOCALE.pre
+++ b/nls/mulelao-1/XLC_LOCALE.pre
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/nls/XLC_LOCALE/mulelao-1,v 1.2 2000/12/01 17:43:03 dawes Exp $
+XCOMM $XFree86: xc/nls/XLC_LOCALE/mulelao-1,v 1.1 1999/06/06 14:05:59 dawes Exp $
XCOMM XLocale Database Sample for mulelao-1.
XCOMM
diff --git a/nls/nokhchi-1/XLC_LOCALE.pre b/nls/nokhchi-1/XLC_LOCALE.pre
index 8750b3ba..d1f490aa 100644
--- a/nls/nokhchi-1/XLC_LOCALE.pre
+++ b/nls/nokhchi-1/XLC_LOCALE.pre
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/nls/XLC_LOCALE/nokhchi-1,v 1.2 2000/12/01 17:43:03 dawes Exp $
+XCOMM $XFree86: xc/nls/XLC_LOCALE/nokhchi-1,v 1.1 2000/10/27 18:30:57 dawes Exp $
XCOMM XLocale Database Sample for mulelao-1.
XCOMM
diff --git a/nls/tatar-cyr/XLC_LOCALE.pre b/nls/tatar-cyr/XLC_LOCALE.pre
index 17f9893f..c2da5f28 100644
--- a/nls/tatar-cyr/XLC_LOCALE.pre
+++ b/nls/tatar-cyr/XLC_LOCALE.pre
@@ -1,7 +1,7 @@
XCOMM $TOG: tatar-cyr /main/1 1998/05/20 14:49:21 kaleb $
XCOMM XLocale Database Sample for tatar-cyr.
XCOMM
-XCOMM $XFree86: xc/nls/XLC_LOCALE/tatar-cyr,v 1.2 2000/12/01 17:43:03 dawes Exp $
+XCOMM $XFree86: xc/nls/XLC_LOCALE/tatar-cyr,v 1.1 2000/10/27 18:30:57 dawes Exp $
XCOMM
XCOMM XLC_FONTSET category
diff --git a/nls/th_TH.UTF-8/XI18N_OBJS b/nls/th_TH.UTF-8/XI18N_OBJS
index 8e1df49b..fcf92185 100644
--- a/nls/th_TH.UTF-8/XI18N_OBJS
+++ b/nls/th_TH.UTF-8/XI18N_OBJS
@@ -2,7 +2,7 @@
#
# XI18N objects table for th_TH.UTF-8 locale
#
-# $XFree86: xc/nls/XI18N_OBJS/th_TH.UTF-8,v 1.1 2002/10/09 00:05:23 dawes Exp $
+# $XFree86$
#
XLC common/xlcUTF8Load _XlcUtf8Loader # XLC_open
XIM common/ximcp _XimOpenIM _XimRegisterIMInstantiateCallback _XimUnRegisterIMInstantiateCallback # XIM_open XIM_register XIM_unregister
diff --git a/nls/th_TH.UTF-8/XLC_LOCALE.pre b/nls/th_TH.UTF-8/XLC_LOCALE.pre
index 839da737..9f1caf7e 100644
--- a/nls/th_TH.UTF-8/XLC_LOCALE.pre
+++ b/nls/th_TH.UTF-8/XLC_LOCALE.pre
@@ -1,7 +1,7 @@
XCOMM $XConsortium: th_TH$
XCOMM XLocale Database Sample for th_TH
XCOMM
-XCOMM $XFree86: xc/nls/XLC_LOCALE/th_TH.UTF-8,v 1.2 2003/01/16 10:01:29 eich Exp $
+XCOMM $XFree86:$
XCOMM
XCOMM Modified from origial th_TH.TACTIS
diff --git a/nls/th_TH/XLC_LOCALE.pre b/nls/th_TH/XLC_LOCALE.pre
index 81e71613..7d55d851 100644
--- a/nls/th_TH/XLC_LOCALE.pre
+++ b/nls/th_TH/XLC_LOCALE.pre
@@ -1,7 +1,7 @@
XCOMM $XConsortium: th_TH$
XCOMM XLocale Database Sample for th_TH
XCOMM
-XCOMM $XFree86: xc/nls/XLC_LOCALE/th_TH,v 1.1 2001/02/09 00:02:55 dawes Exp $
+XCOMM $XFree86:$
XCOMM
XCOMM Modified from origial th_TH.TACTIS
diff --git a/nls/tscii-0/XLC_LOCALE.pre b/nls/tscii-0/XLC_LOCALE.pre
index 19b610c3..32b1d21b 100644
--- a/nls/tscii-0/XLC_LOCALE.pre
+++ b/nls/tscii-0/XLC_LOCALE.pre
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/nls/XLC_LOCALE/tscii-0,v 1.2 2000/12/01 17:43:03 dawes Exp $
+XCOMM $XFree86: xc/nls/XLC_LOCALE/tscii-0,v 1.1 2000/10/27 18:30:57 dawes Exp $
XCOMM XLocale Database Sample for mulelao-1.
XCOMM
diff --git a/nls/vi_VN.tcvn/Compose.pre b/nls/vi_VN.tcvn/Compose.pre
index 7f291992..fcc2c43b 100644
--- a/nls/vi_VN.tcvn/Compose.pre
+++ b/nls/vi_VN.tcvn/Compose.pre
@@ -1,5 +1,5 @@
XCOMM $XConsortium: iso8859-1 /main/6 1995/11/08 07:24:10 kaleb $
-XCOMM $XFree86: xc/nls/Compose/vi_VN.tcvn,v 1.3 2001/04/26 21:09:40 dawes Exp $
+XCOMM $XFree86: xc/nls/Compose/vi_VN.tcvn,v 1.2 2000/10/27 18:30:52 dawes Exp $
XCOMM 1998/12/18 Le Hong Boi $
XCOMM
XCOMM TCVN 5712-2 Compose Sequences
diff --git a/nls/vi_VN.tcvn/XLC_LOCALE.pre b/nls/vi_VN.tcvn/XLC_LOCALE.pre
index 76b10547..1efbd829 100644
--- a/nls/vi_VN.tcvn/XLC_LOCALE.pre
+++ b/nls/vi_VN.tcvn/XLC_LOCALE.pre
@@ -1,6 +1,6 @@
XCOMM XLocale Database Sample for vi_VN.TCVN
XCOMM
-XCOMM $XFree86: xc/nls/XLC_LOCALE/vi_VN.tcvn,v 1.2 2000/12/01 17:43:03 dawes Exp $
+XCOMM $XFree86: xc/nls/XLC_LOCALE/vi_VN.tcvn,v 1.1 1999/06/06 14:06:02 dawes Exp $
XCOMM
XCOMM XLC_FONTSET category
diff --git a/nls/vi_VN.viscii/Compose.pre b/nls/vi_VN.viscii/Compose.pre
index ac0176c8..f4f96857 100644
--- a/nls/vi_VN.viscii/Compose.pre
+++ b/nls/vi_VN.viscii/Compose.pre
@@ -1,5 +1,5 @@
XCOMM $XConsortium: iso8859-1 /main/6 1995/11/08 07:24:10 kaleb $
-XCOMM $XFree86: xc/nls/Compose/vi_VN.viscii,v 1.3 2001/04/26 21:09:40 dawes Exp $
+XCOMM $XFree86: xc/nls/Compose/vi_VN.viscii,v 1.2 2000/10/27 18:30:52 dawes Exp $
XCOMM 1998/12/18 Le Hong Boi $
XCOMM
XCOMM TCVN 5712-2 Compose Sequences
diff --git a/nls/vi_VN.viscii/XLC_LOCALE.pre b/nls/vi_VN.viscii/XLC_LOCALE.pre
index 9018602b..81bba062 100644
--- a/nls/vi_VN.viscii/XLC_LOCALE.pre
+++ b/nls/vi_VN.viscii/XLC_LOCALE.pre
@@ -1,6 +1,6 @@
XCOMM XLocale Database Sample for vi_VN.VISCII
XCOMM
-XCOMM $XFree86: xc/nls/XLC_LOCALE/vi_VN.viscii,v 1.2 2000/12/01 17:43:03 dawes Exp $
+XCOMM $XFree86: xc/nls/XLC_LOCALE/vi_VN.viscii,v 1.1 1999/06/06 14:06:02 dawes Exp $
XCOMM
XCOMM XLC_FONTSET category
diff --git a/nls/zh_CN.UTF-8/XI18N_OBJS b/nls/zh_CN.UTF-8/XI18N_OBJS
index 00f7b508..d42180e5 100644
--- a/nls/zh_CN.UTF-8/XI18N_OBJS
+++ b/nls/zh_CN.UTF-8/XI18N_OBJS
@@ -2,7 +2,7 @@
#
# XI18N objects table for zh_CN.UTF-8 locale
#
-# $XFree86: xc/nls/XI18N_OBJS/zh_CN.UTF-8,v 1.2 2003/10/24 16:36:46 tsi Exp $
+# $XFree86$
#
XLC common/xlcUTF8Load _XlcUtf8Loader # XLC_open
XIM common/ximcp _XimOpenIM _XimRegisterIMInstantiateCallback _XimUnRegisterIMInstantiateCallback # XIM_open XIM_register XIM_unregister
diff --git a/nls/zh_CN.UTF-8/XLC_LOCALE.pre b/nls/zh_CN.UTF-8/XLC_LOCALE.pre
index c10fee24..6d43fcca 100644
--- a/nls/zh_CN.UTF-8/XLC_LOCALE.pre
+++ b/nls/zh_CN.UTF-8/XLC_LOCALE.pre
@@ -1,127 +1,140 @@
-XCOMM $XFree86: xc/nls/XLC_LOCALE/zh_CN.UTF-8,v 1.2 2003/10/24 16:36:46 tsi Exp $
-
-# XLC_FONTSET category
+XCOMM XFree86 NLS for Chinese locale zh_CN.UTF-8
+XCOMM Modified from xc/nls/XLC_LOCALE/en_US.UTF-8
+XCOMM by James Su <suzhe@turbolinux.com.cn>
+XCOMM
+XCOMM $XdotOrg: lib/X11/nls/zh_CN.UTF-8/XLC_LOCALE.pre,v 1.2 2004-04-23 18:44:34 eich Exp $
+XCOMM $XFree86$
+XCOMM
+XCOMM XLC_FONTSET category
+XCOMM
XLC_FONTSET
-on_demand_loading True
+on_demand_loading True
-object_name generic
+object_name generic
-# We leave the legacy encodings in for the moment, because we don't
-# have that many ISO10646 fonts yet.
-# fs0 class (7 bit ASCII)
-fs0 {
- charset {
- name ISO8859-1:GL
- }
- font {
- primary ISO8859-1:GL
- vertical_rotate all
- }
+XCOMM We leave the legacy encodings in for the moment, because we don't
+XCOMM have that many ISO10646 fonts yet.
+XCOMM fs0 class (7 bit ASCII)
+fs0 {
+ charset {
+ name ISO8859-1:GL
+ }
+ font {
+ primary ISO8859-1:GL
+ vertical_rotate all
+ }
}
-fs1 {
- charset {
- name ISO8859-1:GR
- }
- font {
- primary ISO8859-1:GR
- }
+XCOMM fs1 class (ISO8859 families)
+fs1 {
+ charset {
+ name ISO8859-1:GR
+ }
+ font {
+ primary ISO8859-1:GR
+ }
}
-fs2 {
- charset {
- name GB2312.1980-0:GL
- }
- font {
- primary GB2312.1980-0:GL
- }
+
+XCOMM fs2 class (Chinese Han Character)
+fs2 {
+ charset {
+ name GB2312.1980-0:GL
+ }
+ font {
+ primary GB2312.1980-0:GL
+ }
}
-fs3 {
- charset {
- name JISX0208.1983-0:GL
- }
- font {
- primary JISX0208.1983-0:GL
- }
+
+XCOMM fs3 class (Chinese Han Character GBK)
+fs3 {
+ charset {
+ name GBK-0:GLGR
+ }
+ font {
+ primary GBK-0:GLGR
+ substitute GB13000.1993-1:GLGR
+ }
}
+
+XCOMM fs4 class (Kanji)
fs4 {
charset {
- name KSC5601.1987-0:GL
+ name JISX0208.1983-0:GL
}
font {
- primary KSC5601.1987-0:GL
+ primary JISX0208.1983-0:GL
}
}
+
+XCOMM fs5 class (Korean Character)
fs5 {
charset {
- name BIG5-0:GLGR
+ name KSC5601.1987-0:GL
}
font {
- primary BIG5-0:GLGR
- substitute BIG5-0:GLGR
+ primary KSC5601.1987-0:GL
}
}
+
+XCOMM fs6 class (Half Kana)
fs6 {
charset {
- name ISO10646-1
+ name JISX0201.1976-0:GR
}
font {
- primary ISO10646-1
-
+ primary JISX0201.1976-0:GR
+ vertical_rotate all
}
}
-END XLC_FONTSET
+XCOMM fs7 class
+fs7 {
+ charset {
+ name ISO10646-1
+ }
+ font {
+ primary ISO10646-1
+ }
+}
+END XLC_FONTSET
-# XLC_XLOCALE category
-
+XCOMM
+XCOMM XLC_XLOCALE category
+XCOMM
XLC_XLOCALE
-encoding_name GB18030
-mb_cur_max 4
-state_depend_encoding False
+encoding_name UTF-8
+mb_cur_max 6
+state_depend_encoding False
-cs0 {
- side GL:Default
- length 1
- ct_encoding ISO8859-1:GL
+XCOMM cs0 class
+cs0 {
+ side GL:Default
+ length 1
+ ct_encoding ISO8859-1:GL
}
+
+XCOMM cs1 class
cs1 {
side GR:Default
length 1
ct_encoding ISO8859-1:GR
}
+
+XCOMM cs2 class
cs2 {
side GR
length 2
ct_encoding GB2312.1980-0:GL; GB2312.1980-0:GR
}
-cs3 {
- side none
- ct_encoding iso10646-1
-}
-cs4 {
- side GR
- length 2
- ct_encoding JISX0208.19832-0:GL; JISX0208.1983-0:GR; JISX0208.1983-1:GL; JISX0208.1983-1:GR
-}
-cs5 {
- side GL
- length 2
- ct_encoding KSC5601.1987-0:GL; KSC5601.1987-0:GR; KSC5601.1987-1:GL; KSC5601.1987-1:GR
-}
-cs6 {
- side none
- length 2
- byte1 \xa1,\xf9
- byte2 \x40,\x7e;\xa1,\xfe
- wc_encoding \x00008000
- ct_encoding BIG5-0:GLGR:\x1b\x25\x2f\x32
-
- mb_conversion [\xa140,\xf9fe]->\x2140
- ct_conversion [\x2140,\x79fe]->\xa140
+XCOMM cs3 class
+cs3 {
+ side none
+ ct_encoding ISO10646-1
}
END XLC_XLOCALE
+
diff --git a/nls/zh_CN.gbk/Compose.pre b/nls/zh_CN.gbk/Compose.pre
index eb309f4c..efb74a9e 100644
--- a/nls/zh_CN.gbk/Compose.pre
+++ b/nls/zh_CN.gbk/Compose.pre
@@ -3,7 +3,7 @@ XCOMM zh_CN.GBK Compose Sequence
XCOMM
XCOMM Sequence Definition
XCOMM
-XCOMM $XFree86: xc/nls/Compose/zh_CN.gbk,v 1.2 2001/04/26 21:09:40 dawes Exp $
+XCOMM $XFree86: xc/nls/Compose/zh_CN.gbk,v 1.1 2001/03/06 18:03:17 dawes Exp $
XCOMM
XCOMM This file currently has no entries. It appears that a compose file (even
XCOMM just an empty one) is required for the appropriate keysyms to work for
diff --git a/nls/zh_CN.gbk/XLC_LOCALE.pre b/nls/zh_CN.gbk/XLC_LOCALE.pre
index f9b1ab1a..6ec238e0 100644
--- a/nls/zh_CN.gbk/XLC_LOCALE.pre
+++ b/nls/zh_CN.gbk/XLC_LOCALE.pre
@@ -3,7 +3,7 @@ XCOMM X11R6 L10N for Chinese GBK Encoding.
XCOMM modified from xc/nls/XLC_LOCALE/zh_TW.Big5
XCOMM by Sean Chen <seanc@turbolinux.com>
XCOMM
-XCOMM $XFree86: xc/nls/XLC_LOCALE/zh_CN.gbk,v 1.1 2001/03/06 18:03:18 dawes Exp $
+XCOMM $XFree86$
XCOMM
XCOMM XLC_FONTSET category
diff --git a/nls/zh_CN/XI18N_OBJS b/nls/zh_CN/XI18N_OBJS
index 36888c05..047f7580 100644
--- a/nls/zh_CN/XI18N_OBJS
+++ b/nls/zh_CN/XI18N_OBJS
@@ -2,7 +2,7 @@
#
# XI18N objects table for zh locale
#
-# $XFree86: xc/nls/XI18N_OBJS/zh_CN,v 1.1 2002/06/03 22:19:44 dawes Exp $
+# $XFree86$
#
XLC common/xlocale _XlcEucLoader # XLC_open
XLC common/xlibi18n _XlcGenericLoader # XLC_open
diff --git a/nls/zh_CN/XLC_LOCALE.pre b/nls/zh_CN/XLC_LOCALE.pre
index ffe560a5..3f44b7d8 100644
--- a/nls/zh_CN/XLC_LOCALE.pre
+++ b/nls/zh_CN/XLC_LOCALE.pre
@@ -1,7 +1,7 @@
XCOMM $Xorg: zh,v 1.3 2000/08/17 19:47:00 cpqbld Exp $
XCOMM XLocale Database Sample for zh (eucCN).
XCOMM
-XCOMM $XFree86: xc/nls/XLC_LOCALE/zh_CN,v 1.1 2001/11/01 23:35:28 dawes Exp $
+XCOMM $XFree86: xc/nls/XLC_LOCALE/zh,v 1.2 2001/04/23 21:41:43 dawes Exp $
XCOMM
XCOMM XLC_FONTSET category
diff --git a/nls/zh_HK.big5/XLC_LOCALE.pre b/nls/zh_HK.big5/XLC_LOCALE.pre
index 706f1e3b..6c1aed33 100644
--- a/nls/zh_HK.big5/XLC_LOCALE.pre
+++ b/nls/zh_HK.big5/XLC_LOCALE.pre
@@ -5,7 +5,7 @@ XCOMM modified for X11R6.3 by Hung-Chi Chu <hcchu@r350.ee.ntu.edu.tw> 1998/01/1
XCOMM
XCOMM XLC_FONTSET category
XCOMM
-XCOMM $XFree86: xc/nls/XLC_LOCALE/zh_HK.big5,v 1.1 2001/11/01 23:35:28 dawes Exp $
+XCOMM $XFree86$
XCOMM
XLC_FONTSET
XCOMM fs0 class (7 bit ASCII)
diff --git a/nls/zh_HK.big5hkscs/XLC_LOCALE.pre b/nls/zh_HK.big5hkscs/XLC_LOCALE.pre
index 8aad5b4d..d5955e09 100644
--- a/nls/zh_HK.big5hkscs/XLC_LOCALE.pre
+++ b/nls/zh_HK.big5hkscs/XLC_LOCALE.pre
@@ -4,7 +4,7 @@ XCOMM
XCOMM modified for X11R6.3 by Hung-Chi Chu <hcchu@r350.ee.ntu.edu.tw> 1998/01/10
XCOMM modified for Big5HKSCS by Roger So <roger.so@sw-linux.com>
XCOMM
-XCOMM $XFree86: xc/nls/XLC_LOCALE/zh_HK.big5hkscs,v 1.2 2001/11/01 23:35:28 dawes Exp $
+XCOMM $XFree86: xc/nls/XLC_LOCALE/zh_HK.big5hkscs,v 1.1 2001/03/06 18:54:46 dawes Exp $
XCOMM
XCOMM XLC_FONTSET category
XCOMM
diff --git a/nls/zh_TW.UTF-8/XLC_LOCALE.pre b/nls/zh_TW.UTF-8/XLC_LOCALE.pre
index fe40858e..4d1166af 100644
--- a/nls/zh_TW.UTF-8/XLC_LOCALE.pre
+++ b/nls/zh_TW.UTF-8/XLC_LOCALE.pre
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/nls/XLC_LOCALE/zh_TW.UTF-8,v 1.1 2003/01/15 03:59:47 dawes Exp $
+XCOMM $XFree86: xc/nls/XLC_LOCALE/zh_TW.UTF-8,v 1.2 2000/02/29 03:09:07 dawes Exp $
XCOMM XLocale Database Sample for zh_TW.UTF-8
XCOMM
@@ -11,19 +11,10 @@ on_demand_loading True
object_name generic
-XCOMM fs0 class
-fs0 {
- charset {
- name ISO10646-1
- }
- font {
- primary ISO10646-1
- }
-}
XCOMM We leave the legacy encodings in for the moment, because we don't
XCOMM have that many ISO10646 fonts yet.
-XCOMM fs1 class (7 bit ASCII)
-fs1 {
+XCOMM fs0 class (7 bit ASCII)
+fs0 {
charset {
name ISO8859-1:GL
}
@@ -32,8 +23,8 @@ fs1 {
vertical_rotate all
}
}
-XCOMM fs2 class (ISO8859 families)
-fs2 {
+XCOMM fs1 class (ISO8859 families)
+fs1 {
charset {
name ISO8859-1:GR
}
@@ -41,8 +32,8 @@ fs2 {
primary ISO8859-1:GR
}
}
-XCOMM fs3 class (Chinese Han Character (Traditional))
-fs3 {
+XCOMM fs2 class (Chinese Han Character (Traditional))
+fs2 {
charset {
name BIG5-0:GLGR
}
@@ -51,8 +42,8 @@ fs3 {
substitute BIG5-0:GLGR
}
}
-XCOMM fs4 class (Kanji)
-fs4 {
+XCOMM fs3 class (Kanji)
+fs3 {
charset {
name JISX0208.1983-0:GL
}
@@ -60,8 +51,8 @@ fs4 {
primary JISX0208.1983-0:GL
}
}
-XCOMM fs5 class (Korean Character)
-fs5 {
+XCOMM fs4 class (Korean Character)
+fs4 {
charset {
name KSC5601.1987-0:GL
}
@@ -69,8 +60,8 @@ fs5 {
primary KSC5601.1987-0:GL
}
}
-XCOMM fs6 class (Chinese Han Character)
-fs6 {
+XCOMM fs5 class (Chinese Han Character)
+fs5 {
charset {
name GB2312.1980-0:GL
}
@@ -78,8 +69,8 @@ fs6 {
primary GB2312.1980-0:GL
}
}
-XCOMM fs7 class (Half Kana)
-fs7 {
+XCOMM fs6 class (Half Kana)
+fs6 {
charset {
name JISX0201.1976-0:GR
}
@@ -88,6 +79,15 @@ fs7 {
vertical_rotate all
}
}
+XCOMM fs7 class
+fs7 {
+ charset {
+ name ISO10646-1
+ }
+ font {
+ primary ISO10646-1
+ }
+}
END XLC_FONTSET
XCOMM
diff --git a/nls/zh_TW.big5/Compose.pre b/nls/zh_TW.big5/Compose.pre
index c2b7da9b..6c293fed 100644
--- a/nls/zh_TW.big5/Compose.pre
+++ b/nls/zh_TW.big5/Compose.pre
@@ -3,7 +3,7 @@ XCOMM zh_TW.big5 Compose Sequence
XCOMM
XCOMM Sequence Definition
XCOMM
-XCOMM $XFree86: xc/nls/Compose/zh_TW.big5,v 1.2 2001/04/26 21:09:40 dawes Exp $
+XCOMM $XFree86: xc/nls/Compose/zh_TW.big5,v 1.1 1999/08/28 09:00:40 dawes Exp $
XCOMM
XCOMM This file currently has no entries. It appears that a compose file (even
XCOMM just an empty one) is required for the appropriate keysyms to work for
diff --git a/nls/zh_TW.big5/XLC_LOCALE.pre b/nls/zh_TW.big5/XLC_LOCALE.pre
index 6e03bbe5..73175859 100644
--- a/nls/zh_TW.big5/XLC_LOCALE.pre
+++ b/nls/zh_TW.big5/XLC_LOCALE.pre
@@ -3,7 +3,7 @@ XCOMM (c) 1996, X11R6 L10N for Taiwan and Big5 Encoding Project
XCOMM
XCOMM modified for X11R6.3 by Hung-Chi Chu <hcchu@r350.ee.ntu.edu.tw> 1998/01/10
XCOMM
-XCOMM $XFree86: xc/nls/XLC_LOCALE/zh_TW.big5,v 1.3 2001/08/09 19:14:09 dawes Exp $
+XCOMM $XFree86: xc/nls/XLC_LOCALE/zh_TW.big5,v 1.2 2000/10/27 18:30:57 dawes Exp $
XCOMM
XCOMM XLC_FONTSET category
XCOMM
diff --git a/nls/zh_TW/Compose.pre b/nls/zh_TW/Compose.pre
index 2a4ef702..fbf768dd 100644
--- a/nls/zh_TW/Compose.pre
+++ b/nls/zh_TW/Compose.pre
@@ -3,7 +3,7 @@ XCOMM zh_TW Compose Sequence
XCOMM
XCOMM Sequence Definition
XCOMM
-XCOMM $XFree86: xc/nls/Compose/zh_TW,v 1.2 2001/04/26 21:09:40 dawes Exp $
+XCOMM $XFree86: xc/nls/Compose/zh_TW,v 1.1 1999/08/28 09:00:40 dawes Exp $
XCOMM
XCOMM This file currently has no entries. It appears that a compose file (even
XCOMM just an empty one) is required for the appropriate keysyms to work for
diff --git a/src/AllPlanes.c b/src/AllPlanes.c
index b636159e..5f7e6bcc 100644
--- a/src/AllPlanes.c
+++ b/src/AllPlanes.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/AllPlanes.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */
#define NEED_REPLIES
#include "Xlibint.h"
@@ -61,7 +62,7 @@ unsigned long *rmask, *gmask, *bmask; /* CARD32 */ /* RETURN */
*bmask = rep.blueMask;
/* sizeof(CARD32) = 4 */
- _XRead32 (dpy, (char *) pixels, (long)(ncolors * 4));
+ _XRead32 (dpy, (long *) pixels, (long)(ncolors * 4));
}
UnlockDisplay(dpy);
diff --git a/src/AllowEv.c b/src/AllowEv.c
index b12e8f61..b87d3bec 100644
--- a/src/AllowEv.c
+++ b/src/AllowEv.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/AllowEv.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */
#include "Xlibint.h"
+int
XAllowEvents(dpy, mode, time)
register Display *dpy;
int mode;
diff --git a/src/AutoRep.c b/src/AutoRep.c
index beb9a8f1..eb6a3073 100644
--- a/src/AutoRep.c
+++ b/src/AutoRep.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/AutoRep.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */
#include "Xlibint.h"
+int
XAutoRepeatOn (dpy)
register Display *dpy;
{
@@ -36,6 +38,7 @@ register Display *dpy;
return 1;
}
+int
XAutoRepeatOff (dpy)
register Display *dpy;
{
diff --git a/src/Backgnd.c b/src/Backgnd.c
index e5b67666..76ebb13f 100644
--- a/src/Backgnd.c
+++ b/src/Backgnd.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/Backgnd.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */
#include "Xlibint.h"
+int
XSetWindowBackground(dpy, w, pixel)
register Display *dpy;
Window w;
diff --git a/src/BdrWidth.c b/src/BdrWidth.c
index 2550fda3..5178032f 100644
--- a/src/BdrWidth.c
+++ b/src/BdrWidth.c
@@ -27,9 +27,11 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
+/* $XFree86: xc/lib/X11/BdrWidth.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */
#include "Xlibint.h"
+int
XSetWindowBorderWidth(dpy, w, width)
Display *dpy;
Window w;
diff --git a/src/Bell.c b/src/Bell.c
index 7c620206..53b77c81 100644
--- a/src/Bell.c
+++ b/src/Bell.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/Bell.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */
#include "Xlibint.h"
+int
XBell(dpy, percent)
register Display *dpy;
int percent;
diff --git a/src/Border.c b/src/Border.c
index 5e71ee90..29f55555 100644
--- a/src/Border.c
+++ b/src/Border.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/Border.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */
#include "Xlibint.h"
+int
XSetWindowBorder(dpy, w, pixel)
register Display *dpy;
Window w;
diff --git a/src/ChAccCon.c b/src/ChAccCon.c
index 4366f695..4d9281db 100644
--- a/src/ChAccCon.c
+++ b/src/ChAccCon.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/ChAccCon.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */
#include "Xlibint.h"
+int
XEnableAccessControl(dpy)
register Display *dpy;
@@ -34,6 +36,7 @@ XEnableAccessControl(dpy)
return XSetAccessControl(dpy, EnableAccess);
}
+int
XDisableAccessControl(dpy)
register Display *dpy;
@@ -41,6 +44,7 @@ XDisableAccessControl(dpy)
return XSetAccessControl(dpy, DisableAccess);
}
+int
XSetAccessControl(dpy, mode)
register Display *dpy;
int mode;
diff --git a/src/ChActPGb.c b/src/ChActPGb.c
index adc2036e..e1df3431 100644
--- a/src/ChActPGb.c
+++ b/src/ChActPGb.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/ChActPGb.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */
#include "Xlibint.h"
+int
XChangeActivePointerGrab(dpy, event_mask, curs, time)
register Display *dpy;
unsigned int event_mask; /* CARD16 */
diff --git a/src/ChClMode.c b/src/ChClMode.c
index 0b2657eb..4faa37f5 100644
--- a/src/ChClMode.c
+++ b/src/ChClMode.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/ChClMode.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */
#include "Xlibint.h"
+int
XSetCloseDownMode(dpy, mode)
register Display *dpy;
int mode;
diff --git a/src/ChCmap.c b/src/ChCmap.c
index d6aaa892..f3c02ded 100644
--- a/src/ChCmap.c
+++ b/src/ChCmap.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/ChCmap.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */
#include "Xlibint.h"
+int
XSetWindowColormap(dpy, w, colormap)
register Display *dpy;
Window w;
diff --git a/src/ChGC.c b/src/ChGC.c
index d7d536a6..9186dd05 100644
--- a/src/ChGC.c
+++ b/src/ChGC.c
@@ -24,9 +24,12 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/ChGC.c,v 1.4 2001/12/14 19:53:57 dawes Exp $ */
#include "Xlibint.h"
+#include "Cr.h"
+int
XChangeGC (dpy, gc, valuemask, values)
register Display *dpy;
GC gc;
diff --git a/src/ChKeyCon.c b/src/ChKeyCon.c
index c1b3fdce..bc5419f4 100644
--- a/src/ChKeyCon.c
+++ b/src/ChKeyCon.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/ChKeyCon.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */
#include "Xlibint.h"
+int
XChangeKeyboardControl(dpy, mask, value_list)
register Display *dpy;
unsigned long mask;
diff --git a/src/ChPntCon.c b/src/ChPntCon.c
index ce0776d9..0a0fd6f0 100644
--- a/src/ChPntCon.c
+++ b/src/ChPntCon.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/ChPntCon.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */
#include "Xlibint.h"
+int
XChangePointerControl(dpy, do_acc, do_thresh, acc_numerator,
acc_denominator, threshold)
register Display *dpy;
diff --git a/src/ChProp.c b/src/ChProp.c
index 4cfbe96d..606277d6 100644
--- a/src/ChProp.c
+++ b/src/ChProp.c
@@ -24,10 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/ChProp.c,v 1.4 2001/12/14 19:53:57 dawes Exp $ */
#include "Xlibint.h"
-#if NeedFunctionPrototypes
+int
XChangeProperty (
register Display *dpy,
Window w,
@@ -37,16 +38,6 @@ XChangeProperty (
int mode, /* PropModeReplace, PropModePrepend, PropModeAppend */
_Xconst unsigned char *data,
int nelements)
-#else
-XChangeProperty (dpy, w, property, type, format, mode, data, nelements)
- register Display *dpy;
- Window w;
- Atom property, type;
- int format; /* 8, 16, or 32 */
- int mode; /* PropModeReplace, PropModePrepend, PropModeAppend */
- unsigned char *data;
- int nelements;
-#endif
{
register xChangePropertyReq *req;
register long len;
diff --git a/src/ChSaveSet.c b/src/ChSaveSet.c
index 7adb08cf..a048b7bb 100644
--- a/src/ChSaveSet.c
+++ b/src/ChSaveSet.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/ChSaveSet.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */
#include "Xlibint.h"
+int
XChangeSaveSet(dpy, win, mode)
register Display *dpy;
Window win;
@@ -43,6 +45,7 @@ int mode;
return 1;
}
+int
XAddToSaveSet(dpy, win)
register Display *dpy;
Window win;
@@ -50,6 +53,7 @@ XAddToSaveSet(dpy, win)
return XChangeSaveSet(dpy,win,SetModeInsert);
}
+int
XRemoveFromSaveSet (dpy, win)
register Display *dpy;
Window win;
diff --git a/src/ChWAttrs.c b/src/ChWAttrs.c
index 2c05cf55..215980b1 100644
--- a/src/ChWAttrs.c
+++ b/src/ChWAttrs.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/ChWAttrs.c,v 1.4 2001/12/14 19:53:57 dawes Exp $ */
#include "Xlibint.h"
@@ -33,6 +34,7 @@ in this Software without prior written authorization from The Open Group.
CWOverrideRedirect|CWSaveUnder|CWEventMask|\
CWDontPropagate|CWColormap|CWCursor)
+int
XChangeWindowAttributes (dpy, w, valuemask, attributes)
register Display *dpy;
Window w;
@@ -40,7 +42,6 @@ XChangeWindowAttributes (dpy, w, valuemask, attributes)
XSetWindowAttributes *attributes;
{
register xChangeWindowAttributesReq *req;
- extern void _XProcessWindowAttributes();
LockDisplay(dpy);
GetReq(ChangeWindowAttributes,req);
diff --git a/src/ChWindow.c b/src/ChWindow.c
index b0319aa6..41af3bed 100644
--- a/src/ChWindow.c
+++ b/src/ChWindow.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/ChWindow.c,v 1.5 2001/01/17 19:41:32 dawes Exp $ */
#include "Xlibint.h"
+int
XResizeWindow(dpy, w, width, height)
register Display *dpy;
Window w;
diff --git a/src/ChkIfEv.c b/src/ChkIfEv.c
index 24539e82..7c56f52e 100644
--- a/src/ChkIfEv.c
+++ b/src/ChkIfEv.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86$ */
#define NEED_EVENTS
#include "Xlibint.h"
@@ -37,11 +38,9 @@ in this Software without prior written authorization from The Open Group.
Bool XCheckIfEvent (dpy, event, predicate, arg)
register Display *dpy;
Bool (*predicate)(
-#if NeedNestedPrototypes
Display* /* display */,
XEvent* /* event */,
char* /* arg */
-#endif
); /* function to call */
register XEvent *event; /* XEvent to be filled in. */
char *arg;
diff --git a/src/ChkMaskEv.c b/src/ChkMaskEv.c
index cc511720..961dce69 100644
--- a/src/ChkMaskEv.c
+++ b/src/ChkMaskEv.c
@@ -24,16 +24,12 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/ChkMaskEv.c,v 3.5 2001/10/28 03:32:29 tsi Exp $ */
#define NEED_EVENTS
#include "Xlibint.h"
-#ifdef __STDC__
-#define Const const
-#else
-#define Const /**/
-#endif
-extern long Const _Xevent_to_mask[];
+extern long const _Xevent_to_mask[];
#define AllPointers (PointerMotionMask|PointerMotionHintMask|ButtonMotionMask)
#define AllButtons (Button1MotionMask|Button2MotionMask|Button3MotionMask|\
@@ -51,7 +47,7 @@ Bool XCheckMaskEvent (dpy, mask, event)
register XEvent *event; /* XEvent to be filled in. */
{
register _XQEvent *prev, *qelt;
- unsigned long qe_serial;
+ unsigned long qe_serial = 0;
int n; /* time through count */
LockDisplay(dpy);
diff --git a/src/ChkTypEv.c b/src/ChkTypEv.c
index dd45be0b..c1c36d43 100644
--- a/src/ChkTypEv.c
+++ b/src/ChkTypEv.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/ChkTypEv.c,v 1.2 2001/10/28 03:32:29 tsi Exp $ */
#define NEED_EVENTS
#include "Xlibint.h"
@@ -40,7 +41,7 @@ Bool XCheckTypedEvent (dpy, type, event)
register XEvent *event; /* XEvent to be filled in. */
{
register _XQEvent *prev, *qelt;
- unsigned long qe_serial;
+ unsigned long qe_serial = 0;
int n; /* time through count */
LockDisplay(dpy);
diff --git a/src/ChkTypWEv.c b/src/ChkTypWEv.c
index 09b48b5d..c15f2bcf 100644
--- a/src/ChkTypWEv.c
+++ b/src/ChkTypWEv.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/ChkTypWEv.c,v 1.2 2001/10/28 03:32:29 tsi Exp $ */
#define NEED_EVENTS
#include "Xlibint.h"
@@ -41,7 +42,7 @@ Bool XCheckTypedWindowEvent (dpy, w, type, event)
register XEvent *event; /* XEvent to be filled in. */
{
register _XQEvent *prev, *qelt;
- unsigned long qe_serial;
+ unsigned long qe_serial = 0;
int n; /* time through count */
LockDisplay(dpy);
diff --git a/src/ChkWinEv.c b/src/ChkWinEv.c
index 27d4c05e..2fd386d2 100644
--- a/src/ChkWinEv.c
+++ b/src/ChkWinEv.c
@@ -24,16 +24,12 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/ChkWinEv.c,v 3.5 2001/10/28 03:32:30 tsi Exp $ */
#define NEED_EVENTS
#include "Xlibint.h"
-#ifdef __STDC__
-#define Const const
-#else
-#define Const /**/
-#endif
-extern long Const _Xevent_to_mask[];
+extern long const _Xevent_to_mask[];
#define AllPointers (PointerMotionMask|PointerMotionHintMask|ButtonMotionMask)
#define AllButtons (Button1MotionMask|Button2MotionMask|Button3MotionMask|\
Button4MotionMask|Button5MotionMask)
@@ -51,7 +47,7 @@ Bool XCheckWindowEvent (dpy, w, mask, event)
register XEvent *event; /* XEvent to be filled in. */
{
register _XQEvent *prev, *qelt;
- unsigned long qe_serial;
+ unsigned long qe_serial = 0;
int n; /* time through count */
LockDisplay(dpy);
diff --git a/src/CirWin.c b/src/CirWin.c
index 4099900f..53c70440 100644
--- a/src/CirWin.c
+++ b/src/CirWin.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/CirWin.c,v 1.3 2001/01/17 19:41:32 dawes Exp $ */
#include "Xlibint.h"
+int
XCirculateSubwindows(dpy, w, direction)
register Display *dpy;
Window w;
diff --git a/src/CirWinDn.c b/src/CirWinDn.c
index c3dce796..b790f2d7 100644
--- a/src/CirWinDn.c
+++ b/src/CirWinDn.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/CirWinDn.c,v 1.3 2001/01/17 19:41:33 dawes Exp $ */
#include "Xlibint.h"
+int
XCirculateSubwindowsDown(dpy,w)
register Display *dpy;
Window w;
diff --git a/src/CirWinUp.c b/src/CirWinUp.c
index 65ff8645..12756cd3 100644
--- a/src/CirWinUp.c
+++ b/src/CirWinUp.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/CirWinUp.c,v 1.3 2001/01/17 19:41:33 dawes Exp $ */
#include "Xlibint.h"
+int
XCirculateSubwindowsUp(dpy, w)
register Display *dpy;
Window w;
diff --git a/src/ClDisplay.c b/src/ClDisplay.c
index 0ea2fc54..25fac7b1 100644
--- a/src/ClDisplay.c
+++ b/src/ClDisplay.c
@@ -27,10 +27,12 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
+/* $XFree86: xc/lib/X11/ClDisplay.c,v 1.4 2001/12/14 19:53:58 dawes Exp $ */
+#include <X11/Xtrans.h>
+#include "Xlib.h"
#include "Xlibint.h"
-
-extern void _XFreeDisplayStructure();
+#include "Xintconn.h"
/*
* XCloseDisplay - XSync the connection to the X Server, close the connection,
@@ -38,8 +40,9 @@ extern void _XFreeDisplayStructure();
* memory and must be careful about the types of requests they generate.
*/
-XCloseDisplay (dpy)
- register Display *dpy;
+int
+XCloseDisplay (
+ register Display *dpy)
{
register _XExtension *ext;
register int i;
diff --git a/src/Clear.c b/src/Clear.c
index 54fde13e..403943bc 100644
--- a/src/Clear.c
+++ b/src/Clear.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/Clear.c,v 1.3 2001/01/17 19:41:33 dawes Exp $ */
#include "Xlibint.h"
+int
XClearWindow(dpy, w)
register Display *dpy;
Window w;
diff --git a/src/ClearArea.c b/src/ClearArea.c
index 4028ae44..a85eb6ba 100644
--- a/src/ClearArea.c
+++ b/src/ClearArea.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/ClearArea.c,v 1.3 2001/01/17 19:41:33 dawes Exp $ */
#include "Xlibint.h"
+int
XClearArea (dpy, w, x, y, width, height, exposures)
register Display *dpy;
Window w;
diff --git a/src/Cmap.h b/src/Cmap.h
index 709f25cc..b4312be7 100644
--- a/src/Cmap.h
+++ b/src/Cmap.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/Cmap.h,v 1.1 2003/04/13 19:22:14 dawes Exp $ */
+/* $XFree86$ */
#ifndef _CMAP_H_
#define _CMAP_H_
diff --git a/src/ConfWind.c b/src/ConfWind.c
index f4bb4239..1c5813f5 100644
--- a/src/ConfWind.c
+++ b/src/ConfWind.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/ConfWind.c,v 1.3 2001/01/17 19:41:33 dawes Exp $ */
#include "Xlibint.h"
+int
XMoveResizeWindow(dpy, w, x, y, width, height)
register Display *dpy;
Window w;
diff --git a/src/ConnDis.c b/src/ConnDis.c
index 9ee55118..897ef5ab 100644
--- a/src/ConnDis.c
+++ b/src/ConnDis.c
@@ -1,3 +1,4 @@
+/* $XdotOrg: lib/X11/src/ConnDis.c,v 1.2 2004-04-23 18:43:23 eich Exp $ */
/* $Xorg: ConnDis.c,v 1.8 2001/02/09 02:03:31 xorgcvs Exp $ */
/*
@@ -24,6 +25,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/ConnDis.c,v 3.28 2003/12/02 23:33:17 herrb Exp $ */
/*
* This file contains operating system dependencies.
@@ -34,11 +36,16 @@ in this Software without prior written authorization from The Open Group.
#include <X11/Xlibint.h>
#include <X11/Xtrans.h>
#include <X11/Xauth.h>
+#include <X11/Xdmcp.h>
#include <stdio.h>
#include <ctype.h>
-#ifndef WIN32
+#if !defined(WIN32)
+#ifndef Lynx
#include <sys/socket.h>
+#else
+#include <socket.h>
+#endif
#endif
#ifndef X_CONNECTION_RETRIES /* number retries on ECONNREFUSED */
@@ -49,11 +56,22 @@ in this Software without prior written authorization from The Open Group.
#include <sys/utsname.h>
#endif
-static void GetAuthorization();
-
-static char *copystring (src, len)
- char *src;
- int len;
+#include "Xintconn.h"
+
+/* prototyes */
+static void GetAuthorization(
+ XtransConnInfo trans_conn,
+ int family,
+ char *saddr,
+ int saddrlen,
+ int idisplay,
+ char **auth_namep,
+ int *auth_namelenp,
+ char **auth_datap,
+ int *auth_datalenp);
+
+/* functions */
+static char *copystring (char *src, int len)
{
char *dst = Xmalloc (len + 1);
@@ -73,7 +91,16 @@ static char *copystring (src, len)
*
* [protocol/] [hostname] : [:] displaynumber [.screennumber]
*
- * The second colon indicates a DECnet style name. No hostname is interpretted
+ * A string with exactly two colons seperating hostname from the display
+ * indicates a DECnet style name. Colons in the hostname may occur if an
+ * IPv6 numeric address is used as the hostname. An IPv6 numeric address
+ * may also end in a double colon, so three colons in a row indicates an
+ * IPv6 address ending in :: followed by :display. To make it easier for
+ * people to read, an IPv6 numeric address hostname may be surrounded by
+ * [ ] in a similar fashion to the IPv6 numeric address URL syntax defined
+ * by IETF RFC 2732.
+ *
+ * If no hostname and no protocol is specified, the string is interpreted
* as the most efficient local connection to a server on the same machine.
* This is usually:
*
@@ -89,16 +116,15 @@ static char *copystring (src, len)
*
*/
XtransConnInfo
-_X11TransConnectDisplay (display_name, fullnamep, dpynump, screenp,
- auth_namep, auth_namelenp, auth_datap, auth_datalenp)
- char *display_name;
- char **fullnamep; /* RETURN */
- int *dpynump; /* RETURN */
- int *screenp; /* RETURN */
- char **auth_namep; /* RETURN */
- int *auth_namelenp; /* RETURN */
- char **auth_datap; /* RETURN */
- int *auth_datalenp; /* RETURN */
+_X11TransConnectDisplay (
+ char *display_name,
+ char **fullnamep, /* RETURN */
+ int *dpynump, /* RETURN */
+ int *screenp, /* RETURN */
+ char **auth_namep, /* RETURN */
+ int *auth_namelenp, /* RETURN */
+ char **auth_datap, /* RETURN */
+ int *auth_datalenp) /* RETURN */
{
int family;
int saddrlen;
@@ -109,9 +135,9 @@ _X11TransConnectDisplay (display_name, fullnamep, dpynump, screenp,
char *pdpynum = NULL; /* start of dpynum of display */
char *pscrnum = NULL; /* start of screen of display */
Bool dnet = False; /* if true, then DECnet format */
- int idisplay; /* required display number */
+ int idisplay = 0; /* required display number */
int iscreen = 0; /* optional screen number */
- int (*connfunc)(); /* method to create connection */
+ /* int (*connfunc)(); */ /* method to create connection */
int len, hostlen; /* length tmp variable */
int retry; /* retry counter */
char addrbuf[128]; /* final address passed to
@@ -149,7 +175,8 @@ _X11TransConnectDisplay (display_name, fullnamep, dpynump, screenp,
/*
* Step 1, find the hostname. This is delimited by either one colon,
* or two colons in the case of DECnet (DECnet Phase V allows a single
- * colon in the hostname).
+ * colon in the hostname). (See note above regarding IPv6 numeric
+ * addresses with triple colons or [] brackets.)
*/
lastp = p;
@@ -160,7 +187,11 @@ _X11TransConnectDisplay (display_name, fullnamep, dpynump, screenp,
if (!lastc) return NULL; /* must have a colon */
- if ((lastp != lastc) && (*(lastc - 1) == ':')) {
+ if ((lastp != lastc) && (*(lastc - 1) == ':')
+#if defined(IPv6) && defined(AF_INET6)
+ && ( ((lastc - 1) == lastp) || (*(lastc - 2) != ':'))
+#endif
+ ) {
/* DECnet display specified */
#ifndef DNETCONN
@@ -250,18 +281,24 @@ _X11TransConnectDisplay (display_name, fullnamep, dpynump, screenp,
* is "unix", then choose BSD UNIX domain sockets (if configured).
*/
-#if defined(TCPCONN) || defined(UNIXCONN) || defined(LOCALCONN)
+#if defined(TCPCONN) || defined(UNIXCONN) || defined(LOCALCONN) || defined(MNX_TCPCONN) || defined(OS2PIPECONN)
if (!pprotocol) {
if (!phostname)
-#if defined(UNIXCONN) || defined(LOCALCONN)
+#if defined(UNIXCONN) || defined(LOCALCONN) || defined(OS2PIPECONN)
pprotocol = copystring ("local", 5);
else
#endif
pprotocol = copystring ("tcp", 3);
}
+#else
+#if defined(AMRPCCONN)
+ if (!pprotocol) {
+ pprotocol = copystring ("amcon", 5);
+ }
+#endif
#endif
-#if defined(UNIXCONN) || defined(LOCALCONN)
+#if defined(UNIXCONN) || defined(LOCALCONN) || defined(OS2PIPECONN)
/*
* Now that the defaults have been established, see if we have any
* special names that we have to override:
@@ -288,7 +325,9 @@ _X11TransConnectDisplay (display_name, fullnamep, dpynump, screenp,
}
#endif
+#if defined(LOCALCONN) && defined(TCPCONN)
connect:
+#endif
/*
* This seems kind of backwards, but we need to put the protocol,
* host, and port back together to pass to _X11TransOpenCOTSClient().
@@ -301,10 +340,10 @@ _X11TransConnectDisplay (display_name, fullnamep, dpynump, screenp,
if (olen > sizeof addrbuf) address = Xmalloc (olen);
}
- sprintf(address,"%s/%s:%s",
+ sprintf(address,"%s/%s:%d",
pprotocol ? pprotocol : "",
phostname ? phostname : "",
- pdpynum );
+ idisplay );
/*
* Make the connection, also need to get the auth address info for
@@ -425,16 +464,15 @@ _X11TransConnectDisplay (display_name, fullnamep, dpynump, screenp,
*
*/
-int _XConnectDisplay (display_name, fullnamep, dpynump, screenp,
- auth_namep, auth_namelenp, auth_datap, auth_datalenp)
- char *display_name;
- char **fullnamep; /* RETURN */
- int *dpynump; /* RETURN */
- int *screenp; /* RETURN */
- char **auth_namep; /* RETURN */
- int *auth_namelenp; /* RETURN */
- char **auth_datap; /* RETURN */
- int *auth_datalenp; /* RETURN */
+int _XConnectDisplay (
+ char *display_name,
+ char **fullnamep, /* RETURN */
+ int *dpynump, /* RETURN */
+ int *screenp, /* RETURN */
+ char **auth_namep, /* RETURN */
+ int *auth_namelenp, /* RETURN */
+ char **auth_datap, /* RETURN */
+ int *auth_datalenp) /* RETURN */
{
XtransConnInfo trans_conn;
@@ -475,8 +513,6 @@ XtransConnInfo trans_conn;
-static int padlength[4] = {0, 3, 2, 1}; /* make sure auth is multiple of 4 */
-
Bool
_XSendClientPrefix (dpy, client, auth_proto, auth_string, prefix)
Display *dpy;
@@ -486,7 +522,7 @@ _XSendClientPrefix (dpy, client, auth_proto, auth_string, prefix)
{
int auth_length = client->nbytesAuthProto;
int auth_strlen = client->nbytesAuthString;
- char padbuf[3]; /* for padding to 4x bytes */
+ static char padbuf[3]; /* for padding to 4x bytes */
int pad;
struct iovec iovarray[5], *iov = iovarray;
int niov = 0;
@@ -502,12 +538,12 @@ _XSendClientPrefix (dpy, client, auth_proto, auth_string, prefix)
*/
if (auth_length > 0) {
add_to_iov (auth_proto, auth_length);
- pad = padlength [auth_length & 3];
+ pad = -auth_length & 3; /* pad auth_length to a multiple of 4 */
if (pad) add_to_iov (padbuf, pad);
}
if (auth_strlen > 0) {
add_to_iov (auth_string, auth_strlen);
- pad = padlength [auth_strlen & 3];
+ pad = -auth_strlen & 3; /* pad auth_strlen to a multiple of 4 */
if (pad) add_to_iov (padbuf, pad);
}
@@ -544,6 +580,13 @@ _XSendClientPrefix (dpy, client, auth_proto, auth_string, prefix)
#endif
#ifdef SECURE_RPC
+#if defined(sun) && defined(SVR4) /* && ????? */
+/*
+ * I'm aware this is backwards, but #define'ing PORTMAP, as suggested in the
+ * man pages, doesn't work either.
+ */
+#define authdes_seccreate authdes_create
+#endif
#include <rpc/rpc.h>
#ifdef ultrix
#include <time.h>
@@ -552,14 +595,9 @@ _XSendClientPrefix (dpy, client, auth_proto, auth_string, prefix)
#endif
#ifdef HASXDMAUTH
-#ifdef X_NOT_STDC_ENV
-#define Time_t long
-extern Time_t time ();
-#else
#include <time.h>
#define Time_t time_t
#endif
-#endif
/*
* First, a routine for setting authorization data
@@ -588,7 +626,7 @@ static char *default_xauth_names[] = {
"MIT-MAGIC-COOKIE-1"
};
-static int default_xauth_lengths[] = {
+static _Xconst int default_xauth_lengths[] = {
#ifdef K5AUTH
14, /* strlen ("MIT-KERBEROS-5") */
#endif
@@ -604,7 +642,7 @@ static int default_xauth_lengths[] = {
#define NUM_DEFAULT_AUTH (sizeof (default_xauth_names) / sizeof (default_xauth_names[0]))
static char **xauth_names = default_xauth_names;
-static int *xauth_lengths = default_xauth_lengths;
+static _Xconst int *xauth_lengths = default_xauth_lengths;
static int xauth_names_length = NUM_DEFAULT_AUTH;
@@ -679,7 +717,11 @@ auth_ezencode(servername, window, cred_out, len)
AUTH *a;
XDR xdr;
+#if defined(SVR4) && defined(sun)
+ a = authdes_seccreate(servername, window, NULL, NULL);
+#else
a = (AUTH *)authdes_create(servername, window, NULL, NULL);
+#endif
if (a == (AUTH *)NULL) {
perror("auth_create");
return 0;
@@ -953,17 +995,16 @@ static int k5_clientauth(dpy, sprefix)
#endif /* K5AUTH */
static void
-GetAuthorization(trans_conn, family, saddr, saddrlen, idisplay,
- auth_namep, auth_namelenp, auth_datap, auth_datalenp)
- XtransConnInfo trans_conn;
- int family;
- int saddrlen;
- int idisplay;
- char *saddr;
- char **auth_namep; /* RETURN */
- int *auth_namelenp; /* RETURN */
- char **auth_datap; /* RETURN */
- int *auth_datalenp; /* RETURN */
+GetAuthorization(
+ XtransConnInfo trans_conn,
+ int family,
+ char *saddr,
+ int saddrlen,
+ int idisplay,
+ char **auth_namep, /* RETURN */
+ int *auth_namelenp, /* RETURN */
+ char **auth_datap, /* RETURN */
+ int *auth_datalenp) /* RETURN */
{
#ifdef SECURE_RPC
char rpc_cred[MAX_AUTH_BYTES];
@@ -1042,6 +1083,32 @@ GetAuthorization(trans_conn, family, saddr, saddrlen, idisplay,
break;
}
#endif /* AF_INET */
+#if defined(IPv6) && defined(AF_INET6)
+ case AF_INET6:
+ /* XXX This should probably never happen */
+ {
+ unsigned char ipv4mappedprefix[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff };
+
+ /* In the case of v4 mapped addresses send the v4
+ part of the address - addr is already in network byte order */
+ if (memcmp(addr+8, ipv4mappedprefix, 12) == 0) {
+ for (i = 20 ; i < 24; i++)
+ xdmcp_data[j++] = ((char *)addr)[i];
+
+ /* Port number */
+ for (i=2; i<4; i++)
+ xdmcp_data[j++] = ((char *)addr)[i];
+ break;
+ } else {
+ /* Fake data to keep the data aligned. Otherwise the
+ the server will bail about incorrect timing data */
+ for (i = 0; i < 8; i++) {
+ xdmcp_data[j++] = 0;
+ }
+ }
+ }
+#endif /* AF_INET6 */
#ifdef AF_UNIX
case AF_UNIX:
{
diff --git a/src/Context.c b/src/Context.c
index f924c258..fef578ff 100644
--- a/src/Context.c
+++ b/src/Context.c
@@ -50,6 +50,7 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
+/* $XFree86: xc/lib/X11/Context.c,v 1.5 2001/12/14 19:53:58 dawes Exp $ */
/* This module implements a simple sparse array.
@@ -100,8 +101,7 @@ static DB NullDB = (DB)0;
/* Resize the given db */
-static void ResizeTable(db)
- register DB db;
+static void ResizeTable(DB db)
{
TableEntry *otable;
register TableEntry entry, next, *pold, *head;
@@ -128,8 +128,7 @@ static void ResizeTable(db)
Xfree((char *) otable);
}
-static void _XFreeContextDB(display)
- Display *display;
+static void _XFreeContextDB(Display *display)
{
register DB db;
register int i;
@@ -156,19 +155,11 @@ static void _XFreeContextDB(display)
Possible errors are Out-of-memory.
*/
-#if NeedFunctionPrototypes
int XSaveContext(
Display *display,
register XID rid,
register XContext context,
_Xconst char* data)
-#else
-int XSaveContext(display, rid, context, data)
- Display *display;
- register XID rid;
- register XContext context;
- XPointer data;
-#endif
{
DB *pdb;
register DB db;
diff --git a/src/ConvSel.c b/src/ConvSel.c
index b7148a98..24d4f83b 100644
--- a/src/ConvSel.c
+++ b/src/ConvSel.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/ConvSel.c,v 1.3 2001/01/17 19:41:33 dawes Exp $ */
#include "Xlibint.h"
+int
XConvertSelection(dpy, selection, target, property, requestor, time)
register Display *dpy;
Atom selection, target;
diff --git a/src/CopyArea.c b/src/CopyArea.c
index 5a4c42ba..a2a92a8d 100644
--- a/src/CopyArea.c
+++ b/src/CopyArea.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/CopyArea.c,v 1.3 2001/01/17 19:41:33 dawes Exp $ */
#include "Xlibint.h"
+int
XCopyArea(dpy, src_drawable, dst_drawable, gc,
src_x, src_y, width, height,
dst_x, dst_y)
diff --git a/src/CopyCmap.c b/src/CopyCmap.c
index a6873765..9c7abcec 100644
--- a/src/CopyCmap.c
+++ b/src/CopyCmap.c
@@ -24,8 +24,15 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/CopyCmap.c,v 1.3 2001/01/17 19:41:33 dawes Exp $ */
#include "Xlibint.h"
+#include "Xcmsint.h"
+
+/* cmsCmap.c */
+extern XcmsCmapRec * _XcmsCopyCmapRecAndFree(Display *dpy,
+ Colormap src_cmap,
+ Colormap copy_cmap);
Colormap XCopyColormapAndFree(dpy, src_cmap)
register Display *dpy;
diff --git a/src/CopyGC.c b/src/CopyGC.c
index ec228794..121bf5b8 100644
--- a/src/CopyGC.c
+++ b/src/CopyGC.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/CopyGC.c,v 1.3 2001/01/17 19:41:33 dawes Exp $ */
#include "Xlibint.h"
+int
XCopyGC (dpy, srcGC, mask, destGC)
register Display *dpy;
unsigned long mask; /* which ones to set initially */
diff --git a/src/CopyPlane.c b/src/CopyPlane.c
index 1df2b14a..7adae39f 100644
--- a/src/CopyPlane.c
+++ b/src/CopyPlane.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/CopyPlane.c,v 1.3 2001/01/17 19:41:33 dawes Exp $ */
#include "Xlibint.h"
+int
XCopyPlane(dpy, src_drawable, dst_drawable, gc,
src_x, src_y, width, height,
dst_x, dst_y, bit_plane)
diff --git a/src/Cr.h b/src/Cr.h
index 5ef13bf3..10181717 100644
--- a/src/Cr.h
+++ b/src/Cr.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/Cr.h,v 1.1 2003/04/13 19:22:14 dawes Exp $ */
+/* $XFree86$ */
#ifndef _CR_H_
#define _CR_H_
diff --git a/src/CrBFData.c b/src/CrBFData.c
index 70060a96..6e9aad1b 100644
--- a/src/CrBFData.c
+++ b/src/CrBFData.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86$ */
#include "Xlib.h"
@@ -44,20 +45,12 @@ in this Software without prior written authorization from The Open Group.
* xoffset=0
* no extra bytes per line
*/
-#if NeedFunctionPrototypes
Pixmap XCreateBitmapFromData(
Display *display,
Drawable d,
_Xconst char *data,
unsigned int width,
unsigned int height)
-#else
-Pixmap XCreateBitmapFromData(display, d, data, width, height)
- Display *display;
- Drawable d;
- char *data;
- unsigned int width, height;
-#endif
{
XImage ximage;
GC gc;
diff --git a/src/CrCmap.c b/src/CrCmap.c
index 3c1878df..22a2cffe 100644
--- a/src/CrCmap.c
+++ b/src/CrCmap.c
@@ -24,8 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/CrCmap.c,v 1.4 2001/12/14 19:53:59 dawes Exp $ */
#include "Xlibint.h"
+#include "Xcmsint.h"
+
Colormap XCreateColormap(dpy, w, visual, alloc)
register Display *dpy;
diff --git a/src/CrCursor.c b/src/CrCursor.c
index 93c7a006..c3ce84b3 100644
--- a/src/CrCursor.c
+++ b/src/CrCursor.c
@@ -24,9 +24,21 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86$ */
#include "Xlibint.h"
+#ifdef USE_DYNAMIC_XCURSOR
+Cursor
+_XTryShapeBitmapCursor (Display *dpy,
+ Pixmap source,
+ Pixmap mask,
+ XColor *foreground,
+ XColor *background,
+ unsigned int x,
+ unsigned int y);
+#endif
+
Cursor XCreatePixmapCursor(dpy, source, mask, foreground, background, x, y)
register Display *dpy;
Pixmap source, mask;
@@ -37,6 +49,12 @@ Cursor XCreatePixmapCursor(dpy, source, mask, foreground, background, x, y)
register xCreateCursorReq *req;
Cursor cid;
+#ifdef USE_DYNAMIC_XCURSOR
+ cid = _XTryShapeBitmapCursor (dpy, source, mask,
+ foreground, background, x, y);
+ if (cid)
+ return cid;
+#endif
LockDisplay(dpy);
GetReq(CreateCursor, req);
req->cid = cid = XAllocID(dpy);
diff --git a/src/CrGC.c b/src/CrGC.c
index 969f6d88..b075d96b 100644
--- a/src/CrGC.c
+++ b/src/CrGC.c
@@ -24,16 +24,12 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/CrGC.c,v 3.6 2001/12/14 19:53:59 dawes Exp $ */
#include "Xlibint.h"
+#include "Cr.h"
-#ifdef __STDC__
-#define Const const
-#else
-#define Const /**/
-#endif
-
-static XGCValues Const initial_GC = {
+static XGCValues const initial_GC = {
GXcopy, /* function */
AllPlanes, /* plane_mask */
0L, /* foreground */
@@ -59,7 +55,10 @@ static XGCValues Const initial_GC = {
4 /* dashes (list [4,4]) */
};
-static void _XGenerateGCList();
+static void _XGenerateGCList(
+ register Display *dpy,
+ GC gc,
+ xReq *req);
GC XCreateGC (dpy, d, valuemask, values)
register Display *dpy;
@@ -107,10 +106,10 @@ GC XCreateGC (dpy, d, valuemask, values)
*/
static void
-_XGenerateGCList (dpy, gc, req)
- register Display *dpy;
- xReq *req;
- GC gc;
+_XGenerateGCList (
+ register Display *dpy,
+ GC gc,
+ xReq *req)
{
unsigned long values[32];
register unsigned long *value = values;
@@ -160,6 +159,7 @@ _XGenerateGCList (dpy, gc, req)
}
+int
_XUpdateGCCache (gc, mask, attr)
register unsigned long mask;
register XGCValues *attr;
diff --git a/src/CrGlCur.c b/src/CrGlCur.c
index d6fc4039..4fc63112 100644
--- a/src/CrGlCur.c
+++ b/src/CrGlCur.c
@@ -24,21 +24,217 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/CrGlCur.c,v 1.7 2003/04/13 19:22:15 dawes Exp $ */
#include "Xlibint.h"
+#ifdef USE_DYNAMIC_XCURSOR
+
+#ifdef __UNIXOS2__
+#define RTLD_LAZY 1
+#define LIBXCURSOR "Xcursor.dll"
+#endif
+#include <stdio.h>
+#include <string.h>
+#if defined(hpux)
+#include <dl.h>
+#else
+#include <dlfcn.h>
+#endif
+#include "Cr.h"
+
+#if defined(hpux)
+typedef shl_dt XModuleType;
+#else
+typedef void *XModuleType;
+#endif
+
+#ifndef LIBXCURSOR
+#define LIBXCURSOR "libXcursor.so"
+#endif
+
+static char libraryName[] = LIBXCURSOR;
+
+static XModuleType
+open_library (void)
+{
+ char *library = libraryName;
+ char *dot;
+ XModuleType module;
+ for (;;)
+ {
+#if defined(hpux)
+ module = shl_load(library, BIND_DEFERRED, 0L);
+#else
+ module = dlopen(library, RTLD_LAZY);
+#endif
+ if (module)
+ return module;
+ dot = strrchr (library, '.');
+ if (!dot)
+ break;
+ *dot = '\0';
+ }
+ return 0;
+}
+
+static void *
+fetch_symbol (XModuleType module, char *under_symbol)
+{
+ void *result = NULL;
+ char *symbol = under_symbol + 1;
+#if defined(hpux)
+ int getsyms_cnt, i;
+ struct shl_symbol *symbols;
+
+ getsyms_cnt = shl_getsymbols(module, TYPE_PROCEDURE,
+ EXPORT_SYMBOLS, malloc, &symbols);
+
+ for(i=0; i<getsyms_cnt; i++) {
+ if(!strcmp(symbols[i].name, symbol)) {
+ result = symbols[i].value;
+ break;
+ }
+ }
+
+ if(getsyms_cnt > 0) {
+ free(symbols);
+ }
+#else
+ result = dlsym (module, symbol);
+ if (!result)
+ result = dlsym (module, under_symbol);
+#endif
+ return result;
+}
+
+typedef void (*NoticeCreateBitmapFunc) (Display *dpy,
+ Pixmap pid,
+ unsigned int width,
+ unsigned int height);
+
+typedef void (*NoticePutBitmapFunc) (Display *dpy,
+ Drawable draw,
+ XImage *image);
+
+typedef Cursor (*TryShapeBitmapCursorFunc) (Display *dpy,
+ Pixmap source,
+ Pixmap mask,
+ XColor *foreground,
+ XColor *background,
+ unsigned int x,
+ unsigned int y);
+
+typedef Cursor (*TryShapeCursorFunc) (Display *dpy,
+ Font source_font,
+ Font mask_font,
+ unsigned int source_char,
+ unsigned int mask_char,
+ XColor _Xconst *foreground,
+ XColor _Xconst *background);
+
+static XModuleType _XcursorModule;
+static Bool _XcursorModuleTried;
+
+#define GetFunc(type,name,ret) {\
+ static Bool been_here; \
+ static type staticFunc; \
+ \
+ _XLockMutex (_Xglobal_lock); \
+ if (!been_here) \
+ { \
+ been_here = True; \
+ if (!_XcursorModuleTried) \
+ { \
+ _XcursorModuleTried = True; \
+ _XcursorModule = open_library (); \
+ } \
+ if (_XcursorModule) \
+ staticFunc = (type) fetch_symbol (_XcursorModule, "_" name); \
+ } \
+ ret = staticFunc; \
+ _XUnlockMutex (_Xglobal_lock); \
+}
+
+static Cursor
+_XTryShapeCursor (Display *dpy,
+ Font source_font,
+ Font mask_font,
+ unsigned int source_char,
+ unsigned int mask_char,
+ XColor _Xconst *foreground,
+ XColor _Xconst *background)
+{
+ TryShapeCursorFunc func;
+
+ GetFunc (TryShapeCursorFunc, "XcursorTryShapeCursor", func);
+ if (func)
+ return (*func) (dpy, source_font, mask_font, source_char, mask_char,
+ foreground, background);
+ return None;
+}
+
+void
+_XNoticeCreateBitmap (Display *dpy,
+ Pixmap pid,
+ unsigned int width,
+ unsigned int height)
+{
+ NoticeCreateBitmapFunc func;
+
+ GetFunc (NoticeCreateBitmapFunc, "XcursorNoticeCreateBitmap", func);
+ if (func)
+ (*func) (dpy, pid, width, height);
+}
+
+void
+_XNoticePutBitmap (Display *dpy,
+ Drawable draw,
+ XImage *image)
+{
+ NoticePutBitmapFunc func;
+
+ GetFunc (NoticePutBitmapFunc, "XcursorNoticePutBitmap", func);
+ if (func)
+ (*func) (dpy, draw, image);
+}
+
+Cursor
+_XTryShapeBitmapCursor (Display *dpy,
+ Pixmap source,
+ Pixmap mask,
+ XColor *foreground,
+ XColor *background,
+ unsigned int x,
+ unsigned int y)
+{
+ TryShapeBitmapCursorFunc func;
+
+ GetFunc (TryShapeBitmapCursorFunc, "XcursorTryShapeBitmapCursor", func);
+ if (func)
+ return (*func) (dpy, source, mask, foreground, background, x, y);
+ return None;
+}
+#endif
+
Cursor XCreateGlyphCursor(dpy, source_font, mask_font,
source_char, mask_char,
foreground, background)
register Display *dpy;
Font source_font, mask_font;
unsigned int source_char, mask_char;
- XColor *foreground, *background;
+ XColor _Xconst *foreground, *background;
{
Cursor cid;
register xCreateGlyphCursorReq *req;
+#ifdef USE_DYNAMIC_XCURSOR
+ cid = _XTryShapeCursor (dpy, source_font, mask_font,
+ source_char, mask_char, foreground, background);
+ if (cid)
+ return cid;
+#endif
LockDisplay(dpy);
GetReq(CreateGlyphCursor, req);
cid = req->cid = XAllocID(dpy);
diff --git a/src/CrPixmap.c b/src/CrPixmap.c
index 2505f48a..6b4069c1 100644
--- a/src/CrPixmap.c
+++ b/src/CrPixmap.c
@@ -24,9 +24,18 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86$ */
#include "Xlibint.h"
+#ifdef USE_DYNAMIC_XCURSOR
+void
+_XNoticeCreateBitmap (Display *dpy,
+ Pixmap pid,
+ unsigned int width,
+ unsigned int height);
+#endif
+
Pixmap XCreatePixmap (dpy, d, width, height, depth)
register Display *dpy;
Drawable d;
@@ -44,6 +53,10 @@ Pixmap XCreatePixmap (dpy, d, width, height, depth)
pid = req->pid = XAllocID(dpy);
UnlockDisplay(dpy);
SyncHandle();
+#ifdef USE_DYNAMIC_XCURSOR
+ if (depth == 1)
+ _XNoticeCreateBitmap (dpy, pid, width, height);
+#endif
return (pid);
}
diff --git a/src/Cursor.c b/src/Cursor.c
index 55ff456c..82242eeb 100644
--- a/src/Cursor.c
+++ b/src/Cursor.c
@@ -24,10 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/Cursor.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */
#include "Xlibint.h"
-static XColor foreground = { 0, 0, 0, 0 }; /* black */
-static XColor background = { 0, 65535, 65535, 65535 }; /* white */
+static XColor _Xconst foreground = { 0, 0, 0, 0 }; /* black */
+static XColor _Xconst background = { 0, 65535, 65535, 65535 }; /* white */
Cursor XCreateFontCursor(dpy, which)
Display *dpy;
diff --git a/src/DefCursor.c b/src/DefCursor.c
index d4eadea2..f8e479ad 100644
--- a/src/DefCursor.c
+++ b/src/DefCursor.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/DefCursor.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */
#include "Xlibint.h"
+int
XDefineCursor (dpy, w, cursor)
register Display *dpy;
Window w;
diff --git a/src/DelProp.c b/src/DelProp.c
index 11bf3a3d..4b2171aa 100644
--- a/src/DelProp.c
+++ b/src/DelProp.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/DelProp.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */
#include "Xlibint.h"
+int
XDeleteProperty(dpy, window, property)
register Display *dpy;
Window window;
diff --git a/src/DestSubs.c b/src/DestSubs.c
index 98aadd6b..465fc05d 100644
--- a/src/DestSubs.c
+++ b/src/DestSubs.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/DestSubs.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */
#include "Xlibint.h"
+int
XDestroySubwindows(dpy, win)
register Display *dpy;
Window win;
diff --git a/src/DestWind.c b/src/DestWind.c
index 319e4ec3..c218bc08 100644
--- a/src/DestWind.c
+++ b/src/DestWind.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/DestWind.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */
#include "Xlibint.h"
+int
XDestroyWindow (dpy, w)
register Display *dpy;
Window w;
diff --git a/src/DisName.c b/src/DisName.c
index 17ebf356..efae8f31 100644
--- a/src/DisName.c
+++ b/src/DisName.c
@@ -27,6 +27,7 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
+/* $XFree86$ */
/* XDisplayName.c */
/*
@@ -46,16 +47,16 @@ from The Open Group.
/* Written at Waterloo - JMSellens */
#include <stdio.h>
-
-extern char *getenv();
+#include <stdlib.h>
+#include "Xlib.h"
char *
-XDisplayName( display )
- char *display;
+XDisplayName(
+ _Xconst char *display)
{
char *d;
if ( display != (char *)NULL && *display != '\0' )
- return( display );
+ return( (char *)display );
if ( (d = getenv( "DISPLAY" )) != (char *)NULL )
return( d );
return( "" );
diff --git a/src/DrArc.c b/src/DrArc.c
index 466e7e15..8b416dd3 100644
--- a/src/DrArc.c
+++ b/src/DrArc.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/DrArc.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */
/* Note to future maintainers: XDrawArc does NOT batch successive PolyArc
requests into a single request like XDrawLine, XDrawPoint, etc.
@@ -33,6 +34,7 @@ in this Software without prior written authorization from The Open Group.
#include "Xlibint.h"
+int
XDrawArc(dpy, d, gc, x, y, width, height, angle1, angle2)
register Display *dpy;
Drawable d;
diff --git a/src/DrArcs.c b/src/DrArcs.c
index 9f8ef96a..f798b748 100644
--- a/src/DrArcs.c
+++ b/src/DrArcs.c
@@ -24,11 +24,13 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/DrArcs.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */
#include "Xlibint.h"
#define arc_scale (SIZEOF(xArc) / 4)
+int
XDrawArcs(dpy, d, gc, arcs, n_arcs)
register Display *dpy;
Drawable d;
diff --git a/src/DrLine.c b/src/DrLine.c
index 6b17fbe5..8d9dca21 100644
--- a/src/DrLine.c
+++ b/src/DrLine.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/DrLine.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */
#include "Xlibint.h"
@@ -32,6 +33,7 @@ in this Software without prior written authorization from The Open Group.
#define wsize (SIZEOF(xPolySegmentReq) + WLNSPERBATCH * SIZEOF(xSegment))
#define zsize (SIZEOF(xPolySegmentReq) + ZLNSPERBATCH * SIZEOF(xSegment))
+int
XDrawLine (dpy, d, gc, x1, y1, x2, y2)
register Display *dpy;
Drawable d;
diff --git a/src/DrLines.c b/src/DrLines.c
index 05b0d5d7..198aae5c 100644
--- a/src/DrLines.c
+++ b/src/DrLines.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/DrLines.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */
#include "Xlibint.h"
+int
XDrawLines (dpy, d, gc, points, npoints, mode)
register Display *dpy;
Drawable d;
diff --git a/src/DrPoint.c b/src/DrPoint.c
index 390e9dad..c07942e3 100644
--- a/src/DrPoint.c
+++ b/src/DrPoint.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/DrPoint.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */
#include "Xlibint.h"
@@ -31,6 +32,7 @@ in this Software without prior written authorization from The Open Group.
#define size (SIZEOF(xPolyPointReq) + PTSPERBATCH * SIZEOF(xPoint))
+int
XDrawPoint(dpy, d, gc, x, y)
register Display *dpy;
Drawable d;
diff --git a/src/DrPoints.c b/src/DrPoints.c
index c261be0d..33d3b742 100644
--- a/src/DrPoints.c
+++ b/src/DrPoints.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/DrPoints.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */
#include "Xlibint.h"
+int
XDrawPoints(dpy, d, gc, points, n_points, mode)
register Display *dpy;
Drawable d;
diff --git a/src/DrRect.c b/src/DrRect.c
index 0c3c48e4..2fa0e466 100644
--- a/src/DrRect.c
+++ b/src/DrRect.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/DrRect.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */
#include "Xlibint.h"
@@ -32,6 +33,7 @@ in this Software without prior written authorization from The Open Group.
#define wsize (SIZEOF(xPolyRectangleReq) + WRCTSPERBATCH * SIZEOF(xRectangle))
#define zsize (SIZEOF(xPolyRectangleReq) + ZRCTSPERBATCH * SIZEOF(xRectangle))
+int
XDrawRectangle(dpy, d, gc, x, y, width, height)
register Display *dpy;
Drawable d;
diff --git a/src/DrRects.c b/src/DrRects.c
index ac87bd9b..ff674e93 100644
--- a/src/DrRects.c
+++ b/src/DrRects.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/DrRects.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */
#include "Xlibint.h"
+int
XDrawRectangles(dpy, d, gc, rects, n_rects)
register Display *dpy;
Drawable d;
diff --git a/src/DrSegs.c b/src/DrSegs.c
index 41c4ea4a..dde949da 100644
--- a/src/DrSegs.c
+++ b/src/DrSegs.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/DrSegs.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */
#include "Xlibint.h"
+int
XDrawSegments (dpy, d, gc, segments, nsegments)
register Display *dpy;
Drawable d;
diff --git a/src/ErrDes.c b/src/ErrDes.c
index a7f82cc7..cd1294a4 100644
--- a/src/ErrDes.c
+++ b/src/ErrDes.c
@@ -48,6 +48,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.
******************************************************************/
+/* $XFree86: xc/lib/X11/ErrDes.c,v 3.11 2003/08/06 14:03:59 eich Exp $ */
#include "Xlibint.h"
#include <X11/Xos.h>
@@ -58,17 +59,11 @@ SOFTWARE.
#define ERRORDB "/usr/lib/X11/XErrorDB"
#endif
-#ifdef __STDC__
-#define Const const
-#else
-#define Const /**/
-#endif
-
/*
* descriptions of errors in Section 4 of Protocol doc (pp. 350-351); more
* verbose descriptions are given in the error database
*/
-static Const char * Const _XErrorList[] = {
+static const char * const _XErrorList[] = {
/* No error */ "no error",
/* BadRequest */ "BadRequest",
/* BadValue */ "BadValue",
@@ -90,6 +85,7 @@ static Const char * Const _XErrorList[] = {
};
+int
XGetErrorText(dpy, code, buffer, nbytes)
register int code;
register Display *dpy;
@@ -125,7 +121,7 @@ XGetErrorText(dpy, code, buffer, nbytes)
return 0;
}
-#if NeedFunctionPrototypes
+int
/*ARGSUSED*/
XGetErrorDatabaseText(
Display *dpy,
@@ -134,15 +130,6 @@ XGetErrorDatabaseText(
_Xconst char *defaultp,
char *buffer,
int nbytes)
-#else
-/*ARGSUSED*/
-XGetErrorDatabaseText(dpy, name, type, defaultp, buffer, nbytes)
- Display *dpy;
- register char *name, *type;
- char *defaultp;
- char *buffer;
- int nbytes;
-#endif
{
static XrmDatabase db = NULL;
@@ -178,11 +165,19 @@ XGetErrorDatabaseText(dpy, name, type, defaultp, buffer, nbytes)
if (db)
{
tlen = strlen (name) + strlen (type) + 2;
- if (tlen <= BUFSIZE) tptr = temp;
- else tptr = Xmalloc (tlen);
- sprintf(tptr, "%s.%s", name, type);
- XrmGetResource(db, tptr, "ErrorType.ErrorNumber", &type_str, &result);
- if (tptr != temp) Xfree (tptr);
+ if (tlen <= BUFSIZE)
+ tptr = temp;
+ else
+ tptr = Xmalloc (tlen);
+ if (tptr) {
+ sprintf(tptr, "%s.%s", name, type);
+ XrmGetResource(db, tptr, "ErrorType.ErrorNumber",
+ &type_str, &result);
+ if (tptr != temp)
+ Xfree (tptr);
+ } else {
+ result.addr = (XPointer) NULL;
+ }
}
else
result.addr = (XPointer)NULL;
diff --git a/src/ErrHndlr.c b/src/ErrHndlr.c
index b7f6418b..941d219c 100644
--- a/src/ErrHndlr.c
+++ b/src/ErrHndlr.c
@@ -24,25 +24,20 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/ErrHndlr.c,v 1.6 2003/04/13 19:22:15 dawes Exp $ */
#include "Xlibint.h"
-extern int _XDefaultError();
-extern int _XDefaultIOError();
/*
* XErrorHandler - This procedure sets the X non-fatal error handler
* (_XErrorFunction) to be the specified routine. If NULL is passed in
* the original error handler is restored.
*/
-#if NeedFunctionPrototypes
-XErrorHandler XSetErrorHandler(XErrorHandler handler)
-#else
-XErrorHandler XSetErrorHandler(handler)
- register XErrorHandler handler;
-#endif
+XErrorHandler
+XSetErrorHandler(XErrorHandler handler)
{
- int (*oldhandler)();
+ int (*oldhandler)(Display *dpy, XErrorEvent *event);
_XLockMutex(_Xglobal_lock);
oldhandler = _XErrorFunction;
@@ -67,15 +62,10 @@ XErrorHandler XSetErrorHandler(handler)
* the original error handler is restored.
*/
-extern int _XIOError();
-#if NeedFunctionPrototypes
-XIOErrorHandler XSetIOErrorHandler(XIOErrorHandler handler)
-#else
-XIOErrorHandler XSetIOErrorHandler(handler)
- register XIOErrorHandler handler;
-#endif
+XIOErrorHandler
+XSetIOErrorHandler(XIOErrorHandler handler)
{
- int (*oldhandler)();
+ int (*oldhandler)(Display *dpy);
_XLockMutex(_Xglobal_lock);
oldhandler = _XIOErrorFunction;
diff --git a/src/EvToWire.c b/src/EvToWire.c
index 361c4e2c..2a84c322 100644
--- a/src/EvToWire.c
+++ b/src/EvToWire.c
@@ -27,6 +27,7 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
+/* $XFree86: xc/lib/X11/EvToWire.c,v 1.4 2001/08/18 02:41:28 dawes Exp $ */
/*
* XEvToWire.c - Internal support routines for the C subroutine
@@ -41,10 +42,10 @@ from The Open Group.
* reformat a wire event into an XEvent structure of the right type.
*/
Status
-_XEventToWire(dpy, re, event)
-register Display *dpy; /* pointer to display structure */
-register XEvent *re; /* pointer to where event should be reformatted */
-register xEvent *event; /* wire protocol event */
+_XEventToWire(
+register Display *dpy, /* pointer to display structure */
+register XEvent *re, /* pointer to where event should be reformatted */
+register xEvent *event) /* wire protocol event */
{
switch (event->u.u.type = re->type) {
case KeyPress:
diff --git a/src/FSSaver.c b/src/FSSaver.c
index 57cde1aa..0699257a 100644
--- a/src/FSSaver.c
+++ b/src/FSSaver.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/FSSaver.c,v 1.3 2001/01/17 19:41:35 dawes Exp $ */
#include "Xlibint.h"
+int
XActivateScreenSaver(dpy)
register Display *dpy;
@@ -35,6 +37,7 @@ XActivateScreenSaver(dpy)
return 1;
}
+int
XResetScreenSaver(dpy)
register Display *dpy;
@@ -43,6 +46,7 @@ XResetScreenSaver(dpy)
return 1;
}
+int
XForceScreenSaver(dpy, mode)
register Display *dpy;
int mode;
diff --git a/src/FSWrap.c b/src/FSWrap.c
index 14adca02..2bdfa303 100644
--- a/src/FSWrap.c
+++ b/src/FSWrap.c
@@ -56,6 +56,8 @@ from The Open Group.
*/
+/* $XFree86: xc/lib/X11/FSWrap.c,v 1.8 2003/08/22 19:27:24 eich Exp $ */
+
#include "Xlibint.h"
#include "Xlcint.h"
#include <ctype.h>
@@ -65,13 +67,13 @@ from The Open Group.
#define XMAXLIST 256
char **
-_XParseBaseFontNameList(str, num)
- char *str;
- int *num;
+_XParseBaseFontNameList(
+ char *str,
+ int *num)
{
char *plist[XMAXLIST];
char **list;
- char *ptr;
+ char *ptr, *psave;
*num = 0;
if (!str || !*str) {
@@ -87,6 +89,7 @@ _XParseBaseFontNameList(str, num)
}
strcpy(ptr, str);
+ psave = ptr;
/* somebody who specifies more than XMAXLIST basefontnames will lose */
while (*num < (sizeof plist / sizeof plist[0])) {
char *back;
@@ -110,7 +113,7 @@ _XParseBaseFontNameList(str, num)
break;
}
if (!(list = (char **) Xmalloc((unsigned)sizeof(char *) * (*num + 1)))) {
- Xfree(ptr);
+ Xfree(psave);
return (char **)NULL;
}
memcpy((char *)list, (char *)plist, sizeof(char *) * (*num));
@@ -120,9 +123,9 @@ _XParseBaseFontNameList(str, num)
}
static char **
-copy_string_list(string_list, list_count)
- char **string_list;
- int list_count;
+copy_string_list(
+ char **string_list,
+ int list_count)
{
char **string_list_ret, **list_src, **list_dst, *dst;
int length, count;
@@ -157,7 +160,6 @@ copy_string_list(string_list, list_count)
return string_list_ret;
}
-#if NeedFunctionPrototypes
XFontSet
XCreateFontSet (
Display *dpy,
@@ -165,16 +167,6 @@ XCreateFontSet (
char ***missing_charset_list,
int *missing_charset_count,
char **def_string)
-#else
-XFontSet
-XCreateFontSet (dpy, base_font_name_list, missing_charset_list,
- missing_charset_count, def_string)
- Display *dpy;
- char *base_font_name_list;
- char ***missing_charset_list;
- int *missing_charset_count;
- char **def_string;
-#endif
{
XOM om;
XOC oc;
diff --git a/src/FillArc.c b/src/FillArc.c
index 22e41910..3866a891 100644
--- a/src/FillArc.c
+++ b/src/FillArc.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/FillArc.c,v 1.3 2001/01/17 19:41:35 dawes Exp $ */
#include "Xlibint.h"
@@ -31,6 +32,7 @@ in this Software without prior written authorization from The Open Group.
#define size (SIZEOF(xPolyFillArcReq) + FARCSPERBATCH * SIZEOF(xArc))
+int
XFillArc(dpy, d, gc, x, y, width, height, angle1, angle2)
register Display *dpy;
Drawable d;
diff --git a/src/FillArcs.c b/src/FillArcs.c
index 115f25cc..c644f306 100644
--- a/src/FillArcs.c
+++ b/src/FillArcs.c
@@ -24,11 +24,13 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/FillArcs.c,v 1.3 2001/01/17 19:41:35 dawes Exp $ */
#include "Xlibint.h"
#define arc_scale (SIZEOF(xArc) / 4)
+int
XFillArcs(dpy, d, gc, arcs, n_arcs)
register Display *dpy;
Drawable d;
diff --git a/src/FillPoly.c b/src/FillPoly.c
index c8f40c63..a363247f 100644
--- a/src/FillPoly.c
+++ b/src/FillPoly.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/FillPoly.c,v 1.3 2001/01/17 19:41:35 dawes Exp $ */
#include "Xlibint.h"
+int
XFillPolygon(dpy, d, gc, points, n_points, shape, mode)
register Display *dpy;
Drawable d;
diff --git a/src/FillRct.c b/src/FillRct.c
index d2537c7c..79da709f 100644
--- a/src/FillRct.c
+++ b/src/FillRct.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/FillRct.c,v 1.3 2001/01/17 19:41:35 dawes Exp $ */
#include "Xlibint.h"
@@ -31,6 +32,7 @@ in this Software without prior written authorization from The Open Group.
#define size (SIZEOF(xPolyFillRectangleReq) + FRCTSPERBATCH * SIZEOF(xRectangle))
+int
XFillRectangle(dpy, d, gc, x, y, width, height)
register Display *dpy;
Drawable d;
diff --git a/src/FillRcts.c b/src/FillRcts.c
index 4e86fec3..017cd0c3 100644
--- a/src/FillRcts.c
+++ b/src/FillRcts.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/FillRcts.c,v 1.3 2001/01/17 19:41:35 dawes Exp $ */
#include "Xlibint.h"
+int
XFillRectangles(dpy, d, gc, rectangles, n_rects)
register Display *dpy;
Drawable d;
diff --git a/src/FilterEv.c b/src/FilterEv.c
index 2b104839..afc7b444 100644
--- a/src/FilterEv.c
+++ b/src/FilterEv.c
@@ -53,17 +53,13 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
+/* $XFree86: xc/lib/X11/FilterEv.c,v 3.4 2001/07/29 05:01:11 tsi Exp $ */
#define NEED_EVENTS
#include "Xlibint.h"
#include "Xlcint.h"
-#ifdef __STDC__
-#define Const const
-#else
-#define Const /**/
-#endif
-extern long Const _Xevent_to_mask[];
+extern long const _Xevent_to_mask[];
/*
* Look up if there is a specified filter for the event.
diff --git a/src/Flush.c b/src/Flush.c
index fd6b3935..58eb4e6d 100644
--- a/src/Flush.c
+++ b/src/Flush.c
@@ -24,12 +24,14 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/Flush.c,v 1.3 2001/01/17 19:41:35 dawes Exp $ */
#include "Xlibint.h"
/* Flush all buffered output requests. */
/* NOTE: NOT necessary when calling any of the Xlib routines. */
+int
XFlush (dpy)
register Display *dpy;
{
diff --git a/src/Font.c b/src/Font.c
index 2b1eae84..da1937a2 100644
--- a/src/Font.c
+++ b/src/Font.c
@@ -2,6 +2,7 @@
/*
Copyright 1986, 1998 The Open Group
+Copyright (c) 2000 The XFree86 Project, Inc.
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
@@ -15,37 +16,92 @@ 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP 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.
+X CONSORTIUM OR THE XFREE86 PROJECT 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.
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
+Except as contained in this notice, the name of the X Consortium or of the
+XFree86 Project shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Software without prior written
+authorization from the X Consortium and the XFree86 Project.
*/
+/* $XFree86: xc/lib/X11/Font.c,v 1.17 2003/04/13 19:22:16 dawes Exp $ */
#define NEED_REPLIES
#include "Xlibint.h"
-static XFontStruct *_XQueryFont();
+#if defined(XF86BIGFONT) && !defined(MUSTCOPY)
+#define USE_XF86BIGFONT
+#endif
+#ifdef USE_XF86BIGFONT
+#include <sys/types.h>
+#ifdef HAS_SHM
+#include <sys/ipc.h>
+#include <sys/shm.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <X11/extensions/xf86bigfstr.h>
+#endif
+
+#include "Xlcint.h"
+#include "XlcPubI.h"
+
+
+static XFontStruct *_XQueryFont(
+ Display* /* dpy */,
+ Font /* fid */,
+ unsigned long /* seq */
+);
+
+#ifdef USE_XF86BIGFONT
+
+/* Private data for this extension. */
+typedef struct {
+ XExtCodes *codes;
+ CARD32 serverSignature;
+ CARD32 serverCapabilities;
+} XF86BigfontCodes;
+
+/* Additional bit masks that can be set in serverCapabilities */
+#define CAP_VerifiedLocal 256
+
+static XF86BigfontCodes *_XF86BigfontCodes(
+ Display* /* dpy */
+);
+
+static XFontStruct *_XF86BigfontQueryFont(
+ Display* /* dpy */,
+ XF86BigfontCodes* /* extcodes */,
+ Font /* fid */,
+ unsigned long /* seq */
+);
+
+void _XF86BigfontFreeFontMetrics(
+ XFontStruct* /* fs */
+);
+
+#endif /* USE_XF86BIGFONT */
+
-#if NeedFunctionPrototypes
XFontStruct *XLoadQueryFont(
register Display *dpy,
_Xconst char *name)
-#else
-XFontStruct *XLoadQueryFont(dpy, name)
- register Display *dpy;
- char *name;
-#endif
{
XFontStruct *font_result;
register long nbytes;
Font fid;
xOpenFontReq *req;
unsigned long seq;
+#ifdef USE_XF86BIGFONT
+ XF86BigfontCodes *extcodes = _XF86BigfontCodes(dpy);
+#endif
+ if (_XF86LoadQueryLocaleFont(dpy, name, &font_result, (Font *)0))
+ return font_result;
LockDisplay(dpy);
GetReq(OpenFont, req);
seq = dpy->request;
@@ -53,12 +109,44 @@ XFontStruct *XLoadQueryFont(dpy, name)
req->fid = fid = XAllocID(dpy);
req->length += (nbytes+3)>>2;
Data (dpy, name, nbytes);
- font_result = _XQueryFont(dpy, fid, seq);
+ font_result = NULL;
+#ifdef USE_XF86BIGFONT
+ if (extcodes) {
+ font_result = _XF86BigfontQueryFont(dpy, extcodes, fid, seq);
+ seq = 0;
+ }
+#endif
+ if (!font_result)
+ font_result = _XQueryFont(dpy, fid, seq);
UnlockDisplay(dpy);
SyncHandle();
return font_result;
}
+XFontStruct *XQueryFont (dpy, fid)
+ register Display *dpy;
+ Font fid;
+{
+ XFontStruct *font_result;
+#ifdef USE_XF86BIGFONT
+ XF86BigfontCodes *extcodes = _XF86BigfontCodes(dpy);
+#endif
+
+ LockDisplay(dpy);
+ font_result = NULL;
+#ifdef USE_XF86BIGFONT
+ if (extcodes) {
+ font_result = _XF86BigfontQueryFont(dpy, extcodes, fid, 0L);
+ }
+#endif
+ if (!font_result)
+ font_result = _XQueryFont(dpy, fid, 0L);
+ UnlockDisplay(dpy);
+ SyncHandle();
+ return font_result;
+}
+
+int
XFreeFont(dpy, fs)
register Display *dpy;
XFontStruct *fs;
@@ -73,15 +161,21 @@ XFreeFont(dpy, fs)
GetResReq (CloseFont, fs->fid, req);
UnlockDisplay(dpy);
SyncHandle();
+ if (fs->per_char) {
+#ifdef USE_XF86BIGFONT
+ _XF86BigfontFreeFontMetrics(fs);
+#else
+ Xfree ((char *) fs->per_char);
+#endif
+ }
_XFreeExtData(fs->ext_data);
- if (fs->per_char)
- Xfree ((char *) fs->per_char);
if (fs->properties)
- Xfree ((char *) fs->properties);
+ Xfree ((char *) fs->properties);
Xfree ((char *) fs);
return 1;
}
+
static XFontStruct *
_XQueryFont (dpy, fid, seq)
register Display *dpy;
@@ -176,7 +270,7 @@ _XQueryFont (dpy, fid, seq)
(nbytes + reply.nCharInfos * SIZEOF(xCharInfo)));
return (XFontStruct *)NULL;
}
- _XRead32 (dpy, (char *)fs->properties, nbytes);
+ _XRead32 (dpy, (long *)fs->properties, nbytes);
}
/*
* If no characters in font, then it is a bad font, but
@@ -223,19 +317,415 @@ _XQueryFont (dpy, fid, seq)
return fs;
}
+#ifdef USE_XF86BIGFONT
-XFontStruct *XQueryFont (dpy, fid)
+/* Magic cookie for finding the right XExtData structure on the display's
+ extension list. */
+static int XF86BigfontNumber = 1040697125;
+
+static int
+_XF86BigfontFreeCodes (
+ XExtData *extension)
+{
+ /* Don't Xfree(extension->private_data) because it is on the same malloc
+ chunk as extension. */
+ /* Don't Xfree(extension->private_data->codes) because this is shared with
+ the display's ext_procs list. */
+ return 0;
+}
+
+static XF86BigfontCodes *
+_XF86BigfontCodes (
+ register Display *dpy)
+{
+ XEDataObject dpy_union;
+ XExtData *pData;
+ XF86BigfontCodes *pCodes;
+ char *envval;
+
+ dpy_union.display = dpy;
+
+ /* If the server is known to support the XF86Bigfont extension,
+ * return the extension codes. If the server is known to not support
+ * the extension, don't bother checking again.
+ */
+ pData = XFindOnExtensionList(XEHeadOfExtensionList(dpy_union),
+ XF86BigfontNumber);
+ if (pData)
+ return (XF86BigfontCodes *) pData->private_data;
+
+ pData = (XExtData *) Xmalloc(sizeof(XExtData) + sizeof(XF86BigfontCodes));
+ if (!pData) {
+ /* Out of luck. */
+ return (XF86BigfontCodes *) NULL;
+ }
+
+ /* See if the server supports the XF86Bigfont extension. */
+ envval = getenv("XF86BIGFONT_DISABLE"); /* Let the user disable it. */
+ if (envval != NULL && envval[0] != '\0')
+ pCodes = NULL;
+ else {
+ XExtCodes *codes = XInitExtension(dpy, XF86BIGFONTNAME);
+ if (codes == NULL)
+ pCodes = NULL;
+ else {
+ pCodes = (XF86BigfontCodes *) &pData[1];
+ pCodes->codes = codes;
+ }
+ }
+ pData->number = XF86BigfontNumber;
+ pData->private_data = (XPointer) pCodes;
+ pData->free_private = _XF86BigfontFreeCodes;
+ XAddToExtensionList(XEHeadOfExtensionList(dpy_union), pData);
+ if (pCodes) {
+ int result;
+
+ /* See if the server supports the XF86BigfontQueryFont request. */
+ xXF86BigfontQueryVersionReply reply;
+ register xXF86BigfontQueryVersionReq *req;
+
+ LockDisplay(dpy);
+
+ GetReq(XF86BigfontQueryVersion, req);
+ req->reqType = pCodes->codes->major_opcode;
+ req->xf86bigfontReqType = X_XF86BigfontQueryVersion;
+
+ result = _XReply (dpy, (xReply *) &reply,
+ (SIZEOF(xXF86BigfontQueryVersionReply) - SIZEOF(xReply)) >> 2,
+ xFalse);
+
+ UnlockDisplay(dpy);
+ SyncHandle();
+
+ if(!result)
+ goto ignore_extension;
+
+ /* No need to provide backward compatibility with version 1.0. It
+ was never widely distributed. */
+ if (!(reply.majorVersion > 1
+ || (reply.majorVersion == 1 && reply.minorVersion >= 1)))
+ goto ignore_extension;
+
+ pCodes->serverSignature = reply.signature;
+ pCodes->serverCapabilities = reply.capabilities;
+ }
+ return pCodes;
+
+ ignore_extension:
+ /* No need to Xfree(pCodes) or Xfree(pCodes->codes), see
+ _XF86BigfontFreeCodes comment. */
+ pCodes = (XF86BigfontCodes *) NULL;
+ pData->private_data = (XPointer) pCodes;
+ return pCodes;
+}
+
+static int
+_XF86BigfontFreeNop (
+ XExtData *extension)
+{
+ return 0;
+}
+
+static XFontStruct *
+_XF86BigfontQueryFont (dpy, extcodes, fid, seq)
register Display *dpy;
+ XF86BigfontCodes *extcodes;
Font fid;
+ unsigned long seq;
{
- XFontStruct *font_result;
+ register XFontStruct *fs;
+ register long nbytes;
+ xXF86BigfontQueryFontReply reply;
+ register xXF86BigfontQueryFontReq *req;
+ register _XExtension *ext;
+ _XAsyncHandler async1;
+ _XAsyncErrorState async1_state;
+ _XAsyncHandler async2;
+ _XAsyncErrorState async2_state;
- LockDisplay(dpy);
- font_result = _XQueryFont(dpy, fid, 0L);
- UnlockDisplay(dpy);
- SyncHandle();
- return font_result;
+ if (seq) {
+ async1_state.min_sequence_number = seq;
+ async1_state.max_sequence_number = seq;
+ async1_state.error_code = BadName;
+ async1_state.major_opcode = X_OpenFont;
+ async1_state.minor_opcode = 0;
+ async1_state.error_count = 0;
+ async1.next = dpy->async_handlers;
+ async1.handler = _XAsyncErrorHandler;
+ async1.data = (XPointer)&async1_state;
+ dpy->async_handlers = &async1;
+ }
+
+ GetReq(XF86BigfontQueryFont, req);
+ req->reqType = extcodes->codes->major_opcode;
+ req->xf86bigfontReqType = X_XF86BigfontQueryFont;
+ req->id = fid;
+ req->flags = (extcodes->serverCapabilities & XF86Bigfont_CAP_LocalShm
+ ? XF86Bigfont_FLAGS_Shm : 0);
+
+ /* The function _XQueryFont benefits from a "magic" error handler for
+ BadFont coming from a X_QueryFont request. (See function _XReply.)
+ We have to establish an error handler ourselves. */
+ async2_state.min_sequence_number = dpy->request;
+ async2_state.max_sequence_number = dpy->request;
+ async2_state.error_code = BadFont;
+ async2_state.major_opcode = extcodes->codes->major_opcode;
+ async2_state.minor_opcode = X_XF86BigfontQueryFont;
+ async2_state.error_count = 0;
+ async2.next = dpy->async_handlers;
+ async2.handler = _XAsyncErrorHandler;
+ async2.data = (XPointer)&async2_state;
+ dpy->async_handlers = &async2;
+
+ if (!_XReply (dpy, (xReply *) &reply,
+ ((SIZEOF(xXF86BigfontQueryFontReply) - SIZEOF(xReply)) >> 2), xFalse)) {
+ DeqAsyncHandler(dpy, &async2);
+ if (seq)
+ DeqAsyncHandler(dpy, &async1);
+ return (XFontStruct *)NULL;
+ }
+ DeqAsyncHandler(dpy, &async2);
+ if (seq)
+ DeqAsyncHandler(dpy, &async1);
+ if (! (fs = (XFontStruct *) Xmalloc (sizeof (XFontStruct)))) {
+ _XEatData(dpy,
+ reply.nFontProps * SIZEOF(xFontProp)
+ + (reply.nCharInfos > 0 && reply.shmid == (CARD32)(-1)
+ ? reply.nUniqCharInfos * SIZEOF(xCharInfo)
+ + (reply.nCharInfos+1)/2 * 2 * sizeof(CARD16)
+ : 0));
+ return (XFontStruct *)NULL;
+ }
+ fs->ext_data = NULL;
+ fs->fid = fid;
+ fs->direction = reply.drawDirection;
+ fs->min_char_or_byte2 = reply.minCharOrByte2;
+ fs->max_char_or_byte2 = reply.maxCharOrByte2;
+ fs->min_byte1 = reply.minByte1;
+ fs->max_byte1 = reply.maxByte1;
+ fs->default_char = reply.defaultChar;
+ fs->all_chars_exist = reply.allCharsExist;
+ fs->ascent = cvtINT16toInt (reply.fontAscent);
+ fs->descent = cvtINT16toInt (reply.fontDescent);
+
+ /* XXX the next two statements won't work if short isn't 16 bits */
+ fs->min_bounds = * (XCharStruct *) &reply.minBounds;
+ fs->max_bounds = * (XCharStruct *) &reply.maxBounds;
+
+ fs->n_properties = reply.nFontProps;
+ /*
+ * if no properties defined for the font, then it is bad
+ * font, but shouldn't try to read nothing.
+ */
+ fs->properties = NULL;
+ if (fs->n_properties > 0) {
+ nbytes = reply.nFontProps * sizeof(XFontProp);
+ fs->properties = (XFontProp *) Xmalloc ((unsigned) nbytes);
+ nbytes = reply.nFontProps * SIZEOF(xFontProp);
+ if (! fs->properties) {
+ Xfree((char *) fs);
+ _XEatData(dpy,
+ nbytes
+ + (reply.nCharInfos > 0 && reply.shmid == (CARD32)(-1)
+ ? reply.nUniqCharInfos * SIZEOF(xCharInfo)
+ + (reply.nCharInfos+1)/2 * 2 * sizeof(CARD16)
+ : 0));
+ return (XFontStruct *)NULL;
+ }
+ _XRead32 (dpy, (long *)fs->properties, nbytes);
+ }
+
+ fs->per_char = NULL;
+ if (reply.nCharInfos > 0) {
+ /* fprintf(stderr, "received font metrics, nCharInfos = %d, nUniqCharInfos = %d, shmid = %d\n", reply.nCharInfos, reply.nUniqCharInfos, reply.shmid); */
+ if (reply.shmid == (CARD32)(-1)) {
+ xCharInfo* pUniqCI;
+ CARD16* pIndex2UniqIndex;
+ int i;
+
+ nbytes = reply.nUniqCharInfos * SIZEOF(xCharInfo)
+ + (reply.nCharInfos+1)/2 * 2 * sizeof(CARD16);
+ pUniqCI = (xCharInfo *) Xmalloc (nbytes);
+ if (!pUniqCI) {
+ if (fs->properties) Xfree((char *) fs->properties);
+ Xfree((char *) fs);
+ _XEatData(dpy, nbytes);
+ return (XFontStruct *)NULL;
+ }
+ if (! (fs->per_char = (XCharStruct *) Xmalloc (reply.nCharInfos * sizeof(XCharStruct)))) {
+ Xfree((char *) pUniqCI);
+ if (fs->properties) Xfree((char *) fs->properties);
+ Xfree((char *) fs);
+ _XEatData(dpy, nbytes);
+ return (XFontStruct *)NULL;
+ }
+ _XRead16 (dpy, (char *) pUniqCI, nbytes);
+ pIndex2UniqIndex = (CARD16*) (pUniqCI + reply.nUniqCharInfos);
+ for (i = 0; i < reply.nCharInfos; i++) {
+ if (pIndex2UniqIndex[i] >= reply.nUniqCharInfos) {
+ fprintf(stderr, "_XF86BigfontQueryFont: server returned wrong data\n");
+ Xfree((char *) pUniqCI);
+ if (fs->properties) Xfree((char *) fs->properties);
+ Xfree((char *) fs);
+ return (XFontStruct *)NULL;
+ }
+ /* XXX the next statement won't work if short isn't 16 bits */
+ fs->per_char[i] = * (XCharStruct *) &pUniqCI[pIndex2UniqIndex[i]];
+ }
+ Xfree((char *) pUniqCI);
+ } else {
+#ifdef HAS_SHM
+ XExtData *pData;
+ XEDataObject fs_union;
+ char *addr;
+
+ pData = (XExtData *) Xmalloc(sizeof(XExtData));
+ if (!pData) {
+ if (fs->properties) Xfree((char *) fs->properties);
+ Xfree((char *) fs);
+ return (XFontStruct *)NULL;
+ }
+
+ /* In some cases (e.g. an ssh daemon forwarding an X session to
+ a remote machine) it is possible that the X server thinks we
+ are running on the same machine (because getpeername() and
+ LocalClient() cannot know about the forwarding) but we are
+ not really local. Therefore, when we attach the first shared
+ memory segment, we verify that we are on the same machine as
+ the X server by checking that 1. shmat() succeeds, 2. the
+ segment has a sufficient size, 3. it contains the X server's
+ signature. Then we set the CAP_VerifiedLocal bit to indicate
+ the verification was successful. */
+
+ if ((addr = shmat(reply.shmid, 0, SHM_RDONLY)) == (char *)-1) {
+ if (extcodes->serverCapabilities & CAP_VerifiedLocal)
+ fprintf(stderr, "_XF86BigfontQueryFont: could not attach shm segment\n");
+ Xfree((char *) pData);
+ if (fs->properties) Xfree((char *) fs->properties);
+ Xfree((char *) fs);
+ /* Stop requesting shared memory transport from now on. */
+ extcodes->serverCapabilities &= ~ XF86Bigfont_CAP_LocalShm;
+ return (XFontStruct *)NULL;
+ }
+
+ if (!(extcodes->serverCapabilities & CAP_VerifiedLocal)) {
+ struct shmid_ds buf;
+ if (!(shmctl(reply.shmid, IPC_STAT, &buf) >= 0
+ && buf.shm_segsz >= reply.shmsegoffset + reply.nCharInfos * sizeof(XCharStruct) + sizeof(CARD32)
+ && *(CARD32 *)(addr + reply.shmsegoffset + reply.nCharInfos * sizeof(XCharStruct)) == extcodes->serverSignature)) {
+ shmdt(addr);
+ Xfree((char *) pData);
+ if (fs->properties) Xfree((char *) fs->properties);
+ Xfree((char *) fs);
+ /* Stop requesting shared memory transport from now on. */
+ extcodes->serverCapabilities &= ~ XF86Bigfont_CAP_LocalShm;
+ return (XFontStruct *)NULL;
+ }
+ extcodes->serverCapabilities |= CAP_VerifiedLocal;
+ }
+
+ pData->number = XF86BigfontNumber;
+ pData->private_data = (XPointer) addr;
+ pData->free_private = _XF86BigfontFreeNop;
+ fs_union.font = fs;
+ XAddToExtensionList(XEHeadOfExtensionList(fs_union), pData);
+
+ fs->per_char = (XCharStruct *) (addr + reply.shmsegoffset);
+#else
+ fprintf(stderr, "_XF86BigfontQueryFont: try recompiling libX11 with HasShm, Xserver has shm support\n");
+ if (fs->properties) Xfree((char *) fs->properties);
+ Xfree((char *) fs);
+ /* Stop requesting shared memory transport from now on. */
+ extcodes->serverCapabilities &= ~ XF86Bigfont_CAP_LocalShm;
+ return (XFontStruct *)NULL;
+#endif
+ }
+ }
+
+ /* call out to any extensions interested */
+ for (ext = dpy->ext_procs; ext; ext = ext->next)
+ if (ext->create_Font) (*ext->create_Font)(dpy, fs, &ext->codes);
+ return fs;
}
-
-
+void
+_XF86BigfontFreeFontMetrics (fs)
+ XFontStruct *fs;
+{
+#ifdef HAS_SHM
+ XExtData *pData;
+ XEDataObject fs_union;
+
+ fs_union.font = fs;
+ if ((pData = XFindOnExtensionList(XEHeadOfExtensionList(fs_union),
+ XF86BigfontNumber)))
+ shmdt ((char *) pData->private_data);
+ else
+ Xfree ((char *) fs->per_char);
+#else
+ Xfree ((char *) fs->per_char);
+#endif
+}
+
+#endif /* USE_XF86BIGFONT */
+
+int _XF86LoadQueryLocaleFont(
+ Display *dpy,
+ _Xconst char *name,
+ XFontStruct **xfp,
+ Font *fidp)
+{
+ int l;
+ char *charset, *p;
+ char buf[256];
+ XFontStruct *fs;
+ XLCd lcd;
+
+ if (!name)
+ return 0;
+ l = strlen(name);
+ if (l < 2 || name[l - 1] != '*' || name[l - 2] != '-')
+ return 0;
+ charset = 0;
+ /* next three lines stolen from _XkbGetCharset() */
+ lcd = _XlcCurrentLC();
+ if ((lcd = _XlcCurrentLC()) != 0)
+ charset = XLC_PUBLIC(lcd, encoding_name);
+ if (!charset || (p = strrchr(charset, '-')) == 0 || p == charset || p[1] == 0 || (p[1] == '*' && p[2] == 0)) {
+ /* prefer latin1 if no encoding found */
+ charset = "ISO8859-1";
+ p = charset + 7;
+ }
+ if (l - 2 - (p - charset) < 0)
+ return 0;
+ if (_XlcNCompareISOLatin1(name + l - 2 - (p - charset), charset, p - charset))
+ return 0;
+ if (strlen(p + 1) + l - 1 >= sizeof(buf) - 1)
+ return 0;
+ strcpy(buf, name);
+ strcpy(buf + l - 1, p + 1);
+ fs = XLoadQueryFont(dpy, buf);
+ if (!fs)
+ return 0;
+ if (xfp) {
+ *xfp = fs;
+ if (fidp)
+ *fidp = fs->fid;
+ } else if (fidp) {
+ if (fs->per_char) {
+#ifdef USE_XF86BIGFONT
+ _XF86BigfontFreeFontMetrics(fs);
+#else
+ Xfree ((char *) fs->per_char);
+#endif
+ }
+ _XFreeExtData(fs->ext_data);
+ if (fs->properties)
+ Xfree ((char *) fs->properties);
+ *fidp = fs->fid;
+ Xfree ((char *) fs);
+ } else {
+ XFreeFont(dpy, fs);
+ }
+ return 1;
+}
diff --git a/src/FontInfo.c b/src/FontInfo.c
index 2dd4e793..a98d0736 100644
--- a/src/FontInfo.c
+++ b/src/FontInfo.c
@@ -24,25 +24,26 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/FontInfo.c,v 1.6 2001/12/14 19:54:00 dawes Exp $ */
#define NEED_REPLIES
#include "Xlibint.h"
-#if NeedFunctionPrototypes
+#if defined(XF86BIGFONT) && !defined(MUSTCOPY)
+#define USE_XF86BIGFONT
+#endif
+#ifdef USE_XF86BIGFONT
+extern void _XF86BigfontFreeFontMetrics(
+ XFontStruct* /* fs */
+);
+#endif
+
char **XListFontsWithInfo(
register Display *dpy,
_Xconst char *pattern, /* null-terminated */
int maxNames,
int *actualCount, /* RETURN */
XFontStruct **info) /* RETURN */
-#else
-char **XListFontsWithInfo(dpy, pattern, maxNames, actualCount, info)
-register Display *dpy;
-char *pattern; /* null-terminated */
-int maxNames;
-int *actualCount; /* RETURN */
-XFontStruct **info; /* RETURN */
-#endif
{
register long nbytes;
register int i;
@@ -163,7 +164,7 @@ XFontStruct **info; /* RETURN */
if (! (fs->properties = (XFontProp *) Xmalloc((unsigned) nbytes)))
goto badmem;
nbytes = reply.nFontProps * SIZEOF(xFontProp);
- _XRead32 (dpy, (char *)fs->properties, nbytes);
+ _XRead32 (dpy, (long *)fs->properties, nbytes);
} else
fs->properties = NULL;
@@ -174,7 +175,7 @@ XFontStruct **info; /* RETURN */
flist[i] = (char *) Xmalloc ((unsigned int) j);
if (! flist[i]) {
if (finfo[i].properties) Xfree((char *) finfo[i].properties);
- nbytes = reply.nameLength + 3 & ~3;
+ nbytes = (reply.nameLength + 3) & ~3;
_XEatData(dpy, (unsigned long) nbytes);
goto badmem;
}
@@ -221,7 +222,7 @@ XFontStruct **info; /* RETURN */
return (char **) NULL;
}
-
+int
XFreeFontInfo (names, info, actualCount)
char **names;
XFontStruct *info;
@@ -238,7 +239,11 @@ int actualCount;
if (info) {
for (i = 0; i < actualCount; i++) {
if (info[i].per_char)
+#ifdef USE_XF86BIGFONT
+ _XF86BigfontFreeFontMetrics(&info[i]);
+#else
Xfree ((char *) info[i].per_char);
+#endif
if (info[i].properties)
Xfree ((char *) info[i].properties);
}
diff --git a/src/FontNames.c b/src/FontNames.c
index 8432b2f9..f6e7036e 100644
--- a/src/FontNames.c
+++ b/src/FontNames.c
@@ -25,22 +25,17 @@ in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/FontNames.c,v 1.6 2001/12/14 19:54:00 dawes Exp $ */
+
#define NEED_REPLIES
#include "Xlibint.h"
-#if NeedFunctionPrototypes
-char **XListFonts(
+char **
+XListFonts(
register Display *dpy,
_Xconst char *pattern, /* null-terminated */
int maxNames,
int *actualCount) /* RETURN */
-#else
-char **XListFonts(dpy, pattern, maxNames, actualCount)
-register Display *dpy;
-char *pattern; /* null-terminated */
-int maxNames;
-int *actualCount; /* RETURN */
-#endif
{
register long nbytes;
register unsigned i;
@@ -102,6 +97,7 @@ int *actualCount; /* RETURN */
return (flist);
}
+int
XFreeFontNames(list)
char **list;
{
diff --git a/src/FreeCmap.c b/src/FreeCmap.c
index 3a2d370c..1195b3ad 100644
--- a/src/FreeCmap.c
+++ b/src/FreeCmap.c
@@ -24,14 +24,16 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/FreeCmap.c,v 1.4 2001/12/14 19:54:00 dawes Exp $ */
+#include "Xlib.h"
#include "Xlibint.h"
+#include "Cmap.h"
-extern void _XcmsDeleteCmapRec();
-
-XFreeColormap(dpy, cmap)
-register Display *dpy;
-Colormap cmap;
+int
+XFreeColormap(
+ register Display *dpy,
+ Colormap cmap)
{
register xResourceReq *req;
diff --git a/src/FreeCols.c b/src/FreeCols.c
index 03f74b90..d9516bad 100644
--- a/src/FreeCols.c
+++ b/src/FreeCols.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/FreeCols.c,v 1.3 2001/01/17 19:41:36 dawes Exp $ */
#include "Xlibint.h"
+int
XFreeColors(dpy, cmap, pixels, npixels, planes)
register Display *dpy;
Colormap cmap;
diff --git a/src/FreeCurs.c b/src/FreeCurs.c
index 4fe214a9..8fff916a 100644
--- a/src/FreeCurs.c
+++ b/src/FreeCurs.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/FreeCurs.c,v 1.3 2001/01/17 19:41:36 dawes Exp $ */
#include "Xlibint.h"
+int
XFreeCursor(dpy, cursor)
register Display *dpy;
Cursor cursor;
diff --git a/src/FreeEData.c b/src/FreeEData.c
index 14344fb8..d3555d54 100644
--- a/src/FreeEData.c
+++ b/src/FreeEData.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/FreeEData.c,v 1.3 2001/01/17 19:41:36 dawes Exp $ */
#include "Xlibint.h"
+int
_XFreeExtData (extension)
XExtData *extension;
{
diff --git a/src/FreeGC.c b/src/FreeGC.c
index 9912ff6f..96e61de3 100644
--- a/src/FreeGC.c
+++ b/src/FreeGC.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/FreeGC.c,v 1.4 2001/08/18 02:41:28 dawes Exp $ */
#include "Xlibint.h"
+int
XFreeGC (dpy, gc)
register Display *dpy;
GC gc;
diff --git a/src/FreePix.c b/src/FreePix.c
index d90ae131..40ad42f3 100644
--- a/src/FreePix.c
+++ b/src/FreePix.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/FreePix.c,v 1.3 2001/01/17 19:41:36 dawes Exp $ */
#include "Xlibint.h"
+int
XFreePixmap(dpy, pixmap)
register Display *dpy;
Pixmap pixmap;
diff --git a/src/GCMisc.c b/src/GCMisc.c
index 3735f692..62f4af00 100644
--- a/src/GCMisc.c
+++ b/src/GCMisc.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/GCMisc.c,v 1.3 2001/01/17 19:41:36 dawes Exp $ */
#include "Xlibint.h"
+int
XSetArcMode (dpy, gc, arc_mode)
register Display *dpy;
register GC gc;
@@ -42,6 +44,7 @@ int arc_mode;
return 1;
}
+int
XSetFillRule (dpy, gc, fill_rule)
register Display *dpy;
register GC gc;
@@ -57,6 +60,7 @@ int fill_rule;
return 1;
}
+int
XSetFillStyle (dpy, gc, fill_style)
register Display *dpy;
register GC gc;
@@ -72,6 +76,7 @@ int fill_style;
return 1;
}
+int
XSetGraphicsExposures (dpy, gc, graphics_exposures)
register Display *dpy;
register GC gc;
@@ -87,6 +92,7 @@ Bool graphics_exposures;
return 1;
}
+int
XSetSubwindowMode (dpy, gc, subwindow_mode)
register Display *dpy;
register GC gc;
diff --git a/src/Geom.c b/src/Geom.c
index 2699231d..0980094c 100644
--- a/src/Geom.c
+++ b/src/Geom.c
@@ -27,6 +27,7 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
+/* $XFree86$ */
#include "Xlibint.h"
#include "Xutil.h"
@@ -37,8 +38,8 @@ from The Open Group.
* returns 0 if there was some problem, else the position bitmask.
*/
-#if NeedFunctionPrototypes
-int XGeometry (
+int
+XGeometry (
Display *dpy, /* user's display connection */
int screen, /* screen on which to do computation */
_Xconst char *pos, /* user provided geometry spec */
@@ -52,17 +53,6 @@ int XGeometry (
register int *y, /* always set on successful RETURN */
register int *width, /* always set on successful RETURN */
register int *height) /* always set on successful RETURN */
-#else
-int XGeometry (dpy, screen, pos, def, bwidth, fwidth, fheight, xadd, yadd, x, y, width, height)
- Display *dpy; /* user's display connection */
- int screen; /* screen on which to do computation */
- char *pos; /* user provided geometry spec */
- char *def; /* default geometry spec for window */
- unsigned int bwidth; /* border width */
- unsigned int fwidth, fheight; /* size of position units */
- int xadd, yadd; /* any additional interior space */
- register int *x, *y, *width, *height;/* always set on successful RETURN */
-#endif
{
int px, py; /* returned values from parse */
unsigned int pwidth, pheight; /* returned values from parse */
diff --git a/src/GetAtomNm.c b/src/GetAtomNm.c
index 1b11fd7a..495fb426 100644
--- a/src/GetAtomNm.c
+++ b/src/GetAtomNm.c
@@ -24,31 +24,16 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/GetAtomNm.c,v 3.4 2001/08/18 02:41:28 dawes Exp $ */
#define NEED_REPLIES
#include "Xlibint.h"
-
-extern void _XFreeAtomTable();
-
-/* XXX this table def is duplicated in IntAtom.c, keep them consistent! */
-
-#define TABLESIZE 64
-
-typedef struct _Entry {
- unsigned long sig;
- Atom atom;
-} EntryRec, *Entry;
-
-#define EntryName(e) ((char *)(e+1))
-
-typedef struct _XDisplayAtoms {
- Entry table[TABLESIZE];
-} AtomTable;
+#include "Xintatom.h"
static
-char *_XGetAtomName(dpy, atom)
- Display *dpy;
- Atom atom;
+char *_XGetAtomName(
+ Display *dpy,
+ Atom atom)
{
xResourceReq *req;
char *name;
@@ -112,12 +97,12 @@ typedef struct {
} _XGetAtomNameState;
static
-Bool _XGetAtomNameHandler(dpy, rep, buf, len, data)
- register Display *dpy;
- register xReply *rep;
- char *buf;
- int len;
- XPointer data;
+Bool _XGetAtomNameHandler(
+ register Display *dpy,
+ register xReply *rep,
+ char *buf,
+ int len,
+ XPointer data)
{
register _XGetAtomNameState *state;
xGetAtomNameReply replbuf;
diff --git a/src/GetColor.c b/src/GetColor.c
index b469b5d4..2ccaf92f 100644
--- a/src/GetColor.c
+++ b/src/GetColor.c
@@ -24,29 +24,20 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/GetColor.c,v 1.6 2003/04/13 19:22:16 dawes Exp $ */
#define NEED_REPLIES
#include <stdio.h>
#include "Xlibint.h"
#include "Xcmsint.h"
-extern void _XcmsRGB_to_XColor();
-
-#if NeedFunctionPrototypes
-Status XAllocNamedColor(
+Status
+XAllocNamedColor(
register Display *dpy,
Colormap cmap,
_Xconst char *colorname, /* STRING8 */
XColor *hard_def, /* RETURN */
XColor *exact_def) /* RETURN */
-#else
-Status XAllocNamedColor(dpy, cmap, colorname, hard_def, exact_def)
-register Display *dpy;
-Colormap cmap;
-char *colorname; /* STRING8 */
-XColor *hard_def; /* RETURN */
-XColor *exact_def; /* RETURN */
-#endif
{
long nbytes;
@@ -60,20 +51,27 @@ XColor *exact_def; /* RETURN */
/*
* Let's Attempt to use Xcms and i18n approach to Parse Color
*/
- /* copy string to allow overwrite by _XcmsResolveColorString() */
if ((ccc = XcmsCCCOfColormap(dpy, cmap)) != (XcmsCCC)NULL) {
- if (_XcmsResolveColorString(ccc, &colorname, &cmsColor_exact,
- XcmsRGBFormat) >= XcmsSuccess) {
+ const char *tmpName = colorname;
+
+ switch (_XcmsResolveColorString(ccc, &tmpName, &cmsColor_exact,
+ XcmsRGBFormat)) {
+ case XcmsSuccess:
+ case XcmsSuccessWithCompression:
_XcmsRGB_to_XColor(&cmsColor_exact, exact_def, 1);
memcpy((char *)hard_def, (char *)exact_def, sizeof(XColor));
ret = XAllocColor(dpy, cmap, hard_def);
exact_def->pixel = hard_def->pixel;
return(ret);
+ case XcmsFailure:
+ case _XCMS_NEWNAME:
+ /*
+ * if the result was _XCMS_NEWNAME tmpName points to
+ * a string in cmsColNm.c:pairs table, for example,
+ * gray70 would become tekhvc:0.0/70.0/0.0
+ */
+ break;
}
- /*
- * Otherwise we failed; or colorname was changed with yet another
- * name. Thus pass name to the X Server.
- */
}
/*
diff --git a/src/GetDflt.c b/src/GetDflt.c
index 6e05abd4..3c7ba344 100644
--- a/src/GetDflt.c
+++ b/src/GetDflt.c
@@ -46,6 +46,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.
******************************************************************/
+/* $XFree86: xc/lib/X11/GetDflt.c,v 3.22 2003/04/13 19:22:16 dawes Exp $ */
#include "Xlibint.h"
#include <X11/Xos.h>
@@ -86,14 +87,12 @@ SOFTWARE.
#include <stdio.h>
#include <ctype.h>
-#ifdef X_NOT_STDC_ENV
-extern char *getenv();
-#endif
/*ARGSUSED*/
-static char *GetHomeDir (dest, len)
- char *dest;
- int len;
+static char *
+GetHomeDir(
+ char *dest,
+ int len)
{
#ifdef WIN32
register char *ptr1;
@@ -114,7 +113,9 @@ static char *GetHomeDir (dest, len)
else
*dest = '\0';
#else
+#ifdef X_NEEDS_PWPARAMS
_Xgetpwparams pwparams;
+#endif
struct passwd *pw;
register char *ptr;
@@ -122,7 +123,7 @@ static char *GetHomeDir (dest, len)
return NULL;
if ((ptr = getenv("HOME"))) {
- (void) strncpy(dest, ptr, len);
+ (void) strncpy(dest, ptr, len-1);
dest[len-1] = '\0';
} else {
if ((ptr = getenv("USER")))
@@ -130,7 +131,7 @@ static char *GetHomeDir (dest, len)
else
pw = _XGetpwuid(getuid(),pwparams);
if (pw != NULL) {
- (void) strncpy(dest, pw->pw_dir, len);
+ (void) strncpy(dest, pw->pw_dir, len-1);
dest[len-1] = '\0';
} else
*dest = '\0';
@@ -140,8 +141,9 @@ static char *GetHomeDir (dest, len)
}
-static XrmDatabase InitDefaults (dpy)
- Display *dpy; /* display for defaults.... */
+static XrmDatabase
+InitDefaults(
+ Display *dpy) /* display for defaults.... */
{
XrmDatabase userdb;
XrmDatabase xdb;
@@ -190,17 +192,11 @@ static XrmDatabase InitDefaults (dpy)
#endif
}
-#if NeedFunctionPrototypes
-char *XGetDefault(
+char *
+XGetDefault(
Display *dpy, /* display for defaults.... */
char _Xconst *prog, /* name of program for option */
register _Xconst char *name) /* name of option program wants */
-#else
-char *XGetDefault(dpy, prog, name)
- Display *dpy; /* display for defaults.... */
- char *prog; /* name of program for option */
- register char *name; /* name of option program wants */
-#endif
{ /* to get, for example, "font" */
XrmName names[3];
XrmClass classes[3];
@@ -210,6 +206,10 @@ char *XGetDefault(dpy, prog, name)
#ifdef WIN32
char *progname2;
#endif
+#ifdef __UNIXOS2__
+ char *progname2;
+ char *dotpos;
+#endif
/*
* strip path off of program name (XXX - this is OS specific)
@@ -220,6 +220,14 @@ char *XGetDefault(dpy, prog, name)
if (progname2 && (!progname || progname < progname2))
progname = progname2;
#endif
+#ifdef __UNIXOS2__ /* Very similar to WIN32 */
+ progname2 = strrchr (prog, '\\');
+ if (progname2 && (!progname || progname < progname2))
+ progname = progname2;
+ dotpos = strrchr (prog, '.');
+ if (dotpos && (dotpos>progname2)) *dotpos='\0';
+#endif /* We take out the .exe suffix */
+
if (progname)
progname++;
else
@@ -231,8 +239,9 @@ char *XGetDefault(dpy, prog, name)
*/
LockDisplay(dpy);
if (dpy->db == NULL) {
- dpy->db = InitDefaults(dpy);
- }
+ dpy->db = InitDefaults(dpy);
+ dpy->flags |= XlibDisplayDfltRMDB;
+ }
UnlockDisplay(dpy);
names[0] = XrmStringToName(progname);
diff --git a/src/GetFPath.c b/src/GetFPath.c
index 69dd809c..6db1602e 100644
--- a/src/GetFPath.c
+++ b/src/GetFPath.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/GetFPath.c,v 1.3 2001/01/17 19:41:36 dawes Exp $ */
#define NEED_REPLIES
#include "Xlibint.h"
@@ -79,6 +80,7 @@ int *npaths; /* RETURN */
return (flist);
}
+int
XFreeFontPath (list)
char **list;
{
diff --git a/src/GetHints.c b/src/GetHints.c
index 7958fd1f..d2452700 100644
--- a/src/GetHints.c
+++ b/src/GetHints.c
@@ -46,6 +46,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.
******************************************************************/
+/* $XFree86: xc/lib/X11/GetHints.c,v 1.3 2001/01/17 19:41:36 dawes Exp $ */
#include <X11/Xlibint.h>
#include <X11/Xos.h>
diff --git a/src/GetIFocus.c b/src/GetIFocus.c
index 7e2ca86c..fe1e80f8 100644
--- a/src/GetIFocus.c
+++ b/src/GetIFocus.c
@@ -24,10 +24,12 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/GetIFocus.c,v 1.3 2001/01/17 19:41:36 dawes Exp $ */
#define NEED_REPLIES
#include "Xlibint.h"
+int
XGetInputFocus(dpy, focus, revert_to)
register Display *dpy;
Window *focus;
diff --git a/src/GetImage.c b/src/GetImage.c
index ab665d81..3a2939cf 100644
--- a/src/GetImage.c
+++ b/src/GetImage.c
@@ -24,15 +24,17 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/GetImage.c,v 1.4 2001/12/14 19:54:00 dawes Exp $ */
#define NEED_REPLIES
#include "Xlibint.h"
#include <X11/Xutil.h> /* for XDestroyImage */
+#include "ImUtil.h"
#define ROUNDUP(nbytes, pad) (((((nbytes) - 1) + (pad)) / (pad)) * (pad))
-static unsigned int Ones(mask) /* HACKMEM 169 */
- unsigned long mask;
+static unsigned int Ones( /* HACKMEM 169 */
+ unsigned long mask)
{
register unsigned long y;
diff --git a/src/GetKCnt.c b/src/GetKCnt.c
index d8fa69c9..525ea1b9 100644
--- a/src/GetKCnt.c
+++ b/src/GetKCnt.c
@@ -24,10 +24,12 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/GetKCnt.c,v 1.5 2001/01/17 19:41:36 dawes Exp $ */
#define NEED_REPLIES
#include "Xlibint.h"
+int
XGetKeyboardControl (dpy, state)
register Display *dpy;
register XKeyboardState *state;
diff --git a/src/GetPCnt.c b/src/GetPCnt.c
index 54b84270..457dc9bc 100644
--- a/src/GetPCnt.c
+++ b/src/GetPCnt.c
@@ -24,10 +24,12 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/GetPCnt.c,v 1.3 2001/01/17 19:41:36 dawes Exp $ */
#define NEED_REPLIES
#include "Xlibint.h"
+int
XGetPointerControl(dpy, accel_numer, accel_denom, threshold)
register Display *dpy;
/* the following are return only vars */
diff --git a/src/GetPntMap.c b/src/GetPntMap.c
index 9af3a57c..65a5215f 100644
--- a/src/GetPntMap.c
+++ b/src/GetPntMap.c
@@ -25,6 +25,8 @@ in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/GetPntMap.c,v 1.6 2001/12/14 19:54:01 dawes Exp $ */
+
#define NEED_REPLIES
#include "Xlibint.h"
@@ -54,6 +56,7 @@ int XGetPointerMapping (dpy, map, nmaps)
nbytes = (long)rep.length << 2;
+ /* Don't count on the server returning a valid value */
if (nbytes > sizeof mapping) {
remainder = nbytes - sizeof mapping;
nbytes = sizeof mapping;
@@ -73,8 +76,8 @@ int XGetPointerMapping (dpy, map, nmaps)
return ((int) rep.nElts);
}
-#if NeedFunctionPrototypes
-KeySym *XGetKeyboardMapping (Display *dpy,
+KeySym *
+XGetKeyboardMapping (Display *dpy,
#if NeedWidePrototypes
unsigned int first_keycode,
#else
@@ -82,13 +85,6 @@ KeySym *XGetKeyboardMapping (Display *dpy,
#endif
int count,
int *keysyms_per_keycode)
-#else
-KeySym *XGetKeyboardMapping (dpy, first_keycode, count, keysyms_per_keycode)
- register Display *dpy;
- KeyCode first_keycode;
- int count;
- int *keysyms_per_keycode; /* RETURN */
-#endif
{
long nbytes;
unsigned long nkeysyms;
@@ -117,7 +113,7 @@ KeySym *XGetKeyboardMapping (dpy, first_keycode, count, keysyms_per_keycode)
SyncHandle();
return (KeySym *) NULL;
}
- _XRead32 (dpy, (char *) mapping, nbytes);
+ _XRead32 (dpy, (long *) mapping, nbytes);
}
*keysyms_per_keycode = rep.keySymsPerKeyCode;
UnlockDisplay(dpy);
diff --git a/src/GetProp.c b/src/GetProp.c
index ac8ef1c5..3323c778 100644
--- a/src/GetProp.c
+++ b/src/GetProp.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/GetProp.c,v 1.5 2001/10/28 03:32:30 tsi Exp $ */
#define NEED_REPLIES
#include "Xlibint.h"
@@ -75,21 +76,24 @@ XGetWindowProperty(dpy, w, property, offset, length, delete,
*/
case 8:
nbytes = netbytes = reply.nItems;
- if ((*prop = (unsigned char *) Xmalloc ((unsigned)nbytes + 1)))
+ if (nbytes + 1 > 0 &&
+ (*prop = (unsigned char *) Xmalloc ((unsigned)nbytes + 1)))
_XReadPad (dpy, (char *) *prop, netbytes);
break;
case 16:
nbytes = reply.nItems * sizeof (short);
netbytes = reply.nItems << 1;
- if ((*prop = (unsigned char *) Xmalloc ((unsigned)nbytes + 1)))
+ if (nbytes + 1 > 0 &&
+ (*prop = (unsigned char *) Xmalloc ((unsigned)nbytes + 1)))
_XRead16Pad (dpy, (short *) *prop, netbytes);
break;
case 32:
nbytes = reply.nItems * sizeof (long);
netbytes = reply.nItems << 2;
- if ((*prop = (unsigned char *) Xmalloc ((unsigned)nbytes + 1)))
+ if (nbytes + 1 > 0 &&
+ (*prop = (unsigned char *) Xmalloc ((unsigned)nbytes + 1)))
_XRead32 (dpy, (long *) *prop, netbytes);
break;
@@ -107,7 +111,7 @@ XGetWindowProperty(dpy, w, property, offset, length, delete,
error.errorCode = BadImplementation;
_XError(dpy, &error);
}
- netbytes = 0L;
+ nbytes = netbytes = 0L;
break;
}
if (! *prop) {
diff --git a/src/GetSSaver.c b/src/GetSSaver.c
index 60a7ef08..1dc004d9 100644
--- a/src/GetSSaver.c
+++ b/src/GetSSaver.c
@@ -24,10 +24,12 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/GetSSaver.c,v 1.3 2001/01/17 19:41:37 dawes Exp $ */
#define NEED_REPLIES
#include "Xlibint.h"
+int
XGetScreenSaver(dpy, timeout, interval, prefer_blanking, allow_exp)
register Display *dpy;
/* the following are return only vars */
diff --git a/src/GetWAttrs.c b/src/GetWAttrs.c
index 7856b6f0..c5e9d438 100644
--- a/src/GetWAttrs.c
+++ b/src/GetWAttrs.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86$ */
#define NEED_REPLIES
#include "Xlibint.h"
@@ -35,12 +36,12 @@ typedef struct _WAttrsState {
} _XWAttrsState;
static Bool
-_XWAttrsHandler(dpy, rep, buf, len, data)
- register Display *dpy;
- register xReply *rep;
- char *buf;
- int len;
- XPointer data;
+_XWAttrsHandler(
+ register Display *dpy,
+ register xReply *rep,
+ char *buf,
+ int len,
+ XPointer data)
{
register _XWAttrsState *state;
xGetWindowAttributesReply replbuf;
diff --git a/src/GrButton.c b/src/GrButton.c
index f0a8ebfb..af642e9a 100644
--- a/src/GrButton.c
+++ b/src/GrButton.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/GrButton.c,v 1.3 2001/01/17 19:41:37 dawes Exp $ */
#include "Xlibint.h"
+int
XGrabButton(dpy, button, modifiers, grab_window, owner_events, event_mask,
pointer_mode, keyboard_mode, confine_to, curs)
register Display *dpy;
diff --git a/src/GrKey.c b/src/GrKey.c
index 4f339b75..a1d5973f 100644
--- a/src/GrKey.c
+++ b/src/GrKey.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/GrKey.c,v 1.3 2001/01/17 19:41:37 dawes Exp $ */
#include "Xlibint.h"
+int
XGrabKey(dpy, key, modifiers, grab_window, owner_events,
pointer_mode, keyboard_mode)
register Display *dpy;
diff --git a/src/GrServer.c b/src/GrServer.c
index 9dfc04ac..df8cf3f2 100644
--- a/src/GrServer.c
+++ b/src/GrServer.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/GrServer.c,v 1.3 2001/01/17 19:41:37 dawes Exp $ */
#include "Xlibint.h"
+int
XGrabServer (dpy)
register Display *dpy;
{
diff --git a/src/Host.c b/src/Host.c
index 863ff8ef..4569863b 100644
--- a/src/Host.c
+++ b/src/Host.c
@@ -1,75 +1,125 @@
/* $Xorg: Host.c,v 1.4 2001/02/09 02:03:33 xorgcvs Exp $ */
+/* $XdotOrg: lib/X11/src/Host.c,v 1.2 2004-04-23 18:43:24 eich Exp $ */
/*
Copyright 1986, 1998 The Open Group
+Copyright 2004 Sun Microsystems, Inc.
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
+All rights reserved.
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
+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, and/or sell copies of the Software, and to permit persons
+to whom the Software is furnished to do so, provided that the above
+copyright notice(s) and this permission notice appear in all copies of
+the Software and that both the above copyright notice(s) and this
+permission notice appear in supporting documentation.
-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 NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP 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.
+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 NONINFRINGEMENT
+OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
+Except as contained in this notice, the name of a copyright holder
+shall not be used in advertising or otherwise to promote the sale, use
+or other dealings in this Software without prior written authorization
+of the copyright holder.
+
+X Window System is a trademark of The Open Group.
*/
+/* $XFree86: xc/lib/X11/Host.c,v 1.3 2001/01/17 19:41:37 dawes Exp $ */
-/* this might be rightly reguarded an os dependent file */
+/* this might be rightly regarded an os dependent file */
#include "Xlibint.h"
-XAddHost (dpy, host)
- register Display *dpy;
- XHostAddress *host;
- {
+int
+XAddHost (
+ register Display *dpy,
+ XHostAddress *host)
+{
register xChangeHostsReq *req;
- register int length = (host->length + 3) & ~0x3; /* round up */
+ register int length;
+ XServerInterpretedAddress *siAddr;
+ int addrlen;
+
+ if (host->family == FamilyServerInterpreted) {
+ siAddr = (XServerInterpretedAddress *) host->address;
+ addrlen = siAddr->typelength + siAddr->valuelength + 1;
+ } else {
+ addrlen = host->length;
+ }
+
+ length = (addrlen + 3) & ~0x3; /* round up */
LockDisplay(dpy);
GetReqExtra (ChangeHosts, length, req);
req->mode = HostInsert;
req->hostFamily = host->family;
- req->hostLength = host->length;
- memcpy((char *) NEXTPTR(req,xChangeHostsReq), host->address, host->length);
+ req->hostLength = addrlen;
+ if (host->family == FamilyServerInterpreted) {
+ char *dest = (char *) NEXTPTR(req,xChangeHostsReq);
+ memcpy(dest, siAddr->type, siAddr->typelength);
+ dest[siAddr->typelength] = '\0';
+ memcpy(dest + siAddr->typelength + 1,siAddr->value,siAddr->valuelength);
+ } else {
+ memcpy((char *) NEXTPTR(req,xChangeHostsReq), host->address, addrlen);
+ }
UnlockDisplay(dpy);
SyncHandle();
return 1;
- }
+}
-XRemoveHost (dpy, host)
- register Display *dpy;
- XHostAddress *host;
- {
+int
+XRemoveHost (
+ register Display *dpy,
+ XHostAddress *host)
+{
register xChangeHostsReq *req;
- register int length = (host->length + 3) & ~0x3; /* round up */
+ register int length;
+ XServerInterpretedAddress *siAddr;
+ int addrlen;
+
+ if (host->family == FamilyServerInterpreted) {
+ siAddr = (XServerInterpretedAddress *) host->address;
+ addrlen = siAddr->typelength + siAddr->valuelength + 1;
+ } else {
+ addrlen = host->length;
+ }
+
+ length = (addrlen + 3) & ~0x3; /* round up */
LockDisplay(dpy);
GetReqExtra (ChangeHosts, length, req);
req->mode = HostDelete;
req->hostFamily = host->family;
- req->hostLength = host->length;
- memcpy((char *) NEXTPTR(req,xChangeHostsReq), host->address, host->length);
+ req->hostLength = addrlen;
+ if (host->family == FamilyServerInterpreted) {
+ char *dest = (char *) NEXTPTR(req,xChangeHostsReq);
+ memcpy(dest, siAddr->type, siAddr->typelength);
+ dest[siAddr->typelength] = '\0';
+ memcpy(dest + siAddr->typelength + 1,siAddr->value,siAddr->valuelength);
+ } else {
+ memcpy((char *) NEXTPTR(req,xChangeHostsReq), host->address, addrlen);
+ }
UnlockDisplay(dpy);
SyncHandle();
return 1;
- }
-
+}
-XAddHosts (dpy, hosts, n)
- register Display *dpy;
- XHostAddress *hosts;
- int n;
+int
+XAddHosts (
+ register Display *dpy,
+ XHostAddress *hosts,
+ int n)
{
register int i;
for (i = 0; i < n; i++) {
@@ -78,10 +128,11 @@ XAddHosts (dpy, hosts, n)
return 1;
}
-XRemoveHosts (dpy, hosts, n)
- register Display *dpy;
- XHostAddress *hosts;
- int n;
+int
+XRemoveHosts (
+ register Display *dpy,
+ XHostAddress *hosts,
+ int n)
{
register int i;
for (i = 0; i < n; i++) {
diff --git a/src/IfEvent.c b/src/IfEvent.c
index 975d77a1..57b792d8 100644
--- a/src/IfEvent.c
+++ b/src/IfEvent.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/IfEvent.c,v 1.4 2001/12/14 19:54:01 dawes Exp $ */
#define NEED_EVENTS
#include "Xlibint.h"
@@ -33,14 +34,13 @@ in this Software without prior written authorization from The Open Group.
* predicate in the queue.
*/
+int
XIfEvent (dpy, event, predicate, arg)
register Display *dpy;
Bool (*predicate)(
-#if NeedNestedPrototypes
Display* /* display */,
XEvent* /* event */,
char* /* arg */
-#endif
); /* function to call */
register XEvent *event;
char *arg;
diff --git a/src/ImText.c b/src/ImText.c
index 45f17983..c6cd2c04 100644
--- a/src/ImText.c
+++ b/src/ImText.c
@@ -24,11 +24,12 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/ImText.c,v 1.4 2001/12/14 19:54:02 dawes Exp $ */
#define NEED_REPLIES
#include "Xlibint.h"
-#if NeedFunctionPrototypes
+int
XDrawImageString(
register Display *dpy,
Drawable d,
@@ -37,15 +38,6 @@ XDrawImageString(
int y,
_Xconst char *string,
int length)
-#else
-XDrawImageString(dpy, d, gc, x, y, string, length)
- register Display *dpy;
- Drawable d;
- GC gc;
- int x, y;
- char *string;
- int length;
-#endif
{
register xImageText8Req *req;
char *CharacterOffset = (char *)string;
diff --git a/src/ImText16.c b/src/ImText16.c
index fdc171ad..cabcf279 100644
--- a/src/ImText16.c
+++ b/src/ImText16.c
@@ -24,11 +24,12 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/ImText16.c,v 1.4 2001/12/14 19:54:02 dawes Exp $ */
#define NEED_REPLIES
#include "Xlibint.h"
-#if NeedFunctionPrototypes
+int
XDrawImageString16(
register Display *dpy,
Drawable d,
@@ -37,15 +38,6 @@ XDrawImageString16(
int y,
_Xconst XChar2b *string,
int length)
-#else
-XDrawImageString16(dpy, d, gc, x, y, string, length)
- register Display *dpy;
- Drawable d;
- GC gc;
- int x, y;
- XChar2b *string;
- int length;
-#endif
{
register xImageText16Req *req;
XChar2b *CharacterOffset = (XChar2b *)string;
diff --git a/src/ImUtil.c b/src/ImUtil.c
index b358e511..446bef23 100644
--- a/src/ImUtil.c
+++ b/src/ImUtil.c
@@ -24,18 +24,13 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/ImUtil.c,v 3.12 2003/04/15 22:10:06 herrb Exp $ */
#include <X11/Xlibint.h>
#include <X11/Xutil.h>
#include <stdio.h>
+#include "ImUtil.h"
-#ifdef __STDC__
-#define Const const
-#else
-#define Const /**/
-#endif
-
-#if NeedFunctionPrototypes
static int _XDestroyImage(XImage *);
static unsigned long _XGetPixel(XImage *, int, int);
static unsigned long _XGetPixel1(XImage *, int, int);
@@ -49,18 +44,18 @@ static int _XPutPixel16(XImage *, int, int, unsigned long);
static int _XPutPixel32(XImage *, int, int, unsigned long);
static XImage *_XSubImage(XImage *, int, int, unsigned int, unsigned int);
static int _XAddPixel(XImage *, long);
-#endif
-static unsigned char Const _lomask[0x09] = { 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff };
-static unsigned char Const _himask[0x09] = { 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00 };
+static unsigned char const _lomask[0x09] = { 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff };
+static unsigned char const _himask[0x09] = { 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00 };
/* These two convenience routines return the scanline_pad and bits_per_pixel
associated with a specific depth of ZPixmap format image for a
display. */
- _XGetScanlinePad(dpy, depth)
- Display *dpy;
- int depth;
+int
+_XGetScanlinePad(
+ Display *dpy,
+ int depth)
{
register ScreenFormat *fmt = dpy->pixmap_format;
register int i;
@@ -72,9 +67,10 @@ static unsigned char Const _himask[0x09] = { 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0,
return(dpy->bitmap_pad);
}
- _XGetBitsPerPixel(dpy, depth)
- Display *dpy;
- int depth;
+int
+_XGetBitsPerPixel(
+ Display *dpy,
+ int depth)
{
register ScreenFormat *fmt = dpy->pixmap_format;
register int i;
@@ -121,9 +117,9 @@ static unsigned char Const _himask[0x09] = { 0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0,
* For XY formats, bitmap_unit is 8, 16, or 32 bits.
* For Z format, bits_per_pixel is 1, 4, 8, 16, 24, or 32 bits.
*/
-static void _xynormalizeimagebits (bp, img)
- register unsigned char *bp;
- register XImage *img;
+static void _xynormalizeimagebits (
+ register unsigned char *bp,
+ register XImage *img)
{
register unsigned char c;
@@ -150,9 +146,9 @@ static void _xynormalizeimagebits (bp, img)
_XReverse_Bytes (bp, img->bitmap_unit >> 3);
}
-static void _znormalizeimagebits (bp, img)
- register unsigned char *bp;
- register XImage *img;
+static void _znormalizeimagebits (
+ register unsigned char *bp,
+ register XImage *img)
{
register unsigned char c;
switch (img->bits_per_pixel) {
@@ -184,11 +180,11 @@ static void _znormalizeimagebits (bp, img)
}
}
-static void _putbits (src, dstoffset, numbits, dst)
- register char *src; /* address of source bit string */
- int dstoffset; /* bit offset into destination; range is 0-31 */
- register int numbits;/* number of bits to copy to destination */
- register char *dst; /* address of destination bit string */
+static void _putbits(
+ register char *src, /* address of source bit string */
+ int dstoffset, /* bit offset into destination; range is 0-31 */
+ register int numbits,/* number of bits to copy to destination */
+ register char *dst) /* address of destination bit string */
{
register unsigned char chlo, chhi;
int hibits;
@@ -241,6 +237,10 @@ static void _putbits (src, dstoffset, numbits, dst)
*
*/
+#if defined(Lynx) && defined(ROUNDUP)
+#undef ROUNDUP
+#endif
+
#define ROUNDUP(nbytes, pad) ((((nbytes) + ((pad)-1)) / (pad)) * ((pad)>>3))
#define XYNORMALIZE(bp, img) \
@@ -267,8 +267,8 @@ static void _putbits (src, dstoffset, numbits, dst)
* routines always have to check to make sure the optimization is still
* valid, and reinit the functions if not.
*/
-void _XInitImageFuncPtrs (image)
- register XImage *image;
+void _XInitImageFuncPtrs (
+ register XImage *image)
{
image->f.create_image = XCreateImage;
image->f.destroy_image = _XDestroyImage;
@@ -444,7 +444,7 @@ static int _XDestroyImage (ximage)
*
*/
-static unsigned long Const low_bits_table[] = {
+static unsigned long const low_bits_table[] = {
0x00000000, 0x00000001, 0x00000003, 0x00000007,
0x0000000f, 0x0000001f, 0x0000003f, 0x0000007f,
0x000000ff, 0x000001ff, 0x000003ff, 0x000007ff,
@@ -518,7 +518,7 @@ static unsigned long _XGetPixel (ximage, x, y)
}
#ifndef WORD64
-static unsigned long byteorderpixel = MSBFirst << 24;
+static CARD32 const byteorderpixel = MSBFirst << 24;
#endif
static unsigned long _XGetPixel32 (ximage, x, y)
@@ -533,7 +533,7 @@ static unsigned long _XGetPixel32 (ximage, x, y)
addr = &((unsigned char *)ximage->data)
[y * ximage->bytes_per_line + (x << 2)];
#ifndef WORD64
- if (*((char *)&byteorderpixel) == ximage->byte_order)
+ if (*((const char *)&byteorderpixel) == ximage->byte_order)
pixel = *((CARD32 *)addr);
else
#endif
@@ -724,7 +724,7 @@ static int _XPutPixel32 (ximage, x, y, pixel)
addr = &((unsigned char *)ximage->data)
[y * ximage->bytes_per_line + (x << 2)];
#ifndef WORD64
- if (*((char *)&byteorderpixel) == ximage->byte_order)
+ if (*((const char *)&byteorderpixel) == ximage->byte_order)
*((CARD32 *)addr) = pixel;
else
#endif
@@ -913,12 +913,11 @@ static XImage *_XSubImage (ximage, x, y, width, height)
*
*/
-int _XSetImage (srcimg, dstimg, x, y)
- XImage *srcimg;
- register XImage *dstimg;
- register int x;
- register int y;
-
+int _XSetImage(
+ XImage *srcimg,
+ register XImage *dstimg,
+ register int x,
+ register int y)
{
register unsigned long pixel;
register int row, col;
@@ -957,7 +956,8 @@ int _XSetImage (srcimg, dstimg, x, y)
*
*/
-static _XAddPixel (ximage, value)
+static int
+_XAddPixel (ximage, value)
register XImage *ximage;
register long value;
{
@@ -989,14 +989,14 @@ static _XAddPixel (ximage, value)
#ifndef WORD64
} else if ((ximage->format == ZPixmap) &&
(ximage->bits_per_pixel == 16) &&
- (*((char *)&byteorderpixel) == ximage->byte_order)) {
+ (*((const char *)&byteorderpixel) == ximage->byte_order)) {
register unsigned short *dp = (unsigned short *) ximage->data;
x = (ximage->bytes_per_line >> 1) * ximage->height;
while (--x >= 0)
*dp++ += value;
} else if ((ximage->format == ZPixmap) &&
(ximage->bits_per_pixel == 32) &&
- (*((char *)&byteorderpixel) == ximage->byte_order)) {
+ (*((const char *)&byteorderpixel) == ximage->byte_order)) {
register CARD32 *dp = (CARD32 *) ximage->data;
x = (ximage->bytes_per_line >> 2) * ximage->height;
while (--x >= 0)
diff --git a/src/InitExt.c b/src/InitExt.c
index c24d4490..215ed7b3 100644
--- a/src/InitExt.c
+++ b/src/InitExt.c
@@ -26,29 +26,20 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
+/* $XFree86: xc/lib/X11/InitExt.c,v 1.7 2001/12/14 19:54:02 dawes Exp $ */
#include <X11/Xlibint.h>
#include <X11/Xos.h>
#include <stdio.h>
-extern Bool _XUnknownWireEvent();
-extern Status _XUnknownNativeEvent();
-extern Bool _XDefaultWireError();
-
/*
* This routine is used to link a extension in so it will be called
* at appropriate times.
*/
-#if NeedFunctionPrototypes
XExtCodes *XInitExtension (
Display *dpy,
_Xconst char *name)
-#else
-XExtCodes *XInitExtension (dpy, name)
- Display *dpy;
- char *name;
-#endif
{
XExtCodes codes; /* temp. place for extension information. */
register _XExtension *ext;/* need a place to build it all */
@@ -95,9 +86,9 @@ XExtCodes *XAddExtension (dpy)
return (&ext->codes); /* tell him which extension */
}
-static _XExtension *XLookupExtension (dpy, extension)
- register Display *dpy; /* display */
- register int extension; /* extension number */
+static _XExtension *XLookupExtension (
+ register Display *dpy, /* display */
+ register int extension) /* extension number */
{
register _XExtension *ext;
for (ext = dpy->ext_procs; ext; ext = ext->next)
@@ -111,6 +102,7 @@ XExtData **XEHeadOfExtensionList(object)
return *(XExtData ***)&object;
}
+int
XAddToExtensionList(structure, ext_data)
XExtData **structure;
XExtData *ext_data;
@@ -132,14 +124,6 @@ XExtData *XFindOnExtensionList(structure, number)
return ext;
}
-typedef int (*CreateGCType) (
-#if NeedFunctionPrototypes
- Display* /* display */,
- GC /* gc */,
- XExtCodes* /* codes */
-#endif
-);
-
/*
* Routines to hang procs on the extension structure.
*/
@@ -149,7 +133,7 @@ CreateGCType XESetCreateGC(dpy, extension, proc)
CreateGCType proc; /* routine to call when GC created */
{
register _XExtension *e; /* for lookup of extension */
- register int (*oldproc)();
+ register CreateGCType oldproc;
if ((e = XLookupExtension (dpy, extension)) == NULL) return (NULL);
LockDisplay(dpy);
oldproc = e->create_GC;
@@ -158,21 +142,13 @@ CreateGCType XESetCreateGC(dpy, extension, proc)
return (CreateGCType)oldproc;
}
-typedef int (*CopyGCType)(
-#if NeedFunctionPrototypes
- Display* /* display */,
- GC /* gc */,
- XExtCodes* /* codes */
-#endif
-);
-
CopyGCType XESetCopyGC(dpy, extension, proc)
Display *dpy; /* display */
int extension; /* extension number */
CopyGCType proc; /* routine to call when GC copied */
{
register _XExtension *e; /* for lookup of extension */
- register int (*oldproc)();
+ register CopyGCType oldproc;
if ((e = XLookupExtension (dpy, extension)) == NULL) return (NULL);
LockDisplay(dpy);
oldproc = e->copy_GC;
@@ -181,21 +157,13 @@ CopyGCType XESetCopyGC(dpy, extension, proc)
return (CopyGCType)oldproc;
}
-typedef int (*FlushGCType) (
-#if NeedFunctionPrototypes
- Display* /* display */,
- GC /* gc */,
- XExtCodes* /* codes */
-#endif
-);
-
FlushGCType XESetFlushGC(dpy, extension, proc)
Display *dpy; /* display */
int extension; /* extension number */
FlushGCType proc; /* routine to call when GC copied */
{
register _XExtension *e; /* for lookup of extension */
- register int (*oldproc)();
+ register FlushGCType oldproc;
if ((e = XLookupExtension (dpy, extension)) == NULL) return (NULL);
LockDisplay(dpy);
oldproc = e->flush_GC;
@@ -204,21 +172,13 @@ FlushGCType XESetFlushGC(dpy, extension, proc)
return (FlushGCType)oldproc;
}
-typedef int (*FreeGCType) (
-#if NeedFunctionPrototypes
- Display* /* display */,
- GC /* gc */,
- XExtCodes* /* codes */
-#endif
-);
-
FreeGCType XESetFreeGC(dpy, extension, proc)
Display *dpy; /* display */
int extension; /* extension number */
FreeGCType proc; /* routine to call when GC freed */
{
register _XExtension *e; /* for lookup of extension */
- register int (*oldproc)();
+ register FreeGCType oldproc;
if ((e = XLookupExtension (dpy, extension)) == NULL) return (NULL);
LockDisplay(dpy);
oldproc = e->free_GC;
@@ -227,21 +187,13 @@ FreeGCType XESetFreeGC(dpy, extension, proc)
return (FreeGCType)oldproc;
}
-typedef int (*CreateFontType) (
-#if NeedFunctionPrototypes
- Display* /* display */,
- XFontStruct* /* fs */,
- XExtCodes* /* codes */
-#endif
-);
-
CreateFontType XESetCreateFont(dpy, extension, proc)
Display *dpy; /* display */
int extension; /* extension number */
CreateFontType proc; /* routine to call when font created */
{
register _XExtension *e; /* for lookup of extension */
- register int (*oldproc)();
+ register CreateFontType oldproc;
if ((e = XLookupExtension (dpy, extension)) == NULL) return (NULL);
LockDisplay(dpy);
oldproc = e->create_Font;
@@ -250,21 +202,13 @@ CreateFontType XESetCreateFont(dpy, extension, proc)
return (CreateFontType)oldproc;
}
-typedef int (*FreeFontType) (
-#if NeedFunctionPrototypes
- Display* /* display */,
- XFontStruct* /* fs */,
- XExtCodes* /* codes */
-#endif
-);
-
FreeFontType XESetFreeFont(dpy, extension, proc)
Display *dpy; /* display */
int extension; /* extension number */
FreeFontType proc; /* routine to call when font freed */
{
register _XExtension *e; /* for lookup of extension */
- register int (*oldproc)();
+ register FreeFontType oldproc;
if ((e = XLookupExtension (dpy, extension)) == NULL) return (NULL);
LockDisplay(dpy);
oldproc = e->free_Font;
@@ -273,20 +217,13 @@ FreeFontType XESetFreeFont(dpy, extension, proc)
return (FreeFontType)oldproc;
}
-typedef int (*CloseDisplayType) (
-#if NeedFunctionPrototypes
- Display* /* display */,
- XExtCodes* /* codes */
-#endif
-);
-
CloseDisplayType XESetCloseDisplay(dpy, extension, proc)
Display *dpy; /* display */
int extension; /* extension number */
CloseDisplayType proc; /* routine to call when display closed */
{
register _XExtension *e; /* for lookup of extension */
- register int (*oldproc)();
+ register CloseDisplayType oldproc;
if ((e = XLookupExtension (dpy, extension)) == NULL) return (NULL);
LockDisplay(dpy);
oldproc = e->close_display;
@@ -296,11 +233,9 @@ CloseDisplayType XESetCloseDisplay(dpy, extension, proc)
}
typedef Bool (*WireToEventType) (
-#if NeedFunctionPrototypes
Display* /* display */,
XEvent* /* re */,
xEvent* /* event */
-#endif
);
WireToEventType XESetWireToEvent(dpy, event_number, proc)
@@ -308,7 +243,7 @@ WireToEventType XESetWireToEvent(dpy, event_number, proc)
WireToEventType proc; /* routine to call when converting event */
int event_number; /* event routine to replace */
{
- register Bool (*oldproc)();
+ register WireToEventType oldproc;
if (proc == NULL) proc = (WireToEventType)_XUnknownWireEvent;
LockDisplay (dpy);
oldproc = dpy->event_vec[event_number];
@@ -318,11 +253,9 @@ WireToEventType XESetWireToEvent(dpy, event_number, proc)
}
typedef Status (*EventToWireType) (
-#if NeedFunctionPrototypes
Display* /* display */,
XEvent* /* re */,
xEvent* /* event */
-#endif
);
EventToWireType XESetEventToWire(dpy, event_number, proc)
@@ -330,7 +263,7 @@ EventToWireType XESetEventToWire(dpy, event_number, proc)
EventToWireType proc; /* routine to call when converting event */
int event_number; /* event routine to replace */
{
- register Status (*oldproc)();
+ register EventToWireType oldproc;
if (proc == NULL) proc = (EventToWireType) _XUnknownNativeEvent;
LockDisplay (dpy);
oldproc = dpy->wire_vec[event_number];
@@ -340,11 +273,9 @@ EventToWireType XESetEventToWire(dpy, event_number, proc)
}
typedef Bool (*WireToErrorType) (
-#if NeedFunctionPrototypes
Display* /* display */,
XErrorEvent* /* he */,
xError* /* we */
-#endif
);
WireToErrorType XESetWireToError(dpy, error_number, proc)
@@ -352,12 +283,12 @@ WireToErrorType XESetWireToError(dpy, error_number, proc)
WireToErrorType proc; /* routine to call when converting error */
int error_number; /* error routine to replace */
{
- register Bool (*oldproc)();
+ register WireToErrorType oldproc = NULL;
if (proc == NULL) proc = (WireToErrorType)_XDefaultWireError;
LockDisplay (dpy);
if (!dpy->error_vec) {
int i;
- dpy->error_vec = (Bool (**)())Xmalloc(256 * sizeof(oldproc));
+ dpy->error_vec = Xmalloc(256 * sizeof(oldproc));
for (i = 1; i < 256; i++)
dpy->error_vec[i] = _XDefaultWireError;
}
@@ -369,22 +300,13 @@ WireToErrorType XESetWireToError(dpy, error_number, proc)
return (WireToErrorType)oldproc;
}
-typedef int (*ErrorType) (
-#if NeedFunctionPrototypes
- Display* /* display */,
- xError* /* err */,
- XExtCodes* /* codes */,
- int* /* ret_code */
-#endif
-);
-
ErrorType XESetError(dpy, extension, proc)
Display *dpy; /* display */
int extension; /* extension number */
ErrorType proc; /* routine to call when X error happens */
{
register _XExtension *e; /* for lookup of extension */
- register int (*oldproc)();
+ register ErrorType oldproc;
if ((e = XLookupExtension (dpy, extension)) == NULL) return (NULL);
LockDisplay(dpy);
oldproc = e->error;
@@ -393,23 +315,13 @@ ErrorType XESetError(dpy, extension, proc)
return (ErrorType)oldproc;
}
-typedef char* (*ErrorStringType) (
-#if NeedFunctionPrototypes
- Display* /* display */,
- int /* code */,
- XExtCodes* /* codes */,
- char* /* buffer */,
- int /* nbytes */
-#endif
-);
-
ErrorStringType XESetErrorString(dpy, extension, proc)
Display *dpy; /* display */
int extension; /* extension number */
ErrorStringType proc; /* routine to call when I/O error happens */
{
register _XExtension *e; /* for lookup of extension */
- register char *(*oldproc)();
+ register ErrorStringType oldproc;
if ((e = XLookupExtension (dpy, extension)) == NULL) return (NULL);
LockDisplay(dpy);
oldproc = e->error_string;
@@ -418,21 +330,13 @@ ErrorStringType XESetErrorString(dpy, extension, proc)
return (ErrorStringType)oldproc;
}
-typedef void (*PrintErrorType)(
-#if NeedFunctionPrototypes
- Display* /* display */,
- XErrorEvent* /* ev */,
- void* /* fp */
-#endif
-);
-
PrintErrorType XESetPrintErrorValues(dpy, extension, proc)
Display *dpy; /* display */
int extension; /* extension number */
PrintErrorType proc; /* routine to call to print */
{
register _XExtension *e; /* for lookup of extension */
- register void (*oldproc)();
+ register PrintErrorType oldproc;
if ((e = XLookupExtension (dpy, extension)) == NULL) return (NULL);
LockDisplay(dpy);
oldproc = e->error_values;
@@ -441,22 +345,13 @@ PrintErrorType XESetPrintErrorValues(dpy, extension, proc)
return (PrintErrorType)oldproc;
}
-typedef void (*BeforeFlushType)(
-#if NeedFunctionPrototypes
- Display* /* display */,
- XExtCodes* /* codes */,
- char* /* data */,
- long /* len */
-#endif
-);
-
BeforeFlushType XESetBeforeFlush(dpy, extension, proc)
Display *dpy; /* display */
int extension; /* extension number */
BeforeFlushType proc; /* routine to call on flush */
{
register _XExtension *e; /* for lookup of extension */
- register void (*oldproc)();
+ register BeforeFlushType oldproc;
register _XExtension *ext;
if ((e = XLookupExtension (dpy, extension)) == NULL) return (NULL);
LockDisplay(dpy);
diff --git a/src/InsCmap.c b/src/InsCmap.c
index 1e10d953..df0dc9f7 100644
--- a/src/InsCmap.c
+++ b/src/InsCmap.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/InsCmap.c,v 1.3 2001/01/17 19:41:38 dawes Exp $ */
#include "Xlibint.h"
+int
XInstallColormap(dpy, cmap)
register Display *dpy;
Colormap cmap;
diff --git a/src/IntAtom.c b/src/IntAtom.c
index 467286b0..00240fd9 100644
--- a/src/IntAtom.c
+++ b/src/IntAtom.c
@@ -26,26 +26,11 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
+/* $XFree86: xc/lib/X11/IntAtom.c,v 1.6 2001/12/14 19:54:02 dawes Exp $ */
#define NEED_REPLIES
#include "Xlibint.h"
-
-/* XXX this table def is duplicated in GetAtomNm.c, keep them consistent! */
-
-#define TABLESIZE 64
-
-typedef struct _Entry {
- unsigned long sig;
- Atom atom;
-} EntryRec, *Entry;
-
-#define RESERVED ((Entry) 1)
-
-#define EntryName(e) ((char *)(e+1))
-
-typedef struct _XDisplayAtoms {
- Entry table[TABLESIZE];
-} AtomTable;
+#include "Xintatom.h"
#define HASH(sig) ((sig) & (TABLESIZE-1))
#define REHASHVAL(sig) ((((sig) % (TABLESIZE-3)) + 2) | 1)
@@ -70,20 +55,20 @@ _XFreeAtomTable(dpy)
}
static
-Atom _XInternAtom(dpy, name, onlyIfExists, psig, pidx, pn)
- Display *dpy;
- char *name;
- Bool onlyIfExists;
- unsigned long *psig;
- int *pidx;
- int *pn;
+Atom _XInternAtom(
+ Display *dpy,
+ _Xconst char *name,
+ Bool onlyIfExists,
+ unsigned long *psig,
+ int *pidx,
+ int *pn)
{
register AtomTable *atoms;
register char *s1, c, *s2;
register unsigned long sig;
- register int idx, i;
+ register int idx = 0, i;
Entry e;
- int n, firstidx, rehash;
+ int n, firstidx, rehash = 0;
xInternAtomReq *req;
/* look in the cache first */
@@ -130,7 +115,7 @@ nomatch: if (idx == firstidx)
void
_XUpdateAtomCache(dpy, name, atom, sig, idx, n)
Display *dpy;
- char *name;
+ const char *name;
Atom atom;
unsigned long sig;
int idx;
@@ -174,17 +159,11 @@ _XUpdateAtomCache(dpy, name, atom, sig, idx, n)
}
}
-#if NeedFunctionPrototypes
-Atom XInternAtom (
+Atom
+XInternAtom (
Display *dpy,
- _Xconst char *name,
+ const char *name,
Bool onlyIfExists)
-#else
-Atom XInternAtom (dpy, name, onlyIfExists)
- Display *dpy;
- char *name;
- Bool onlyIfExists;
-#endif
{
Atom atom;
unsigned long sig;
@@ -219,15 +198,15 @@ typedef struct {
} _XIntAtomState;
static
-Bool _XIntAtomHandler(dpy, rep, buf, len, data)
- register Display *dpy;
- register xReply *rep;
- char *buf;
- int len;
- XPointer data;
+Bool _XIntAtomHandler(
+ register Display *dpy,
+ register xReply *rep,
+ char *buf,
+ int len,
+ XPointer data)
{
register _XIntAtomState *state;
- register int i, idx;
+ register int i, idx = 0;
xInternAtomReply replbuf;
register xInternAtomReply *repl;
diff --git a/src/Key.h b/src/Key.h
index 2cfb82af..a0ca795d 100644
--- a/src/Key.h
+++ b/src/Key.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/Key.h,v 1.1 2003/04/13 19:22:16 dawes Exp $ */
+/* $XFree86$ */
#ifndef _KEY_H_
#define _KEY_H_
diff --git a/src/KeyBind.c b/src/KeyBind.c
index f56a06a4..36108245 100644
--- a/src/KeyBind.c
+++ b/src/KeyBind.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/KeyBind.c,v 1.8 2003/05/27 22:26:25 tsi Exp $ */
/* Beware, here be monsters (still under construction... - JG */
@@ -35,22 +36,35 @@ in this Software without prior written authorization from The Open Group.
#define XK_LATIN2
#define XK_LATIN3
#define XK_LATIN4
+#define XK_LATIN8
+#define XK_LATIN9
#define XK_CYRILLIC
#define XK_GREEK
+#define XK_ARMENIAN
+#define XK_CAUCASUS
+#define XK_VIETNAMESE
#define XK_XKB_KEYS
#include <X11/keysymdef.h>
#include <stdio.h>
+#include "XKBlib.h"
+
#ifdef USE_OWN_COMPOSE
#include "imComp.h"
+
#endif
+#include "Xresource.h"
+#include "XKBlibint.h"
+#include "Key.h"
+
#ifdef XKB
#define XKeycodeToKeysym _XKeycodeToKeysym
#define XKeysymToKeycode _XKeysymToKeycode
#define XLookupKeysym _XLookupKeysym
#define XRefreshKeyboardMapping _XRefreshKeyboardMapping
#define XLookupString _XLookupString
+/* XKBBind.c */
#else
#define XkbKeysymToModifiers _XKeysymToModifiers
#endif
@@ -58,7 +72,10 @@ in this Software without prior written authorization from The Open Group.
#define AllMods (ShiftMask|LockMask|ControlMask| \
Mod1Mask|Mod2Mask|Mod3Mask|Mod4Mask|Mod5Mask)
-static void ComputeMaskFromKeytrans();
+static void
+ComputeMaskFromKeytrans(
+ Display *dpy,
+ register struct _XKeytrans *p);
struct _XKeytrans {
struct _XKeytrans *next;/* next on list */
@@ -71,14 +88,7 @@ struct _XKeytrans {
};
static KeySym
-#if NeedFunctionPrototypes
KeyCodetoKeySym(register Display *dpy, KeyCode keycode, int col)
-#else
-KeyCodetoKeySym(dpy, keycode, col)
- register Display *dpy;
- KeyCode keycode;
- int col;
-#endif
{
register int per = dpy->keysyms_per_keycode;
register KeySym *syms;
@@ -109,7 +119,6 @@ KeyCodetoKeySym(dpy, keycode, col)
return syms[col];
}
-#if NeedFunctionPrototypes
KeySym
XKeycodeToKeysym(Display *dpy,
#if NeedWidePrototypes
@@ -118,13 +127,6 @@ XKeycodeToKeysym(Display *dpy,
KeyCode kc,
#endif
int col)
-#else
-KeySym
-XKeycodeToKeysym(dpy, kc, col)
- Display *dpy;
- KeyCode kc;
- int col;
-#endif
{
if ((! dpy->keysyms) && (! _XKeyInitialize(dpy)))
return NoSymbol;
@@ -160,8 +162,8 @@ XLookupKeysym(event, col)
}
static void
-ResetModMap(dpy)
- Display *dpy;
+ResetModMap(
+ Display *dpy)
{
register XModifierKeymap *map;
register int i, j, n;
@@ -209,8 +211,8 @@ ResetModMap(dpy)
}
static int
-InitModMap(dpy)
- Display *dpy;
+InitModMap(
+ Display *dpy)
{
register XModifierKeymap *map;
@@ -227,6 +229,7 @@ InitModMap(dpy)
return 1;
}
+int
XRefreshKeyboardMapping(event)
register XMappingEvent *event;
{
@@ -257,8 +260,8 @@ XRefreshKeyboardMapping(event)
}
int
-_XKeyInitialize(dpy)
- Display *dpy;
+_XKeyInitialize(
+ Display *dpy)
{
int per, n;
KeySym *keysyms;
@@ -287,14 +290,372 @@ _XKeyInitialize(dpy)
return 1;
}
+static void
+UCSConvertCase( register unsigned code,
+ KeySym *lower,
+ KeySym *upper )
+{
+ /* Case conversion for UCS, as in Unicode Data version 4.0.0 */
+ /* NB: Only converts simple one-to-one mappings. */
+
+ /* Tables are used where they take less space than */
+ /* the code to work out the mappings. Zero values mean */
+ /* undefined code points. */
+
+ static unsigned short const IPAExt_upper_mapping[] = { /* part only */
+ 0x0181, 0x0186, 0x0255, 0x0189, 0x018A,
+ 0x0258, 0x018F, 0x025A, 0x0190, 0x025C, 0x025D, 0x025E, 0x025F,
+ 0x0193, 0x0261, 0x0262, 0x0194, 0x0264, 0x0265, 0x0266, 0x0267,
+ 0x0197, 0x0196, 0x026A, 0x026B, 0x026C, 0x026D, 0x026E, 0x019C,
+ 0x0270, 0x0271, 0x019D, 0x0273, 0x0274, 0x019F, 0x0276, 0x0277,
+ 0x0278, 0x0279, 0x027A, 0x027B, 0x027C, 0x027D, 0x027E, 0x027F,
+ 0x01A6, 0x0281, 0x0282, 0x01A9, 0x0284, 0x0285, 0x0286, 0x0287,
+ 0x01AE, 0x0289, 0x01B1, 0x01B2, 0x028C, 0x028D, 0x028E, 0x028F,
+ 0x0290, 0x0291, 0x01B7
+ };
+
+ static unsigned short const LatinExtB_upper_mapping[] = { /* first part only */
+ 0x0180, 0x0181, 0x0182, 0x0182, 0x0184, 0x0184, 0x0186, 0x0187,
+ 0x0187, 0x0189, 0x018A, 0x018B, 0x018B, 0x018D, 0x018E, 0x018F,
+ 0x0190, 0x0191, 0x0191, 0x0193, 0x0194, 0x01F6, 0x0196, 0x0197,
+ 0x0198, 0x0198, 0x019A, 0x019B, 0x019C, 0x019D, 0x0220, 0x019F,
+ 0x01A0, 0x01A0, 0x01A2, 0x01A2, 0x01A4, 0x01A4, 0x01A6, 0x01A7,
+ 0x01A7, 0x01A9, 0x01AA, 0x01AB, 0x01AC, 0x01AC, 0x01AE, 0x01AF,
+ 0x01AF, 0x01B1, 0x01B2, 0x01B3, 0x01B3, 0x01B5, 0x01B5, 0x01B7,
+ 0x01B8, 0x01B8, 0x01BA, 0x01BB, 0x01BC, 0x01BC, 0x01BE, 0x01F7,
+ 0x01C0, 0x01C1, 0x01C2, 0x01C3, 0x01C4, 0x01C4, 0x01C4, 0x01C7,
+ 0x01C7, 0x01C7, 0x01CA, 0x01CA, 0x01CA
+ };
+
+ static unsigned short const LatinExtB_lower_mapping[] = { /* first part only */
+ 0x0180, 0x0253, 0x0183, 0x0183, 0x0185, 0x0185, 0x0254, 0x0188,
+ 0x0188, 0x0256, 0x0257, 0x018C, 0x018C, 0x018D, 0x01DD, 0x0259,
+ 0x025B, 0x0192, 0x0192, 0x0260, 0x0263, 0x0195, 0x0269, 0x0268,
+ 0x0199, 0x0199, 0x019A, 0x019B, 0x026F, 0x0272, 0x019E, 0x0275,
+ 0x01A1, 0x01A1, 0x01A3, 0x01A3, 0x01A5, 0x01A5, 0x0280, 0x01A8,
+ 0x01A8, 0x0283, 0x01AA, 0x01AB, 0x01AD, 0x01AD, 0x0288, 0x01B0,
+ 0x01B0, 0x028A, 0x028B, 0x01B4, 0x01B4, 0x01B6, 0x01B6, 0x0292,
+ 0x01B9, 0x01B9, 0x01BA, 0x01BB, 0x01BD, 0x01BD, 0x01BE, 0x01BF,
+ 0x01C0, 0x01C1, 0x01C2, 0x01C3, 0x01C6, 0x01C6, 0x01C6, 0x01C9,
+ 0x01C9, 0x01C9, 0x01CC, 0x01CC, 0x01CC
+ };
+
+ static unsigned short const Greek_upper_mapping[] = {
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0374, 0x0375, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x037A, 0x0000, 0x0000, 0x0000, 0x037E, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0384, 0x0385, 0x0386, 0x0387,
+ 0x0388, 0x0389, 0x038A, 0x0000, 0x038C, 0x0000, 0x038E, 0x038F,
+ 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397,
+ 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F,
+ 0x03A0, 0x03A1, 0x0000, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7,
+ 0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x0386, 0x0388, 0x0389, 0x038A,
+ 0x03B0, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397,
+ 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F,
+ 0x03A0, 0x03A1, 0x03A3, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7,
+ 0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x038C, 0x038E, 0x038F, 0x0000,
+ 0x0392, 0x0398, 0x03D2, 0x03D3, 0x03D4, 0x03A6, 0x03A0, 0x03D7,
+ 0x03D8, 0x03D8, 0x03DA, 0x03DA, 0x03DC, 0x03DC, 0x03DE, 0x03DE,
+ 0x03E0, 0x03E0, 0x03E2, 0x03E2, 0x03E4, 0x03E4, 0x03E6, 0x03E6,
+ 0x03E8, 0x03E8, 0x03EA, 0x03EA, 0x03EC, 0x03EC, 0x03EE, 0x03EE,
+ 0x039A, 0x03A1, 0x03F9, 0x03F3, 0x03F4, 0x0395, 0x03F6, 0x03F7,
+ 0x03F7, 0x03F9, 0x03FA, 0x03FA, 0x0000, 0x0000, 0x0000, 0x0000
+ };
+
+ static unsigned short const Greek_lower_mapping[] = {
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0374, 0x0375, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x037A, 0x0000, 0x0000, 0x0000, 0x037E, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0384, 0x0385, 0x03AC, 0x0387,
+ 0x03AD, 0x03AE, 0x03AF, 0x0000, 0x03CC, 0x0000, 0x03CD, 0x03CE,
+ 0x0390, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7,
+ 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF,
+ 0x03C0, 0x03C1, 0x0000, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7,
+ 0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03AC, 0x03AD, 0x03AE, 0x03AF,
+ 0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7,
+ 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF,
+ 0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7,
+ 0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE, 0x0000,
+ 0x03D0, 0x03D1, 0x03D2, 0x03D3, 0x03D4, 0x03D5, 0x03D6, 0x03D7,
+ 0x03D9, 0x03D9, 0x03DB, 0x03DB, 0x03DD, 0x03DD, 0x03DF, 0x03DF,
+ 0x03E1, 0x03E1, 0x03E3, 0x03E3, 0x03E5, 0x03E5, 0x03E7, 0x03E7,
+ 0x03E9, 0x03E9, 0x03EB, 0x03EB, 0x03ED, 0x03ED, 0x03EF, 0x03EF,
+ 0x03F0, 0x03F1, 0x03F2, 0x03F3, 0x03B8, 0x03F5, 0x03F6, 0x03F8,
+ 0x03F8, 0x03F2, 0x03FB, 0x03FB, 0x0000, 0x0000, 0x0000, 0x0000
+ };
+
+ static unsigned short const GreekExt_lower_mapping[] = {
+ 0x1F00, 0x1F01, 0x1F02, 0x1F03, 0x1F04, 0x1F05, 0x1F06, 0x1F07,
+ 0x1F00, 0x1F01, 0x1F02, 0x1F03, 0x1F04, 0x1F05, 0x1F06, 0x1F07,
+ 0x1F10, 0x1F11, 0x1F12, 0x1F13, 0x1F14, 0x1F15, 0x0000, 0x0000,
+ 0x1F10, 0x1F11, 0x1F12, 0x1F13, 0x1F14, 0x1F15, 0x0000, 0x0000,
+ 0x1F20, 0x1F21, 0x1F22, 0x1F23, 0x1F24, 0x1F25, 0x1F26, 0x1F27,
+ 0x1F20, 0x1F21, 0x1F22, 0x1F23, 0x1F24, 0x1F25, 0x1F26, 0x1F27,
+ 0x1F30, 0x1F31, 0x1F32, 0x1F33, 0x1F34, 0x1F35, 0x1F36, 0x1F37,
+ 0x1F30, 0x1F31, 0x1F32, 0x1F33, 0x1F34, 0x1F35, 0x1F36, 0x1F37,
+ 0x1F40, 0x1F41, 0x1F42, 0x1F43, 0x1F44, 0x1F45, 0x0000, 0x0000,
+ 0x1F40, 0x1F41, 0x1F42, 0x1F43, 0x1F44, 0x1F45, 0x0000, 0x0000,
+ 0x1F50, 0x1F51, 0x1F52, 0x1F53, 0x1F54, 0x1F55, 0x1F56, 0x1F57,
+ 0x0000, 0x1F51, 0x0000, 0x1F53, 0x0000, 0x1F55, 0x0000, 0x1F57,
+ 0x1F60, 0x1F61, 0x1F62, 0x1F63, 0x1F64, 0x1F65, 0x1F66, 0x1F67,
+ 0x1F60, 0x1F61, 0x1F62, 0x1F63, 0x1F64, 0x1F65, 0x1F66, 0x1F67,
+ 0x1F70, 0x1F71, 0x1F72, 0x1F73, 0x1F74, 0x1F75, 0x1F76, 0x1F77,
+ 0x1F78, 0x1F79, 0x1F7A, 0x1F7B, 0x1F7C, 0x1F7D, 0x0000, 0x0000,
+ 0x1F80, 0x1F81, 0x1F82, 0x1F83, 0x1F84, 0x1F85, 0x1F86, 0x1F87,
+ 0x1F80, 0x1F81, 0x1F82, 0x1F83, 0x1F84, 0x1F85, 0x1F86, 0x1F87,
+ 0x1F90, 0x1F91, 0x1F92, 0x1F93, 0x1F94, 0x1F95, 0x1F96, 0x1F97,
+ 0x1F90, 0x1F91, 0x1F92, 0x1F93, 0x1F94, 0x1F95, 0x1F96, 0x1F97,
+ 0x1FA0, 0x1FA1, 0x1FA2, 0x1FA3, 0x1FA4, 0x1FA5, 0x1FA6, 0x1FA7,
+ 0x1FA0, 0x1FA1, 0x1FA2, 0x1FA3, 0x1FA4, 0x1FA5, 0x1FA6, 0x1FA7,
+ 0x1FB0, 0x1FB1, 0x1FB2, 0x1FB3, 0x1FB4, 0x0000, 0x1FB6, 0x1FB7,
+ 0x1FB0, 0x1FB1, 0x1F70, 0x1F71, 0x1FB3, 0x1FBD, 0x1FBE, 0x1FBF,
+ 0x1FC0, 0x1FC1, 0x1FC2, 0x1FC3, 0x1FC4, 0x0000, 0x1FC6, 0x1FC7,
+ 0x1F72, 0x1F73, 0x1F74, 0x1F75, 0x1FC3, 0x1FCD, 0x1FCE, 0x1FCF,
+ 0x1FD0, 0x1FD1, 0x1FD2, 0x1FD3, 0x0000, 0x0000, 0x1FD6, 0x1FD7,
+ 0x1FD0, 0x1FD1, 0x1F76, 0x1F77, 0x0000, 0x1FDD, 0x1FDE, 0x1FDF,
+ 0x1FE0, 0x1FE1, 0x1FE2, 0x1FE3, 0x1FE4, 0x1FE5, 0x1FE6, 0x1FE7,
+ 0x1FE0, 0x1FE1, 0x1F7A, 0x1F7B, 0x1FE5, 0x1FED, 0x1FEE, 0x1FEF,
+ 0x0000, 0x0000, 0x1FF2, 0x1FF3, 0x1FF4, 0x0000, 0x1FF6, 0x1FF7,
+ 0x1F78, 0x1F79, 0x1F7C, 0x1F7D, 0x1FF3, 0x1FFD, 0x1FFE, 0x0000
+ };
+
+ static unsigned short const GreekExt_upper_mapping[] = {
+ 0x1F08, 0x1F09, 0x1F0A, 0x1F0B, 0x1F0C, 0x1F0D, 0x1F0E, 0x1F0F,
+ 0x1F08, 0x1F09, 0x1F0A, 0x1F0B, 0x1F0C, 0x1F0D, 0x1F0E, 0x1F0F,
+ 0x1F18, 0x1F19, 0x1F1A, 0x1F1B, 0x1F1C, 0x1F1D, 0x0000, 0x0000,
+ 0x1F18, 0x1F19, 0x1F1A, 0x1F1B, 0x1F1C, 0x1F1D, 0x0000, 0x0000,
+ 0x1F28, 0x1F29, 0x1F2A, 0x1F2B, 0x1F2C, 0x1F2D, 0x1F2E, 0x1F2F,
+ 0x1F28, 0x1F29, 0x1F2A, 0x1F2B, 0x1F2C, 0x1F2D, 0x1F2E, 0x1F2F,
+ 0x1F38, 0x1F39, 0x1F3A, 0x1F3B, 0x1F3C, 0x1F3D, 0x1F3E, 0x1F3F,
+ 0x1F38, 0x1F39, 0x1F3A, 0x1F3B, 0x1F3C, 0x1F3D, 0x1F3E, 0x1F3F,
+ 0x1F48, 0x1F49, 0x1F4A, 0x1F4B, 0x1F4C, 0x1F4D, 0x0000, 0x0000,
+ 0x1F48, 0x1F49, 0x1F4A, 0x1F4B, 0x1F4C, 0x1F4D, 0x0000, 0x0000,
+ 0x1F50, 0x1F59, 0x1F52, 0x1F5B, 0x1F54, 0x1F5D, 0x1F56, 0x1F5F,
+ 0x0000, 0x1F59, 0x0000, 0x1F5B, 0x0000, 0x1F5D, 0x0000, 0x1F5F,
+ 0x1F68, 0x1F69, 0x1F6A, 0x1F6B, 0x1F6C, 0x1F6D, 0x1F6E, 0x1F6F,
+ 0x1F68, 0x1F69, 0x1F6A, 0x1F6B, 0x1F6C, 0x1F6D, 0x1F6E, 0x1F6F,
+ 0x1FBA, 0x1FBB, 0x1FC8, 0x1FC9, 0x1FCA, 0x1FCB, 0x1FDA, 0x1FDB,
+ 0x1FF8, 0x1FF9, 0x1FEA, 0x1FEB, 0x1FFA, 0x1FFB, 0x0000, 0x0000,
+ 0x1F88, 0x1F89, 0x1F8A, 0x1F8B, 0x1F8C, 0x1F8D, 0x1F8E, 0x1F8F,
+ 0x1F88, 0x1F89, 0x1F8A, 0x1F8B, 0x1F8C, 0x1F8D, 0x1F8E, 0x1F8F,
+ 0x1F98, 0x1F99, 0x1F9A, 0x1F9B, 0x1F9C, 0x1F9D, 0x1F9E, 0x1F9F,
+ 0x1F98, 0x1F99, 0x1F9A, 0x1F9B, 0x1F9C, 0x1F9D, 0x1F9E, 0x1F9F,
+ 0x1FA8, 0x1FA9, 0x1FAA, 0x1FAB, 0x1FAC, 0x1FAD, 0x1FAE, 0x1FAF,
+ 0x1FA8, 0x1FA9, 0x1FAA, 0x1FAB, 0x1FAC, 0x1FAD, 0x1FAE, 0x1FAF,
+ 0x1FB8, 0x1FB9, 0x1FB2, 0x1FBC, 0x1FB4, 0x0000, 0x1FB6, 0x1FB7,
+ 0x1FB8, 0x1FB9, 0x1FBA, 0x1FBB, 0x1FBC, 0x1FBD, 0x0399, 0x1FBF,
+ 0x1FC0, 0x1FC1, 0x1FC2, 0x1FCC, 0x1FC4, 0x0000, 0x1FC6, 0x1FC7,
+ 0x1FC8, 0x1FC9, 0x1FCA, 0x1FCB, 0x1FCC, 0x1FCD, 0x1FCE, 0x1FCF,
+ 0x1FD8, 0x1FD9, 0x1FD2, 0x1FD3, 0x0000, 0x0000, 0x1FD6, 0x1FD7,
+ 0x1FD8, 0x1FD9, 0x1FDA, 0x1FDB, 0x0000, 0x1FDD, 0x1FDE, 0x1FDF,
+ 0x1FE8, 0x1FE9, 0x1FE2, 0x1FE3, 0x1FE4, 0x1FEC, 0x1FE6, 0x1FE7,
+ 0x1FE8, 0x1FE9, 0x1FEA, 0x1FEB, 0x1FEC, 0x1FED, 0x1FEE, 0x1FEF,
+ 0x0000, 0x0000, 0x1FF2, 0x1FFC, 0x1FF4, 0x0000, 0x1FF6, 0x1FF7,
+ 0x1FF8, 0x1FF9, 0x1FFA, 0x1FFB, 0x1FFC, 0x1FFD, 0x1FFE, 0x0000
+ };
+
+ *lower = code;
+ *upper = code;
+
+ /* Basic Latin and Latin-1 Supplement, U+0000 to U+00FF */
+ if (code <= 0x00ff) {
+ if (code >= 0x0041 && code <= 0x005a)
+ *lower += 0x20;
+ else if (code >= 0x0061 && code <= 0x007a)
+ *upper -= 0x20;
+ else if ( (code >= 0x00c0 && code <= 0x00d6) ||
+ (code >= 0x00d8 && code <= 0x00de) )
+ *lower += 0x20;
+ else if ( (code >= 0x00e0 && code <= 0x00f6) ||
+ (code >= 0x00f8 && code <= 0x00fe) )
+ *upper -= 0x20;
+ else if (code == 0x00ff)
+ *upper = 0x0178;
+ else if (code == 0x00b5)
+ *upper = 0x039c;
+ }
+
+ /* Latin Extended-A, U+0100 to U+017F */
+ if (code >= 0x0100 && code <= 0x017f) {
+ if ( (code >= 0x0100 && code <= 0x012f) ||
+ (code >= 0x0132 && code <= 0x0137) ||
+ (code >= 0x014a && code <= 0x0177) ) {
+ *upper = code & ~1;
+ *lower = code | 1;
+ }
+ else if ( (code >= 0x0139 && code <= 0x0148) ||
+ (code >= 0x0179 && code <= 0x017e) ) {
+ if (code & 1)
+ *lower += 1;
+ else
+ *upper -= 1;
+ }
+ else if (code == 0x0130)
+ *lower = 0x0069;
+ else if (code == 0x0131)
+ *upper = 0x0049;
+ else if (code == 0x0178)
+ *lower = 0x00ff;
+ else if (code == 0x017f)
+ *upper = 0x0053;
+ }
+
+ /* Latin Extended-B, U+0180 to U+024F */
+ if (code >= 0x0180 && code <= 0x024f) {
+ if (code >= 0x01cd && code <= 0x01dc) {
+ if (code & 1)
+ *lower += 1;
+ else
+ *upper -= 1;
+ }
+ else if ( (code >= 0x01de && code <= 0x01ef) ||
+ (code >= 0x01f4 && code <= 0x01f5) ||
+ (code >= 0x01f8 && code <= 0x021f) ||
+ (code >= 0x0222 && code <= 0x0233) ) {
+ *lower |= 1;
+ *upper &= ~1;
+ }
+ else if (code >= 0x0180 && code <= 0x01cc) {
+ *lower = LatinExtB_lower_mapping[code - 0x0180];
+ *upper = LatinExtB_upper_mapping[code - 0x0180];
+ }
+ else if (code == 0x01dd)
+ *upper = 0x018e;
+ else if (code == 0x01f1 || code == 0x01f2) {
+ *lower = 0x01f3;
+ *upper = 0x01f1;
+ }
+ else if (code == 0x01f3)
+ *upper = 0x01f1;
+ else if (code == 0x01f6)
+ *lower = 0x0195;
+ else if (code == 0x01f7)
+ *lower = 0x01bf;
+ else if (code == 0x0220)
+ *lower = 0x019e;
+ }
+
+ /* IPA Extensions, U+0250 to U+02AF */
+ if (code >= 0x0253 && code <= 0x0292) {
+ *upper = IPAExt_upper_mapping[code - 0x0253];
+ }
+
+ /* Combining Diacritical Marks, U+0300 to U+036F */
+ if (code == 0x0345) {
+ *upper = 0x0399;
+ }
+
+ /* Greek and Coptic, U+0370 to U+03FF */
+ if (code >= 0x0370 && code <= 0x03ff) {
+ *lower = Greek_lower_mapping[code - 0x0370];
+ *upper = Greek_upper_mapping[code - 0x0370];
+ if (*upper == 0)
+ *upper = code;
+ if (*lower == 0)
+ *lower = code;
+ }
+
+ /* Cyrillic and Cyrillic Supplementary, U+0400 to U+052F */
+ if ( (code >= 0x0400 && code <= 0x04ff) ||
+ (code >= 0x0500 && code <= 0x052f) ) {
+ if (code >= 0x0400 && code <= 0x040f)
+ *lower += 0x50;
+ else if (code >= 0x0410 && code <= 0x042f)
+ *lower += 0x20;
+ else if (code >= 0x0430 && code <= 0x044f)
+ *upper -= 0x20;
+ else if (code >= 0x0450 && code <= 0x045f)
+ *upper -= 0x50;
+ else if ( (code >= 0x0460 && code <= 0x0481) ||
+ (code >= 0x048a && code <= 0x04bf) ||
+ (code >= 0x04d0 && code <= 0x04f5) ||
+ (code >= 0x04f8 && code <= 0x04f9) ||
+ (code >= 0x0500 && code <= 0x050f) ) {
+ *upper &= ~1;
+ *lower |= 1;
+ }
+ else if (code >= 0x04c1 && code <= 0x04ce) {
+ if (code & 1)
+ *lower += 1;
+ else
+ *upper -= 1;
+ }
+ }
+
+ /* Armenian, U+0530 to U+058F */
+ if (code >= 0x0530 && code <= 0x058f) {
+ if (code >= 0x0531 && code <= 0x0556)
+ *lower += 0x30;
+ else if (code >=0x0561 && code <= 0x0586)
+ *upper -= 0x30;
+ }
+
+ /* Latin Extended Additional, U+1E00 to U+1EFF */
+ if (code >= 0x1e00 && code <= 0x1eff) {
+ if ( (code >= 0x1e00 && code <= 0x1e95) ||
+ (code >= 0x1ea0 && code <= 0x1ef9) ) {
+ *upper &= ~1;
+ *lower |= 1;
+ }
+ else if (code == 0x1e9b)
+ *upper = 0x1e60;
+ }
+
+ /* Greek Extended, U+1F00 to U+1FFF */
+ if (code >= 0x1f00 && code <= 0x1fff) {
+ *lower = GreekExt_lower_mapping[code - 0x1f00];
+ *upper = GreekExt_upper_mapping[code - 0x1f00];
+ if (*upper == 0)
+ *upper = code;
+ if (*lower == 0)
+ *lower = code;
+ }
+
+ /* Letterlike Symbols, U+2100 to U+214F */
+ if (code >= 0x2100 && code <= 0x214f) {
+ switch (code) {
+ case 0x2126: *lower = 0x03c9; break;
+ case 0x212a: *lower = 0x006b; break;
+ case 0x212b: *lower = 0x00e5; break;
+ }
+ }
+ /* Number Forms, U+2150 to U+218F */
+ else if (code >= 0x2160 && code <= 0x216f)
+ *lower += 0x10;
+ else if (code >= 0x2170 && code <= 0x217f)
+ *upper -= 0x10;
+ /* Enclosed Alphanumerics, U+2460 to U+24FF */
+ else if (code >= 0x24b6 && code <= 0x24cf)
+ *lower += 0x1a;
+ else if (code >= 0x24d0 && code <= 0x24e9)
+ *upper -= 0x1a;
+ /* Halfwidth and Fullwidth Forms, U+FF00 to U+FFEF */
+ else if (code >= 0xff21 && code <= 0xff3a)
+ *lower += 0x20;
+ else if (code >= 0xff41 && code <= 0xff5a)
+ *upper -= 0x20;
+ /* Deseret, U+10400 to U+104FF */
+ else if (code >= 0x10400 && code <= 0x10427)
+ *lower += 0x28;
+ else if (code >= 0x10428 && code <= 0x1044f)
+ *upper -= 0x28;
+}
+
void
XConvertCase(sym, lower, upper)
register KeySym sym;
KeySym *lower;
KeySym *upper;
{
+ /* Unicode keysym */
+ if ((sym & 0xff000000) == 0x01000000) {
+ UCSConvertCase((sym & 0x00ffffff), lower, upper);
+ *upper |= 0x01000000;
+ *lower |= 0x01000000;
+ return;
+ }
+
*lower = sym;
*upper = sym;
+
switch(sym >> 8) {
case 0: /* Latin 1 */
if ((sym >= XK_A) && (sym <= XK_Z))
@@ -309,6 +670,8 @@ XConvertCase(sym, lower, upper)
*lower += (XK_oslash - XK_Ooblique);
else if ((sym >= XK_oslash) && (sym <= XK_thorn))
*upper -= (XK_oslash - XK_Ooblique);
+ else if (sym == XK_ydiaeresis)
+ *upper = XK_Ydiaeresis; /* actually a Latin 9 character */
break;
case 1: /* Latin 2 */
/* Assume the KeySym is a legal value (ignore discontinuities) */
@@ -388,24 +751,119 @@ XConvertCase(sym, lower, upper)
sym != XK_Greek_finalsmallsigma)
*upper -= (XK_Greek_alpha - XK_Greek_ALPHA);
break;
+ case 0x12: /* Latin 8 */
+ /* No neat pattern to the values */
+ switch (sym) {
+ case XK_Babovedot:
+ *lower = XK_babovedot; break;
+ case XK_babovedot:
+ *upper = XK_Babovedot; break;
+ case XK_Dabovedot:
+ *lower = XK_dabovedot; break;
+ case XK_Wgrave:
+ *lower = XK_wgrave; break;
+ case XK_Wacute:
+ *lower = XK_wacute; break;
+ case XK_dabovedot:
+ *upper = XK_Dabovedot; break;
+ case XK_Ygrave:
+ *lower = XK_ygrave; break;
+ case XK_Fabovedot:
+ *lower = XK_fabovedot; break;
+ case XK_fabovedot:
+ *upper = XK_Fabovedot; break;
+ case XK_Mabovedot:
+ *lower = XK_mabovedot; break;
+ case XK_mabovedot:
+ *upper = XK_Mabovedot; break;
+ case XK_Pabovedot:
+ *lower = XK_pabovedot; break;
+ case XK_wgrave:
+ *upper = XK_Wgrave; break;
+ case XK_pabovedot:
+ *upper = XK_Pabovedot; break;
+ case XK_wacute:
+ *upper = XK_Wacute; break;
+ case XK_Sabovedot:
+ *lower = XK_sabovedot; break;
+ case XK_ygrave:
+ *upper = XK_Ygrave; break;
+ case XK_Wdiaeresis:
+ *lower = XK_wdiaeresis; break;
+ case XK_wdiaeresis:
+ *upper = XK_Wdiaeresis; break;
+ case XK_sabovedot:
+ *upper = XK_Sabovedot; break;
+ case XK_Wcircumflex:
+ *lower = XK_wcircumflex; break;
+ case XK_Tabovedot:
+ *lower = XK_tabovedot; break;
+ case XK_Ycircumflex:
+ *lower = XK_ycircumflex; break;
+ case XK_wcircumflex:
+ *upper = XK_Wcircumflex; break;
+ case XK_tabovedot:
+ *upper = XK_Tabovedot; break;
+ case XK_ycircumflex:
+ *upper = XK_Ycircumflex; break;
+ }
+ break;
+ case 0x13: /* Latin 9 */
+ if (sym == XK_OE)
+ *lower = XK_oe;
+ else if (sym == XK_oe)
+ *upper = XK_OE;
+ else if (sym == XK_Ydiaeresis)
+ *lower = XK_ydiaeresis;
+ break;
+ case 0x14: /* Armenian */
+ if (sym >= XK_Armenian_AYB && sym <= XK_Armenian_fe) {
+ *lower = sym | 1;
+ *upper = sym & ~1;
+ }
+ break;
+ case 0x16: /* Caucasus, Inupiak, Guarani */
+ if (sym == XK_ocaron || sym == XK_Ocaron) {
+ *upper = XK_Ocaron;
+ *lower = XK_ocaron;
+ }
+ else if (sym >= XK_Ccedillaabovedot && sym <= XK_Obarred)
+ *lower += (XK_ccedillaabovedot - XK_Ccedillaabovedot);
+ else if (sym >= XK_ccedillaabovedot && sym <= XK_obarred)
+ *upper -= (XK_ccedillaabovedot - XK_Ccedillaabovedot);
+ else if (sym == XK_schwa || sym == XK_SCHWA) {
+ *lower = XK_schwa;
+ *upper = XK_SCHWA;
+ }
+ else if (sym == XK_lbelowdot || sym == XK_Lbelowdot) {
+ *lower = XK_lbelowdot;
+ *upper = XK_Lbelowdot;
+ }
+ else if (sym == XK_lstrokebelowdot || sym == XK_Lstrokebelowdot) {
+ *lower = XK_lstrokebelowdot;
+ *upper = XK_Lstrokebelowdot;
+ }
+ else if (sym == XK_gtilde || sym == XK_Gtilde) {
+ *lower = XK_gtilde;
+ *upper = XK_Gtilde;
+ }
+ break;
+ case 0x1e: /* Vietnamese */
+ if ((sym >= XK_Abelowdot && sym <= XK_uhornbelowdot) ||
+ (sym >= XK_Ybelowdot && sym <= XK_uhorn)) {
+ *lower = sym | 1;
+ *upper = sym & ~1;
+ }
+ break;
}
}
int
-#if NeedFunctionPrototypes
_XTranslateKey( register Display *dpy,
KeyCode keycode,
register unsigned int modifiers,
unsigned int *modifiers_return,
KeySym *keysym_return)
-#else
-_XTranslateKey(dpy, keycode, modifiers, modifiers_return, keysym_return)
- register Display *dpy;
- KeyCode keycode;
- register unsigned int modifiers;
- unsigned int *modifiers_return;
- KeySym *keysym_return;
-#endif
{
int per;
register KeySym *syms;
@@ -610,8 +1068,8 @@ XLookupString (event, buffer, nbytes, keysym, status)
}
static void
-_XFreeKeyBindings (dpy)
- Display *dpy;
+_XFreeKeyBindings(
+ Display *dpy)
{
register struct _XKeytrans *p, *np;
@@ -623,7 +1081,7 @@ _XFreeKeyBindings (dpy)
}
}
-#if NeedFunctionPrototypes
+int
XRebindKeysym (
Display *dpy,
KeySym keysym,
@@ -631,15 +1089,6 @@ XRebindKeysym (
int nm, /* number of modifiers in mlist */
_Xconst unsigned char *str,
int nbytes)
-#else
-XRebindKeysym (dpy, keysym, mlist, nm, str, nbytes)
- Display *dpy;
- KeySym keysym;
- KeySym *mlist;
- int nm; /* number of modifiers in mlist */
- unsigned char *str;
- int nbytes;
-#endif
{
register struct _XKeytrans *tmp, *p;
int nb;
@@ -678,9 +1127,9 @@ XRebindKeysym (dpy, keysym, mlist, nm, str, nbytes)
}
unsigned
-_XKeysymToModifiers(dpy,ks)
- Display *dpy;
- KeySym ks;
+_XKeysymToModifiers(
+ Display *dpy,
+ KeySym ks)
{
CARD8 code,mods;
register KeySym *kmax;
@@ -717,9 +1166,9 @@ _XKeysymToModifiers(dpy,ks)
* can't map some keysym to a modifier.
*/
static void
-ComputeMaskFromKeytrans(dpy, p)
- Display *dpy;
- register struct _XKeytrans *p;
+ComputeMaskFromKeytrans(
+ Display *dpy,
+ register struct _XKeytrans *p)
{
register int i;
diff --git a/src/KeysymStr.c b/src/KeysymStr.c
index 1e94a5d7..5a21f05f 100644
--- a/src/KeysymStr.c
+++ b/src/KeysymStr.c
@@ -25,24 +25,19 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/KeysymStr.c,v 3.9 2003/04/13 19:22:16 dawes Exp $ */
#include "Xlibint.h"
#include <X11/Xresource.h>
#include <X11/keysymdef.h>
-#ifdef __STDC__
-#define Const const
-#else
-#define Const /**/
-#endif
+#include <stdio.h> /* sprintf */
typedef unsigned long Signature;
#define NEEDVTABLE
#include "ks_tables.h"
-
-extern XrmDatabase _XInitKeysymDB();
-extern Const unsigned char _XkeyTable[];
+#include "Key.h"
typedef struct _GRNData {
@@ -51,9 +46,9 @@ typedef struct _GRNData {
XrmValuePtr value;
} GRNData;
-#if NeedFunctionPrototypes
/*ARGSUSED*/
-static Bool SameValue(
+static Bool
+SameValue(
XrmDatabase* db,
XrmBindingList bindings,
XrmQuarkList quarks,
@@ -61,15 +56,6 @@ static Bool SameValue(
XrmValuePtr value,
XPointer data
)
-#else
-static Bool SameValue(db, bindings, quarks, type, value, data)
- XrmDatabase *db;
- XrmBindingList bindings;
- XrmQuarkList quarks;
- XrmRepresentation *type;
- XrmValuePtr value;
- XPointer data;
-#endif
{
GRNData *gd = (GRNData *)data;
@@ -88,7 +74,7 @@ char *XKeysymToString(ks)
register int i, n;
int h;
register int idx;
- Const unsigned char *entry;
+ const unsigned char *entry;
unsigned char val1, val2;
XrmDatabase keysymdb;
@@ -131,7 +117,32 @@ char *XKeysymToString(ks)
data.value = &resval;
(void)XrmEnumerateDatabase(keysymdb, &empty, &empty, XrmEnumAllLevels,
SameValue, (XPointer)&data);
- return data.name;
+ if (data.name)
+ return data.name;
+ }
+ if ((ks & 0xff000000) == 0x01000000){
+ KeySym val = ks & 0xffffff;
+ char *s;
+ int i;
+ if (val & 0xff0000)
+ i = 10;
+ else
+ i = 6;
+ s = Xmalloc(i);
+ if (s == NULL)
+ return s;
+ i--;
+ s[i--] = '\0';
+ for (; i; i--){
+ val1 = val & 0xf;
+ val >>= 4;
+ if (val1 < 10)
+ s[i] = '0'+ val1;
+ else
+ s[i] = 'A'+ val1 - 10;
+ }
+ s[i] = 'U';
+ return s;
}
return ((char *) NULL);
}
diff --git a/src/KillCl.c b/src/KillCl.c
index 750ea825..6f05057c 100644
--- a/src/KillCl.c
+++ b/src/KillCl.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/KillCl.c,v 1.3 2001/01/17 19:41:38 dawes Exp $ */
#include "Xlibint.h"
+int
XKillClient(dpy, resource)
register Display *dpy;
XID resource;
diff --git a/src/LiHosts.c b/src/LiHosts.c
index 2f22d71d..406c8550 100644
--- a/src/LiHosts.c
+++ b/src/LiHosts.c
@@ -1,27 +1,38 @@
/* $Xorg: LiHosts.c,v 1.4 2001/02/09 02:03:34 xorgcvs Exp $ */
+/* $XdotOrg: lib/X11/src/LiHosts.c,v 1.2 2004-04-23 18:43:24 eich Exp $ */
/*
Copyright 1986, 1998 The Open Group
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.
-
-The above copyright notice and this permission notice 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 NONINFRINGEMENT. IN NO EVENT SHALL THE
-OPEN GROUP 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.
-
-Except as contained in this notice, the name of The Open Group shall not be
-used in advertising or otherwise to promote the sale, use or other dealings
-in this Software without prior written authorization from The Open Group.
+Copyright 2004 Sun Microsystems, 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, and/or sell copies of the Software, and to permit persons
+to whom the Software is furnished to do so, provided that the above
+copyright notice(s) and this permission notice appear in all copies of
+the Software and that both the above copyright notice(s) and this
+permission notice appear in supporting documentation.
+
+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 NONINFRINGEMENT
+OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder
+shall not be used in advertising or otherwise to promote the sale, use
+or other dealings in this Software without prior written authorization
+of the copyright holder.
+
+X Window System is a trademark of The Open Group.
*/
@@ -33,17 +44,18 @@ in this Software without prior written authorization from The Open Group.
* can be freed using XFree.
*/
-XHostAddress *XListHosts (dpy, nhosts, enabled)
- register Display *dpy;
- int *nhosts; /* RETURN */
- Bool *enabled; /* RETURN */
- {
+XHostAddress *XListHosts (
+ register Display *dpy,
+ int *nhosts, /* RETURN */
+ Bool *enabled) /* RETURN */
+{
register XHostAddress *outbuf = 0, *op;
xListHostsReply reply;
long nbytes;
unsigned char *buf, *bp;
register unsigned i;
register xListHostsReq *req;
+ XServerInterpretedAddress *sip;
*nhosts = 0;
LockDisplay(dpy);
@@ -56,9 +68,15 @@ XHostAddress *XListHosts (dpy, nhosts, enabled)
}
if (reply.nHosts) {
+ unsigned int l;
nbytes = reply.length << 2; /* compute number of bytes in reply */
+ l = (unsigned) (nbytes +
+ (reply.nHosts * sizeof(XHostAddress)) +
+ (reply.nHosts * sizeof(XServerInterpretedAddress)));
op = outbuf = (XHostAddress *)
- Xmalloc((unsigned) (nbytes + reply.nHosts * sizeof(XHostAddress)));
+ Xmalloc((unsigned) (nbytes +
+ (reply.nHosts * sizeof(XHostAddress)) +
+ (reply.nHosts * sizeof(XServerInterpretedAddress))));
if (! outbuf) {
_XEatData(dpy, (unsigned long) nbytes);
@@ -66,8 +84,10 @@ XHostAddress *XListHosts (dpy, nhosts, enabled)
SyncHandle();
return (XHostAddress *) NULL;
}
- bp = buf =
- ((unsigned char *) outbuf) + reply.nHosts * sizeof(XHostAddress);
+ sip = (XServerInterpretedAddress *)
+ (((unsigned char *) outbuf) + (reply.nHosts * sizeof(XHostAddress)));
+ bp = buf = ((unsigned char *) sip)
+ + (reply.nHosts * sizeof(XServerInterpretedAddress));
_XRead (dpy, (char *) buf, nbytes);
@@ -81,7 +101,24 @@ XHostAddress *XListHosts (dpy, nhosts, enabled)
op->family = ((xHostEntry *) bp)->family;
op->length =((xHostEntry *) bp)->length;
#endif
- op->address = (char *) (bp + SIZEOF(xHostEntry));
+ if (op->family == FamilyServerInterpreted) {
+ char *tp = (char *) (bp + SIZEOF(xHostEntry));
+ char *vp = memchr(tp, 0, op->length);
+
+ if (vp != NULL) {
+ sip->type = tp;
+ sip->typelength = vp - tp;
+ sip->value = vp + 1;
+ sip->valuelength = op->length - (sip->typelength + 1);
+ } else {
+ sip->type = sip->value = NULL;
+ sip->typelength = sip->valuelength = 0;
+ }
+ op->address = (char *) sip;
+ sip++;
+ } else {
+ op->address = (char *) (bp + SIZEOF(xHostEntry));
+ }
bp += SIZEOF(xHostEntry) + (((op->length + 3) >> 2) << 2);
op++;
}
diff --git a/src/LiICmaps.c b/src/LiICmaps.c
index 93076cc7..93a45025 100644
--- a/src/LiICmaps.c
+++ b/src/LiICmaps.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/LiICmaps.c,v 1.3 2001/01/17 19:41:39 dawes Exp $ */
#define NEED_REPLIES
#include "Xlibint.h"
@@ -58,7 +59,7 @@ int *n; /* RETURN */
SyncHandle();
return((Colormap *) NULL);
}
- _XRead32 (dpy, (char *) cmaps, nbytes);
+ _XRead32 (dpy, (long *) cmaps, nbytes);
}
else cmaps = (Colormap *) NULL;
diff --git a/src/LiProps.c b/src/LiProps.c
index ae733d74..346b8cac 100644
--- a/src/LiProps.c
+++ b/src/LiProps.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/LiProps.c,v 1.3 2001/01/17 19:41:39 dawes Exp $ */
#define NEED_REPLIES
#include "Xlibint.h"
@@ -57,7 +58,7 @@ int *n_props; /* RETURN */
SyncHandle();
return (Atom *) NULL;
}
- _XRead32 (dpy, (char *) properties, nbytes);
+ _XRead32 (dpy, (long *) properties, nbytes);
}
else properties = (Atom *) NULL;
diff --git a/src/ListExt.c b/src/ListExt.c
index 6d626be9..e0a35c20 100644
--- a/src/ListExt.c
+++ b/src/ListExt.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/ListExt.c,v 1.3 2001/01/17 19:41:39 dawes Exp $ */
#define NEED_REPLIES
#include "Xlibint.h"
@@ -85,6 +86,7 @@ int *nextensions; /* RETURN */
return (list);
}
+int
XFreeExtensionList (list)
char **list;
{
diff --git a/src/LoadFont.c b/src/LoadFont.c
index 6dd96ad6..bffdafe8 100644
--- a/src/LoadFont.c
+++ b/src/LoadFont.c
@@ -24,22 +24,22 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/LoadFont.c,v 1.4 2001/12/14 19:54:02 dawes Exp $ */
#include "Xlibint.h"
-#if NeedFunctionPrototypes
-Font XLoadFont (
+Font
+XLoadFont (
register Display *dpy,
_Xconst char *name)
-#else
-Font XLoadFont (dpy, name)
- register Display *dpy;
- char *name;
-#endif
{
register long nbytes;
Font fid;
register xOpenFontReq *req;
+
+ if (_XF86LoadQueryLocaleFont(dpy, name, (XFontStruct **)0, &fid))
+ return fid;
+
LockDisplay(dpy);
GetReq(OpenFont, req);
nbytes = req->nbytes = name ? strlen(name) : 0;
diff --git a/src/LockDis.c b/src/LockDis.c
index 91766791..96aabe45 100644
--- a/src/LockDis.c
+++ b/src/LockDis.c
@@ -25,6 +25,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86$ */
/*
* Author: Stephen Gildea, MIT X Consortium
@@ -37,13 +38,9 @@ in this Software without prior written authorization from The Open Group.
#include "locking.h"
#endif
-#if NeedFunctionPrototypes
-void XLockDisplay(
+void
+XLockDisplay(
register Display* dpy)
-#else
-void XLockDisplay(dpy)
- register Display* dpy;
-#endif
{
#ifdef XTHREADS
LockDisplay(dpy);
@@ -73,13 +70,9 @@ void XLockDisplay(dpy)
#endif
}
-#if NeedFunctionPrototypes
-void XUnlockDisplay(
+void
+XUnlockDisplay(
register Display* dpy)
-#else
-void XUnlockDisplay(dpy)
- register Display* dpy;
-#endif
{
#ifdef XTHREADS
LockDisplay(dpy);
diff --git a/src/LookupCol.c b/src/LookupCol.c
index b7f56d3d..e68625e8 100644
--- a/src/LookupCol.c
+++ b/src/LookupCol.c
@@ -24,29 +24,21 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/LookupCol.c,v 1.6 2003/04/13 19:22:16 dawes Exp $ */
#define NEED_REPLIES
#include <stdio.h>
#include "Xlibint.h"
#include "Xcmsint.h"
-extern void _XcmsRGB_to_XColor();
-extern void _XUnresolveColor();
-#if NeedFunctionPrototypes
-Status XLookupColor (
+Status
+XLookupColor (
register Display *dpy,
Colormap cmap,
_Xconst char *spec,
XColor *def,
XColor *scr)
-#else
-Status XLookupColor (dpy, cmap, spec, def, scr)
- register Display *dpy;
- Colormap cmap;
- char *spec;
- XColor *def, *scr;
-#endif
{
register int n;
xLookupColorReply reply;
@@ -57,22 +49,28 @@ Status XLookupColor (dpy, cmap, spec, def, scr)
/*
* Let's Attempt to use Xcms and i18n approach to Parse Color
*/
- /* copy string to allow overwrite by _XcmsResolveColorString() */
if ((ccc = XcmsCCCOfColormap(dpy, cmap)) != (XcmsCCC)NULL) {
- if (_XcmsResolveColorString(ccc, &spec,
- &cmsColor_exact, XcmsRGBFormat) >= XcmsSuccess) {
+ const char *tmpName = spec;
+
+ switch (_XcmsResolveColorString(ccc, &tmpName, &cmsColor_exact,
+ XcmsRGBFormat)) {
+ case XcmsSuccess:
+ case XcmsSuccessWithCompression:
_XcmsRGB_to_XColor(&cmsColor_exact, def, 1);
memcpy((char *)scr, (char *)def, sizeof(XColor));
_XUnresolveColor(ccc, scr);
return(1);
+ case XcmsFailure:
+ case _XCMS_NEWNAME:
+ /*
+ * if the result was _XCMS_NEWNAME tmpName points to
+ * a string in cmsColNm.c:pairs table, for example,
+ * gray70 would become tekhvc:0.0/70.0/0.0
+ */
+ break;
}
- /*
- * Otherwise we failed; or spec was changed with yet another
- * name. Thus pass name to the X Server.
- */
}
-
/*
* Xcms and i18n methods failed, so lets pass it to the server
* for parsing.
diff --git a/src/LowerWin.c b/src/LowerWin.c
index fb53df0a..1a639deb 100644
--- a/src/LowerWin.c
+++ b/src/LowerWin.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/LowerWin.c,v 1.3 2001/01/17 19:41:39 dawes Exp $ */
#include "Xlibint.h"
+int
XLowerWindow(dpy, w)
Display *dpy;
Window w;
diff --git a/src/Macros.c b/src/Macros.c
index 61188588..cc7c6172 100644
--- a/src/Macros.c
+++ b/src/Macros.c
@@ -24,8 +24,12 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/Macros.c,v 1.4 2001/12/14 19:54:02 dawes Exp $ */
#include "Xlibint.h"
+#define XUTIL_DEFINE_FUNCTIONS
+#include "Xutil.h"
+
/*
* This file makes full definitions of routines for each macro.
* We do not expect C programs to use these, but other languages may
@@ -198,44 +202,46 @@ int XScreenNumberOfScreen (scr)
* naive people are more comfortable with them.
*/
#undef XDestroyImage
-XDestroyImage(ximage)
- XImage *ximage;
+int
+XDestroyImage(
+ XImage *ximage)
{
return((*((ximage)->f.destroy_image))((ximage)));
}
#undef XGetPixel
-unsigned long XGetPixel(ximage, x, y)
- XImage *ximage;
- int x, y;
+unsigned long XGetPixel(
+ XImage *ximage,
+ int x, int y)
{
return ((*((ximage)->f.get_pixel))((ximage), (x), (y)));
}
#undef XPutPixel
-int XPutPixel(ximage, x, y, pixel)
- XImage *ximage;
- int x, y;
- unsigned long pixel;
+int XPutPixel(
+ XImage *ximage,
+ int x, int y,
+ unsigned long pixel)
{
return((*((ximage)->f.put_pixel))((ximage), (x), (y), (pixel)));
}
#undef XSubImage
-XImage *XSubImage(ximage, x, y, width, height)
- XImage *ximage;
- int x, y;
- unsigned int width, height;
+XImage *XSubImage(
+ XImage *ximage,
+ int x, int y,
+ unsigned int width, unsigned int height)
{
return((*((ximage)->f.sub_image))((ximage), (x),
(y), (width), (height)));
}
#undef XAddPixel
-int XAddPixel(ximage, value)
- XImage *ximage;
- long value;
+int XAddPixel(
+ XImage *ximage,
+ long value)
{
return((*((ximage)->f.add_pixel))((ximage), (value)));
}
+int
XNoOp (dpy)
register Display *dpy;
{
diff --git a/src/MapRaised.c b/src/MapRaised.c
index e00cb75a..fc98179d 100644
--- a/src/MapRaised.c
+++ b/src/MapRaised.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/MapRaised.c,v 1.3 2001/01/17 19:41:40 dawes Exp $ */
#include "Xlibint.h"
+int
XMapRaised (dpy, w)
Window w;
register Display *dpy;
diff --git a/src/MapSubs.c b/src/MapSubs.c
index 39589e93..8c07b7d5 100644
--- a/src/MapSubs.c
+++ b/src/MapSubs.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/MapSubs.c,v 1.3 2001/01/17 19:41:40 dawes Exp $ */
#include "Xlibint.h"
+int
XMapSubwindows(dpy, win)
register Display *dpy;
Window win;
diff --git a/src/MapWindow.c b/src/MapWindow.c
index e0c06efe..5258fd91 100644
--- a/src/MapWindow.c
+++ b/src/MapWindow.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/MapWindow.c,v 1.3 2001/01/17 19:41:40 dawes Exp $ */
#include "Xlibint.h"
+int
XMapWindow (dpy, w)
Window w;
register Display *dpy;
diff --git a/src/MaskEvent.c b/src/MaskEvent.c
index c51d7b9d..94db3ae2 100644
--- a/src/MaskEvent.c
+++ b/src/MaskEvent.c
@@ -24,17 +24,12 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/MaskEvent.c,v 3.5 2001/10/28 03:32:30 tsi Exp $ */
#define NEED_EVENTS
#include "Xlibint.h"
-#ifdef __STDC__
-#define Const const
-#else
-#define Const /**/
-#endif
-
-extern long Const _Xevent_to_mask[];
+extern long const _Xevent_to_mask[];
#define AllPointers (PointerMotionMask|PointerMotionHintMask|ButtonMotionMask)
#define AllButtons (Button1MotionMask|Button2MotionMask|Button3MotionMask|\
Button4MotionMask|Button5MotionMask)
@@ -45,13 +40,14 @@ extern long Const _Xevent_to_mask[];
* Events earlier in the queue are not discarded.
*/
+int
XMaskEvent (dpy, mask, event)
register Display *dpy;
long mask; /* Selected event mask. */
register XEvent *event; /* XEvent to be filled in. */
{
register _XQEvent *prev, *qelt;
- unsigned long qe_serial;
+ unsigned long qe_serial = 0;
LockDisplay(dpy);
prev = NULL;
diff --git a/src/Misc.c b/src/Misc.c
index 3b0b17d8..bd017bad 100644
--- a/src/Misc.c
+++ b/src/Misc.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/Misc.c,v 1.3 2001/01/17 19:41:40 dawes Exp $ */
#include "Xlibint.h"
@@ -45,6 +46,7 @@ unsigned long XDisplayMotionBufferSize(dpy)
return dpy->motion_buffer;
}
+int
XDisplayKeycodes(dpy, min_keycode_return, max_keycode_return)
Display *dpy;
int *min_keycode_return, *max_keycode_return;
diff --git a/src/ModMap.c b/src/ModMap.c
index 51a32101..8740bd82 100644
--- a/src/ModMap.c
+++ b/src/ModMap.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/ModMap.c,v 1.4 2001/12/14 19:54:03 dawes Exp $ */
#define NEED_REPLIES
#include "Xlibint.h"
@@ -108,6 +109,7 @@ XNewModifiermap(keyspermodifier)
}
+int
XFreeModifiermap(map)
XModifierKeymap *map;
{
@@ -119,7 +121,6 @@ XFreeModifiermap(map)
return 1;
}
-#if NeedFunctionPrototypes
XModifierKeymap *
XInsertModifiermapEntry(XModifierKeymap *map,
#if NeedWidePrototypes
@@ -128,13 +129,6 @@ XInsertModifiermapEntry(XModifierKeymap *map,
KeyCode keycode,
#endif
int modifier)
-#else
-XModifierKeymap *
-XInsertModifiermapEntry(map, keycode, modifier)
- XModifierKeymap *map;
- KeyCode keycode;
- int modifier;
-#endif
{
XModifierKeymap *newmap;
int i,
@@ -169,7 +163,6 @@ XInsertModifiermapEntry(map, keycode, modifier)
return(newmap);
}
-#if NeedFunctionPrototypes
XModifierKeymap *
XDeleteModifiermapEntry(XModifierKeymap *map,
#if NeedWidePrototypes
@@ -178,13 +171,6 @@ XDeleteModifiermapEntry(XModifierKeymap *map,
KeyCode keycode,
#endif
int modifier)
-#else
-XModifierKeymap *
-XDeleteModifiermapEntry(map, keycode, modifier)
- XModifierKeymap *map;
- KeyCode keycode;
- int modifier;
-#endif
{
int i,
row = modifier * map->max_keypermod;
diff --git a/src/MoveWin.c b/src/MoveWin.c
index 0ec2c8a8..c693065b 100644
--- a/src/MoveWin.c
+++ b/src/MoveWin.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/MoveWin.c,v 1.3 2001/01/17 19:41:40 dawes Exp $ */
#include "Xlibint.h"
+int
XMoveWindow (dpy, w, x, y)
register Display *dpy;
Window w;
diff --git a/src/NextEvent.c b/src/NextEvent.c
index 40e7528a..82805b57 100644
--- a/src/NextEvent.c
+++ b/src/NextEvent.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/NextEvent.c,v 1.3 2001/01/17 19:41:40 dawes Exp $ */
#define NEED_EVENTS
#include "Xlibint.h"
@@ -33,6 +34,7 @@ in this Software without prior written authorization from The Open Group.
* events.
*/
+int
XNextEvent (dpy, event)
register Display *dpy;
register XEvent *event;
diff --git a/src/OCWrap.c b/src/OCWrap.c
index 97a3aee0..bd74f1e1 100644
--- a/src/OCWrap.c
+++ b/src/OCWrap.c
@@ -23,30 +23,24 @@
* Author: Katsuhisa Yano TOSHIBA Corp.
* mopi@osa.ilab.toshiba.co.jp
*/
+/* $XFree86: xc/lib/X11/OCWrap.c,v 1.3 2001/01/17 19:41:40 dawes Exp $ */
#include "Xlibint.h"
#include "Xlcint.h"
-#if NeedVarargsPrototypes
XOC
XCreateOC(XOM om, ...)
-#else
-XOC
-XCreateOC(om, va_alist)
- XOM om;
- va_dcl
-#endif
{
va_list var;
XlcArgList args;
XOC oc;
int num_args;
- Va_start(var, om);
+ va_start(var, om);
_XlcCountVaList(var, &num_args);
va_end(var);
- Va_start(var, om);
+ va_start(var, om);
_XlcVaToArgList(var, num_args, &args);
va_end(var);
@@ -94,26 +88,19 @@ XOMOfOC(oc)
return oc->core.om;
}
-#if NeedVarargsPrototypes
char *
XSetOCValues(XOC oc, ...)
-#else
-char *
-XSetOCValues(oc, va_alist)
- XOC oc;
- va_dcl
-#endif
{
va_list var;
XlcArgList args;
char *ret;
int num_args;
- Va_start(var, oc);
+ va_start(var, oc);
_XlcCountVaList(var, &num_args);
va_end(var);
- Va_start(var, oc);
+ va_start(var, oc);
_XlcVaToArgList(var, num_args, &args);
va_end(var);
@@ -127,26 +114,19 @@ XSetOCValues(oc, va_alist)
return ret;
}
-#if NeedVarargsPrototypes
char *
XGetOCValues(XOC oc, ...)
-#else
-char *
-XGetOCValues(oc, va_alist)
- XOC oc;
- va_dcl
-#endif
{
va_list var;
XlcArgList args;
char *ret;
int num_args;
- Va_start(var, oc);
+ va_start(var, oc);
_XlcCountVaList(var, &num_args);
va_end(var);
- Va_start(var, oc);
+ va_start(var, oc);
_XlcVaToArgList(var, num_args, &args);
va_end(var);
diff --git a/src/OMWrap.c b/src/OMWrap.c
index d97bd647..988b63a5 100644
--- a/src/OMWrap.c
+++ b/src/OMWrap.c
@@ -23,21 +23,14 @@
* Author: Katsuhisa Yano TOSHIBA Corp.
* mopi@osa.ilab.toshiba.co.jp
*/
+/* $XFree86: xc/lib/X11/OMWrap.c,v 1.4 2001/07/25 15:04:44 dawes Exp $ */
#include "Xlibint.h"
#include "Xlcint.h"
XOM
-#if NeedFunctionPrototypes
XOpenOM(Display *dpy, XrmDatabase rdb, _Xconst char *res_name,
_Xconst char *res_class)
-#else
-XOpenOM(dpy, rdb, res_name, res_class)
- Display *dpy;
- XrmDatabase rdb;
- char *res_name;
- char *res_class;
-#endif
{
XLCd lcd = _XOpenLC((char *) NULL);
@@ -71,26 +64,19 @@ XCloseOM(om)
return (*om->methods->close)(om);
}
-#if NeedVarargsPrototypes
char *
XSetOMValues(XOM om, ...)
-#else
-char *
-XSetOMValues(om, va_alist)
- XOM om;
- va_dcl
-#endif
{
va_list var;
XlcArgList args;
char *ret;
int num_args;
- Va_start(var, om);
+ va_start(var, om);
_XlcCountVaList(var, &num_args);
va_end(var);
- Va_start(var, om);
+ va_start(var, om);
_XlcVaToArgList(var, num_args, &args);
va_end(var);
@@ -104,26 +90,19 @@ XSetOMValues(om, va_alist)
return ret;
}
-#if NeedVarargsPrototypes
char *
XGetOMValues(XOM om, ...)
-#else
-char *
-XGetOMValues(om, va_alist)
- XOM om;
- va_dcl
-#endif
{
va_list var;
XlcArgList args;
char *ret;
int num_args;
- Va_start(var, om);
+ va_start(var, om);
_XlcCountVaList(var, &num_args);
va_end(var);
- Va_start(var, om);
+ va_start(var, om);
_XlcVaToArgList(var, num_args, &args);
va_end(var);
diff --git a/src/OpenDis.c b/src/OpenDis.c
index 6207fdd2..f9a148d7 100644
--- a/src/OpenDis.c
+++ b/src/OpenDis.c
@@ -24,18 +24,21 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/OpenDis.c,v 3.16 2003/07/04 16:24:23 eich Exp $ */
#define NEED_REPLIES
#define NEED_EVENTS
#include "Xlibint.h"
#include <X11/Xtrans.h>
#include <X11/Xatom.h>
+#include <X11/Xresource.h>
#include "bigreqstr.h"
#include <stdio.h>
+#include "Xintconn.h"
-#ifdef X_NOT_STDC_ENV
-extern char *getenv();
-#endif
+#ifdef XKB
+#include "XKBlib.h"
+#endif /* XKB */
#ifdef X_NOT_POSIX
#define Size_t unsigned int
@@ -50,43 +53,37 @@ typedef struct {
int opcode;
} _XBigReqState;
-extern int _Xdebug;
#ifdef WIN32
int *_Xdebug_p = &_Xdebug;
#endif
#ifdef XTHREADS
-int (*_XInitDisplayLock_fn)() = NULL;
-void (*_XFreeDisplayLock_fn)() = NULL;
+#include "locking.h"
+int (*_XInitDisplayLock_fn)(Display *dpy) = NULL;
+void (*_XFreeDisplayLock_fn)(Display *dpy) = NULL;
#define InitDisplayLock(d) (_XInitDisplayLock_fn ? (*_XInitDisplayLock_fn)(d) : Success)
#define FreeDisplayLock(d) if (_XFreeDisplayLock_fn) (*_XFreeDisplayLock_fn)(d)
#else
#define InitDisplayLock(dis) Success
#define FreeDisplayLock(dis)
-#endif
+#endif /* XTHREADS */
static xReq _dummy_request = {
0, 0, 0
};
-static void OutOfMemory();
-static Bool _XBigReqHandler();
+static void OutOfMemory(Display *dpy, char *setup);
+static Bool _XBigReqHandler(Display *dpy, xReply *rep, char *buf, int len,
+ XPointer data);
-extern Bool _XWireToEvent();
-extern Status _XUnknownNativeEvent();
-extern Bool _XUnknownWireEvent();
/*
* Connects to a server, creates a Display object and returns a pointer to
* the newly created Display back to the caller.
*/
-#if NeedFunctionPrototypes
-Display *XOpenDisplay (
+Display *
+XOpenDisplay (
register _Xconst char *display)
-#else
-Display *XOpenDisplay (display)
- register char *display;
-#endif
{
register Display *dpy; /* New Display object being created. */
register int i;
@@ -111,13 +108,15 @@ Display *XOpenDisplay (display)
xVisualType *vp;
} u; /* proto data returned from server */
long setuplength; /* number of bytes in setup message */
+ long usedbytes = 0; /* number of bytes we have processed */
char *conn_auth_name, *conn_auth_data;
int conn_auth_namelen, conn_auth_datalen;
unsigned long mask;
- extern Bool _XSendClientPrefix();
- extern XtransConnInfo _X11TransConnectDisplay();
- extern XID _XAllocID();
- extern void _XAllocIDs();
+ long int conn_buf_size;
+ char *xlib_buffer_size;
+
+ bzero((char *) &client, sizeof(client));
+ bzero((char *) &prefix, sizeof(prefix));
/*
* If the display specifier string supplied as an argument to this
@@ -248,11 +247,24 @@ Display *XOpenDisplay (display)
}
/* Set up the output buffers. */
- if ((dpy->bufptr = dpy->buffer = Xmalloc(BUFSIZE)) == NULL) {
- OutOfMemory (dpy, setup);
- return(NULL);
- }
- dpy->bufmax = dpy->buffer + BUFSIZE;
+#ifndef XLIBDEFAULTBUFSIZE
+#define XLIBDEFAULTBUFSIZE 16384 /* 16k */
+#endif
+#ifndef XLIBMINBUFSIZE
+#define XLIBMINBUFSIZE BUFSIZE /* old default buffer size */
+#endif
+ if ((xlib_buffer_size = getenv("XLIBBUFFERSIZE")) == NULL)
+ conn_buf_size = XLIBDEFAULTBUFSIZE;
+ else
+ conn_buf_size = 1024 * strtol(xlib_buffer_size, NULL, 10);
+ if (conn_buf_size < XLIBMINBUFSIZE)
+ conn_buf_size = XLIBMINBUFSIZE;
+
+ if ((dpy->bufptr = dpy->buffer = Xcalloc(1, conn_buf_size)) == NULL) {
+ OutOfMemory (dpy, setup);
+ return(NULL);
+ }
+ dpy->bufmax = dpy->buffer + conn_buf_size;
/* Set up the input event queue and input event queue parameters. */
dpy->head = dpy->tail = NULL;
@@ -329,6 +341,7 @@ Display *XOpenDisplay (display)
return(NULL);
}
_XRead (dpy, (char *)u.setup, setuplength);
+
/*
* If the connection was not accepted by the server due to problems,
* give error message to the user....
@@ -338,14 +351,30 @@ Display *XOpenDisplay (display)
fprintf (stderr,
"Xlib: connection to \"%s\" refused by server\r\nXlib: ",
fullname);
- (void) fwrite (u.failure, (Size_t)sizeof(char),
+
+ if (prefix.lengthReason > setuplength) {
+ fprintf (stderr, "Xlib: Broken initial reply: length of reason > length of packet\r\n");
+ }else{
+ (void) fwrite (u.failure, (Size_t)sizeof(char),
(Size_t)prefix.lengthReason, stderr);
- (void) fwrite ("\r\n", sizeof(char), 2, stderr);
+ (void) fwrite ("\r\n", sizeof(char), 2, stderr);
+ }
+
OutOfMemory(dpy, setup);
return (NULL);
}
/*
+ * Check if the reply was long enough to get any information out of it.
+ */
+ usedbytes = sz_xConnSetup;
+ if (setuplength < usedbytes ) {
+ fprintf (stderr, "Xlib: Broken initial reply: Too short (%ld)\n", setuplength);
+ OutOfMemory(dpy, setup);
+ return (NULL);
+ }
+
+/*
* We succeeded at authorization, so let us move the data into
* the display structure.
*/
@@ -366,6 +395,14 @@ Display *XOpenDisplay (display)
dpy->max_request_size = u.setup->maxRequestSize;
mask = dpy->resource_mask;
dpy->resource_shift = 0;
+ if (!mask)
+ {
+ fprintf (stderr, "Xlib: connection to \"%s\" invalid setup\n",
+ fullname);
+ OutOfMemory(dpy, setup);
+ return (NULL);
+ }
+
while (!(mask & 1)) {
dpy->resource_shift++;
mask = mask >> 1;
@@ -375,16 +412,35 @@ Display *XOpenDisplay (display)
* now extract the vendor string... String must be null terminated,
* padded to multiple of 4 bytes.
*/
+ /* Check for a sane vendor string length */
+ if (u.setup->nbytesVendor > 256) {
+ OutOfMemory(dpy, setup);
+ return (NULL);
+ }
+
dpy->vendor = (char *) Xmalloc((unsigned) (u.setup->nbytesVendor + 1));
if (dpy->vendor == NULL) {
OutOfMemory(dpy, setup);
return (NULL);
}
vendorlen = u.setup->nbytesVendor;
+
+/*
+ * validate setup length
+ */
+ usedbytes += (vendorlen + 3) & ~3;
+ if (setuplength < usedbytes) {
+ fprintf (stderr, "Xlib: Broken initial reply: Too short (%ld)\n", setuplength);
+ OutOfMemory(dpy, setup);
+ return (NULL);
+ }
+
u.setup = (xConnSetup *) (((char *) u.setup) + sz_xConnSetup);
(void) strncpy(dpy->vendor, u.vendor, vendorlen);
dpy->vendor[vendorlen] = '\0';
vendorlen = (vendorlen + 3) & ~3; /* round up */
+
+
memmove (setup, u.vendor + vendorlen,
(int) setuplength - sz_xConnSetup - vendorlen);
u.vendor = setup;
@@ -401,6 +457,14 @@ Display *XOpenDisplay (display)
/*
* First decode the Z axis Screen format information.
*/
+ usedbytes += dpy->nformats * sz_xPixmapFormat;
+
+ if (setuplength < usedbytes) {
+ fprintf (stderr, "Xlib: Broken initial reply: Too short (%ld)\n", setuplength);
+ OutOfMemory (dpy, setup);
+ return(NULL);
+ }
+
for (i = 0; i < dpy->nformats; i++) {
register ScreenFormat *fmt = &dpy->pixmap_format[i];
fmt->depth = u.sf->depth;
@@ -419,12 +483,22 @@ Display *XOpenDisplay (display)
OutOfMemory (dpy, setup);
return(NULL);
}
+
/*
* Now go deal with each screen structure.
*/
for (i = 0; i < dpy->nscreens; i++) {
register Screen *sp = &dpy->screens[i];
- VisualID root_visualID = u.rp->rootVisualID;
+ VisualID root_visualID;
+
+ usedbytes += sz_xWindowRoot;
+ if (setuplength < usedbytes) {
+ fprintf (stderr, "Xlib: Broken initial reply: Too short (%ld)\n", setuplength);
+ OutOfMemory (dpy, setup);
+ return(NULL);
+ }
+
+ root_visualID = u.rp->rootVisualID;
sp->display = dpy;
sp->root = u.rp->windowId;
sp->cmap = u.rp->defaultColormap;
@@ -457,6 +531,14 @@ Display *XOpenDisplay (display)
*/
for (j = 0; j < sp->ndepths; j++) {
Depth *dp = &sp->depths[j];
+
+ usedbytes += sz_xDepth;
+ if (setuplength < usedbytes) {
+ fprintf (stderr, "Xlib: Broken initial reply: Too short (%ld)\n", setuplength);
+ OutOfMemory (dpy, setup);
+ return(NULL);
+ }
+
dp->depth = u.dp->depth;
dp->nvisuals = u.dp->nVisuals;
u.dp = (xDepth *) (((char *) u.dp) + sz_xDepth);
@@ -469,6 +551,14 @@ Display *XOpenDisplay (display)
}
for (k = 0; k < dp->nvisuals; k++) {
register Visual *vp = &dp->visuals[k];
+
+ usedbytes += sz_xVisualType;
+ if (setuplength < usedbytes) {
+ fprintf (stderr, "Xlib: Broken initial reply: Too short (%ld)\n", setuplength);
+ OutOfMemory (dpy, setup);
+ return(NULL);
+ }
+
vp->visualid = u.vp->visualID;
vp->class = u.vp->class;
vp->bits_per_rgb= u.vp->bitsPerRGB;
@@ -486,7 +576,15 @@ Display *XOpenDisplay (display)
}
sp->root_visual = _XVIDtoVisual(dpy, root_visualID);
}
-
+
+ if(usedbytes != setuplength){
+ /* Sanity check, shouldn't happen. */
+ fprintf(stderr, "Xlib: Did not parse entire setup message: "
+ "parsed: %ld, message: %ld\n",
+ usedbytes, setuplength);
+ OutOfMemory(dpy, setup);
+ return(NULL);
+ }
/*
* Now start talking to the server to setup all other information...
@@ -563,6 +661,8 @@ Display *XOpenDisplay (display)
if (_XReply (dpy, (xReply *) &reply, 0, xFalse)) {
if (reply.format == 8 && reply.propertyType == XA_STRING &&
+ (reply.nItems + 1 > 0) &&
+ (reply.nItems <= req->longLength * 4) &&
(dpy->xdefaults = Xmalloc (reply.nItems + 1))) {
_XReadPad (dpy, dpy->xdefaults, reply.nItems);
dpy->xdefaults[reply.nItems] = '\0';
@@ -661,6 +761,10 @@ void _XFreeDisplayStructure(dpy)
if (dpy->xkb_info)
(*dpy->free_funcs->xkb)(dpy);
+ /* if RM database was allocated by XGetDefault() free it */
+ if (dpy->db && (dpy->flags & XlibDisplayDfltRMDB))
+ XrmDestroyDatabase(dpy->db);
+
if (dpy->screens) {
register int i;
diff --git a/src/ParseCmd.c b/src/ParseCmd.c
index e2e302d0..7fd54246 100644
--- a/src/ParseCmd.c
+++ b/src/ParseCmd.c
@@ -46,6 +46,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.
******************************************************************/
+/* $XFree86: xc/lib/X11/ParseCmd.c,v 1.5 2001/12/14 19:54:03 dawes Exp $ */
/* XrmParseCommand()
@@ -61,32 +62,21 @@ SOFTWARE.
#include <stdio.h>
-static void _XReportParseError(arg, msg)
- XrmOptionDescRec *arg;
- char *msg;
+static void _XReportParseError(XrmOptionDescRec *arg, char *msg)
{
(void) fprintf(stderr, "Error parsing argument \"%s\" (%s); %s\n",
arg->option, arg->specifier, msg);
exit(1);
}
-#if NeedFunctionPrototypes
-void XrmParseCommand(
+void
+XrmParseCommand(
XrmDatabase *pdb, /* data base */
register XrmOptionDescList options, /* pointer to table of valid options */
int num_options, /* number of options */
_Xconst char *prefix, /* name to prefix resources with */
int *argc, /* address of argument count */
char **argv) /* argument list (command line) */
-#else
-void XrmParseCommand(pdb, options, num_options, prefix, argc, argv)
- XrmDatabase *pdb; /* data base */
- register XrmOptionDescList options; /* pointer to table of valid options */
- int num_options; /* number of options */
- char *prefix; /* name to prefix resources with */
- int *argc; /* address of argument count */
- char **argv; /* argument list (command line) */
-#endif
{
int foundOption;
char **argsave;
@@ -95,7 +85,7 @@ void XrmParseCommand(pdb, options, num_options, prefix, argc, argv)
XrmQuark quarks[100];
XrmBinding *start_bindings;
XrmQuark *start_quarks;
- char *optP, *argP, optchar, argchar;
+ char *optP, *argP = NULL, optchar, argchar = 0;
int matches;
enum {DontCare, Check, NotSorted, Sorted} table_is_sorted;
char **argend;
@@ -208,7 +198,7 @@ void XrmParseCommand(pdb, options, num_options, prefix, argc, argv)
case XrmoptionSkipNArgs:
{
- register int j = 1 + (int) options[i].value;
+ register int j = 1 + (long) options[i].value;
if (j > myargc) j = myargc;
for (; j > 0; j--) {
diff --git a/src/ParseCol.c b/src/ParseCol.c
index 1520384a..018f79e1 100644
--- a/src/ParseCol.c
+++ b/src/ParseCol.c
@@ -24,27 +24,20 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/ParseCol.c,v 1.6 2003/04/13 19:22:17 dawes Exp $ */
#define NEED_REPLIES
#include <stdio.h>
#include "Xlibint.h"
#include "Xcmsint.h"
-extern void _XcmsRGB_to_XColor();
-#if NeedFunctionPrototypes
-Status XParseColor (
+Status
+XParseColor (
register Display *dpy,
Colormap cmap,
_Xconst char *spec,
XColor *def)
-#else
-Status XParseColor (dpy, cmap, spec, def)
- register Display *dpy;
- Colormap cmap;
- char *spec;
- XColor *def;
-#endif
{
register int n, i;
int r, g, b;
@@ -94,16 +87,24 @@ Status XParseColor (dpy, cmap, spec, def)
* Let's Attempt to use Xcms and i18n approach to Parse Color
*/
if ((ccc = XcmsCCCOfColormap(dpy, cmap)) != (XcmsCCC)NULL) {
- if (_XcmsResolveColorString(ccc, &spec,
- &cmsColor, XcmsRGBFormat) >= XcmsSuccess) {
+ const char *tmpName = spec;
+
+ switch (_XcmsResolveColorString(ccc, &tmpName, &cmsColor,
+ XcmsRGBFormat)) {
+ case XcmsSuccess:
+ case XcmsSuccessWithCompression:
cmsColor.pixel = def->pixel;
_XcmsRGB_to_XColor(&cmsColor, def, 1);
return(1);
+ case XcmsFailure:
+ case _XCMS_NEWNAME:
+ /*
+ * if the result was _XCMS_NEWNAME tmpName points to
+ * a string in cmsColNm.c:pairs table, for example,
+ * gray70 would become tekhvc:0.0/70.0/0.0
+ */
+ break;
}
- /*
- * Otherwise we failed; or spec was changed with yet another
- * name. Thus pass name to the X Server.
- */
}
/*
diff --git a/src/ParseGeom.c b/src/ParseGeom.c
index 6691c887..c00dc21a 100644
--- a/src/ParseGeom.c
+++ b/src/ParseGeom.c
@@ -27,6 +27,7 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
+/* $XFree86: xc/lib/X11/ParseGeom.c,v 1.3 2001/12/14 19:54:03 dawes Exp $ */
#include "Xlibint.h"
#include "Xutil.h"
@@ -62,9 +63,7 @@ char *search, *what;
*/
static int
-ReadInteger(string, NextString)
-register char *string;
-char **NextString;
+ReadInteger(char *string, char **NextString)
{
register int Result = 0;
int Sign = 1;
@@ -87,24 +86,18 @@ char **NextString;
return (-Result);
}
-#if NeedFunctionPrototypes
-int XParseGeometry (
+int
+XParseGeometry (
_Xconst char *string,
int *x,
int *y,
unsigned int *width, /* RETURN */
unsigned int *height) /* RETURN */
-#else
-int XParseGeometry (string, x, y, width, height)
-char *string;
-int *x, *y;
-unsigned int *width, *height; /* RETURN */
-#endif
{
int mask = NoValue;
register char *strind;
- unsigned int tempWidth, tempHeight;
- int tempX, tempY;
+ unsigned int tempWidth = 0, tempHeight = 0;
+ int tempX = 0, tempY = 0;
char *nextCharacter;
if ( (string == NULL) || (*string == '\0')) return(mask);
diff --git a/src/PeekEvent.c b/src/PeekEvent.c
index ba597eeb..4e2a61df 100644
--- a/src/PeekEvent.c
+++ b/src/PeekEvent.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/PeekEvent.c,v 1.3 2001/01/17 19:41:41 dawes Exp $ */
#define NEED_EVENTS
#include "Xlibint.h"
@@ -34,6 +35,7 @@ in this Software without prior written authorization from The Open Group.
* If none found, flush and wait until there is an event to peek.
*/
+int
XPeekEvent (dpy, event)
register Display *dpy;
register XEvent *event;
diff --git a/src/PeekIfEv.c b/src/PeekIfEv.c
index 6cb9d118..313c6981 100644
--- a/src/PeekIfEv.c
+++ b/src/PeekIfEv.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/PeekIfEv.c,v 1.4 2001/12/14 19:54:03 dawes Exp $ */
#define NEED_EVENTS
#include "Xlibint.h"
@@ -34,15 +35,14 @@ in this Software without prior written authorization from The Open Group.
* If none found, flush, and then wait until one satisfies the predicate.
*/
+int
XPeekIfEvent (dpy, event, predicate, arg)
register Display *dpy;
register XEvent *event;
Bool (*predicate)(
-#if NeedNestedPrototypes
Display* /* display */,
XEvent* /* event */,
char* /* arg */
-#endif
);
char *arg;
{
diff --git a/src/PmapBgnd.c b/src/PmapBgnd.c
index 5a74410f..18931949 100644
--- a/src/PmapBgnd.c
+++ b/src/PmapBgnd.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/PmapBgnd.c,v 1.3 2001/01/17 19:41:41 dawes Exp $ */
#include "Xlibint.h"
+int
XSetWindowBackgroundPixmap(dpy, w, pixmap)
register Display *dpy;
Window w;
diff --git a/src/PmapBord.c b/src/PmapBord.c
index e33738ab..cd5fc6c9 100644
--- a/src/PmapBord.c
+++ b/src/PmapBord.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/PmapBord.c,v 1.3 2001/01/17 19:41:41 dawes Exp $ */
#include "Xlibint.h"
+int
XSetWindowBorderPixmap(dpy, w, pixmap)
register Display *dpy;
Window w;
diff --git a/src/PolyReg.c b/src/PolyReg.c
index 4d9a0b52..66c50c4b 100644
--- a/src/PolyReg.c
+++ b/src/PolyReg.c
@@ -45,6 +45,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.
************************************************************************/
+/* $XFree86: xc/lib/X11/PolyReg.c,v 1.6 2001/12/14 19:54:03 dawes Exp $ */
#define LARGE_COORDINATE 1000000
#define SMALL_COORDINATE -LARGE_COORDINATE
@@ -64,12 +65,12 @@ SOFTWARE.
*
*/
static void
-InsertEdgeInET(ET, ETE, scanline, SLLBlock, iSLLBlock)
- EdgeTable *ET;
- EdgeTableEntry *ETE;
- int scanline;
- ScanLineListBlock **SLLBlock;
- int *iSLLBlock;
+InsertEdgeInET(
+ EdgeTable *ET,
+ EdgeTableEntry *ETE,
+ int scanline,
+ ScanLineListBlock **SLLBlock,
+ int *iSLLBlock)
{
register EdgeTableEntry *start, *prev;
register ScanLineList *pSLL, *pPrevSLL;
@@ -152,13 +153,13 @@ InsertEdgeInET(ET, ETE, scanline, SLLBlock, iSLLBlock)
*/
static void
-CreateETandAET(count, pts, ET, AET, pETEs, pSLLBlock)
- register int count;
- register XPoint *pts;
- EdgeTable *ET;
- EdgeTableEntry *AET;
- register EdgeTableEntry *pETEs;
- ScanLineListBlock *pSLLBlock;
+CreateETandAET(
+ register int count,
+ register XPoint *pts,
+ EdgeTable *ET,
+ EdgeTableEntry *AET,
+ register EdgeTableEntry *pETEs,
+ ScanLineListBlock *pSLLBlock)
{
register XPoint *top, *bottom;
register XPoint *PrevPt, *CurrPt;
@@ -244,8 +245,9 @@ CreateETandAET(count, pts, ET, AET, pETEs, pSLLBlock)
*/
static void
-loadAET(AET, ETEs)
- register EdgeTableEntry *AET, *ETEs;
+loadAET(
+ register EdgeTableEntry *AET,
+ register EdgeTableEntry *ETEs)
{
register EdgeTableEntry *pPrevAET;
register EdgeTableEntry *tmp;
@@ -292,8 +294,8 @@ loadAET(AET, ETEs)
*
*/
static void
-computeWAET(AET)
- register EdgeTableEntry *AET;
+computeWAET(
+ register EdgeTableEntry *AET)
{
register EdgeTableEntry *pWETE;
register int inside = 1;
@@ -331,8 +333,8 @@ computeWAET(AET)
*/
static int
-InsertionSort(AET)
- register EdgeTableEntry *AET;
+InsertionSort(
+ register EdgeTableEntry *AET)
{
register EdgeTableEntry *pETEchase;
register EdgeTableEntry *pETEinsert;
@@ -368,8 +370,8 @@ InsertionSort(AET)
* Clean up our act.
*/
static void
-FreeStorage(pSLLBlock)
- register ScanLineListBlock *pSLLBlock;
+FreeStorage(
+ register ScanLineListBlock *pSLLBlock)
{
register ScanLineListBlock *tmpSLLBlock;
@@ -389,10 +391,11 @@ FreeStorage(pSLLBlock)
* stack by the calling procedure.
*
*/
-static int PtsToRegion(numFullPtBlocks, iCurPtBlock, FirstPtBlock, reg)
- register int numFullPtBlocks, iCurPtBlock;
- POINTBLOCK *FirstPtBlock;
- REGION *reg;
+static int PtsToRegion(
+ register int numFullPtBlocks,
+ register int iCurPtBlock,
+ POINTBLOCK *FirstPtBlock,
+ REGION *reg)
{
register BOX *rects;
register XPoint *pts;
@@ -401,7 +404,7 @@ static int PtsToRegion(numFullPtBlocks, iCurPtBlock, FirstPtBlock, reg)
register BOX *extents;
register int numRects;
BOX *prevRects = reg->rects;
-
+
extents = &reg->extents;
numRects = ((numFullPtBlocks * NUMPTSTOBUFFER) + iCurPtBlock) >> 1;
diff --git a/src/PolyTxt.c b/src/PolyTxt.c
index c90a7b04..bd885266 100644
--- a/src/PolyTxt.c
+++ b/src/PolyTxt.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/PolyTxt.c,v 3.5 2001/10/28 03:32:30 tsi Exp $ */
#include "Xlibint.h"
+int
XDrawText(dpy, d, gc, x, y, items, nitems)
register Display *dpy;
Drawable d;
@@ -111,7 +113,7 @@ XDrawText(dpy, d, gc, x, y, items, nitems)
/* register xTextElt *elt; */
int FirstTimeThrough = True;
char *CharacterOffset = item->chars;
- char *tbuf;
+ char *tbuf = NULL;
while((PartialDelta < -128) || (PartialDelta > 127))
{
diff --git a/src/PolyTxt16.c b/src/PolyTxt16.c
index e75ad5c4..c7dce509 100644
--- a/src/PolyTxt16.c
+++ b/src/PolyTxt16.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/PolyTxt16.c,v 1.4 2001/10/28 03:32:31 tsi Exp $ */
#include "Xlibint.h"
+int
XDrawText16(dpy, d, gc, x, y, items, nitems)
register Display *dpy;
Drawable d;
@@ -108,7 +110,7 @@ XDrawText16(dpy, d, gc, x, y, items, nitems)
int nbytes = SIZEOF(xTextElt);
int PartialNChars = item->nchars;
int PartialDelta = item->delta;
- register xTextElt *elt;
+ register xTextElt *elt = NULL;
int FirstTimeThrough = True;
XChar2b *CharacterOffset = item->chars;
diff --git a/src/PropAlloc.c b/src/PropAlloc.c
index 9b95436e..96c92bbf 100644
--- a/src/PropAlloc.c
+++ b/src/PropAlloc.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/PropAlloc.c,v 1.3 2001/01/17 19:41:41 dawes Exp $ */
#include "Xlibint.h"
#include "Xutil.h"
@@ -58,7 +59,7 @@ XClassHint *XAllocClassHint ()
{
register XClassHint *h;
- if ((h = (XClassHint *) Xcalloc (1, (unsigned) sizeof (XClassHint))))
+ if ((h = (XClassHint *) Xcalloc (1, (unsigned) sizeof (XClassHint))))
h->res_name = h->res_class = NULL;
return h;
diff --git a/src/PutBEvent.c b/src/PutBEvent.c
index 21f57bb6..2260359f 100644
--- a/src/PutBEvent.c
+++ b/src/PutBEvent.c
@@ -26,11 +26,13 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
+/* $XFree86: xc/lib/X11/PutBEvent.c,v 1.3 2001/01/17 19:41:41 dawes Exp $ */
/* XPutBackEvent puts an event back at the head of the queue. */
#define NEED_EVENTS
#include "Xlibint.h"
+int
XPutBackEvent (dpy, event)
register Display *dpy;
register XEvent *event;
diff --git a/src/PutImage.c b/src/PutImage.c
index 8c13a097..415255a2 100644
--- a/src/PutImage.c
+++ b/src/PutImage.c
@@ -24,26 +24,28 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/PutImage.c,v 3.11 2002/12/09 04:10:56 tsi Exp $ */
#include "Xlibint.h"
#include "Xutil.h"
#include <stdio.h>
+#include "Cr.h"
+#include "ImUtil.h"
-#ifdef __STDC__
-#define Const const
-#else
-#define Const /**/
-#endif
#if defined(__STDC__) && ((defined(sun) && defined(SVR4)) || defined(WIN32))
#define RConst /**/
#else
-#define RConst Const
+#define RConst const
+#endif
+
+#if defined(Lynx) && defined(ROUNDUP)
+#undef ROUNDUP
#endif
/* assumes pad is a power of 2 */
#define ROUNDUP(nbytes, pad) (((nbytes) + ((pad) - 1)) & ~(long)((pad) - 1))
-static unsigned char Const _reverse_byte[0x100] = {
+static unsigned char const _reverse_byte[0x100] = {
0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0,
0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0,
0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8,
@@ -78,7 +80,7 @@ static unsigned char Const _reverse_byte[0x100] = {
0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff
};
-static unsigned char Const _reverse_nibs[0x100] = {
+static unsigned char const _reverse_nibs[0x100] = {
0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70,
0x80, 0x90, 0xa0, 0xb0, 0xc0, 0xd0, 0xe0, 0xf0,
0x01, 0x11, 0x21, 0x31, 0x41, 0x51, 0x61, 0x71,
@@ -113,10 +115,10 @@ static unsigned char Const _reverse_nibs[0x100] = {
0x8f, 0x9f, 0xaf, 0xbf, 0xcf, 0xdf, 0xef, 0xff
};
-
-_XReverse_Bytes (bpt, nb)
- register unsigned char *bpt;
- register int nb;
+int
+_XReverse_Bytes(
+ register unsigned char *bpt,
+ register int nb)
{
do {
*bpt = _reverse_byte[*bpt];
@@ -133,11 +135,14 @@ _XReverse_Bytes (bpt, nb)
/*ARGSUSED*/
static void
-NoSwap (src, dest, srclen, srcinc, destinc, height, half_order)
- register unsigned char *src, *dest;
- long srclen, srcinc, destinc;
- unsigned int height;
- int half_order;
+NoSwap (
+ register unsigned char *src,
+ register unsigned char *dest,
+ long srclen,
+ long srcinc,
+ long destinc,
+ unsigned int height,
+ int half_order)
{
long h = height;
@@ -149,11 +154,12 @@ NoSwap (src, dest, srclen, srcinc, destinc, height, half_order)
}
static void
-SwapTwoBytes (src, dest, srclen, srcinc, destinc, height, half_order)
- register unsigned char *src, *dest;
- long srclen, srcinc, destinc;
- unsigned int height;
- int half_order;
+SwapTwoBytes (
+ register unsigned char *src,
+ register unsigned char *dest,
+ long srclen, long srcinc, long destinc,
+ unsigned int height,
+ int half_order)
{
long length = ROUNDUP(srclen, 2);
register long h, n;
@@ -176,11 +182,12 @@ SwapTwoBytes (src, dest, srclen, srcinc, destinc, height, half_order)
}
static void
-SwapThreeBytes (src, dest, srclen, srcinc, destinc, height, byte_order)
- register unsigned char *src, *dest;
- long srclen, srcinc, destinc;
- unsigned int height;
- int byte_order;
+SwapThreeBytes (
+ register unsigned char *src,
+ register unsigned char *dest,
+ long srclen, long srcinc, long destinc,
+ unsigned int height,
+ int byte_order)
{
long length = ((srclen + 2) / 3) * 3;
register long h, n;
@@ -206,11 +213,12 @@ SwapThreeBytes (src, dest, srclen, srcinc, destinc, height, byte_order)
}
static void
-SwapFourBytes (src, dest, srclen, srcinc, destinc, height, half_order)
- register unsigned char *src, *dest;
- long srclen, srcinc, destinc;
- unsigned int height;
- int half_order;
+SwapFourBytes (
+ register unsigned char *src,
+ register unsigned char *dest,
+ long srclen, long srcinc, long destinc,
+ unsigned int height,
+ int half_order)
{
long length = ROUNDUP(srclen, 4);
register long h, n;
@@ -241,11 +249,12 @@ SwapFourBytes (src, dest, srclen, srcinc, destinc, height, half_order)
}
static void
-SwapWords (src, dest, srclen, srcinc, destinc, height, half_order)
- register unsigned char *src, *dest;
- long srclen, srcinc, destinc;
- unsigned int height;
- int half_order;
+SwapWords (
+ register unsigned char *src,
+ register unsigned char *dest,
+ long srclen, long srcinc, long destinc,
+ unsigned int height,
+ int half_order)
{
long length = ROUNDUP(srclen, 4);
register long h, n;
@@ -276,13 +285,14 @@ SwapWords (src, dest, srclen, srcinc, destinc, height, half_order)
}
static void
-SwapNibbles (src, dest, srclen, srcinc, destinc, height)
- register unsigned char *src, *dest;
- long srclen, srcinc, destinc;
- unsigned int height;
+SwapNibbles(
+ register unsigned char *src,
+ register unsigned char *dest,
+ long srclen, long srcinc, long destinc,
+ unsigned int height)
{
register long h, n;
- register Const unsigned char *rev = _reverse_nibs;
+ register const unsigned char *rev = _reverse_nibs;
srcinc -= srclen;
destinc -= srclen;
@@ -292,11 +302,12 @@ SwapNibbles (src, dest, srclen, srcinc, destinc, height)
}
static void
-ShiftNibblesLeft (src, dest, srclen, srcinc, destinc, height, nibble_order)
- register unsigned char *src, *dest;
- long srclen, srcinc, destinc;
- unsigned int height;
- int nibble_order;
+ShiftNibblesLeft (
+ register unsigned char *src,
+ register unsigned char *dest,
+ long srclen, long srcinc, long destinc,
+ unsigned int height,
+ int nibble_order)
{
register long h, n;
register unsigned char c1, c2;
@@ -322,14 +333,15 @@ ShiftNibblesLeft (src, dest, srclen, srcinc, destinc, height, nibble_order)
/*ARGSUSED*/
static void
-SwapBits (src, dest, srclen, srcinc, destinc, height, half_order)
- register unsigned char *src, *dest;
- long srclen, srcinc, destinc;
- unsigned int height;
- int half_order;
+SwapBits(
+ register unsigned char *src,
+ register unsigned char *dest,
+ long srclen, long srcinc, long destinc,
+ unsigned int height,
+ int half_order)
{
register long h, n;
- register Const unsigned char *rev = _reverse_byte;
+ register const unsigned char *rev = _reverse_byte;
srcinc -= srclen;
destinc -= srclen;
@@ -339,14 +351,16 @@ SwapBits (src, dest, srclen, srcinc, destinc, height, half_order)
}
static void
-SwapBitsAndTwoBytes (src, dest, srclen, srcinc, destinc, height, half_order)
- register unsigned char *src, *dest;
- long srclen, srcinc, destinc;
- unsigned int height;
+SwapBitsAndTwoBytes(
+ register unsigned char *src,
+ register unsigned char *dest,
+ long srclen, long srcinc, long destinc,
+ unsigned int height,
+ int half_order)
{
long length = ROUNDUP(srclen, 2);
register long h, n;
- register Const unsigned char *rev = _reverse_byte;
+ register const unsigned char *rev = _reverse_byte;
srcinc -= length;
destinc -= length;
@@ -366,15 +380,16 @@ SwapBitsAndTwoBytes (src, dest, srclen, srcinc, destinc, height, half_order)
}
static void
-SwapBitsAndFourBytes (src, dest, srclen, srcinc, destinc, height, half_order)
- register unsigned char *src, *dest;
- long srclen, srcinc, destinc;
- unsigned int height;
- int half_order;
+SwapBitsAndFourBytes(
+ register unsigned char *src,
+ register unsigned char *dest,
+ long srclen, long srcinc, long destinc,
+ unsigned int height,
+ int half_order)
{
long length = ROUNDUP(srclen, 4);
register long h, n;
- register Const unsigned char *rev = _reverse_byte;
+ register const unsigned char *rev = _reverse_byte;
srcinc -= length;
destinc -= length;
@@ -402,15 +417,16 @@ SwapBitsAndFourBytes (src, dest, srclen, srcinc, destinc, height, half_order)
}
static void
-SwapBitsAndWords (src, dest, srclen, srcinc, destinc, height, half_order)
- register unsigned char *src, *dest;
- long srclen, srcinc, destinc;
- unsigned int height;
- int half_order;
+SwapBitsAndWords(
+ register unsigned char *src,
+ register unsigned char *dest,
+ long srclen, long srcinc, long destinc,
+ unsigned int height,
+ int half_order)
{
long length = ROUNDUP(srclen, 4);
register long h, n;
- register Const unsigned char *rev = _reverse_byte;
+ register const unsigned char *rev = _reverse_byte;
srcinc -= length;
destinc -= length;
@@ -487,7 +503,14 @@ legend:
*/
-static void (* RConst (SwapFunction[12][12]))() = {
+static void (* RConst (SwapFunction[12][12]))(
+ register unsigned char *src,
+ register unsigned char *dest,
+ long srclen,
+ long srcinc,
+ long destinc,
+ unsigned int height,
+ int half_order) = {
#define n NoSwap,
#define s SwapTwoBytes,
#define l SwapFourBytes,
@@ -529,7 +552,7 @@ static void (* RConst (SwapFunction[12][12]))() = {
*
* Defines whether the first half of a unit has the first half of the data
*/
-static int Const HalfOrder[12] = {
+static int const HalfOrder[12] = {
LSBFirst, /* 1Mm */
LSBFirst, /* 2Mm */
LSBFirst, /* 4Mm */
@@ -550,7 +573,7 @@ static int Const HalfOrder[12] = {
* NoSwap or SwapBits) in addition to changing the desired ones.
*/
-static int Const HalfOrderWord[12] = {
+static int const HalfOrderWord[12] = {
MSBFirst, /* 1Mm */
MSBFirst, /* 2Mm */
MSBFirst, /* 4Mm */
@@ -587,18 +610,25 @@ static int Const HalfOrderWord[12] = {
#endif
static void
-SendXYImage(dpy, req, image, req_xoffset, req_yoffset)
- register Display *dpy;
- register xPutImageReq *req;
- register XImage *image;
- int req_xoffset, req_yoffset;
+SendXYImage(
+ register Display *dpy,
+ register xPutImageReq *req,
+ register XImage *image,
+ int req_xoffset, int req_yoffset)
{
register int j;
long total_xoffset, bytes_per_src, bytes_per_dest, length;
long bytes_per_line, bytes_per_src_plane, bytes_per_dest_plane;
char *src, *dest, *buf;
char *extra = (char *)NULL;
- register void (*swapfunc)();
+ register void (*swapfunc)(
+ register unsigned char *src,
+ register unsigned char *dest,
+ long srclen,
+ long srcinc,
+ long destinc,
+ unsigned int height,
+ int half_order);
int half_order;
total_xoffset = image->xoffset + req_xoffset;
@@ -725,12 +755,12 @@ SendXYImage(dpy, req, image, req_xoffset, req_yoffset)
}
static void
-SendZImage(dpy, req, image, req_xoffset, req_yoffset,
- dest_bits_per_pixel, dest_scanline_pad)
- register Display *dpy;
- register xPutImageReq *req;
- register XImage *image;
- int req_xoffset, req_yoffset, dest_bits_per_pixel, dest_scanline_pad;
+SendZImage(
+ register Display *dpy,
+ register xPutImageReq *req,
+ register XImage *image,
+ int req_xoffset, int req_yoffset,
+ int dest_bits_per_pixel, int dest_scanline_pad)
{
long bytes_per_src, bytes_per_dest, length;
unsigned char *src, *dest;
@@ -812,15 +842,15 @@ SendZImage(dpy, req, image, req_xoffset, req_yoffset,
}
static void
-PutImageRequest(dpy, d, gc, image, req_xoffset, req_yoffset, x, y,
- req_width, req_height, dest_bits_per_pixel, dest_scanline_pad)
- register Display *dpy;
- Drawable d;
- GC gc;
- register XImage *image;
- int x, y;
- unsigned int req_width, req_height;
- int req_xoffset, req_yoffset, dest_bits_per_pixel, dest_scanline_pad;
+PutImageRequest(
+ register Display *dpy,
+ Drawable d,
+ GC gc,
+ register XImage *image,
+ int req_xoffset, int req_yoffset,
+ int x, int y,
+ unsigned int req_width, unsigned int req_height,
+ int dest_bits_per_pixel, int dest_scanline_pad)
{
register xPutImageReq *req;
@@ -841,16 +871,18 @@ PutImageRequest(dpy, d, gc, image, req_xoffset, req_yoffset, x, y,
}
static void
-PutSubImage (dpy, d, gc, image, req_xoffset, req_yoffset, x, y,
- req_width, req_height, dest_bits_per_pixel, dest_scanline_pad)
- register Display *dpy;
- Drawable d;
- GC gc;
- register XImage *image;
- int x, y;
- unsigned int req_width, req_height;
- int req_xoffset, req_yoffset, dest_bits_per_pixel, dest_scanline_pad;
-
+PutSubImage (
+ register Display *dpy,
+ Drawable d,
+ GC gc,
+ register XImage *image,
+ int req_xoffset,
+ int req_yoffset,
+ int x, int y,
+ unsigned int req_width,
+ unsigned int req_height,
+ int dest_bits_per_pixel,
+ int dest_scanline_pad)
{
int left_pad, BytesPerRow, Available;
@@ -904,6 +936,8 @@ PutSubImage (dpy, d, gc, image, req_xoffset, req_yoffset, x, y,
}
}
+
+int
XPutImage (dpy, d, gc, image, req_xoffset, req_yoffset, x, y, req_width,
req_height)
register Display *dpy;
@@ -951,7 +985,6 @@ XPutImage (dpy, d, gc, image, req_xoffset, req_yoffset, x, y, req_width,
if (dest_bits_per_pixel != image->bits_per_pixel) {
XImage img;
register long i, j;
- extern void _XInitImageFuncPtrs();
/* XXX slow, but works */
img.width = width;
img.height = height;
@@ -994,5 +1027,15 @@ XPutImage (dpy, d, gc, image, req_xoffset, req_yoffset, x, y, req_width,
UnlockDisplay(dpy);
SyncHandle();
+#ifdef USE_DYNAMIC_XCURSOR
+ if (image->bits_per_pixel == 1 &&
+ x == 0 && y == 0 &&
+ width == image->width && height == image->height &&
+ gc->values.function == GXcopy &&
+ (gc->values.plane_mask & 1))
+ {
+ _XNoticePutBitmap (dpy, d, image);
+ }
+#endif
return 0;
}
diff --git a/src/QuColor.c b/src/QuColor.c
index fcd0517f..d7da47e8 100644
--- a/src/QuColor.c
+++ b/src/QuColor.c
@@ -24,10 +24,12 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/QuColor.c,v 1.3 2001/01/17 19:41:42 dawes Exp $ */
#define NEED_REPLIES
#include "Xlibint.h"
+int
XQueryColor(dpy, cmap, def)
register Display *dpy;
Colormap cmap;
diff --git a/src/QuColors.c b/src/QuColors.c
index 0aaed02a..1603a56f 100644
--- a/src/QuColors.c
+++ b/src/QuColors.c
@@ -24,10 +24,12 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/QuColors.c,v 1.3 2001/01/17 19:41:42 dawes Exp $ */
#define NEED_REPLIES
#include "Xlibint.h"
+int
XQueryColors(dpy, cmap, defs, ncolors)
register Display *dpy;
Colormap cmap;
diff --git a/src/QuExt.c b/src/QuExt.c
index 5d49da07..686334e0 100644
--- a/src/QuExt.c
+++ b/src/QuExt.c
@@ -24,25 +24,18 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86$ */
#define NEED_REPLIES
#include "Xlibint.h"
-#if NeedFunctionPrototypes
-Bool XQueryExtension(
+Bool
+XQueryExtension(
register Display *dpy,
_Xconst char *name,
int *major_opcode, /* RETURN */
int *first_event, /* RETURN */
int *first_error) /* RETURN */
-#else
-Bool XQueryExtension(dpy, name, major_opcode, first_event, first_error)
- register Display *dpy;
- char *name;
- int *major_opcode; /* RETURN */
- int *first_event; /* RETURN */
- int *first_error; /* RETURN */
-#endif
{
xQueryExtensionReply rep;
register xQueryExtensionReq *req;
diff --git a/src/QuKeybd.c b/src/QuKeybd.c
index 238881ce..4a7b8fba 100644
--- a/src/QuKeybd.c
+++ b/src/QuKeybd.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/QuKeybd.c,v 1.3 2001/01/17 19:41:42 dawes Exp $ */
#define NEED_REPLIES
#include "Xlibint.h"
@@ -32,6 +33,7 @@ struct kmap {
char map[32];
};
+int
XQueryKeymap(dpy, keys)
register Display *dpy;
char keys[32];
diff --git a/src/QuTextE16.c b/src/QuTextE16.c
index 66b3149f..58003f49 100644
--- a/src/QuTextE16.c
+++ b/src/QuTextE16.c
@@ -24,11 +24,12 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/QuTextE16.c,v 1.4 2001/12/14 19:54:04 dawes Exp $ */
#define NEED_REPLIES
#include "Xlibint.h"
-#if NeedFunctionPrototypes
+int
XQueryTextExtents16 (
register Display *dpy,
Font fid,
@@ -38,17 +39,6 @@ XQueryTextExtents16 (
int *font_ascent,
int *font_descent,
register XCharStruct *overall)
-#else
-XQueryTextExtents16 (dpy, fid, string, nchars, dir, font_ascent, font_descent,
- overall)
- register Display *dpy;
- Font fid;
- XChar2b *string;
- register int nchars;
- int *dir;
- int *font_ascent, *font_descent;
- register XCharStruct *overall;
-#endif
{
register long i;
register unsigned char *ptr;
diff --git a/src/QuTextExt.c b/src/QuTextExt.c
index bcf8ee17..3ab18138 100644
--- a/src/QuTextExt.c
+++ b/src/QuTextExt.c
@@ -24,11 +24,12 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/QuTextExt.c,v 1.4 2001/12/14 19:54:04 dawes Exp $ */
#define NEED_REPLIES
#include "Xlibint.h"
-#if NeedFunctionPrototypes
+int
XQueryTextExtents (
register Display *dpy,
Font fid,
@@ -38,17 +39,6 @@ XQueryTextExtents (
int *font_ascent,
int *font_descent,
register XCharStruct *overall)
-#else
-XQueryTextExtents (dpy, fid, string, nchars, dir, font_ascent, font_descent,
- overall)
- register Display *dpy;
- Font fid;
- register char *string;
- register int nchars;
- int *dir;
- int *font_ascent, *font_descent;
- register XCharStruct *overall;
-#endif
{
register int i;
register char *ptr;
diff --git a/src/QuTree.c b/src/QuTree.c
index 8c6fcc7a..bb7307a1 100644
--- a/src/QuTree.c
+++ b/src/QuTree.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/QuTree.c,v 1.5 2001/01/17 19:41:42 dawes Exp $ */
#define NEED_REPLIES
#include "Xlibint.h"
@@ -59,7 +60,7 @@ Status XQueryTree (dpy, w, root, parent, children, nchildren)
SyncHandle();
return (0);
}
- _XRead32 (dpy, (char *) *children, nbytes);
+ _XRead32 (dpy, (long *) *children, nbytes);
}
*parent = rep.parent;
*root = rep.root;
diff --git a/src/Quarks.c b/src/Quarks.c
index 98b1b761..70f6f492 100644
--- a/src/Quarks.c
+++ b/src/Quarks.c
@@ -49,18 +49,19 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
+/* $XFree86: xc/lib/X11/Quarks.c,v 1.6 2003/04/13 19:22:17 dawes Exp $ */
#include "Xlibint.h"
#include <X11/Xresource.h>
+#include "Xresinternal.h"
/* Not cost effective, at least for vanilla MIT clients */
/* #define PERMQ */
-typedef unsigned long Signature;
-typedef unsigned long Entry;
#ifdef PERMQ
typedef unsigned char Bits;
#endif
+typedef unsigned long Entry; /* dont confuse with EntryRec from Xintatom.h */
static XrmQuark nextQuark = 1; /* next available quark number */
static unsigned long quarkMask = 0;
@@ -111,8 +112,7 @@ static XrmQuark nextUniq = -1; /* next quark from XrmUniqueQuark */
static char *neverFreeTable = NULL;
static int neverFreeTableSize = 0;
-static char *permalloc(length)
- register unsigned int length;
+static char *permalloc(unsigned int length)
{
char *ret;
@@ -136,10 +136,9 @@ typedef struct {char a; unsigned long b;} TestType2;
#endif
#ifdef XTHREADS
-static char *_Xpermalloc();
+static char *_Xpermalloc(unsigned int length);
-char *Xpermalloc(length)
- unsigned int length;
+char *Xpermalloc(unsigned int length)
{
char *p;
@@ -152,8 +151,7 @@ char *Xpermalloc(length)
static
#endif /* XTHREADS */
-char *Xpermalloc(length)
- unsigned int length;
+char *Xpermalloc(unsigned int length)
{
int i;
@@ -176,7 +174,7 @@ char *Xpermalloc(length)
}
static Bool
-ExpandQuarkTable()
+ExpandQuarkTable(void)
{
unsigned long oldmask, newmask;
register char c, *s;
@@ -241,17 +239,10 @@ ExpandQuarkTable()
return True;
}
-#if NeedFunctionPrototypes
-XrmQuark _XrmInternalStringToQuark(
+XrmQuark
+_XrmInternalStringToQuark(
register _Xconst char *name, register int len, register Signature sig,
Bool permstring)
-#else
-XrmQuark _XrmInternalStringToQuark(name, len, sig, permstring)
- register XrmString name;
- register int len;
- register Signature sig;
- Bool permstring;
-#endif
{
register XrmQuark q;
register Entry entry;
@@ -356,13 +347,9 @@ nomatch: if (!rehash)
return NULLQUARK;
}
-#if NeedFunctionPrototypes
-XrmQuark XrmStringToQuark(
+XrmQuark
+XrmStringToQuark(
_Xconst char *name)
-#else
-XrmQuark XrmStringToQuark(name)
- XrmString name;
-#endif
{
register char c, *tname;
register Signature sig = 0;
@@ -376,13 +363,9 @@ XrmQuark XrmStringToQuark(name)
return _XrmInternalStringToQuark(name, tname-(char *)name-1, sig, False);
}
-#if NeedFunctionPrototypes
-XrmQuark XrmPermStringToQuark(
+XrmQuark
+XrmPermStringToQuark(
_Xconst char *name)
-#else
-XrmQuark XrmPermStringToQuark(name)
- XrmString name;
-#endif
{
register char c, *tname;
register Signature sig = 0;
diff --git a/src/RaiseWin.c b/src/RaiseWin.c
index 7524a5ae..a11aed8b 100644
--- a/src/RaiseWin.c
+++ b/src/RaiseWin.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/RaiseWin.c,v 1.3 2001/01/17 19:41:42 dawes Exp $ */
#include "Xlibint.h"
+int
XRaiseWindow (dpy, w)
register Display *dpy;
Window w;
diff --git a/src/RdBitF.c b/src/RdBitF.c
index 2b7b3966..b2826966 100644
--- a/src/RdBitF.c
+++ b/src/RdBitF.c
@@ -26,6 +26,7 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
+/* $XFree86: xc/lib/X11/RdBitF.c,v 3.6 2003/04/13 19:22:17 dawes Exp $ */
/*
* Code to read bitmaps from disk files. Interprets
@@ -60,7 +61,7 @@ static Bool initialized = False; /* easier to fill in at run time */
* Table index for the hex values. Initialized once, first time.
* Used for translation value or delimiter significance lookup.
*/
-static void initHexTable()
+static void initHexTable(void)
{
/*
* We build the table at run time for several reasons:
@@ -93,8 +94,9 @@ static void initHexTable()
/*
* read next hex value in the input stream, return -1 if EOF
*/
-static NextInt (fstream)
- FILE *fstream;
+static int
+NextInt (
+ FILE *fstream)
{
int ch;
int value = 0;
@@ -122,21 +124,14 @@ static NextInt (fstream)
return value;
}
-#if NeedFunctionPrototypes
-int XReadBitmapFileData (
+int
+XReadBitmapFileData (
_Xconst char *filename,
unsigned int *width, /* RETURNED */
unsigned int *height, /* RETURNED */
unsigned char **data, /* RETURNED */
int *x_hot, /* RETURNED */
int *y_hot) /* RETURNED */
-#else
-int XReadBitmapFileData (filename, width, height, data, x_hot, y_hot)
- char *filename;
- unsigned int *width, *height; /* RETURNED */
- unsigned char **data; /* RETURNED */
- int *x_hot, *y_hot; /* RETURNED */
-#endif
{
FILE *fstream; /* handle on file */
unsigned char *bits = NULL; /* working variable */
@@ -156,6 +151,9 @@ int XReadBitmapFileData (filename, width, height, data, x_hot, y_hot)
/* first time initialization */
if (initialized == False) initHexTable();
+#ifdef __UNIXOS2__
+ filename = __XOS2RedirRoot(filename);
+#endif
if (!(fstream = fopen(filename, "r")))
return BitmapOpenFailed;
@@ -255,8 +253,8 @@ int XReadBitmapFileData (filename, width, height, data, x_hot, y_hot)
return (BitmapSuccess);
}
-#if NeedFunctionPrototypes
-int XReadBitmapFile (
+int
+XReadBitmapFile (
Display *display,
Drawable d,
_Xconst char *filename,
@@ -265,15 +263,6 @@ int XReadBitmapFile (
Pixmap *pixmap, /* RETURNED */
int *x_hot, /* RETURNED */
int *y_hot) /* RETURNED */
-#else
-int XReadBitmapFile (display, d, filename, width, height, pixmap, x_hot, y_hot)
- Display *display;
- Drawable d;
- char *filename;
- unsigned int *width, *height; /* RETURNED */
- Pixmap *pixmap; /* RETURNED */
- int *x_hot, *y_hot; /* RETURNED */
-#endif
{
unsigned char *data;
int res;
diff --git a/src/RecolorC.c b/src/RecolorC.c
index 06cf31ce..3066d1ad 100644
--- a/src/RecolorC.c
+++ b/src/RecolorC.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/RecolorC.c,v 1.3 2001/01/17 19:41:42 dawes Exp $ */
#include "Xlibint.h"
+int
XRecolorCursor(dpy, cursor, foreground, background)
register Display *dpy;
Cursor cursor;
diff --git a/src/ReconfWin.c b/src/ReconfWin.c
index e1e2fe59..ef536ff3 100644
--- a/src/ReconfWin.c
+++ b/src/ReconfWin.c
@@ -24,12 +24,14 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/ReconfWin.c,v 1.3 2001/01/17 19:41:42 dawes Exp $ */
#include "Xlibint.h"
#define AllMaskBits (CWX|CWY|CWWidth|CWHeight|\
CWBorderWidth|CWSibling|CWStackMode)
+int
XConfigureWindow(dpy, w, mask, changes)
register Display *dpy;
Window w;
diff --git a/src/Region.c b/src/Region.c
index c8eeabd6..79fb8e8b 100644
--- a/src/Region.c
+++ b/src/Region.c
@@ -45,6 +45,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.
************************************************************************/
+/* $XFree86: xc/lib/X11/Region.c,v 1.9 2002/06/04 22:19:57 dawes Exp $ */
/*
* The functions in this file implement the Region abstraction, similar to one
* used in the X11 sample server. A Region is simply an area, as the name
@@ -84,12 +85,56 @@ SOFTWARE.
#define assert(expr)
#endif
-typedef void (*voidProcp)();
+typedef int (*overlapProcp)(
+ register Region pReg,
+ register BoxPtr r1,
+ BoxPtr r1End,
+ register BoxPtr r2,
+ BoxPtr r2End,
+ short y1,
+ short y2);
+
+typedef int (*nonOverlapProcp)(
+ register Region pReg,
+ register BoxPtr r,
+ BoxPtr rEnd,
+ register short y1,
+ register short y2);
+
+static void miRegionOp(
+ register Region newReg, /* Place to store result */
+ Region reg1, /* First region in operation */
+ Region reg2, /* 2d region in operation */
+ int (*overlapFunc)(
+ register Region pReg,
+ register BoxPtr r1,
+ BoxPtr r1End,
+ register BoxPtr r2,
+ BoxPtr r2End,
+ short y1,
+ short y2), /* Function to call for over-
+ * lapping bands */
+ int (*nonOverlap1Func)(
+ register Region pReg,
+ register BoxPtr r,
+ BoxPtr rEnd,
+ register short y1,
+ register short y2), /* Function to call for non-
+ * overlapping bands in region
+ * 1 */
+ int (*nonOverlap2Func)(
+ register Region pReg,
+ register BoxPtr r,
+ BoxPtr rEnd,
+ register short y1,
+ register short y2)); /* Function to call for non-
+ * overlapping bands in region
+ * 2 */
+
-static void miRegionOp();
/* Create a new empty region */
Region
-XCreateRegion()
+XCreateRegion(void)
{
Region temp;
@@ -108,9 +153,10 @@ XCreateRegion()
return( temp );
}
-XClipBox( r, rect )
- Region r;
- XRectangle *rect;
+int
+XClipBox(
+ Region r,
+ XRectangle *rect)
{
rect->x = r->extents.x1;
rect->y = r->extents.y1;
@@ -119,9 +165,10 @@ XClipBox( r, rect )
return 1;
}
-XUnionRectWithRegion(rect, source, dest)
- register XRectangle *rect;
- Region source, dest;
+int
+XUnionRectWithRegion(
+ register XRectangle *rect,
+ Region source, Region dest)
{
REGION region;
@@ -154,8 +201,8 @@ XUnionRectWithRegion(rect, source, dest)
*-----------------------------------------------------------------------
*/
static void
-miSetExtents (pReg)
- Region pReg;
+miSetExtents (
+ Region pReg)
{
register BoxPtr pBox,
pBoxEnd,
@@ -202,16 +249,16 @@ miSetExtents (pReg)
assert(pExtents->x1 < pExtents->x2);
}
-XSetRegion( dpy, gc, r )
- Display *dpy;
- GC gc;
- register Region r;
+int
+XSetRegion(
+ Display *dpy,
+ GC gc,
+ register Region r)
{
register int i;
register XRectangle *xr, *pr;
register BOX *pb;
unsigned long total;
- extern void _XSetClipRectangles();
LockDisplay (dpy);
total = r->numRects * sizeof (XRectangle);
@@ -232,8 +279,9 @@ XSetRegion( dpy, gc, r )
return 1;
}
-XDestroyRegion( r )
- Region r;
+int
+XDestroyRegion(
+ Region r)
{
Xfree( (char *) r->rects );
Xfree( (char *) r );
@@ -246,10 +294,11 @@ XDestroyRegion( r )
added by raymond
*/
-XOffsetRegion(pRegion, x, y)
- register Region pRegion;
- register int x;
- register int y;
+int
+XOffsetRegion(
+ register Region pRegion,
+ register int x,
+ register int y)
{
register int nbox;
register BOX *pbox;
@@ -299,10 +348,10 @@ XOffsetRegion(pRegion, x, y)
#define ZCopyRegion(a,b) XUnionRegion(a,a,b)
static void
-Compress(r, s, t, dx, xdir, grow)
- Region r, s, t;
- register unsigned dx;
- register int xdir, grow;
+Compress(
+ Region r, Region s, Region t,
+ register unsigned dx,
+ register int xdir, register int grow)
{
register unsigned shift = 1;
@@ -325,9 +374,10 @@ Compress(r, s, t, dx, xdir, grow)
#undef ZShiftRegion
#undef ZCopyRegion
-XShrinkRegion(r, dx, dy)
- Region r;
- int dx, dy;
+int
+XShrinkRegion(
+ Region r,
+ int dx, int dy)
{
Region s, t;
int grow;
@@ -351,10 +401,10 @@ XShrinkRegion(r, dx, dy)
***********************************************************/
static BOX
-*IndexRects(rects, numRects, y)
- register BOX *rects;
- register int numRects;
- register int y;
+*IndexRects(
+ register BOX *rects,
+ register int numRects,
+ register int y)
{
while ((numRects--) && (rects->y2 <= y))
rects++;
@@ -379,15 +429,15 @@ static BOX
*-----------------------------------------------------------------------
*/
/* static void*/
-static
-miIntersectO (pReg, r1, r1End, r2, r2End, y1, y2)
- register Region pReg;
- register BoxPtr r1;
- BoxPtr r1End;
- register BoxPtr r2;
- BoxPtr r2End;
- short y1;
- short y2;
+static int
+miIntersectO (
+ register Region pReg,
+ register BoxPtr r1,
+ BoxPtr r1End,
+ register BoxPtr r2,
+ BoxPtr r2End,
+ short y1,
+ short y2)
{
register short x1;
register short x2;
@@ -443,10 +493,11 @@ miIntersectO (pReg, r1, r1End, r2, r2End, y1, y2)
return 0; /* lint */
}
-XIntersectRegion(reg1, reg2, newReg)
- Region reg1;
- Region reg2; /* source regions */
- register Region newReg; /* destination Region */
+int
+XIntersectRegion(
+ Region reg1,
+ Region reg2, /* source regions */
+ register Region newReg) /* destination Region */
{
/* check for trivial reject */
if ( (!(reg1->numRects)) || (!(reg2->numRects)) ||
@@ -454,7 +505,7 @@ XIntersectRegion(reg1, reg2, newReg)
newReg->numRects = 0;
else
miRegionOp (newReg, reg1, reg2,
- (voidProcp) miIntersectO, (voidProcp) NULL, (voidProcp) NULL);
+ miIntersectO, NULL, NULL);
/*
* Can't alter newReg's extents before we call miRegionOp because
@@ -468,9 +519,9 @@ XIntersectRegion(reg1, reg2, newReg)
}
static void
-miRegionCopy(dstrgn, rgn)
- register Region dstrgn;
- register Region rgn;
+miRegionCopy(
+ register Region dstrgn,
+ register Region rgn)
{
if (dstrgn != rgn) /* don't want to copy to itself */
@@ -509,10 +560,10 @@ miRegionCopy(dstrgn, rgn)
*/
static void
-combineRegs(newReg, reg1, reg2)
- register Region newReg;
- Region reg1;
- Region reg2;
+combineRegs(
+ register Region newReg,
+ Region reg1,
+ Region reg2)
{
register Region tempReg;
register BOX *rects;
@@ -558,8 +609,7 @@ combineRegs(newReg, reg1, reg2)
*/
static int
-QuickCheck(newReg, reg1, reg2)
- Region newReg, reg1, reg2;
+QuickCheck(Region newReg, Region reg1, Region reg2)
{
/* if unioning with itself or no rects to union with */
@@ -594,12 +644,12 @@ QuickCheck(newReg, reg1, reg2)
*/
static int
-TopRects(newReg, rects, reg1, reg2, FirstRect)
- register Region newReg;
- register BOX *rects;
- register Region reg1;
- register Region reg2;
- BOX *FirstRect;
+TopRects(
+ register Region newReg,
+ register BOX *rects,
+ register Region reg1,
+ register Region reg2,
+ BOX *FirstRect)
{
register BOX *tempRects;
@@ -653,11 +703,11 @@ TopRects(newReg, rects, reg1, reg2, FirstRect)
*-----------------------------------------------------------------------
*/
/* static int*/
-static
-miCoalesce (pReg, prevStart, curStart)
- register Region pReg; /* Region to coalesce */
- int prevStart; /* Index of start of previous band */
- int curStart; /* Index of start of current band */
+static int
+miCoalesce(
+ register Region pReg, /* Region to coalesce */
+ int prevStart, /* Index of start of previous band */
+ int curStart) /* Index of start of current band */
{
register BoxPtr pPrevBox; /* Current box in previous band */
register BoxPtr pCurBox; /* Current box in current band */
@@ -805,16 +855,33 @@ miCoalesce (pReg, prevStart, curStart)
*/
/* static void*/
static void
-miRegionOp(newReg, reg1, reg2, overlapFunc, nonOverlap1Func, nonOverlap2Func)
- register Region newReg; /* Place to store result */
- Region reg1; /* First region in operation */
- Region reg2; /* 2d region in operation */
- void (*overlapFunc)(); /* Function to call for over-
+miRegionOp(
+ register Region newReg, /* Place to store result */
+ Region reg1, /* First region in operation */
+ Region reg2, /* 2d region in operation */
+ int (*overlapFunc)(
+ register Region pReg,
+ register BoxPtr r1,
+ BoxPtr r1End,
+ register BoxPtr r2,
+ BoxPtr r2End,
+ short y1,
+ short y2), /* Function to call for over-
* lapping bands */
- void (*nonOverlap1Func)(); /* Function to call for non-
+ int (*nonOverlap1Func)(
+ register Region pReg,
+ register BoxPtr r,
+ BoxPtr rEnd,
+ register short y1,
+ register short y2), /* Function to call for non-
* overlapping bands in region
* 1 */
- void (*nonOverlap2Func)(); /* Function to call for non-
+ int (*nonOverlap2Func)(
+ register Region pReg,
+ register BoxPtr r,
+ BoxPtr rEnd,
+ register short y1,
+ register short y2)) /* Function to call for non-
* overlapping bands in region
* 2 */
{
@@ -932,7 +999,7 @@ miRegionOp(newReg, reg1, reg2, overlapFunc, nonOverlap1Func, nonOverlap2Func)
top = max(r1->y1,ybot);
bot = min(r1->y2,r2->y1);
- if ((top != bot) && (nonOverlap1Func != (void (*)())NULL))
+ if ((top != bot) && (nonOverlap1Func != NULL))
{
(* nonOverlap1Func) (newReg, r1, r1BandEnd, top, bot);
}
@@ -944,7 +1011,7 @@ miRegionOp(newReg, reg1, reg2, overlapFunc, nonOverlap1Func, nonOverlap2Func)
top = max(r2->y1,ybot);
bot = min(r2->y2,r1->y1);
- if ((top != bot) && (nonOverlap2Func != (void (*)())NULL))
+ if ((top != bot) && (nonOverlap2Func != NULL))
{
(* nonOverlap2Func) (newReg, r2, r2BandEnd, top, bot);
}
@@ -1004,7 +1071,7 @@ miRegionOp(newReg, reg1, reg2, overlapFunc, nonOverlap1Func, nonOverlap2Func)
curBand = newReg->numRects;
if (r1 != r1End)
{
- if (nonOverlap1Func != (void (*)())NULL)
+ if (nonOverlap1Func != NULL)
{
do
{
@@ -1019,7 +1086,7 @@ miRegionOp(newReg, reg1, reg2, overlapFunc, nonOverlap1Func, nonOverlap2Func)
} while (r1 != r1End);
}
}
- else if ((r2 != r2End) && (nonOverlap2Func != (void (*)())NULL))
+ else if ((r2 != r2End) && (nonOverlap2Func != NULL))
{
do
{
@@ -1095,13 +1162,13 @@ miRegionOp(newReg, reg1, reg2, overlapFunc, nonOverlap1Func, nonOverlap2Func)
*-----------------------------------------------------------------------
*/
/* static void*/
-static
-miUnionNonO (pReg, r, rEnd, y1, y2)
- register Region pReg;
- register BoxPtr r;
- BoxPtr rEnd;
- register short y1;
- register short y2;
+static int
+miUnionNonO (
+ register Region pReg,
+ register BoxPtr r,
+ BoxPtr rEnd,
+ register short y1,
+ register short y2)
{
register BoxPtr pNextRect;
@@ -1144,15 +1211,15 @@ miUnionNonO (pReg, r, rEnd, y1, y2)
*/
/* static void*/
-static
-miUnionO (pReg, r1, r1End, r2, r2End, y1, y2)
- register Region pReg;
- register BoxPtr r1;
- BoxPtr r1End;
- register BoxPtr r2;
- BoxPtr r2End;
- register short y1;
- register short y2;
+static int
+miUnionO (
+ register Region pReg,
+ register BoxPtr r1,
+ BoxPtr r1End,
+ register BoxPtr r2,
+ BoxPtr r2End,
+ register short y1,
+ register short y2)
{
register BoxPtr pNextRect;
@@ -1210,10 +1277,11 @@ miUnionO (pReg, r1, r1End, r2, r2End, y1, y2)
return 0; /* lint */
}
-XUnionRegion(reg1, reg2, newReg)
- Region reg1;
- Region reg2; /* source regions */
- Region newReg; /* destination Region */
+int
+XUnionRegion(
+ Region reg1,
+ Region reg2, /* source regions */
+ Region newReg) /* destination Region */
{
/* checks all the simple cases */
@@ -1265,8 +1333,8 @@ XUnionRegion(reg1, reg2, newReg)
return 1;
}
- miRegionOp (newReg, reg1, reg2, (voidProcp) miUnionO,
- (voidProcp) miUnionNonO, (voidProcp) miUnionNonO);
+ miRegionOp (newReg, reg1, reg2, miUnionO,
+ miUnionNonO, miUnionNonO);
newReg->extents.x1 = min(reg1->extents.x1, reg2->extents.x1);
newReg->extents.y1 = min(reg1->extents.y1, reg2->extents.y1);
@@ -1296,13 +1364,13 @@ XUnionRegion(reg1, reg2, newReg)
*-----------------------------------------------------------------------
*/
/* static void*/
-static
-miSubtractNonO1 (pReg, r, rEnd, y1, y2)
- register Region pReg;
- register BoxPtr r;
- BoxPtr rEnd;
- register short y1;
- register short y2;
+static int
+miSubtractNonO1 (
+ register Region pReg,
+ register BoxPtr r,
+ BoxPtr rEnd,
+ register short y1,
+ register short y2)
{
register BoxPtr pNextRect;
@@ -1343,15 +1411,15 @@ miSubtractNonO1 (pReg, r, rEnd, y1, y2)
*-----------------------------------------------------------------------
*/
/* static void*/
-static
-miSubtractO (pReg, r1, r1End, r2, r2End, y1, y2)
- register Region pReg;
- register BoxPtr r1;
- BoxPtr r1End;
- register BoxPtr r2;
- BoxPtr r2End;
- register short y1;
- register short y2;
+static int
+miSubtractO (
+ register Region pReg,
+ register BoxPtr r1,
+ BoxPtr r1End,
+ register BoxPtr r2,
+ BoxPtr r2End,
+ register short y1,
+ register short y2)
{
register BoxPtr pNextRect;
register int x1;
@@ -1447,7 +1515,8 @@ miSubtractO (pReg, r1, r1End, r2, r2End, y1, y2)
assert(pReg->numRects<=pReg->size);
}
r1++;
- x1 = r1->x1;
+ if (r1 != r1End)
+ x1 = r1->x1;
}
}
@@ -1491,10 +1560,11 @@ miSubtractO (pReg, r1, r1End, r2, r2End, y1, y2)
*-----------------------------------------------------------------------
*/
-XSubtractRegion(regM, regS, regD)
- Region regM;
- Region regS;
- register Region regD;
+int
+XSubtractRegion(
+ Region regM,
+ Region regS,
+ register Region regD)
{
/* check for trivial reject */
if ( (!(regM->numRects)) || (!(regS->numRects)) ||
@@ -1504,8 +1574,8 @@ XSubtractRegion(regM, regS, regD)
return 1;
}
- miRegionOp (regD, regM, regS, (voidProcp) miSubtractO,
- (voidProcp) miSubtractNonO1, (voidProcp) NULL);
+ miRegionOp (regD, regM, regS, miSubtractO,
+ miSubtractNonO1, NULL);
/*
* Can't alter newReg's extents before we call miRegionOp because
@@ -1519,8 +1589,7 @@ XSubtractRegion(regM, regS, regD)
}
int
-XXorRegion( sra, srb, dr )
- Region sra, srb, dr;
+XXorRegion(Region sra, Region srb, Region dr)
{
Region tra, trb;
@@ -1539,8 +1608,8 @@ XXorRegion( sra, srb, dr )
* as a parameter
*/
int
-XEmptyRegion( r )
- Region r;
+XEmptyRegion(
+ Region r)
{
if( r->numRects == 0 ) return TRUE;
else return FALSE;
@@ -1550,8 +1619,7 @@ XEmptyRegion( r )
* Check to see if two regions are equal
*/
int
-XEqualRegion( r1, r2 )
- Region r1, r2;
+XEqualRegion(Region r1, Region r2)
{
int i;
@@ -1571,9 +1639,9 @@ XEqualRegion( r1, r2 )
}
int
-XPointInRegion( pRegion, x, y )
- Region pRegion;
- int x, y;
+XPointInRegion(
+ Region pRegion,
+ int x, int y)
{
int i;
@@ -1590,10 +1658,10 @@ XPointInRegion( pRegion, x, y )
}
int
-XRectInRegion(region, rx, ry, rwidth, rheight)
- register Region region;
- int rx, ry;
- unsigned int rwidth, rheight;
+XRectInRegion(
+ register Region region,
+ int rx, int ry,
+ unsigned int rwidth, unsigned int rheight)
{
register BoxPtr pbox;
register BoxPtr pboxEnd;
diff --git a/src/RegstFlt.c b/src/RegstFlt.c
index 901e5f30..e3702bae 100644
--- a/src/RegstFlt.c
+++ b/src/RegstFlt.c
@@ -52,13 +52,14 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
+/* $XFree86: xc/lib/X11/RegstFlt.c,v 1.5 2003/04/13 19:22:17 dawes Exp $ */
#include "Xlibint.h"
#include "Xlcint.h"
static void
-_XFreeIMFilters(display)
- Display *display;
+_XFreeIMFilters(
+ Display *display)
{
register XFilterEventList fl;
@@ -72,16 +73,14 @@ _XFreeIMFilters(display)
* Register a filter with the filter machinery by event mask.
*/
void
-_XRegisterFilterByMask(display, window, event_mask, filter, client_data)
- Display *display;
- Window window;
- unsigned long event_mask;
+_XRegisterFilterByMask(
+ Display *display,
+ Window window,
+ unsigned long event_mask,
Bool (*filter)(
-#if NeedNestedPrototypes
Display*, Window, XEvent*, XPointer
-#endif
- );
- XPointer client_data;
+ ),
+ XPointer client_data)
{
XFilterEventRec *rec;
@@ -105,18 +104,15 @@ _XRegisterFilterByMask(display, window, event_mask, filter, client_data)
* Register a filter with the filter machinery by type code.
*/
void
-_XRegisterFilterByType(display, window, start_type, end_type,
- filter, client_data)
- Display *display;
- Window window;
- int start_type;
- int end_type;
+_XRegisterFilterByType(
+ Display *display,
+ Window window,
+ int start_type,
+ int end_type,
Bool (*filter)(
-#if NeedNestedPrototypes
Display*, Window, XEvent*, XPointer
-#endif
- );
- XPointer client_data;
+ ),
+ XPointer client_data)
{
XFilterEventRec *rec;
@@ -137,15 +133,13 @@ _XRegisterFilterByType(display, window, start_type, end_type,
}
void
-_XUnregisterFilter(display, window, filter, client_data)
- Display *display;
- Window window;
+_XUnregisterFilter(
+ Display *display,
+ Window window,
Bool (*filter)(
-#if NeedNestedPrototypes
Display*, Window, XEvent*, XPointer
-#endif
- );
- XPointer client_data;
+ ),
+ XPointer client_data)
{
register XFilterEventList *prev, fl;
diff --git a/src/RepWindow.c b/src/RepWindow.c
index ca1f6315..2193220d 100644
--- a/src/RepWindow.c
+++ b/src/RepWindow.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/RepWindow.c,v 1.3 2001/01/17 19:41:42 dawes Exp $ */
#include "Xlibint.h"
+int
XReparentWindow(dpy, w, p, x, y)
register Display *dpy;
Window w, p;
diff --git a/src/RestackWs.c b/src/RestackWs.c
index 1051fde6..8060f17a 100644
--- a/src/RestackWs.c
+++ b/src/RestackWs.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/RestackWs.c,v 1.3 2001/01/17 19:41:43 dawes Exp $ */
#include "Xlibint.h"
+int
XRestackWindows (dpy, windows, n)
register Display *dpy;
register Window *windows;
diff --git a/src/RotProp.c b/src/RotProp.c
index 36c3c1df..4020606f 100644
--- a/src/RotProp.c
+++ b/src/RotProp.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/RotProp.c,v 1.3 2001/01/17 19:41:43 dawes Exp $ */
#include "Xlibint.h"
+int
XRotateWindowProperties(dpy, w, properties, nprops, npositions)
register Display *dpy;
Window w;
diff --git a/src/SelInput.c b/src/SelInput.c
index c42a6674..5a8870e4 100644
--- a/src/SelInput.c
+++ b/src/SelInput.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/SelInput.c,v 1.3 2001/01/17 19:41:43 dawes Exp $ */
#include "Xlibint.h"
+int
XSelectInput (dpy, w, mask)
register Display *dpy;
Window w;
diff --git a/src/SendEvent.c b/src/SendEvent.c
index d853e273..6d7d6229 100644
--- a/src/SendEvent.c
+++ b/src/SendEvent.c
@@ -24,11 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/SendEvent.c,v 1.4 2001/12/14 19:54:05 dawes Exp $ */
#define NEED_EVENTS
#include "Xlibint.h"
-extern Status _XEventToWire();
/*
* In order to avoid all images requiring _XEventToWire, we install the
* event converter here if it has never been installed.
@@ -43,7 +43,10 @@ XSendEvent(dpy, w, propagate, event_mask, event)
{
register xSendEventReq *req;
xEvent ev;
- register Status (**fp)();
+ register Status (**fp)(
+ Display * /* dpy */,
+ XEvent * /* re */,
+ xEvent * /* event */);
Status status;
LockDisplay (dpy);
diff --git a/src/SetBack.c b/src/SetBack.c
index aea142c9..6c207f7d 100644
--- a/src/SetBack.c
+++ b/src/SetBack.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/SetBack.c,v 1.3 2001/01/17 19:41:43 dawes Exp $ */
#include "Xlibint.h"
+int
XSetBackground (dpy, gc, background)
register Display *dpy;
GC gc;
diff --git a/src/SetCRects.c b/src/SetCRects.c
index 8f03b7de..194998c3 100644
--- a/src/SetCRects.c
+++ b/src/SetCRects.c
@@ -24,18 +24,18 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/SetCRects.c,v 1.4 2001/12/14 19:54:06 dawes Exp $ */
#include "Xlibint.h"
/* can only call when display is locked. */
-void _XSetClipRectangles (dpy, gc, clip_x_origin, clip_y_origin, rectangles, n,
- ordering)
- register Display *dpy;
- GC gc;
- int clip_x_origin, clip_y_origin;
- XRectangle *rectangles;
- int n;
- int ordering;
+void _XSetClipRectangles (
+ register Display *dpy,
+ GC gc,
+ int clip_x_origin, int clip_y_origin,
+ XRectangle *rectangles,
+ int n,
+ int ordering)
{
register xSetClipRectanglesReq *req;
register long len;
@@ -60,6 +60,7 @@ void _XSetClipRectangles (dpy, gc, clip_x_origin, clip_y_origin, rectangles, n,
gc->dirty = dirty;
}
+int
XSetClipRectangles (dpy, gc, clip_x_origin, clip_y_origin, rectangles, n,
ordering)
register Display *dpy;
diff --git a/src/SetClMask.c b/src/SetClMask.c
index 75d97ab4..2503aef5 100644
--- a/src/SetClMask.c
+++ b/src/SetClMask.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/SetClMask.c,v 1.3 2001/01/17 19:41:43 dawes Exp $ */
#include "Xlibint.h"
+int
XSetClipMask (dpy, gc, mask)
register Display *dpy;
GC gc;
diff --git a/src/SetClOrig.c b/src/SetClOrig.c
index c471234e..659c9a8a 100644
--- a/src/SetClOrig.c
+++ b/src/SetClOrig.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/SetClOrig.c,v 1.3 2001/01/17 19:41:43 dawes Exp $ */
#include "Xlibint.h"
+int
XSetClipOrigin (dpy, gc, xorig, yorig)
register Display *dpy;
GC gc;
diff --git a/src/SetDashes.c b/src/SetDashes.c
index ce3a5e60..9fd0472f 100644
--- a/src/SetDashes.c
+++ b/src/SetDashes.c
@@ -24,24 +24,17 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/SetDashes.c,v 1.4 2001/12/14 19:54:06 dawes Exp $ */
#include "Xlibint.h"
-#if NeedFunctionPrototypes
+int
XSetDashes (
register Display *dpy,
GC gc,
int dash_offset,
_Xconst char *list,
int n)
-#else
-XSetDashes (dpy, gc, dash_offset, list, n)
- register Display *dpy;
- GC gc;
- int dash_offset;
- char *list;
- int n;
-#endif
{
register xSetDashesReq *req;
diff --git a/src/SetFPath.c b/src/SetFPath.c
index acf0a1d0..09441df0 100644
--- a/src/SetFPath.c
+++ b/src/SetFPath.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/SetFPath.c,v 1.5 2001/01/17 19:41:43 dawes Exp $ */
#include "Xlibint.h"
diff --git a/src/SetFont.c b/src/SetFont.c
index 57f7294f..9a8e67db 100644
--- a/src/SetFont.c
+++ b/src/SetFont.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/SetFont.c,v 1.3 2001/01/17 19:41:43 dawes Exp $ */
#include "Xlibint.h"
+int
XSetFont (dpy, gc, font)
register Display *dpy;
GC gc;
diff --git a/src/SetFore.c b/src/SetFore.c
index d8773494..e938d8fa 100644
--- a/src/SetFore.c
+++ b/src/SetFore.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/SetFore.c,v 1.3 2001/01/17 19:41:43 dawes Exp $ */
#include "Xlibint.h"
+int
XSetForeground (dpy, gc, foreground)
register Display *dpy;
GC gc;
diff --git a/src/SetFunc.c b/src/SetFunc.c
index b4154672..c0041317 100644
--- a/src/SetFunc.c
+++ b/src/SetFunc.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/SetFunc.c,v 1.3 2001/01/17 19:41:43 dawes Exp $ */
#include "Xlibint.h"
+int
XSetFunction (dpy, gc, function)
register Display *dpy;
GC gc;
diff --git a/src/SetHints.c b/src/SetHints.c
index f8201921..ffa5ebe9 100644
--- a/src/SetHints.c
+++ b/src/SetHints.c
@@ -46,6 +46,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.
******************************************************************/
+/* $XFree86: xc/lib/X11/SetHints.c,v 1.4 2001/12/14 19:54:06 dawes Exp $ */
#include <X11/Xlibint.h>
#include <X11/Xutil.h>
@@ -55,6 +56,7 @@ SOFTWARE.
#define safestrlen(s) ((s) ? strlen(s) : 0)
+int
XSetSizeHints(dpy, w, hints, property) /* old routine */
Display *dpy;
Window w;
@@ -87,6 +89,7 @@ XSetSizeHints(dpy, w, hints, property) /* old routine */
* WM_HINTS type: WM_HINTS format:32
*/
+int
XSetWMHints (dpy, w, wmhints)
Display *dpy;
Window w;
@@ -114,6 +117,7 @@ XSetWMHints (dpy, w, wmhints)
* WM_ZOOM_HINTS type: WM_SIZE_HINTS format: 32
*/
+int
XSetZoomHints (dpy, w, zhints)
Display *dpy;
Window w;
@@ -128,6 +132,7 @@ XSetZoomHints (dpy, w, zhints)
* WM_NORMAL_HINTS type: WM_SIZE_HINTS format: 32
*/
+int
XSetNormalHints (dpy, w, hints) /* old routine */
Display *dpy;
Window w;
@@ -144,6 +149,7 @@ XSetNormalHints (dpy, w, hints) /* old routine */
* routine will take care of converting to host to network data structures.
*/
+int
XSetIconSizes (dpy, w, list, count)
Display *dpy;
Window w; /* typically, root */
@@ -174,6 +180,7 @@ XSetIconSizes (dpy, w, list, count)
return 1;
}
+int
XSetCommand (dpy, w, argv, argc)
Display *dpy;
Window w;
@@ -211,7 +218,7 @@ XSetCommand (dpy, w, argv, argc)
* WM_NORMAL_HINTS type: WM_SIZE_HINTS format: 32
*/
-#if NeedFunctionPrototypes
+int
XSetStandardProperties (
Display *dpy,
Window w, /* window to decorate */
@@ -221,17 +228,6 @@ XSetStandardProperties (
char **argv, /* command to be used to restart application */
int argc, /* count of arguments */
XSizeHints *hints) /* size hints for window in its normal state */
-#else
-XSetStandardProperties (dpy, w, name, icon_string, icon_pixmap, argv, argc, hints)
- Display *dpy;
- Window w; /* window to decorate */
- char *name; /* name of application */
- char *icon_string; /* name string for icon */
- Pixmap icon_pixmap; /* pixmap to use as icon, or None */
- char **argv; /* command to be used to restart application */
- int argc; /* count of arguments */
- XSizeHints *hints; /* size hints for window in its normal state */
-#endif
{
XWMHints phints;
phints.flags = 0;
@@ -256,6 +252,7 @@ XSetStandardProperties (dpy, w, name, icon_string, icon_pixmap, argv, argc, hint
return 1;
}
+int
XSetTransientForHint(dpy, w, propWindow)
Display *dpy;
Window w;
@@ -265,6 +262,7 @@ XSetTransientForHint(dpy, w, propWindow)
PropModeReplace, (unsigned char *) &propWindow, 1);
}
+int
XSetClassHint(dpy, w, classhint)
Display *dpy;
Window w;
diff --git a/src/SetIFocus.c b/src/SetIFocus.c
index 550a8cba..2e0eb1d9 100644
--- a/src/SetIFocus.c
+++ b/src/SetIFocus.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/SetIFocus.c,v 1.3 2001/01/17 19:41:43 dawes Exp $ */
#include "Xlibint.h"
+int
XSetInputFocus(dpy, focus, revert_to, time)
register Display *dpy;
Window focus;
diff --git a/src/SetLStyle.c b/src/SetLStyle.c
index a0352407..9f0c8c5e 100644
--- a/src/SetLStyle.c
+++ b/src/SetLStyle.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/SetLStyle.c,v 1.3 2001/01/17 19:41:43 dawes Exp $ */
#include "Xlibint.h"
+int
XSetLineAttributes(dpy, gc, linewidth, linestyle, capstyle, joinstyle)
register Display *dpy;
GC gc;
diff --git a/src/SetLocale.c b/src/SetLocale.c
index faa72941..49ec0d32 100644
--- a/src/SetLocale.c
+++ b/src/SetLocale.c
@@ -1,3 +1,4 @@
+/* $XdotOrg: lib/X11/src/SetLocale.c,v 1.2 2004-04-23 18:43:24 eich Exp $ */
/* $Xorg: SetLocale.c,v 1.4 2001/02/09 02:03:36 xorgcvs Exp $ */
/*
@@ -55,32 +56,25 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
+/* $XFree86: xc/lib/X11/SetLocale.c,v 3.20 2003/11/17 22:20:08 dawes Exp $ */
#include "Xlibint.h"
#include "Xlcint.h"
#include <X11/Xlocale.h>
#include <X11/Xos.h>
+#include "XlcPubI.h"
+
+#define MAXLOCALE 64 /* buffer size of locale name */
#ifdef X_LOCALE
/* alternative setlocale() for when the OS does not provide one */
-#ifdef X_NOT_STDC_ENV
-extern char *getenv();
-#endif
-
-#if NeedFunctionPrototypes
char *
_Xsetlocale(
int category,
- _Xconst char *name
+ _Xconst char *name
)
-#else
-char *
-_Xsetlocale(category, name)
- int category;
- char *name;
-#endif
{
static char *xsl_name;
char *old_name;
@@ -98,7 +92,9 @@ _Xsetlocale(category, name)
name = getenv("LC_CTYPE");
if (!name || !*name)
name = getenv("LANG");
- if (!name || !*name || !_XOpenLC(name))
+ if (name && strlen(name) >= MAXLOCALE)
+ name = NULL;
+ if (!name || !*name || !_XOpenLC((char *) name))
name = "C";
old_name = xsl_name;
xsl_name = (char *)name;
@@ -122,6 +118,17 @@ _Xsetlocale(category, name)
#else /* X_LOCALE */
+#ifdef __DARWIN__
+char *
+_Xsetlocale(
+ int category,
+ _Xconst char *name
+)
+{
+ return setlocale(category, name);
+}
+#endif /* __DARWIN__ */
+
/*
* _XlcMapOSLocaleName is an implementation dependent routine that derives
* the LC_CTYPE locale name as used in the sample implementation from that
@@ -139,90 +146,107 @@ _Xsetlocale(category, name)
*/
char *
-_XlcMapOSLocaleName(osname, siname)
- char *osname;
- char *siname;
+_XlcMapOSLocaleName(
+ char *osname,
+ char *siname)
{
-#if defined(hpux) || defined(CSRG_BASED) || defined(sun) || defined(SVR4) || defined(sgi) || defined(__osf__) || defined(AIXV3) || defined(ultrix) || defined(WIN32)
-#ifdef hpux
-#ifndef _LastCategory
-/* HPUX 9 and earlier */
-#define SKIPCOUNT 2
-#define STARTCHAR ':'
-#define ENDCHAR ';'
-#else
-/* HPUX 10 */
-#define ENDCHAR ' '
-#endif
-#else
-#ifdef ultrix
-#define SKIPCOUNT 2
-#define STARTCHAR '\001'
-#define ENDCHAR '\001'
-#else
-#ifdef WIN32
-#define SKIPCOUNT 1
-#define STARTCHAR '='
-#define ENDCHAR ';'
-#define WHITEFILL
-#else
-#if defined(__osf__) || (defined(AIXV3) && !defined(AIXV4))
-#define STARTCHAR ' '
-#define ENDCHAR ' '
-#else
-#if !defined(sun) || defined(SVR4)
-#define STARTCHAR '/'
-#endif
-#define ENDCHAR '/'
-#endif
-#endif
-#endif
-#endif
+#if defined(hpux) || defined(CSRG_BASED) || defined(sun) || defined(SVR4) || defined(sgi) || defined(__osf__) || defined(AIXV3) || defined(ultrix) || defined(WIN32) || defined(__UNIXOS2__) || defined(linux)
+# ifdef hpux
+# ifndef _LastCategory
+ /* HPUX 9 and earlier */
+# define SKIPCOUNT 2
+# define STARTCHAR ':'
+# define ENDCHAR ';'
+# else
+ /* HPUX 10 */
+# define ENDCHAR ' '
+# endif
+# else
+# ifdef ultrix
+# define SKIPCOUNT 2
+# define STARTCHAR '\001'
+# define ENDCHAR '\001'
+# else
+# if defined(WIN32) || defined(__UNIXOS2__)
+# define SKIPCOUNT 1
+# define STARTCHAR '='
+# define ENDCHAR ';'
+# define WHITEFILL
+# else
+# if defined(__osf__) || (defined(AIXV3) && !defined(AIXV4))
+# define STARTCHAR ' '
+# define ENDCHAR ' '
+# else
+# if defined(linux)
+# define STARTSTR "LC_CTYPE="
+# define ENDCHAR ';'
+# else
+# if !defined(sun) || defined(SVR4)
+# define STARTCHAR '/'
+# define ENDCHAR '/'
+# endif
+# endif
+# endif
+# endif
+# endif
+# endif
char *start;
char *end;
int len;
-#ifdef SKIPCOUNT
+# ifdef SKIPCOUNT
int n;
-#endif
+# endif
start = osname;
-#ifdef SKIPCOUNT
+# ifdef SKIPCOUNT
for (n = SKIPCOUNT;
--n >= 0 && start && (start = strchr (start, STARTCHAR));
start++)
;
if (!start)
start = osname;
-#endif
-#ifdef STARTCHAR
- if (start && (start = strchr (start, STARTCHAR))) {
+# endif
+# ifdef STARTCHAR
+ if (start && (start = strchr (start, STARTCHAR)))
+# elif defined (STARTSTR)
+ if (start && (start = strstr (start,STARTSTR)))
+# endif
+ {
+# ifdef STARTCHAR
start++;
-#endif
- if (end = strchr (start, ENDCHAR)) {
+# elif defined (STARTSTR)
+ start += strlen(STARTSTR);
+# endif
+ if ((end = strchr (start, ENDCHAR))) {
len = end - start;
+ if (len >= MAXLOCALE)
+ len = MAXLOCALE - 1;
strncpy(siname, start, len);
*(siname + len) = '\0';
-#ifdef WHITEFILL
+# ifdef WHITEFILL
for (start = siname; start = strchr(start, ' '); )
*start++ = '-';
-#endif
+# endif
return siname;
-#ifdef STARTCHAR
- }
-#endif
+ } else /* if no ENDCHAR is found we are at the end of the line */
+ return start;
}
-#ifdef WHITEFILL
+# ifdef WHITEFILL
if (strchr(osname, ' ')) {
- strcpy(siname, osname);
+ len = strlen(osname);
+ if (len >= MAXLOCALE - 1)
+ len = MAXLOCALE - 1;
+ strncpy(siname, osname, len);
+ *(siname + len) = '\0';
for (start = siname; start = strchr(start, ' '); )
*start++ = '-';
return siname;
}
-#endif
-#undef STARTCHAR
-#undef ENDCHAR
-#undef WHITEFILL
+# endif
+# undef STARTCHAR
+# undef ENDCHAR
+# undef WHITEFILL
#endif
return osname;
}
diff --git a/src/SetPMask.c b/src/SetPMask.c
index d712c12b..6c4b826c 100644
--- a/src/SetPMask.c
+++ b/src/SetPMask.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/SetPMask.c,v 1.3 2001/01/17 19:41:43 dawes Exp $ */
#include "Xlibint.h"
+int
XSetPlaneMask (dpy, gc, planemask)
register Display *dpy;
GC gc;
diff --git a/src/SetPntMap.c b/src/SetPntMap.c
index 52971616..7942537b 100644
--- a/src/SetPntMap.c
+++ b/src/SetPntMap.c
@@ -24,23 +24,18 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/SetPntMap.c,v 1.4 2001/12/14 19:54:06 dawes Exp $ */
#define NEED_REPLIES
#include "Xlibint.h"
/* returns either DeviceMappingSuccess or DeviceMappingBusy */
-#if NeedFunctionPrototypes
-int XSetPointerMapping (
+int
+XSetPointerMapping (
register Display *dpy,
_Xconst unsigned char *map,
int nmaps)
-#else
-int XSetPointerMapping (dpy, map, nmaps)
- register Display *dpy;
- unsigned char *map;
- int nmaps;
-#endif
{
register xSetPointerMappingReq *req;
xSetPointerMappingReply rep;
@@ -57,6 +52,7 @@ int XSetPointerMapping (dpy, map, nmaps)
return ((int) rep.success);
}
+int
XChangeKeyboardMapping (dpy, first_keycode, keysyms_per_keycode,
keysyms, nkeycodes)
register Display *dpy;
diff --git a/src/SetSOwner.c b/src/SetSOwner.c
index 67fc6ba2..40481ded 100644
--- a/src/SetSOwner.c
+++ b/src/SetSOwner.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/SetSOwner.c,v 1.3 2001/01/17 19:41:44 dawes Exp $ */
#include "Xlibint.h"
+int
XSetSelectionOwner(dpy, selection, owner, time)
register Display *dpy;
Atom selection;
diff --git a/src/SetSSaver.c b/src/SetSSaver.c
index 42ca05b0..cea64f25 100644
--- a/src/SetSSaver.c
+++ b/src/SetSSaver.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/SetSSaver.c,v 1.3 2001/01/17 19:41:44 dawes Exp $ */
#include "Xlibint.h"
+int
XSetScreenSaver(dpy, timeout, interval, prefer_blank, allow_exp)
register Display *dpy;
int timeout, interval, prefer_blank, allow_exp;
diff --git a/src/SetState.c b/src/SetState.c
index ad91d8fa..ecd51901 100644
--- a/src/SetState.c
+++ b/src/SetState.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/SetState.c,v 1.3 2001/01/17 19:41:44 dawes Exp $ */
#include "Xlibint.h"
+int
XSetState(dpy, gc, foreground, background, function, planemask)
register Display *dpy;
GC gc;
diff --git a/src/SetStip.c b/src/SetStip.c
index 3c6948f3..cb2ed999 100644
--- a/src/SetStip.c
+++ b/src/SetStip.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/SetStip.c,v 1.3 2001/01/17 19:41:44 dawes Exp $ */
#include "Xlibint.h"
+int
XSetStipple (dpy, gc, stipple)
register Display *dpy;
GC gc;
diff --git a/src/SetTSOrig.c b/src/SetTSOrig.c
index 6f6a2bad..d72e5cae 100644
--- a/src/SetTSOrig.c
+++ b/src/SetTSOrig.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/SetTSOrig.c,v 1.3 2001/01/17 19:41:44 dawes Exp $ */
#include "Xlibint.h"
+int
XSetTSOrigin (dpy, gc, x, y)
register Display *dpy;
GC gc;
diff --git a/src/SetTile.c b/src/SetTile.c
index 296e74aa..58ba8d90 100644
--- a/src/SetTile.c
+++ b/src/SetTile.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/SetTile.c,v 1.3 2001/01/17 19:41:44 dawes Exp $ */
#include "Xlibint.h"
+int
XSetTile (dpy, gc, tile)
register Display *dpy;
GC gc;
diff --git a/src/StBytes.c b/src/StBytes.c
index 880745f3..5daa3536 100644
--- a/src/StBytes.c
+++ b/src/StBytes.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/StBytes.c,v 1.4 2001/12/14 19:54:07 dawes Exp $ */
#include <X11/Xlibint.h>
#include <X11/Xatom.h>
@@ -39,6 +40,7 @@ static Atom n_to_atom[8] = {
XA_CUT_BUFFER6,
XA_CUT_BUFFER7};
+int
XRotateBuffers (dpy, rotate)
register Display *dpy;
int rotate;
@@ -79,36 +81,23 @@ char *XFetchBytes (dpy, nbytes)
return (XFetchBuffer (dpy, nbytes, 0));
}
-#if NeedFunctionPrototypes
+int
XStoreBuffer (
register Display *dpy,
_Xconst char *bytes,
int nbytes,
register int buffer)
-#else
-XStoreBuffer (dpy, bytes, nbytes, buffer)
- register Display *dpy;
- char *bytes;
- int nbytes;
- register int buffer;
-#endif
{
if ((buffer < 0) || (buffer > 7)) return 0;
return XChangeProperty(dpy, RootWindow(dpy, 0), n_to_atom[buffer],
XA_STRING, 8, PropModeReplace, (unsigned char *) bytes, nbytes);
}
-#if NeedFunctionPrototypes
+int
XStoreBytes (
register Display *dpy,
_Xconst char *bytes,
int nbytes)
-#else
-XStoreBytes (dpy, bytes, nbytes)
- register Display *dpy;
- char *bytes;
- int nbytes;
-#endif
{
return XStoreBuffer (dpy, bytes, nbytes, 0);
}
diff --git a/src/StColor.c b/src/StColor.c
index 332fdf49..10387873 100644
--- a/src/StColor.c
+++ b/src/StColor.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/StColor.c,v 1.3 2001/01/17 19:41:44 dawes Exp $ */
#include "Xlibint.h"
+int
XStoreColor(dpy, cmap, def)
register Display *dpy;
Colormap cmap;
diff --git a/src/StColors.c b/src/StColors.c
index cf970950..3ad030fa 100644
--- a/src/StColors.c
+++ b/src/StColors.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/StColors.c,v 1.3 2001/01/17 19:41:44 dawes Exp $ */
#include "Xlibint.h"
+int
XStoreColors(dpy, cmap, defs, ncolors)
register Display *dpy;
Colormap cmap;
diff --git a/src/StNColor.c b/src/StNColor.c
index 04d27d87..0ffbdc12 100644
--- a/src/StNColor.c
+++ b/src/StNColor.c
@@ -24,28 +24,20 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/StNColor.c,v 1.5 2003/04/13 19:22:18 dawes Exp $ */
#include <stdio.h>
#include "Xlibint.h"
#include "Xcmsint.h"
-extern void _XcmsRGB_to_XColor();
-#if NeedFunctionPrototypes
+int
XStoreNamedColor(
register Display *dpy,
Colormap cmap,
_Xconst char *name, /* STRING8 */
unsigned long pixel, /* CARD32 */
int flags) /* DoRed, DoGreen, DoBlue */
-#else
-XStoreNamedColor(dpy, cmap, name, pixel, flags)
-register Display *dpy;
-Colormap cmap;
-char *name; /* STRING8 */
-unsigned long pixel; /* CARD32 */
-int flags; /* DoRed, DoGreen, DoBlue */
-#endif
{
unsigned int nbytes;
register xStoreNamedColorReq *req;
diff --git a/src/StName.c b/src/StName.c
index 80fc2dcf..051bdda4 100644
--- a/src/StName.c
+++ b/src/StName.c
@@ -24,38 +24,27 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/StName.c,v 1.4 2001/12/14 19:54:07 dawes Exp $ */
#include <X11/Xlibint.h>
#include <X11/Xatom.h>
-#if NeedFunctionPrototypes
+int
XStoreName (
register Display *dpy,
Window w,
_Xconst char *name)
-#else
-XStoreName (dpy, w, name)
- register Display *dpy;
- Window w;
- char *name;
-#endif
{
return XChangeProperty(dpy, w, XA_WM_NAME, XA_STRING,
8, PropModeReplace, (unsigned char *)name,
name ? strlen(name) : 0);
}
-#if NeedFunctionPrototypes
+int
XSetIconName (
register Display *dpy,
Window w,
_Xconst char *icon_name)
-#else
-XSetIconName (dpy, w, icon_name)
- register Display *dpy;
- Window w;
- char *icon_name;
-#endif
{
return XChangeProperty(dpy, w, XA_WM_ICON_NAME, XA_STRING,
8, PropModeReplace, (unsigned char *)icon_name,
diff --git a/src/StrKeysym.c b/src/StrKeysym.c
index e378f93b..e2818716 100644
--- a/src/StrKeysym.c
+++ b/src/StrKeysym.c
@@ -24,26 +24,16 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/StrKeysym.c,v 3.7 2003/04/13 19:22:18 dawes Exp $ */
#include "Xlibint.h"
#include <X11/Xresource.h>
#include <X11/keysymdef.h>
-#ifdef X_NOT_STDC_ENV
-extern char *getenv();
-#endif
-
-extern XrmQuark _XrmInternalStringToQuark();
-
-#ifdef __STDC__
-#define Const const
-#else
-#define Const /**/
-#endif
-
-typedef unsigned long Signature;
+#include "Xresinternal.h"
#define NEEDKTABLE
#include "ks_tables.h"
+#include "Key.h"
#ifndef KEYSYMDB
#define KEYSYMDB "/usr/lib/X11/XKeysymDB"
@@ -54,7 +44,7 @@ static XrmDatabase keysymdb;
static XrmQuark Qkeysym[2];
XrmDatabase
-_XInitKeysymDB()
+_XInitKeysymDB(void)
{
if (!initialized)
{
@@ -74,21 +64,16 @@ _XInitKeysymDB()
return keysymdb;
}
-#if NeedFunctionPrototypes
-KeySym XStringToKeysym(s)
- _Xconst char *s;
-#else
-KeySym XStringToKeysym(s)
- char *s;
-#endif
+KeySym
+XStringToKeysym(_Xconst char *s)
{
register int i, n;
int h;
register Signature sig = 0;
- register Const char *p = s;
+ register const char *p = s;
register int c;
register int idx;
- Const unsigned char *entry;
+ const unsigned char *entry;
unsigned char sig1, sig2;
KeySym val;
@@ -124,7 +109,6 @@ KeySym XStringToKeysym(s)
XrmValue result;
XrmRepresentation from_type;
char c;
- KeySym val;
XrmQuark names[2];
names[0] = _XrmInternalStringToQuark(s, p - s - 1, sig, False);
@@ -137,12 +121,27 @@ KeySym XStringToKeysym(s)
{
c = ((char *)result.addr)[i];
if ('0' <= c && c <= '9') val = (val<<4)+c-'0';
- else if ('a' <= c && c <= 'z') val = (val<<4)+c-'a'+10;
- else if ('A' <= c && c <= 'Z') val = (val<<4)+c-'A'+10;
+ else if ('a' <= c && c <= 'f') val = (val<<4)+c-'a'+10;
+ else if ('A' <= c && c <= 'F') val = (val<<4)+c-'A'+10;
else return NoSymbol;
}
return val;
}
}
+
+ if (*s == 'U') {
+ val = 0;
+ for (p = &s[1]; *p; p++) {
+ c = *p;
+ if ('0' <= c && c <= '9') val = (val<<4)+c-'0';
+ else if ('a' <= c && c <= 'f') val = (val<<4)+c-'a'+10;
+ else if ('A' <= c && c <= 'F') val = (val<<4)+c-'A'+10;
+ else return NoSymbol;
+
+ }
+ if (val >= 0x01000000)
+ return NoSymbol;
+ return val | 0x01000000;
+ }
return (NoSymbol);
}
diff --git a/src/Sync.c b/src/Sync.c
index 98b5463b..ae423d09 100644
--- a/src/Sync.c
+++ b/src/Sync.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/Sync.c,v 1.3 2001/01/17 19:41:44 dawes Exp $ */
#define NEED_REPLIES
#define NEED_EVENTS
@@ -31,6 +32,7 @@ in this Software without prior written authorization from The Open Group.
/* Synchronize with errors and events, optionally discarding pending events */
+int
XSync (dpy, discard)
register Display *dpy;
Bool discard;
diff --git a/src/Synchro.c b/src/Synchro.c
index 9e9d50ad..8c84f504 100644
--- a/src/Synchro.c
+++ b/src/Synchro.c
@@ -24,27 +24,21 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/Synchro.c,v 1.3 2003/04/13 19:22:18 dawes Exp $ */
#include "Xlibint.h"
-int _XSyncFunction(dpy)
-register Display *dpy;
+static int _XSyncFunction(register Display *dpy)
{
XSync(dpy,0);
return 0;
}
-#if NeedFunctionPrototypes
-int (*XSynchronize(Display *dpy, int onoff))()
-#else
-int (*XSynchronize(dpy,onoff))()
- register Display *dpy;
- int onoff;
-#endif
+int (*XSynchronize(Display *dpy, int onoff))(Display *)
{
- int (*temp)();
- int (*func)() = NULL;
+ int (*temp)(Display *);
+ int (*func)(Display *) = NULL;
if (onoff)
func = _XSyncFunction;
@@ -61,26 +55,14 @@ int (*XSynchronize(dpy,onoff))()
return (temp);
}
-#if NeedFunctionPrototypes
int (*XSetAfterFunction(
Display *dpy,
int (*func)(
-#if NeedNestedPrototypes
Display*
-#endif
)
-))()
-#else
-int (*XSetAfterFunction(dpy,func))()
- register Display *dpy;
- int (*func)(
-#if NeedNestedPrototypes
- Display*
-#endif
- );
-#endif
+ ))(Display *)
{
- int (*temp)();
+ int (*temp)(Display *);
LockDisplay(dpy);
if (dpy->flags & XlibDisplayPrivSync) {
diff --git a/src/Text.c b/src/Text.c
index e8d3df45..23a57534 100644
--- a/src/Text.c
+++ b/src/Text.c
@@ -24,10 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/Text.c,v 1.4 2001/12/14 19:54:07 dawes Exp $ */
#include "Xlibint.h"
-#if NeedFunctionPrototypes
+int
XDrawString(
register Display *dpy,
Drawable d,
@@ -36,15 +37,6 @@ XDrawString(
int y,
_Xconst char *string,
int length)
-#else
-XDrawString(dpy, d, gc, x, y, string, length)
- register Display *dpy;
- Drawable d;
- GC gc;
- int x, y;
- char *string;
- int length;
-#endif
{
int Datalength = 0;
register xPolyText8Req *req;
diff --git a/src/Text16.c b/src/Text16.c
index f8714459..2eee708b 100644
--- a/src/Text16.c
+++ b/src/Text16.c
@@ -24,10 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/Text16.c,v 1.5 2001/12/14 19:54:07 dawes Exp $ */
#include "Xlibint.h"
-#if NeedFunctionPrototypes
+int
XDrawString16(
register Display *dpy,
Drawable d,
@@ -36,15 +37,6 @@ XDrawString16(
int y,
_Xconst XChar2b *string,
int length)
-#else
-XDrawString16(dpy, d, gc, x, y, string, length)
- register Display *dpy;
- Drawable d;
- GC gc;
- int x, y;
- XChar2b *string;
- int length;
-#endif
{
int Datalength = 0;
register xPolyText16Req *req;
@@ -99,7 +91,7 @@ XDrawString16(dpy, d, gc, x, y, string, length)
}
}
#else
- memcpy ((char *) (elt + 1), (char *)CharacterOffset, 254 * 2);
+ memcpy (((char *) elt) + 2, (char *)CharacterOffset, 254 * 2);
#endif
PartialNChars = PartialNChars - 254;
CharacterOffset += 254;
@@ -122,7 +114,7 @@ XDrawString16(dpy, d, gc, x, y, string, length)
}
}
#else
- memcpy((char *)(elt + 1), (char *)CharacterOffset, PartialNChars * 2);
+ memcpy(((char *)elt) + 2, (char *)CharacterOffset, PartialNChars * 2);
#endif
}
}
diff --git a/src/TextExt.c b/src/TextExt.c
index d7f4ff8a..1e6b1dce 100644
--- a/src/TextExt.c
+++ b/src/TextExt.c
@@ -26,6 +26,7 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
+/* $XFree86: xc/lib/X11/TextExt.c,v 1.4 2001/12/14 19:54:07 dawes Exp $ */
/*
* Copyright 1995 by FUJITSU LIMITED
* This is source code modified by FUJITSU LIMITED under the Joint
@@ -68,7 +69,7 @@ from The Open Group.
* first row of the font (i.e. byte1 == 0), we can do some optimizations beyond
* what is done in XTextExtents16.
*/
-#if NeedFunctionPrototypes
+int
XTextExtents (
XFontStruct *fs,
_Xconst char *string,
@@ -77,14 +78,6 @@ XTextExtents (
int *font_ascent, /* RETURN font information */
int *font_descent, /* RETURN font information */
register XCharStruct *overall) /* RETURN character information */
-#else
-XTextExtents (fs, string, nchars, dir, font_ascent, font_descent, overall)
- XFontStruct *fs;
- char *string;
- int nchars;
- int *dir, *font_ascent, *font_descent; /* RETURN font information */
- register XCharStruct *overall; /* RETURN character information */
-#endif
{
int i; /* iterator */
Bool singlerow = (fs->max_byte1 == 0); /* optimization */
@@ -150,17 +143,11 @@ XTextExtents (fs, string, nchars, dir, font_ascent, font_descent, overall)
* XTextWidth - compute the width of a string of eightbit bytes. This is a
* subset of XTextExtents.
*/
-#if NeedFunctionPrototypes
-int XTextWidth (
+int
+XTextWidth (
XFontStruct *fs,
_Xconst char *string,
int count)
-#else
-int XTextWidth (fs, string, count)
- XFontStruct *fs;
- char *string;
- int count;
-#endif
{
int i; /* iterator */
Bool singlerow = (fs->max_byte1 == 0); /* optimization */
@@ -202,17 +189,11 @@ int XTextWidth (fs, string, count)
/*
* _XTextHeight - compute the height of a string of eightbit bytes.
*/
-#if NeedFunctionPrototypes
-int _XTextHeight (
+int
+_XTextHeight (
XFontStruct *fs,
_Xconst char *string,
int count)
-#else
-int _XTextHeight (fs, string, count)
- XFontStruct *fs;
- char *string;
- int count;
-#endif
{
int i; /* iterator */
Bool singlerow = (fs->max_byte1 == 0); /* optimization */
diff --git a/src/TextExt16.c b/src/TextExt16.c
index 24f888ec..9b4899cb 100644
--- a/src/TextExt16.c
+++ b/src/TextExt16.c
@@ -26,6 +26,7 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
+/* $XFree86: xc/lib/X11/TextExt16.c,v 1.4 2001/12/14 19:54:07 dawes Exp $ */
/*
* Copyright 1995 by FUJITSU LIMITED
* This is source code modified by FUJITSU LIMITED under the Joint
@@ -42,7 +43,7 @@ from The Open Group.
* XTextExtents16 - compute the extents of string given as a sequence of
* XChar2bs.
*/
-#if NeedFunctionPrototypes
+int
XTextExtents16 (
XFontStruct *fs,
_Xconst XChar2b *string,
@@ -51,14 +52,6 @@ XTextExtents16 (
int *font_ascent, /* RETURN font information */
int *font_descent, /* RETURN font information */
register XCharStruct *overall) /* RETURN character information */
-#else
-XTextExtents16 (fs, string, nchars, dir, font_ascent, font_descent, overall)
- XFontStruct *fs;
- XChar2b *string;
- int nchars;
- int *dir, *font_ascent, *font_descent; /* RETURN font information */
- register XCharStruct *overall; /* RETURN character information */
-#endif
{
int i; /* iterator */
Bool singlerow = (fs->max_byte1 == 0); /* optimization */
@@ -125,17 +118,11 @@ XTextExtents16 (fs, string, nchars, dir, font_ascent, font_descent, overall)
* XTextWidth16 - compute the width of sequence of XChar2bs. This is a
* subset of XTextExtents16.
*/
-#if NeedFunctionPrototypes
-int XTextWidth16 (
+int
+XTextWidth16 (
XFontStruct *fs,
_Xconst XChar2b *string,
int count)
-#else
-int XTextWidth16 (fs, string, count)
- XFontStruct *fs;
- XChar2b *string;
- int count;
-#endif
{
int i; /* iterator */
Bool singlerow = (fs->max_byte1 == 0); /* optimization */
@@ -177,17 +164,11 @@ int XTextWidth16 (fs, string, count)
/*
* _XTextHeight16 - compute the height of sequence of XChar2bs.
*/
-#if NeedFunctionPrototypes
-int _XTextHeight16 (
+int
+_XTextHeight16 (
XFontStruct *fs,
_Xconst XChar2b *string,
int count)
-#else
-int _XTextHeight16 (fs, string, count)
- XFontStruct *fs;
- XChar2b *string;
- int count;
-#endif
{
int i; /* iterator */
Bool singlerow = (fs->max_byte1 == 0); /* optimization */
diff --git a/src/TextToStr.c b/src/TextToStr.c
index 2ac934c2..c775fa6e 100644
--- a/src/TextToStr.c
+++ b/src/TextToStr.c
@@ -25,6 +25,8 @@ in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/TextToStr.c,v 1.4 2001/01/17 19:41:45 dawes Exp $ */
+
#include <X11/Xlibint.h>
#include <X11/Xatom.h>
#include <X11/Xutil.h>
@@ -110,6 +112,7 @@ void XFreeStringList (list)
if (list) {
if (list[0]) Xfree (list[0]);
Xfree ((char *) list);
+ list = NULL;
}
}
diff --git a/src/UIThrStubs.c b/src/UIThrStubs.c
index 64be42a8..3da0549e 100644
--- a/src/UIThrStubs.c
+++ b/src/UIThrStubs.c
@@ -1,5 +1,5 @@
/*
- * $XFree86: xc/lib/XThrStub/UIThrStubs.c,v 3.4 2003/01/15 02:55:16 dawes Exp $
+ * $XFree86: xc/lib/XThrStub/UIThrStubs.c,v 3.3 2001/11/18 21:13:26 herrb Exp $
*
* Copyright (c) 1995 David E. Wexelblat. All rights reserved
*
diff --git a/src/UndefCurs.c b/src/UndefCurs.c
index 46236ea4..ced35187 100644
--- a/src/UndefCurs.c
+++ b/src/UndefCurs.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/UndefCurs.c,v 1.3 2001/01/17 19:41:45 dawes Exp $ */
#include "Xlibint.h"
+int
XUndefineCursor (dpy,w)
register Display *dpy;
Window w;
diff --git a/src/UngrabBut.c b/src/UngrabBut.c
index e0e28a3a..4f1e12d0 100644
--- a/src/UngrabBut.c
+++ b/src/UngrabBut.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/UngrabBut.c,v 1.3 2001/01/17 19:41:45 dawes Exp $ */
#include "Xlibint.h"
+int
XUngrabButton(dpy, button, modifiers, grab_window)
register Display *dpy;
unsigned int button; /* CARD8 */
diff --git a/src/UngrabKbd.c b/src/UngrabKbd.c
index 5a9d7562..b4720a49 100644
--- a/src/UngrabKbd.c
+++ b/src/UngrabKbd.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/UngrabKbd.c,v 1.3 2001/01/17 19:41:45 dawes Exp $ */
#include "Xlibint.h"
+int
XUngrabKeyboard (dpy, time)
register Display *dpy;
Time time;
diff --git a/src/UngrabKey.c b/src/UngrabKey.c
index bfd28c0f..4f001d2e 100644
--- a/src/UngrabKey.c
+++ b/src/UngrabKey.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/UngrabKey.c,v 1.3 2001/01/17 19:41:45 dawes Exp $ */
#include "Xlibint.h"
+int
XUngrabKey(dpy, key, modifiers, grab_window)
register Display *dpy;
int key;
diff --git a/src/UngrabPtr.c b/src/UngrabPtr.c
index 4cf09cf1..1d6a02ea 100644
--- a/src/UngrabPtr.c
+++ b/src/UngrabPtr.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/UngrabPtr.c,v 1.3 2001/01/17 19:41:45 dawes Exp $ */
#include "Xlibint.h"
+int
XUngrabPointer(dpy, time)
register Display *dpy;
Time time;
diff --git a/src/UngrabSvr.c b/src/UngrabSvr.c
index e5267e18..6ec8ccef 100644
--- a/src/UngrabSvr.c
+++ b/src/UngrabSvr.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/UngrabSvr.c,v 1.3 2001/01/17 19:41:45 dawes Exp $ */
#include "Xlibint.h"
+int
XUngrabServer (dpy)
register Display *dpy;
{
diff --git a/src/UninsCmap.c b/src/UninsCmap.c
index 6b06c670..cd9af166 100644
--- a/src/UninsCmap.c
+++ b/src/UninsCmap.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/UninsCmap.c,v 1.3 2001/01/17 19:41:45 dawes Exp $ */
#include "Xlibint.h"
+int
XUninstallColormap(dpy, cmap)
register Display *dpy;
Colormap cmap;
diff --git a/src/UnldFont.c b/src/UnldFont.c
index 66f31a96..aafd9041 100644
--- a/src/UnldFont.c
+++ b/src/UnldFont.c
@@ -1,4 +1,4 @@
- /* $Xorg: UnldFont.c,v 1.4 2001/02/09 02:03:37 xorgcvs Exp $
+/* $Xorg: UnldFont.c,v 1.4 2001/02/09 02:03:37 xorgcvs Exp $ */
/*
Copyright 1986, 1998 The Open Group
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/UnldFont.c,v 1.5 2001/12/14 19:54:07 dawes Exp $ */
#include "Xlibint.h"
+int
XUnloadFont(dpy, font)
register Display *dpy;
Font font;
diff --git a/src/UnmapSubs.c b/src/UnmapSubs.c
index bb7158ea..56e30b7e 100644
--- a/src/UnmapSubs.c
+++ b/src/UnmapSubs.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/UnmapSubs.c,v 1.3 2001/01/17 19:41:45 dawes Exp $ */
#include "Xlibint.h"
+int
XUnmapSubwindows(dpy, win)
register Display *dpy;
Window win;
diff --git a/src/UnmapWin.c b/src/UnmapWin.c
index d536ecb0..da0e895c 100644
--- a/src/UnmapWin.c
+++ b/src/UnmapWin.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/UnmapWin.c,v 1.3 2001/01/17 19:41:45 dawes Exp $ */
#include "Xlibint.h"
+int
XUnmapWindow (dpy, w)
register Display *dpy;
Window w;
diff --git a/src/WMGeom.c b/src/WMGeom.c
index 96b9b536..7eb945f7 100644
--- a/src/WMGeom.c
+++ b/src/WMGeom.c
@@ -24,12 +24,13 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/WMGeom.c,v 1.3 2003/04/13 19:22:18 dawes Exp $ */
#include "Xlibint.h"
#include "Xutil.h"
-static int _GeometryMaskToGravity();
-
+static int _GeometryMaskToGravity(
+ int mask);
/*
* This routine given a user supplied positional argument and a default
@@ -40,8 +41,8 @@ static int _GeometryMaskToGravity();
* be considered "negative".
*/
-#if NeedFunctionPrototypes
-int XWMGeometry (
+int
+XWMGeometry (
Display *dpy, /* user's display connection */
int screen, /* screen on which to do computation */
_Xconst char *user_geom, /* user provided geometry spec */
@@ -53,20 +54,6 @@ int XWMGeometry (
int *width_return, /* size of window */
int *height_return, /* size of window */
int *gravity_return) /* gravity of window */
-#else
-int XWMGeometry (dpy, screen, user_geom, def_geom, bwidth, hints,
- x_return, y_return, width_return, height_return,
- gravity_return)
- Display *dpy; /* user's display connection */
- int screen; /* screen on which to do computation */
- char *user_geom; /* user provided geometry spec */
- char *def_geom; /* default geometry spec for window */
- unsigned int bwidth; /* border width */
- XSizeHints *hints; /* usually WM_NORMAL_HINTS */
- int *x_return, *y_return; /* location of window */
- int *width_return, *height_return; /* size of window */
- int *gravity_return; /* gravity of window */
-#endif
{
int ux, uy; /* returned values from parse */
unsigned int uwidth, uheight; /* returned values from parse */
@@ -179,8 +166,8 @@ int XWMGeometry (dpy, screen, user_geom, def_geom, bwidth, hints,
}
-static int _GeometryMaskToGravity (mask)
- int mask;
+static int _GeometryMaskToGravity(
+ int mask)
{
switch (mask & (XNegative|YNegative)) {
case 0:
diff --git a/src/WMProps.c b/src/WMProps.c
index c1ed9a9d..6e4e474c 100644
--- a/src/WMProps.c
+++ b/src/WMProps.c
@@ -26,6 +26,7 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
+/* $XFree86: xc/lib/X11/WMProps.c,v 3.6 2001/12/14 19:54:07 dawes Exp $ */
/***********************************************************
Copyright 1988 by Wyse Technology, Inc., San Jose, Ca.,
@@ -55,10 +56,8 @@ SOFTWARE.
#include <X11/Xatom.h>
#include <X11/Xutil.h>
#include <X11/Xos.h>
+#include <X11/Xlocale.h>
-#ifdef X_NOT_STDC_ENV
-extern char *getenv();
-#endif
/*
* XSetWMProperties sets the following properties:
@@ -86,6 +85,7 @@ void XSetWMProperties (dpy, w, windowName, iconName, argv, argc, sizeHints,
XTextProperty textprop;
char hostName[256];
int len = _XGetHostname (hostName, sizeof hostName);
+ char *locale;
/* set names of window and icon */
if (windowName) XSetWMName (dpy, w, windowName);
@@ -121,6 +121,14 @@ void XSetWMProperties (dpy, w, windowName, iconName, argv, argc, sizeHints,
* systems will have to change this.
*/
char *cp = strrchr (argv[0], '/');
+#ifdef __UNIXOS2__
+ char *os2_cp = strrchr (argv[0],'\\');
+ char *dot_cp = strrchr (argv[0],'.');
+ if (os2_cp && (os2_cp > cp)) {
+ if(dot_cp && (dot_cp > os2_cp)) *dot_cp = '\0';
+ cp=os2_cp;
+ }
+#endif
tmp.res_name = (cp ? cp + 1 : argv[0]);
}
tmp.res_class = classHints->res_class;
@@ -128,5 +136,11 @@ void XSetWMProperties (dpy, w, windowName, iconName, argv, argc, sizeHints,
}
XSetClassHint (dpy, w, classHints);
}
+
+ locale = setlocale(LC_CTYPE, (char *)NULL);
+ if (locale)
+ XChangeProperty (dpy, w, XInternAtom(dpy, "WM_LOCALE_NAME", False),
+ XA_STRING, 8, PropModeReplace,
+ (unsigned char *)locale, strlen(locale));
}
diff --git a/src/WarpPtr.c b/src/WarpPtr.c
index e3dfc8da..e83a7e2a 100644
--- a/src/WarpPtr.c
+++ b/src/WarpPtr.c
@@ -24,9 +24,11 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/WarpPtr.c,v 1.3 2001/01/17 19:41:47 dawes Exp $ */
#include "Xlibint.h"
+int
XWarpPointer(dpy, src_win, dest_win, src_x, src_y, src_width, src_height,
dest_x, dest_y)
register Display *dpy;
diff --git a/src/WinEvent.c b/src/WinEvent.c
index 726c7729..d69a6671 100644
--- a/src/WinEvent.c
+++ b/src/WinEvent.c
@@ -24,17 +24,12 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/WinEvent.c,v 3.5 2001/10/28 03:32:32 tsi Exp $ */
#define NEED_EVENTS
#include "Xlibint.h"
-#ifdef __STDC__
-#define Const const
-#else
-#define Const /**/
-#endif
-
-extern long Const _Xevent_to_mask[];
+extern long const _Xevent_to_mask[];
#define AllPointers (PointerMotionMask|PointerMotionHintMask|ButtonMotionMask)
#define AllButtons (Button1MotionMask|Button2MotionMask|Button3MotionMask|\
Button4MotionMask|Button5MotionMask)
@@ -47,6 +42,7 @@ extern long Const _Xevent_to_mask[];
* matches.
*/
+int
XWindowEvent (dpy, w, mask, event)
register Display *dpy;
Window w; /* Selected window. */
@@ -54,7 +50,7 @@ XWindowEvent (dpy, w, mask, event)
register XEvent *event; /* XEvent to be filled in. */
{
register _XQEvent *prev, *qelt;
- unsigned long qe_serial;
+ unsigned long qe_serial = 0;
LockDisplay(dpy);
prev = NULL;
diff --git a/src/Window.c b/src/Window.c
index 5d1f0afe..05628369 100644
--- a/src/Window.c
+++ b/src/Window.c
@@ -24,14 +24,15 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/Window.c,v 1.4 2001/12/14 19:54:08 dawes Exp $ */
#include "Xlibint.h"
-void _XProcessWindowAttributes (dpy, req, valuemask, attributes)
- register Display *dpy;
- xChangeWindowAttributesReq *req;
- register unsigned long valuemask;
- register XSetWindowAttributes *attributes;
+void _XProcessWindowAttributes (
+ register Display *dpy,
+ xChangeWindowAttributesReq *req,
+ register unsigned long valuemask,
+ register XSetWindowAttributes *attributes)
{
unsigned long values[32];
register unsigned long *value = values;
@@ -126,7 +127,7 @@ Window XCreateWindow(dpy, parent, x, y, width, height,
req->visual = visual->visualid;
wid = req->wid = XAllocID(dpy);
valuemask &= AllMaskBits;
- if ((req->mask = valuemask))
+ if ((req->mask = valuemask))
_XProcessWindowAttributes (dpy, (xChangeWindowAttributesReq *)req,
valuemask, attributes);
UnlockDisplay(dpy);
diff --git a/src/WrBitF.c b/src/WrBitF.c
index e8fad11d..f57bd930 100644
--- a/src/WrBitF.c
+++ b/src/WrBitF.c
@@ -26,6 +26,7 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
+/* $XFree86: xc/lib/X11/WrBitF.c,v 3.6 2003/04/13 19:22:18 dawes Exp $ */
#include "Xlibint.h"
#include <X11/Xos.h>
@@ -34,9 +35,9 @@ from The Open Group.
#define ERR_RETURN 0
-static char *Format_Image(image, resultsize)
-XImage *image;
-int *resultsize;
+static char *Format_Image(
+ XImage *image,
+ int *resultsize)
{
register int x, c, b;
register char *ptr;
@@ -81,8 +82,8 @@ int *resultsize;
#define BYTES_PER_OUTPUT_LINE 12
-#if NeedFunctionPrototypes
-int XWriteBitmapFile(
+int
+XWriteBitmapFile(
Display *display,
_Xconst char *filename,
Pixmap bitmap,
@@ -90,14 +91,6 @@ int XWriteBitmapFile(
unsigned int height,
int x_hot,
int y_hot)
-#else
-int XWriteBitmapFile(display, filename, bitmap, width, height, x_hot, y_hot)
- Display *display;
- char *filename;
- Pixmap bitmap;
- unsigned int width, height;
- int x_hot, y_hot;
-#endif
{
char *data, *ptr;
int size, byte;
@@ -111,6 +104,9 @@ int XWriteBitmapFile(display, filename, bitmap, width, height, x_hot, y_hot)
else
name++;
+#ifdef __UNIXOS2__
+ filename = (char*)__XOS2RedirRoot(filename);
+#endif
if (!(stream = fopen(filename, "w")))
return(BitmapOpenFailed);
diff --git a/src/XErrorDB b/src/XErrorDB
index 5996026c..c1d6bf3d 100644
--- a/src/XErrorDB
+++ b/src/XErrorDB
@@ -1,7 +1,11 @@
! $Xorg: XErrorDB,v 1.3 2000/08/17 19:44:59 cpqbld Exp $
! Copyright 1993, 1995, 1998 The Open Group
-! All Rights Reserved.
+! Permission to use, copy, modify, distribute, and sell this software and its
+! documentation for any purpose is hereby granted without fee, provided that
+! the above copyright notice appear in all copies and that both that
+! copyright notice and this permission notice appear in supporting
+! documentation.
!
! The above copyright notice and this permission notice shall be
! included in all copies or substantial portions of the Software.
@@ -19,6 +23,8 @@
! other dealings in this Software without prior written authorization
! from The Open Group.
!
+! $XFree86: xc/lib/X11/XErrorDB,v 3.40 2002/12/21 17:51:42 dawes Exp $
+!
! these are used in XGetErrorMessage.
XlibMessage.XError: X Error of failed request
XlibMessage.MajorCode: Major opcode of failed request: %d
@@ -575,12 +581,20 @@ XRequest.XFree86-VidModeExtension.9: XF86VidModeValidateModeLine
XRequest.XFree86-VidModeExtension.10: XF86VidModeSwitchToMode
XRequest.XFree86-VidModeExtension.11: XF86VidModeGetViewPort
XRequest.XFree86-VidModeExtension.12: XF86VidModeSetViewPort
+XRequest.XFree86-VidModeExtension.13: XF86VidModeGetDotClocks
+XRequest.XFree86-VidModeExtension.14: XF86VidModeSetClientVersion
+XRequest.XFree86-VidModeExtension.15: XF86VidModeSetGamma
+XRequest.XFree86-VidModeExtension.16: XF86VidModeGetGamma
+XRequest.XFree86-VidModeExtension.17: XF86VidModeGetGammaRamp
+XRequest.XFree86-VidModeExtension.18: XF86VidModeSetGammaRamp
+XRequest.XFree86-VidModeExtension.19: XF86VidModeGetGammaRampSize
+XRequest.XFree86-VidModeExtension.20: XF86VidModeGetPermissions
XProtoError.XFree86-VidModeExtension.0: XF86VidModeBadClock
XProtoError.XFree86-VidModeExtension.1: XF86VidModeBadHTimings
XProtoError.XFree86-VidModeExtension.2: XF86VidModeBadVTimings
XProtoError.XFree86-VidModeExtension.3: XF86VidModeModeUnsuitable
-XProtoError.XFree86-VidModeExtension.4: XF86VidModeClientNotLocal
-XProtoError.XFree86-VidModeExtension.5: XF86VidModeExtensionDisabled
+XProtoError.XFree86-VidModeExtension.4: XF86VidModeExtensionDisabled
+XProtoError.XFree86-VidModeExtension.5: XF86VidModeClientNotLocal
XProtoError.XFree86-VidModeExtension.6: XF86VidModeZoomLocked
! XFree86-Misc -- not an X Consortium standard
XRequest.XFree86-Misc.0: XF86MiscQueryVersion
@@ -590,6 +604,9 @@ XRequest.XFree86-Misc.3: XF86MiscGetMouseSettings
XRequest.XFree86-Misc.4: XF86MiscGetKbdSettings
XRequest.XFree86-Misc.5: XF86MiscSetMouseSettings
XRequest.XFree86-Misc.6: XF86MiscSetKbdSettings
+XRequest.XFree86-Misc.7: XF86MiscSetGrabKeysState
+XRequest.XFree86-Misc.8: XF86MiscSetClientVersion
+XRequest.XFree86-Misc.9: XF86MiscGetFilePaths
XProtoError.XFree86-Misc.0: XF86MiscBadMouseProtocol
XProtoError.XFree86-Misc.1: XF86MiscBadMouseBaudRate
XProtoError.XFree86-Misc.2: XF86MiscBadMouseFlags
@@ -597,8 +614,9 @@ XProtoError.XFree86-Misc.3: XF86MiscBadMouseCombo
XProtoError.XFree86-Misc.4: XF86MiscBadKbdType
XProtoError.XFree86-Misc.5: XF86MiscModInDevDisabled
XProtoError.XFree86-Misc.6: XF86MiscModInDevClientNotLocal
+XProtoError.XFree86-Misc.7: XF86MiscNoModule
! XFree86-DGA -- not an X Consortium standard
-XRequest.XFree86-DGA.0: XF86DGAQueryVersion
+XRequest.XFree86-DGA.0: XDGAQueryVersion
XRequest.XFree86-DGA.1: XF86DGAGetVideoLL
XRequest.XFree86-DGA.2: XF86DGADirectVideo
XRequest.XFree86-DGA.3: XF86DGAGetViewPortSize
@@ -608,10 +626,28 @@ XRequest.XFree86-DGA.6: XF86DGASetVidPage
XRequest.XFree86-DGA.7: XF86DGAInstallColormap
XRequest.XFree86-DGA.8: XF86DGAQueryDirectVideo
XRequest.XFree86-DGA.9: XF86DGAViewPortChanged
+XRequest.XFree86-DGA.10: XF86DGAObsolete1
+XRequest.XFree86-DGA.11: XF86DGAObsolete2
+XRequest.XFree86-DGA.12: XDGAQueryModes
+XRequest.XFree86-DGA.13: XDGASetMode
+XRequest.XFree86-DGA.14: XDGASetViewport
+XRequest.XFree86-DGA.15: XDGAInstallColormap
+XRequest.XFree86-DGA.16: XDGASelectInput
+XRequest.XFree86-DGA.17: XDGAFillRectangle
+XRequest.XFree86-DGA.18: XDGACopyArea
+XRequest.XFree86-DGA.19: XDGACopyTransparentArea
+XRequest.XFree86-DGA.20: XDGAGetViewportStatus
+XRequest.XFree86-DGA.21: XDGASync
+XRequest.XFree86-DGA.22: XDGAOpenFramebuffer
+XRequest.XFree86-DGA.23: XDGACloseFramebuffer
+XRequest.XFree86-DGA.24: XDGASetClientVersion
+XRequest.XFree86-DGA.25: XDGAChangePixmapMode
+XRequest.XFree86-DGA.26: XDGACreateColormap
XProtoError.XFree86-DGA.0: XF86DGAClientNotLocal
XProtoError.XFree86-DGA.1: XF86DGANoDirectVideoMode
XProtoError.XFree86-DGA.2: XF86DGAScreenNotActive
XProtoError.XFree86-DGA.3: XF86DGADirectNotActivated
+XProtoError.XFree86-DGA.4: XF86DGAOperationNotSupported
! DOUBLE-BUFFER (DBE), an X Consortium standard
XRequest.DOUBLE-BUFFER.0: DBEGetVersion
XRequest.DOUBLE-BUFFER.1: DBEAllocateBackBufferName
@@ -735,3 +771,115 @@ XRequest.XINERAMA.0: XINERAMAQueryVersion
XRequest.XINERAMA.1: XINERAMAGetState
XRequest.XINERAMA.2: XINERAMAGetScreenCount
XRequest.XINERAMA.3: XINERAMAGetScreenSize
+XRequest.XINERAMA.4: XINERAMAIsActive
+XRequest.XINERAMA.5: XINERAMAQueryScreens
+! XF86Rush extension, not a standard spec
+Xrequest.XFree86-Rush.0: XF86RushQueryVersion
+Xrequest.XFree86-Rush.1: XF86RushLockPixmap
+Xrequest.XFree86-Rush.2: XF86RushUnlockPixmap
+Xrequest.XFree86-Rush.3: XF86RushUnlockAllPixmaps
+Xrequest.XFree86-Rush.4: XF86RushGetCopyMode
+Xrequest.XFree86-Rush.5: XF86RushSetCopyMode
+Xrequest.XFree86-Rush.6: XF86RushGetPixelStride
+Xrequest.XFree86-Rush.7: XF86RushSetPixelStride
+Xrequest.XFree86-Rush.8: XF86RushOverlayPixmap
+Xrequest.XFree86-Rush.9: XF86RushStatusRegOffset
+Xrequest.XFree86-Rush.10: XF86RushAT3DEnableRegs
+Xrequest.XFree86-Rush.11: XF86RushAT3DDisableRegs
+! XVideo
+Xrequest.XVideo.0: XvQueryExtension
+Xrequest.XVideo.1: XvQueryAdaptors
+Xrequest.XVideo.2: XvQueryEncodings
+Xrequest.XVideo.3: XvGrabPort
+Xrequest.XVideo.4: XvUngrabPort
+Xrequest.XVideo.5: XvPutVideo
+Xrequest.XVideo.6: XvPutStill
+Xrequest.XVideo.7: XvGetVideo
+Xrequest.XVideo.8: XvGetStill
+Xrequest.XVideo.9: XvStopVideo
+Xrequest.XVideo.10: XvSelectVideoNotify
+Xrequest.XVideo.11: XvSelectPortNotify
+Xrequest.XVideo.12: XvQueryBestSize
+Xrequest.XVideo.13: XvSetPortAttribute
+Xrequest.XVideo.14: XvGetPortAttribute
+Xrequest.XVideo.15: XvQueryPortAttributes
+Xrequest.XVideo.16: XvListImageFormats
+Xrequest.XVideo.17: XvQueryImageAttributes
+Xrequest.XVideo.18: XvPutImage
+Xrequest.XVideo.19: XvShmPutImage
+XProtoError.XVideo.0: XvBadPort
+XProtoError.XVideo.1: XvBadEncoding
+XProtoError.XVideo.2: XvBadControl
+! XFree86-Bigfont
+Xrequest.XFree86-Bigfont.0: XF86BigfontQueryVersion
+Xrequest.XFree86-Bigfont.1: XF86BigfontQueryFont
+! Adobe-DPS-Extension, not a standard
+XRequest.Adobe-DPS-Extension.1: PSInit
+XRequest.Adobe-DPS-Extension.2: PSCreateContext
+XRequest.Adobe-DPS-Extension.3: PSCreateSpace
+XRequest.Adobe-DPS-Extension.4: PSGiveInput
+XRequest.Adobe-DPS-Extension.5: PSGetStatus
+XRequest.Adobe-DPS-Extension.6: PSDestroySpace
+XRequest.Adobe-DPS-Extension.7: PSReset
+XRequest.Adobe-DPS-Extension.8: PSNotifyContext
+XRequest.Adobe-DPS-Extension.9: PSCreateContextFromID
+XRequest.Adobe-DPS-Extension.10: PSXIDFromContext
+XRequest.Adobe-DPS-Extension.11: PSContextFromXID
+XRequest.Adobe-DPS-Extension.12: PSSetStatusMask
+XRequest.Adobe-DPS-Extension.13: PSCreateSecureContext
+XRequest.Adobe-DPS-Extension.14: PSNotifyWhenReady
+XProtoError.Adobe-DPS-Extension.0: PSErrorBadContext (invalid Context parameter)
+XlibMessage.Adobe-DPS-Extension.0: Context id in failed request: 0x%lx
+XProtoError.Adobe-DPS-Extension.1: PSErrorBadSpace (invalid Space parameter)
+XlibMessage.Adobe-DPS-Extension.1: Space id in failed request: 0x%lx
+XProtoError.Adobe-DPS-Extension.2: PSErrorAbort (interpreter aborted)
+XlibMessage.Adobe-DPS-Extension.2: Value in failed request: 0x%lx
+! RANDR
+XRequest.RANDR.0: RRQueryVersion
+XRequest.RANDR.1: RROldGetScreenInfo
+XRequest.RANDR.2: RRSetScreenConfig
+XRequest.RANDR.3: RROldScreenChangeSelectInput
+XRequest.RANDR.4: RRSelectInput
+XRequest.RANDR.5: RRGetScreenInfo
+! RENDER
+XRequest.RENDER.0: RenderQueryVersion
+XRequest.RENDER.1: RenderQueryPictFormats
+XRequest.RENDER.2: RenderQueryPictIndexValues
+XRequest.RENDER.3: RenderQueryDithers
+XRequest.RENDER.4: RenderCreatePicture
+XRequest.RENDER.5: RenderChangePicture
+XRequest.RENDER.6: RenderSetPictureClipRectangles
+XRequest.RENDER.7: RenderFreePicture
+XRequest.RENDER.8: RenderComposite
+XRequest.RENDER.9: RenderScale
+XRequest.RENDER.10: RenderTrapezoids
+XRequest.RENDER.11: RenderTriangles
+XRequest.RENDER.12: RenderTriStrip
+XRequest.RENDER.13: RenderTriFan
+XRequest.RENDER.14: RenderColorTrapezoids
+XRequest.RENDER.15: RenderColorTriangles
+XRequest.RENDER.16: RenderTransform
+XRequest.RENDER.17: RenderCreateGlyphSet
+XRequest.RENDER.18: RenderReferenceGlyphSet
+XRequest.RENDER.19: RenderFreeGlyphSet
+XRequest.RENDER.20: RenderAddGlyphs
+XRequest.RENDER.21: RenderAddGlyphsFromPicture
+XRequest.RENDER.22: RenderFreeGlyphs
+XRequest.RENDER.23: RenderCompositeGlyphs8
+XRequest.RENDER.24: RenderCompositeGlyphs16
+XRequest.RENDER.25: RenderCompositeGlyphs32
+XRequest.RENDER.26: RenderFillRectangles
+XRequest.RENDER.27: RenderCreateCursor
+XRequest.RENDER.28: RenderSetPictureTransform
+XRequest.RENDER.29: RenderQueryFilters
+XRequest.RENDER.30: RenderSetPictureFilter
+XProtoError.RENDER.0: RenderBadFormat (invalid PictFormat parameter)
+XlibMessage.RENDER.0: PictFormat id in failed request: 0x%lx
+XProtoError.RENDER.1: RenderBadPicture (invalid Picture parameter)
+XlibMessage.RENDER.1: Picture id in failed request: 0x%lx
+XProtoError.RENDER.2: RenderBadPictOp (invalid PictOp parameter)
+XlibMessage.RENDER.2: PictOp in failed request: 0x%lx
+XProtoError.RENDER.3: RenderBadGlyphSet (invalid GlyphSet parameter)
+XlibMessage.RENDER.3: GlyphSet id in failed request: 0x%lx
+XProtoError.RENDER.4: RenderBadGlyph (invalid Glyph parameter)
+XlibMessage.RENDER.4: Glyph in failed request: 0x%lx
diff --git a/src/XKeysymDB b/src/XKeysymDB
index 70575cec..f1469505 100644
--- a/src/XKeysymDB
+++ b/src/XKeysymDB
@@ -10,6 +10,8 @@
! written prior permission. M.I.T. makes no representations about the
! suitability of this software for any purpose. It is provided "as is"
! without express or implied warranty.
+!
+! $XFree86: xc/lib/X11/XKeysymDB,v 3.16 2003/02/11 02:51:10 dawes Exp $
hpmute_acute :100000A8
hpmute_grave :100000A9
@@ -195,7 +197,153 @@ XeroxPointerButton3 :10070003
XeroxPointerButton4 :10070004
XeroxPointerButton5 :10070005
+! The definitions here should match <X11/XF86keysym.h>
XF86ModeLock :1008FF01
+XF86Standby :1008FF10
+XF86AudioLowerVolume :1008FF11
+XF86AudioMute :1008FF12
+XF86AudioRaiseVolume :1008FF13
+XF86AudioPlay :1008FF14
+XF86AudioStop :1008FF15
+XF86AudioPrev :1008FF16
+XF86AudioNext :1008FF17
+XF86HomePage :1008FF18
+XF86Mail :1008FF19
+XF86Start :1008FF1A
+XF86Search :1008FF1B
+XF86AudioRecord :1008FF1C
+XF86Calculator :1008FF1D
+XF86Memo :1008FF1E
+XF86ToDoList :1008FF1F
+XF86Calendar :1008FF20
+XF86PowerDown :1008FF21
+XF86ContrastAdjust :1008FF22
+XF86RockerUp :1008FF23
+XF86RockerDown :1008FF24
+XF86RockerEnter :1008FF25
+XF86Back :1008FF26
+XF86Forward :1008FF27
+XF86Stop :1008FF28
+XF86Refresh :1008FF29
+XF86PowerOff :1008FF2A
+XF86WakeUp :1008FF2B
+XF86Eject :1008FF2C
+XF86ScreenSaver :1008FF2D
+XF86WWW :1008FF2E
+XF86Sleep :1008FF2F
+XF86Favorites :1008FF30
+XF86AudioPause :1008FF31
+XF86AudioMedia :1008FF32
+XF86MyComputer :1008FF33
+XF86VendorHome :1008FF34
+XF86LightBulb :1008FF35
+XF86Shop :1008FF36
+XF86History :1008FF37
+XF86OpenURL :1008FF38
+XF86AddFavorite :1008FF39
+XF86HotLinks :1008FF3A
+XF86BrightnessAdjust :1008FF3B
+XF86Finance :1008FF3C
+XF86Community :1008FF3D
+XF86AudioRewind :1008FF3E
+XF86BackForward :1008FF3F
+XF86Launch0 :1008FF40
+XF86Launch1 :1008FF41
+XF86Launch2 :1008FF42
+XF86Launch3 :1008FF43
+XF86Launch4 :1008FF44
+XF86Launch5 :1008FF45
+XF86Launch6 :1008FF46
+XF86Launch7 :1008FF47
+XF86Launch8 :1008FF48
+XF86Launch9 :1008FF49
+XF86LaunchA :1008FF4A
+XF86LaunchB :1008FF4B
+XF86LaunchC :1008FF4C
+XF86LaunchD :1008FF4D
+XF86LaunchE :1008FF4E
+XF86LaunchF :1008FF4F
+XF86ApplicationLeft :1008FF50
+XF86ApplicationRight :1008FF51
+XF86Book :1008FF52
+XF86CD :1008FF53
+XF86Calculater :1008FF54
+XF86Clear :1008FF55
+XF86Close :1008FF56
+XF86Copy :1008FF57
+XF86Cut :1008FF58
+XF86Display :1008FF59
+XF86DOS :1008FF5A
+XF86Documents :1008FF5B
+XF86Excel :1008FF5C
+XF86Explorer :1008FF5D
+XF86Game :1008FF5E
+XF86Go :1008FF5F
+XF86iTouch :1008FF60
+XF86LogOff :1008FF61
+XF86Market :1008FF62
+XF86Meeting :1008FF63
+XF86MenuKB :1008FF65
+XF86MenuPB :1008FF66
+XF86MySites :1008FF67
+XF86New :1008FF68
+XF86News :1008FF69
+XF86OfficeHome :1008FF6A
+XF86Open :1008FF6B
+XF86Option :1008FF6C
+XF86Paste :1008FF6D
+XF86Phone :1008FF6E
+XF86Q :1008FF70
+XF86Reply :1008FF72
+XF86Reload :1008FF73
+XF86RotateWindows :1008FF74
+XF86RotationPB :1008FF75
+XF86RotationKB :1008FF76
+XF86Save :1008FF77
+XF86ScrollUp :1008FF78
+XF86ScrollDown :1008FF79
+XF86ScrollClick :1008FF7A
+XF86Send :1008FF7B
+XF86Spell :1008FF7C
+XF86SplitScreen :1008FF7D
+XF86Support :1008FF7E
+XF86TaskPane :1008FF7F
+XF86Terminal :1008FF80
+XF86Tools :1008FF81
+XF86Travel :1008FF82
+XF86UserPB :1008FF84
+XF86User1KB :1008FF85
+XF86User2KB :1008FF86
+XF86Video :1008FF87
+XF86WheelButton :1008FF88
+XF86Word :1008FF89
+XF86Xfer :1008FF8A
+XF86ZoomIn :1008FF8B
+XF86ZoomOut :1008FF8C
+XF86Away :1008FF8D
+XF86Messenger :1008FF8E
+XF86WebCam :1008FF8F
+XF86MailForward :1008FF90
+XF86Pictures :1008FF91
+XF86Music :1008FF92
+
+! XFree86 special action keys
+XF86_Switch_VT_1 :1008FE01
+XF86_Switch_VT_2 :1008FE02
+XF86_Switch_VT_3 :1008FE03
+XF86_Switch_VT_4 :1008FE04
+XF86_Switch_VT_5 :1008FE05
+XF86_Switch_VT_6 :1008FE06
+XF86_Switch_VT_7 :1008FE07
+XF86_Switch_VT_8 :1008FE08
+XF86_Switch_VT_9 :1008FE09
+XF86_Switch_VT_10 :1008FE0A
+XF86_Switch_VT_11 :1008FE0B
+XF86_Switch_VT_12 :1008FE0C
+XF86_Ungrab :1008FE20
+XF86_ClearGrab :1008FE21
+XF86_Next_VMode :1008FE22
+XF86_Prev_VMode :1008FE23
usldead_acute :100000A8
usldead_grave :100000A9
diff --git a/src/Xintatom.h b/src/Xintatom.h
index 910c0fa2..f1e13568 100644
--- a/src/Xintatom.h
+++ b/src/Xintatom.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/Xintatom.h,v 1.1 2001/08/18 02:41:28 dawes Exp $ */
+/* $XFree86$ */
#ifndef _XINTATOM_H_
#define _XINTATOM_H_ 1
diff --git a/src/Xintconn.h b/src/Xintconn.h
index 3010da4f..edea9830 100644
--- a/src/Xintconn.h
+++ b/src/Xintconn.h
@@ -9,6 +9,15 @@ _XFUNCPROTOBEGIN
/* ConnDis.c */
+int _XConnectDisplay (
+ char *display_name,
+ char **fullnamep, /* RETURN */
+ int *dpynump, /* RETURN */
+ int *screenp, /* RETURN */
+ char **auth_namep, /* RETURN */
+ int *auth_namelenp, /* RETURN */
+ char **auth_datap, /* RETURN */
+ int *auth_datalenp); /* RETURN */
extern int _XDisconnectDisplay(XtransConnInfo trans_conn);
extern Bool _XSendClientPrefix(Display *dpy, xConnClientPrefix *client,
char *auth_proto, char *auth_string,
diff --git a/src/XlibInt.c b/src/XlibInt.c
index a14cb333..172fc9e5 100644
--- a/src/XlibInt.c
+++ b/src/XlibInt.c
@@ -1,7 +1,7 @@
-/* $Xorg: XlibInt.c,v 1.10 2001/02/20 02:13:26 coskrey Exp $ */
+/* $Xorg: XlibInt.c,v 1.8 2001/02/09 02:03:38 xorgcvs Exp $ */
/*
-Copyright 1985, 1986, 1987, 1998, 2001 The Open Group
+Copyright 1985, 1986, 1987, 1998 The Open Group
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
@@ -26,6 +26,7 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
+/* $XFree86: xc/lib/X11/XlibInt.c,v 3.38 2003/10/30 21:55:05 alanh Exp $ */
/*
* XlibInt.c - Internal support routines for the C subroutine
@@ -33,13 +34,11 @@ from The Open Group.
*/
#define NEED_EVENTS
#define NEED_REPLIES
-
-#define GENERIC_LENGTH_LIMIT (1 << 29)
#include "Xlibint.h"
#include <X11/Xpoll.h>
#include <X11/Xtrans.h>
-#include "xcmiscstr.h"
+#include <X11/extensions/xcmiscstr.h>
#include <stdio.h>
#ifdef XTHREADS
@@ -47,12 +46,24 @@ from The Open Group.
/* these pointers get initialized by XInitThreads */
LockInfoPtr _Xglobal_lock = NULL;
-void (*_XCreateMutex_fn)() = NULL;
-struct _XCVList *(*_XCreateCVL_fn)() = NULL;
-void (*_XFreeMutex_fn)() = NULL;
-void (*_XLockMutex_fn)() = NULL;
-void (*_XUnlockMutex_fn)() = NULL;
-xthread_t (*_Xthread_self_fn)() = NULL;
+void (*_XCreateMutex_fn)(LockInfoPtr) = NULL;
+/* struct _XCVList *(*_XCreateCVL_fn)() = NULL; */
+void (*_XFreeMutex_fn)(LockInfoPtr) = NULL;
+void (*_XLockMutex_fn)(
+ LockInfoPtr /* lock */
+#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
+ , char * /* file */
+ , int /* line */
+#endif
+ ) = NULL;
+void (*_XUnlockMutex_fn)(
+ LockInfoPtr /* lock */
+#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
+ , char * /* file */
+ , int /* line */
+#endif
+ ) = NULL;
+xthread_t (*_Xthread_self_fn)(void) = NULL;
#define XThread_Self() ((*_Xthread_self_fn)())
@@ -86,6 +97,9 @@ xthread_t (*_Xthread_self_fn)() = NULL;
#ifdef WIN32
#define ETEST() (WSAGetLastError() == WSAEWOULDBLOCK)
#else
+#ifdef __CYGWIN__ /* Cygwin uses ENOBUFS to signal socket is full */
+#define ETEST() (errno == EAGAIN || errno == EWOULDBLOCK || errno == ENOBUFS)
+#else
#if defined(EAGAIN) && defined(EWOULDBLOCK)
#define ETEST() (errno == EAGAIN || errno == EWOULDBLOCK)
#else
@@ -93,16 +107,27 @@ xthread_t (*_Xthread_self_fn)() = NULL;
#define ETEST() (errno == EAGAIN)
#else
#define ETEST() (errno == EWOULDBLOCK)
-#endif
-#endif
-#endif
+#endif /* EAGAIN */
+#endif /* EAGAIN && EWOULDBLOCK */
+#endif /* __CYGWIN__ */
+#endif /* WIN32 */
+
#ifdef WIN32
#define ECHECK(err) (WSAGetLastError() == err)
#define ESET(val) WSASetLastError(val)
#else
+#ifdef __UNIXOS2__
+#define ECHECK(err) (errno == err)
+#define ESET(val)
+#else
+#ifdef ISC
+#define ECHECK(err) ((errno == err) || ETEST())
+#else
#define ECHECK(err) (errno == err)
+#endif
#define ESET(val) errno = val
#endif
+#endif
#if defined(LOCALCONN) || defined(LACHMAN)
#ifdef EMSGSIZE
@@ -116,6 +141,12 @@ xthread_t (*_Xthread_self_fn)() = NULL;
#endif
#endif
+#ifdef __UNIXOS2__
+#define select(n,r,w,x,t) os2ClientSelect(n,r,w,x,t)
+#include <limits.h>
+#define MAX_PATH _POSIX_PATH_MAX
+#endif
+
#ifdef MUSTCOPY
#define STARTITERATE(tpvar,type,start,endcond) \
@@ -144,8 +175,17 @@ typedef union {
char buf[BUFSIZE];
} _XAlignedBuffer;
-static char *_XAsyncReply();
-static void _XProcessInternalConnection();
+static char *_XAsyncReply(
+ Display *dpy,
+ register xReply *rep,
+ char *buf,
+ register int *lenp,
+ Bool discard);
+
+static void _XProcessInternalConnection(
+ Display *dpy,
+ struct _XConnectionInfo *conn_info);
+
#define SEQLIMIT (65535 - (BUFSIZE / SIZEOF(xReq)) - 10)
/*
@@ -166,10 +206,6 @@ static void _XProcessInternalConnection();
* the object they have created.
*/
-static int padlength[4] = {0, 3, 2, 1};
- /* lookup table for adding padding bytes to data that is read from
- or written to the X socket. */
-
static xReq _dummy_request = {
0, 0, 0
};
@@ -181,15 +217,13 @@ static xReq _dummy_request = {
* until the connection is writable.
*/
static void
-_XWaitForWritable(dpy
+_XWaitForWritable(
+ Display *dpy
#ifdef XTHREADS
- , cv
-#endif
- )
- Display *dpy;
-#ifdef XTHREADS
- xcondition_t cv; /* our reading condition variable */
+ ,
+ xcondition_t cv /* our reading condition variable */
#endif
+ )
{
#ifdef USE_POLL
struct pollfd filedes;
@@ -263,7 +297,7 @@ _XWaitForWritable(dpy
{
_XAlignedBuffer buf;
BytesReadable_t pend;
- register BytesReadable_t len;
+ register int len;
register xReply *rep;
/* find out how much data can be read */
@@ -290,11 +324,12 @@ _XWaitForWritable(dpy
STARTITERATE(rep,xReply,buf.buf,len > 0) {
if (rep->generic.type == X_Reply) {
- pend = len;
+ int tmp = len;
RESETITERPTR(rep,xReply,
_XAsyncReply (dpy, rep,
- ITERPTR(rep), &pend, True));
- len = pend;
+ ITERPTR(rep), &tmp, True));
+ len = tmp;
+ pend = len;
} else {
if (rep->generic.type == X_Error)
_XError (dpy, (xError *)rep);
@@ -329,8 +364,8 @@ _XWaitForWritable(dpy
#define POLLFD_CACHE_SIZE 5
/* initialize the struct array passed to poll() below */
-Bool _XPollfdCacheInit(dpy)
- Display *dpy;
+Bool _XPollfdCacheInit(
+ Display *dpy)
{
#ifdef USE_POLL
struct pollfd *pfp;
@@ -346,9 +381,9 @@ Bool _XPollfdCacheInit(dpy)
return True;
}
-void _XPollfdCacheAdd(dpy, fd)
- Display *dpy;
- int fd;
+void _XPollfdCacheAdd(
+ Display *dpy,
+ int fd)
{
#ifdef USE_POLL
struct pollfd *pfp = (struct pollfd *)dpy->filedes;
@@ -361,9 +396,9 @@ void _XPollfdCacheAdd(dpy, fd)
}
/* ARGSUSED */
-void _XPollfdCacheDel(dpy, fd)
- Display *dpy;
- int fd; /* not used */
+void _XPollfdCacheDel(
+ Display *dpy,
+ int fd) /* not used */
{
#ifdef USE_POLL
struct pollfd *pfp = (struct pollfd *)dpy->filedes;
@@ -384,9 +419,9 @@ void _XPollfdCacheDel(dpy, fd)
/* returns True iff there is an event in the queue newer than serial_num */
static Bool
-_XNewerQueuedEvent(dpy, serial_num)
- Display *dpy;
- int serial_num;
+_XNewerQueuedEvent(
+ Display *dpy,
+ int serial_num)
{
_XQEvent *qev;
@@ -404,14 +439,14 @@ _XNewerQueuedEvent(dpy, serial_num)
}
static int
-_XWaitForReadable(dpy)
- Display *dpy;
+_XWaitForReadable(
+ Display *dpy)
{
int result;
int fd = dpy->fd;
struct _XConnectionInfo *ilist;
- register int saved_event_serial;
- int in_read_events;
+ register int saved_event_serial = 0;
+ int in_read_events = 0;
register Bool did_proc_conni = False;
#ifdef USE_POLL
struct pollfd *filedes;
@@ -512,8 +547,8 @@ _XWaitForReadable(dpy)
}
static
-int _XSeqSyncFunction(dpy)
- register Display *dpy;
+int _XSeqSyncFunction(
+ register Display *dpy)
{
xGetInputFocusReply rep;
register xReq *req;
@@ -534,7 +569,9 @@ int _XSeqSyncFunction(dpy)
}
#ifdef XTHREADS
-static void _XFlushInt();
+static void _XFlushInt(
+ register Display *dpy,
+ register xcondition_t cv);
#endif
/*
@@ -542,8 +579,8 @@ static void _XFlushInt();
* action is taken. This routine correctly handles incremental writes.
* This routine may have to be reworked if int < long.
*/
-void _XFlush (dpy)
- register Display *dpy;
+void _XFlush(
+ register Display *dpy)
{
#ifdef XTHREADS
/* With multi-threading we introduce an internal routine to which
@@ -556,11 +593,10 @@ void _XFlush (dpy)
* locking correctly.
*/
-static void _XFlushInt (dpy, cv)
- register Display *dpy;
- register xcondition_t cv;
+static void _XFlushInt(
+ register Display *dpy,
+ register xcondition_t cv)
{
- char *nextindex;
#endif /* XTHREADS*/
register long size, todo;
register int write_stat;
@@ -581,7 +617,11 @@ static void _XFlushInt (dpy, cv)
#ifdef XTHREADS
while (dpy->flags & XlibDisplayWriting) {
- ConditionWait(dpy, dpy->lock->writers);
+ if (dpy->lock) {
+ ConditionWait(dpy, dpy->lock->writers);
+ } else {
+ _XWaitForWritable (dpy, cv);
+ }
}
#endif
size = todo = dpy->bufptr - dpy->buffer;
@@ -653,11 +693,11 @@ static void _XFlushInt (dpy, cv)
}
int
-_XEventsQueued (dpy, mode)
- register Display *dpy;
- int mode;
+_XEventsQueued(
+ register Display *dpy,
+ int mode)
{
- register BytesReadable_t len;
+ register int len;
BytesReadable_t pend;
_XAlignedBuffer buf;
register xReply *rep;
@@ -726,6 +766,7 @@ _XEventsQueued (dpy, mode)
*/
if (!pend && !dpy->qlen && ++dpy->conn_checker >= XCONN_CHECK_FREQ)
{
+ int result;
#ifdef USE_POLL
struct pollfd filedes;
#else
@@ -737,14 +778,14 @@ _XEventsQueued (dpy, mode)
#ifdef USE_POLL
filedes.fd = dpy->fd;
filedes.events = POLLIN;
- if ((pend = poll(&filedes, 1, 0)))
+ if ((result = poll(&filedes, 1, 0)))
#else
FD_ZERO(&r_mask);
FD_SET(dpy->fd, &r_mask);
- if ((pend = Select(dpy->fd + 1, &r_mask, NULL, NULL, &zero_time)))
+ if ((result = Select(dpy->fd + 1, &r_mask, NULL, NULL, &zero_time)))
#endif
{
- if (pend > 0)
+ if (result > 0)
{
if (_X11TransBytesReadable(dpy->trans_conn, &pend) < 0)
_XIOError(dpy);
@@ -752,14 +793,19 @@ _XEventsQueued (dpy, mode)
if (!pend)
pend = SIZEOF(xReply);
}
- else if (pend < 0 && !ECHECK(EINTR))
+ else if (result < 0 && !ECHECK(EINTR))
_XIOError(dpy);
}
}
#endif /* XCONN_CHECK_FREQ */
if (!(len = pend)) {
/* _XFlush can enqueue events */
- UnlockNextEventReader(dpy);
+#ifdef XTHREADS
+ if (cvl)
+#endif
+ {
+ UnlockNextEventReader(dpy);
+ }
return(dpy->qlen);
}
/* Force a read if there is not enough data. Otherwise,
@@ -803,7 +849,9 @@ _XEventsQueued (dpy, mode)
if (read_buf != (char *)dpy->lock->reply_awaiters->buf)
memcpy(dpy->lock->reply_awaiters->buf, read_buf,
len);
- UnlockNextEventReader(dpy);
+ if (cvl) {
+ UnlockNextEventReader(dpy);
+ }
return(dpy->qlen); /* we read, so we can return */
} else if (read_buf != buf.buf)
memcpy(buf.buf, read_buf, len);
@@ -812,11 +860,12 @@ _XEventsQueued (dpy, mode)
STARTITERATE(rep,xReply,buf.buf,len > 0) {
if (rep->generic.type == X_Reply) {
- pend = len;
+ int tmp = len;
RESETITERPTR(rep,xReply,
_XAsyncReply (dpy, rep,
- ITERPTR(rep), &pend, True));
- len = pend;
+ ITERPTR(rep), &tmp, True));
+ len = tmp;
+ pend = len;
} else {
if (rep->generic.type == X_Error)
_XError (dpy, (xError *)rep);
@@ -827,19 +876,24 @@ _XEventsQueued (dpy, mode)
}
} ENDITERATE
- UnlockNextEventReader(dpy);
+#ifdef XTHREADS
+ if (cvl)
+#endif
+ {
+ UnlockNextEventReader(dpy);
+ }
return(dpy->qlen);
}
/* _XReadEvents - Flush the output queue,
* then read as many events as possible (but at least 1) and enqueue them
*/
-void _XReadEvents(dpy)
- register Display *dpy;
+void _XReadEvents(
+ register Display *dpy)
{
_XAlignedBuffer buf;
BytesReadable_t pend;
- register BytesReadable_t len;
+ int len;
register xReply *rep;
Bool not_yet_flushed = True;
char *read_buf;
@@ -971,11 +1025,10 @@ void _XReadEvents(dpy)
STARTITERATE(rep,xReply,buf.buf,len > 0) {
if (rep->generic.type == X_Reply) {
- pend = len;
RESETITERPTR(rep,xReply,
_XAsyncReply (dpy, rep,
- ITERPTR(rep), &pend, True));
- len = pend;
+ ITERPTR(rep), &len, True));
+ pend = len;
} else {
if (rep->generic.type == X_Error)
_XError (dpy, (xError *) rep);
@@ -994,10 +1047,10 @@ void _XReadEvents(dpy)
* _XRead - Read bytes from the socket taking into account incomplete
* reads. This routine may have to be reworked if int < long.
*/
-int _XRead (dpy, data, size)
- register Display *dpy;
- register char *data;
- register long size;
+int _XRead(
+ register Display *dpy,
+ register char *data,
+ register long size)
{
register long bytes_read;
#ifdef XTHREADS
@@ -1051,10 +1104,10 @@ int _XRead (dpy, data, size)
}
#ifdef LONG64
-void _XRead32 (dpy, data, len)
- Display *dpy;
- register long *data;
- long len;
+void _XRead32(
+ Display *dpy,
+ register long *data,
+ long len)
{
register int *buf;
register long i;
@@ -1085,11 +1138,11 @@ void _XRead32 (dpy, data, len)
* into a long (64 bits on a CRAY computer).
*
*/
-static void _doXRead32 (dpy, data, size, packbuffer)
- register Display *dpy;
- register long *data;
- register long size;
- register char *packbuffer;
+static void _doXRead32(
+ register Display *dpy,
+ register long *data
+ register long size,
+ register char *packbuffer)
{
long *lpack,*lp;
long mask32 = 0x00000000ffffffff;
@@ -1112,10 +1165,10 @@ static void _doXRead32 (dpy, data, size, packbuffer)
}
}
-void _XRead32 (dpy, data, len)
- Display *dpy;
- long *data;
- long len;
+void _XRead32(
+ Display *dpy,
+ long *data,
+ long len)
{
char packbuffer[PACKBUFFERSIZE];
unsigned nunits = PACKBUFFERSIZE >> 2;
@@ -1133,11 +1186,11 @@ void _XRead32 (dpy, data, len)
* into a long (64 bits on a CRAY computer).
*
*/
-static _doXRead16 (dpy, data, size, packbuffer)
- register Display *dpy;
- register short *data;
- register long size;
- char *packbuffer;
+static _doXRead16(
+ register Display *dpy,
+ register short *data,
+ register long size,
+ char *packbuffer)
{
long *lpack,*lp;
long mask16 = 0x000000000000ffff;
@@ -1160,10 +1213,10 @@ static _doXRead16 (dpy, data, size, packbuffer)
}
}
-void _XRead16 (dpy, data, len)
- Display *dpy;
- short *data;
- long len;
+void _XRead16(
+ Display *dpy,
+ short *data,
+ long len)
{
char packbuffer[PACKBUFFERSIZE];
unsigned nunits = PACKBUFFERSIZE >> 1;
@@ -1174,10 +1227,10 @@ void _XRead16 (dpy, data, len)
if (len) _doXRead16 (dpy, data, len, packbuffer);
}
-void _XRead16Pad (dpy, data, size)
- Display *dpy;
- short *data;
- long size;
+void _XRead16Pad(
+ Display *dpy,
+ short *data,
+ long size)
{
int slop = (size & 3);
short slopbuf[3];
@@ -1195,10 +1248,10 @@ void _XRead16Pad (dpy, data, size)
* reads. If the number of bytes is not 0 mod 4, read additional pad
* bytes. This routine may have to be reworked if int < long.
*/
-void _XReadPad (dpy, data, size)
- register Display *dpy;
- register char *data;
- register long size;
+void _XReadPad(
+ register Display *dpy,
+ register char *data,
+ register long size)
{
register long bytes_read;
struct iovec iov[2];
@@ -1216,7 +1269,7 @@ void _XReadPad (dpy, data, size)
* whatever is needed.
*/
- iov[1].iov_len = padlength[size & 3];
+ iov[1].iov_len = -size & 3;
iov[1].iov_base = pad;
size += iov[1].iov_len;
#ifdef XTHREADS
@@ -1227,14 +1280,18 @@ void _XReadPad (dpy, data, size)
if (bytes_read > 0) {
size -= bytes_read;
- if ((iov[0].iov_len -= bytes_read) < 0) {
- iov[1].iov_len += iov[0].iov_len;
- iov[1].iov_base = (char *)iov[1].iov_base - iov[0].iov_len;
+ if (iov[0].iov_len < bytes_read) {
+ int pad_bytes_read = bytes_read - iov[0].iov_len;
+ iov[1].iov_len -= pad_bytes_read;
+ iov[1].iov_base =
+ (char *)iov[1].iov_base + pad_bytes_read;
iov[0].iov_len = 0;
}
- else
+ else {
+ iov[0].iov_len -= bytes_read;
iov[0].iov_base = (char *)iov[0].iov_base + bytes_read;
}
+ }
else if (ETEST()) {
_XWaitForReadable(dpy);
ESET(0);
@@ -1274,20 +1331,13 @@ void _XReadPad (dpy, data, size)
* This routine may have to be reworked if int < long;
*/
void
-#if NeedFunctionPrototypes
_XSend (
register Display *dpy,
_Xconst char *data,
register long size)
-#else
-_XSend (dpy, data, size)
- register Display *dpy;
- char *data;
- register long size;
-#endif
{
struct iovec iov[3];
- static char pad[3] = {0, 0, 0};
+ static char const pad[3] = {0, 0, 0};
/* XText8 and XText16 require that the padding bytes be zero! */
long skip, dbufsize, padsize, total, todo;
@@ -1300,7 +1350,7 @@ _XSend (dpy, data, size)
/* make sure no one else can put in data */
dpy->bufptr = dpy->bufmax;
#endif
- padsize = padlength[size & 3];
+ padsize = -size & 3;
for (ext = dpy->flushes; ext; ext = ext->next_flush) {
(*ext->before_flush)(dpy, &ext->codes, dpy->buffer, dbufsize);
(*ext->before_flush)(dpy, &ext->codes, (char *)data, size);
@@ -1355,7 +1405,7 @@ _XSend (dpy, data, size)
InsertIOV (dpy->buffer, dbufsize)
InsertIOV ((char *)data, size)
- InsertIOV (pad, padsize)
+ InsertIOV ((char *)pad, padsize)
ESET(0);
if ((len = _X11TransWritev(dpy->trans_conn, iov, i)) >= 0) {
@@ -1407,8 +1457,8 @@ _XSend (dpy, data, size)
}
static void
-_XGetMiscCode(dpy)
- register Display *dpy;
+_XGetMiscCode(
+ register Display *dpy)
{
xQueryExtensionReply qrep;
register xQueryExtensionReq *qreq;
@@ -1437,8 +1487,8 @@ _XGetMiscCode(dpy)
}
static int
-_XIDHandler(dpy)
- register Display *dpy;
+_XIDHandler(
+ register Display *dpy)
{
xXCMiscGetXIDRangeReply grep;
register xXCMiscGetXIDRangeReq *greq;
@@ -1470,8 +1520,8 @@ _XIDHandler(dpy)
/*
* _XAllocID - resource ID allocation routine.
*/
-XID _XAllocID(dpy)
- register Display *dpy;
+XID _XAllocID(
+ register Display *dpy)
{
XID id;
@@ -1500,10 +1550,10 @@ XID _XAllocID(dpy)
/*
* _XAllocIDs - multiple resource ID allocation routine.
*/
-void _XAllocIDs(dpy, ids, count)
- register Display *dpy;
- XID *ids;
- int count;
+void _XAllocIDs(
+ register Display *dpy,
+ XID *ids,
+ int count)
{
XID id;
int i;
@@ -1561,9 +1611,9 @@ void _XAllocIDs(dpy, ids, count)
*/
unsigned long
-_XSetLastRequestRead(dpy, rep)
- register Display *dpy;
- register xGenericReply *rep;
+_XSetLastRequestRead(
+ register Display *dpy,
+ register xGenericReply *rep)
{
register unsigned long newseq, lastseq;
@@ -1599,11 +1649,11 @@ _XSetLastRequestRead(dpy, rep)
* we may encounter.
*/
Status
-_XReply (dpy, rep, extra, discard)
- register Display *dpy;
- register xReply *rep;
- int extra; /* number of 32-bit words expected after the reply */
- Bool discard; /* should I discard data following "extra" words? */
+_XReply (
+ register Display *dpy,
+ register xReply *rep,
+ int extra, /* number of 32-bit words expected after the reply */
+ Bool discard) /* should I discard data following "extra" words? */
{
/* Pull out the serial number now, so that (currently illegal) requests
* generated by an error handler don't confuse us.
@@ -1670,17 +1720,6 @@ _XReply (dpy, rep, extra, discard)
!= (char *)rep)
continue;
}
- /*
- * Don't accept ridiculously large values for
- * generic.length; doing so could cause stack-scribbling
- * problems elsewhere.
- */
- if (rep->generic.length > GENERIC_LENGTH_LIMIT) {
- rep->generic.length = GENERIC_LENGTH_LIMIT;
- (void) fprintf(stderr,
- "Xlib: suspiciously long reply length %d set to %d",
- rep->generic.length, GENERIC_LENGTH_LIMIT);
- }
if (extra <= rep->generic.length) {
if (extra > 0)
/*
@@ -1786,12 +1825,12 @@ _XReply (dpy, rep, extra, discard)
}
static char *
-_XAsyncReply(dpy, rep, buf, lenp, discard)
- Display *dpy;
- register xReply *rep;
- char *buf;
- register int *lenp;
- Bool discard;
+_XAsyncReply(
+ Display *dpy,
+ register xReply *rep,
+ char *buf,
+ register int *lenp,
+ Bool discard)
{
register _XAsyncHandler *async, *next;
register int len;
@@ -1800,7 +1839,13 @@ _XAsyncReply(dpy, rep, buf, lenp, discard)
(void) _XSetLastRequestRead(dpy, &rep->generic);
len = SIZEOF(xReply) + (rep->generic.length << 2);
-
+ if (len < SIZEOF(xReply)) {
+ _XIOError (dpy);
+ buf += *lenp;
+ *lenp = 0;
+ return buf;
+ }
+
for (async = dpy->async_handlers; async; async = next) {
next = async->next;
if ((consumed = (*async->handler)(dpy, rep, buf, *lenp, async->data)))
@@ -1822,7 +1867,6 @@ _XAsyncReply(dpy, rep, buf, lenp, discard)
}
if (len < SIZEOF(xReply))
{
- ESET(EINVAL);
_XIOError (dpy);
buf += *lenp;
*lenp = 0;
@@ -1856,7 +1900,7 @@ _XAsyncReply(dpy, rep, buf, lenp, discard)
/*
* Support for internal connections, such as an IM might use.
- * By Stephen Gildea, The Open Group, September 1993
+ * By Stephen Gildea, X Consortium, September 1993
*/
/* _XRegisterInternalConnection
@@ -1879,21 +1923,13 @@ _XAsyncReply(dpy, rep, buf, lenp, discard)
* because could not allocate memory.
* Assumes Display locked when called.
*/
-#if NeedFunctionPrototypes
-Status _XRegisterInternalConnection(
+Status
+_XRegisterInternalConnection(
Display* dpy,
int fd,
_XInternalConnectionProc callback,
XPointer call_data
)
-#else
-Status
-_XRegisterInternalConnection(dpy, fd, callback, call_data)
- Display *dpy;
- int fd;
- _XInternalConnectionProc callback;
- XPointer call_data;
-#endif
{
struct _XConnectionInfo *new_conni, **iptr;
struct _XConnWatchInfo *watchers;
@@ -1936,23 +1972,18 @@ _XRegisterInternalConnection(dpy, fd, callback, call_data)
*
* Assumes Display locked when called.
*/
-#if NeedFunctionPrototypes
-void _XUnregisterInternalConnection(
+void
+_XUnregisterInternalConnection(
Display* dpy,
int fd
)
-#else
-void
-_XUnregisterInternalConnection(dpy, fd)
- Display *dpy;
- int fd;
-#endif
{
struct _XConnectionInfo *info_list, **prev;
struct _XConnWatchInfo *watch;
XPointer *wd;
- for (prev = &dpy->im_fd_info; (info_list = *prev); prev = &info_list->next) {
+ for (prev = &dpy->im_fd_info; (info_list = *prev);
+ prev = &info_list->next) {
if (info_list->fd == fd) {
*prev = info_list->next;
dpy->im_fd_length--;
@@ -1979,19 +2010,12 @@ _XUnregisterInternalConnection(dpy, fd)
* The list is allocated with Xmalloc and should be freed by the caller
* with Xfree;
*/
-#if NeedFunctionPrototypes
-Status XInternalConnectionNumbers(
+Status
+XInternalConnectionNumbers(
Display *dpy,
int **fd_return,
int *count_return
)
-#else
-Status
-XInternalConnectionNumbers(dpy, fd_return, count_return)
- Display *dpy;
- int **fd_return;
- int *count_return;
-#endif
{
int count;
struct _XConnectionInfo *info_list;
@@ -2018,9 +2042,9 @@ XInternalConnectionNumbers(dpy, fd_return, count_return)
return 1;
}
-static void _XProcessInternalConnection(dpy, conn_info)
- Display *dpy;
- struct _XConnectionInfo *conn_info;
+static void _XProcessInternalConnection(
+ Display *dpy,
+ struct _XConnectionInfo *conn_info)
{
dpy->flags |= XlibDisplayProcConni;
#ifdef XTHREADS
@@ -2047,17 +2071,11 @@ static void _XProcessInternalConnection(dpy, conn_info)
* for this fd.
* The Display is NOT locked during the call.
*/
-#if NeedFunctionPrototypes
-void XProcessInternalConnection(
+void
+XProcessInternalConnection(
Display* dpy,
int fd
)
-#else
-void
-XProcessInternalConnection(dpy, fd)
- Display *dpy;
- int fd;
-#endif
{
struct _XConnectionInfo *info_list;
@@ -2078,19 +2096,12 @@ XProcessInternalConnection(dpy, fd)
* If any connections are already registered, the callback is immediately
* called for each of them.
*/
-#if NeedFunctionPrototypes
-Status XAddConnectionWatch(
+Status
+XAddConnectionWatch(
Display* dpy,
XConnectionWatchProc callback,
XPointer client_data
)
-#else
-Status
-XAddConnectionWatch(dpy, callback, client_data)
- Display *dpy;
- XConnectionWatchProc callback;
- XPointer client_data;
-#endif
{
struct _XConnWatchInfo *new_watcher, **wptr;
struct _XConnectionInfo *info_list;
@@ -2140,19 +2151,12 @@ XAddConnectionWatch(dpy, callback, client_data)
* Both callback and client_data must match what was passed to
* XAddConnectionWatch.
*/
-#if NeedFunctionPrototypes
-void XRemoveConnectionWatch(
+void
+XRemoveConnectionWatch(
Display* dpy,
XConnectionWatchProc callback,
XPointer client_data
)
-#else
-void
-XRemoveConnectionWatch(dpy, callback, client_data)
- Display *dpy;
- XConnectionWatchProc callback;
- XPointer client_data;
-#endif
{
struct _XConnWatchInfo *watch;
struct _XConnWatchInfo *previous = NULL;
@@ -2189,9 +2193,9 @@ XRemoveConnectionWatch(dpy, callback, client_data)
/* Read and discard "n" 8-bit bytes of data */
-void _XEatData (dpy, n)
- Display *dpy;
- register unsigned long n;
+void _XEatData(
+ Display *dpy,
+ register unsigned long n)
{
#define SCRATCHSIZE 2048
char buf[SCRATCHSIZE];
@@ -2210,9 +2214,9 @@ void _XEatData (dpy, n)
* note that no squishing of move events in V11, since there
* is pointer motion hints....
*/
-void _XEnq (dpy, event)
- register Display *dpy;
- register xEvent *event;
+void _XEnq(
+ register Display *dpy,
+ register xEvent *event)
{
register _XQEvent *qelt;
@@ -2245,10 +2249,10 @@ void _XEnq (dpy, event)
/*
* _XDeq - Remove event packet from the display's queue.
*/
-void _XDeq (dpy, prev, qelt)
- register Display *dpy;
- register _XQEvent *prev; /* element before qelt */
- register _XQEvent *qelt; /* element to be unlinked */
+void _XDeq(
+ register Display *dpy,
+ register _XQEvent *prev, /* element before qelt */
+ register _XQEvent *qelt) /* element to be unlinked */
{
if (prev) {
if ((prev->next = qelt->next) == NULL)
@@ -2270,10 +2274,10 @@ void _XDeq (dpy, prev, qelt)
/*ARGSUSED*/
Bool
-_XUnknownWireEvent(dpy, re, event)
-register Display *dpy; /* pointer to display structure */
-register XEvent *re; /* pointer to where event should be reformatted */
-register xEvent *event; /* wire protocol event */
+_XUnknownWireEvent(
+ register Display *dpy, /* pointer to display structure */
+ register XEvent *re, /* pointer to where event should be reformatted */
+ register xEvent *event) /* wire protocol event */
{
#ifdef notdef
(void) fprintf(stderr,
@@ -2285,10 +2289,10 @@ register xEvent *event; /* wire protocol event */
/*ARGSUSED*/
Status
-_XUnknownNativeEvent(dpy, re, event)
-register Display *dpy; /* pointer to display structure */
-register XEvent *re; /* pointer to where event should be reformatted */
-register xEvent *event; /* wire protocol event */
+_XUnknownNativeEvent(
+ register Display *dpy, /* pointer to display structure */
+ register XEvent *re, /* pointer to where event should be reformatted */
+ register xEvent *event) /* wire protocol event */
{
#ifdef notdef
(void) fprintf(stderr,
@@ -2301,10 +2305,10 @@ register xEvent *event; /* wire protocol event */
* reformat a wire event into an XEvent structure of the right type.
*/
Bool
-_XWireToEvent(dpy, re, event)
-register Display *dpy; /* pointer to display structure */
-register XEvent *re; /* pointer to where event should be reformatted */
-register xEvent *event; /* wire protocol event */
+_XWireToEvent(
+ register Display *dpy, /* pointer to display structure */
+ register XEvent *re, /* pointer to where event should be reformatted */
+ register xEvent *event) /* wire protocol event */
{
re->type = event->u.u.type & 0x7f;
@@ -2671,25 +2675,12 @@ register xEvent *event; /* wire protocol event */
}
-#ifndef USL_SHARELIB
-
-static char *_SysErrorMsg (n)
- int n;
-{
- char *s = strerror(n);
-
- return (s ? s : "no such error");
-}
-
-#endif /* USL sharedlibs in don't define for SVR3.2 */
-
-
/*
* _XDefaultIOError - Default fatal system error reporting routine. Called
* when an X internal system error is encountered.
*/
-void _XDefaultIOError (dpy)
- Display *dpy;
+int _XDefaultIOError(
+ Display *dpy)
{
if (ECHECK(EPIPE)) {
(void) fprintf (stderr,
@@ -2701,7 +2692,7 @@ void _XDefaultIOError (dpy)
#ifdef WIN32
WSAGetLastError(), strerror(WSAGetLastError()),
#else
- errno, _SysErrorMsg (errno),
+ errno, strerror (errno),
#endif
DisplayString (dpy));
(void) fprintf (stderr,
@@ -2711,13 +2702,14 @@ void _XDefaultIOError (dpy)
}
exit(1);
+ return(0); /* dummy - function should never return */
}
-static int _XPrintDefaultError (dpy, event, fp)
- Display *dpy;
- XErrorEvent *event;
- FILE *fp;
+static int _XPrintDefaultError(
+ Display *dpy,
+ XErrorEvent *event,
+ FILE *fp)
{
char buffer[BUFSIZ];
char mesg[BUFSIZ];
@@ -2825,9 +2817,9 @@ static int _XPrintDefaultError (dpy, event, fp)
return 1;
}
-int _XDefaultError(dpy, event)
- Display *dpy;
- XErrorEvent *event;
+int _XDefaultError(
+ Display *dpy,
+ XErrorEvent *event)
{
if (_XPrintDefaultError (dpy, event, stderr) == 0) return 0;
exit(1);
@@ -2846,9 +2838,9 @@ Bool _XDefaultWireError(display, he, we)
/*
* _XError - upcall internal or user protocol error handler
*/
-int _XError (dpy, rep)
- Display *dpy;
- register xError *rep;
+int _XError (
+ Display *dpy,
+ register xError *rep)
{
/*
* X_Error packet encountered! We need to unpack the error before
@@ -2897,8 +2889,9 @@ int _XError (dpy, rep)
/*
* _XIOError - call user connection error handler and exit
*/
-_XIOError (dpy)
- Display *dpy;
+int
+_XIOError (
+ Display *dpy)
{
dpy->flags |= XlibDisplayIOError;
#ifdef WIN32
@@ -2910,6 +2903,7 @@ _XIOError (dpy)
else
_XDefaultIOError(dpy);
exit (1);
+ return 0;
}
@@ -2920,9 +2914,9 @@ _XIOError (dpy)
* GetReq* and a call to Data* or _XSend*, or in a context when the thread
* is guaranteed to not unlock the display.
*/
-char *_XAllocScratch (dpy, nbytes)
- register Display *dpy;
- unsigned long nbytes;
+char *_XAllocScratch(
+ register Display *dpy,
+ unsigned long nbytes)
{
if (nbytes > dpy->scratch_length) {
if (dpy->scratch_buffer) Xfree (dpy->scratch_buffer);
@@ -2937,9 +2931,9 @@ char *_XAllocScratch (dpy, nbytes)
* Scratch space allocator you can call any time, multiple times, and be
* MT safe, but you must hand the buffer back with _XFreeTemp.
*/
-char *_XAllocTemp (dpy, nbytes)
- register Display *dpy;
- unsigned long nbytes;
+char *_XAllocTemp(
+ register Display *dpy,
+ unsigned long nbytes)
{
char *buf;
@@ -2949,10 +2943,10 @@ char *_XAllocTemp (dpy, nbytes)
return buf;
}
-void _XFreeTemp (dpy, buf, nbytes)
- register Display *dpy;
- char *buf;
- unsigned long nbytes;
+void _XFreeTemp(
+ register Display *dpy,
+ char *buf,
+ unsigned long nbytes)
{
if (dpy->scratch_buffer)
Xfree(dpy->scratch_buffer);
@@ -2963,9 +2957,9 @@ void _XFreeTemp (dpy, buf, nbytes)
/*
* Given a visual id, find the visual structure for this id on this display.
*/
-Visual *_XVIDtoVisual (dpy, id)
- Display *dpy;
- VisualID id;
+Visual *_XVIDtoVisual(
+ Display *dpy,
+ VisualID id)
{
register int i, j, k;
register Screen *sp;
@@ -2985,12 +2979,8 @@ Visual *_XVIDtoVisual (dpy, id)
return (NULL);
}
-#if NeedFunctionPrototypes
+int
XFree (void *data)
-#else
-XFree (data)
- char *data;
-#endif
{
Xfree (data);
return 1;
@@ -3014,10 +3004,10 @@ void _Xbcopy(b1, b2, length)
#endif
#ifdef DataRoutineIsProcedure
-void Data (dpy, data, len)
- Display *dpy;
- char *data;
- long len;
+void Data(
+ Display *dpy,
+ char *data,
+ long len)
{
if (dpy->bufptr + (len) <= dpy->bufmax) {
memcpy(dpy->bufptr, data, (int)len);
@@ -3030,10 +3020,11 @@ void Data (dpy, data, len)
#ifdef LONG64
-_XData32 (dpy, data, len)
- Display *dpy;
- register long *data;
- unsigned len;
+int
+_XData32(
+ Display *dpy,
+ register long *data,
+ unsigned len)
{
register int *buf;
register long i;
@@ -3053,6 +3044,7 @@ _XData32 (dpy, data, len)
while (--i >= 0)
*buf++ = *data++;
}
+ return 0;
}
#endif /* LONG64 */
@@ -3071,11 +3063,11 @@ _XData32 (dpy, data, len)
* "len" is the length in bytes of the data.
*/
-static doData16(dpy, data, len, packbuffer)
- register Display *dpy;
- short *data;
- unsigned len;
- char *packbuffer;
+static doData16(
+ register Display *dpy,
+ short *data,
+ unsigned len,
+ char *packbuffer)
{
long *lp,*lpack;
long i, nwords,bits;
@@ -3104,10 +3096,10 @@ static doData16(dpy, data, len, packbuffer)
Data(dpy, packbuffer, len);
}
-_XData16 (dpy, data, len)
- Display *dpy;
- short *data;
- unsigned len;
+_XData16 (
+ Display *dpy,
+ short *data,
+ unsigned len)
{
char packbuffer[PACKBUFFERSIZE];
unsigned nunits = PACKBUFFERSIZE >> 1;
@@ -3126,11 +3118,11 @@ _XData16 (dpy, data, len)
* "len" is the length in bytes of the data.
*/
-static doData32 (dpy, data, len, packbuffer)
- register Display *dpy;
- long *data;
- unsigned len;
- char *packbuffer;
+static doData32(
+ register Display *dpy
+ long *data,
+ unsigned len,
+ char *packbuffer)
{
long *lp,*lpack;
long i,bits,nwords;
@@ -3157,10 +3149,10 @@ static doData32 (dpy, data, len, packbuffer)
Data(dpy, packbuffer, len);
}
-_XData32 (dpy, data, len)
- Display *dpy;
- long *data;
- unsigned len;
+void _XData32(
+ Display *dpy,
+ long *data,
+ unsigned len,
{
char packbuffer[PACKBUFFERSIZE];
unsigned nunits = PACKBUFFERSIZE >> 2;
@@ -3182,7 +3174,7 @@ _XData32 (dpy, data, len)
* and so, you may be better off using gethostname (if it exists).
*/
-#if (defined(_POSIX_SOURCE) && !defined(AIXV3)) || defined(hpux) || defined(USG) || defined(SVR4)
+#if (defined(_POSIX_SOURCE) && !defined(AIXV3) && !defined(__QNX__)) || defined(hpux) || defined(USG) || defined(SVR4)
#define NEED_UTSNAME
#include <sys/utsname.h>
#endif
@@ -3190,9 +3182,9 @@ _XData32 (dpy, data, len)
/*
* _XGetHostname - similar to gethostname but allows special processing.
*/
-int _XGetHostname (buf, maxlen)
- char *buf;
- int maxlen;
+int _XGetHostname (
+ char *buf,
+ int maxlen)
{
int len;
@@ -3246,23 +3238,7 @@ Screen *_XScreenOfWindow (dpy, w)
}
-#if (MSKCNT > 4)
-/*
- * This is a macro if MSKCNT <= 4
- */
-_XANYSET(src)
- long *src;
-{
- int i;
-
- for (i=0; i<MSKCNT; i++)
- if (src[ i ])
- return (1);
- return (0);
-}
-#endif
-
-#if defined(WIN32) || defined(__EMX__) /* || defined(OS2) */
+#if defined(WIN32)
/*
* These functions are intended to be used internally to Xlib only.
@@ -3310,7 +3286,7 @@ static int AccessFile (path, pathbuf, len_pathbuf, pathret)
/* try the places set in the environment */
drive = getenv ("_XBASEDRIVE");
-#ifdef __EMX__
+#ifdef __UNIXOS2__
if (!drive)
drive = getenv ("X11ROOT");
#endif
@@ -3326,7 +3302,7 @@ static int AccessFile (path, pathbuf, len_pathbuf, pathret)
return 1;
}
-#ifndef __EMX__
+#ifndef __UNIXOS2__
/* one last place to look */
drive = getenv ("HOMEDRIVE");
if (drive) {
@@ -3366,7 +3342,7 @@ static int AccessFile (path, pathbuf, len_pathbuf, pathret)
}
int _XOpenFile(path, flags)
- char* path;
+ _Xconst char* path;
int flags;
{
char buf[MAX_PATH];
@@ -3385,8 +3361,8 @@ int _XOpenFile(path, flags)
}
void* _XFopenFile(path, mode)
- char* path;
- char* mode;
+ _Xconst char* path;
+ _Xconst char* mode;
{
char buf[MAX_PATH];
char* bufp;
@@ -3404,7 +3380,7 @@ void* _XFopenFile(path, mode)
}
int _XAccessFile(path)
- char* path;
+ _Xconst char* path;
{
char buf[MAX_PATH];
char* bufp;
diff --git a/src/XomGeneric.h b/src/XomGeneric.h
index 10dea3b3..ce61eca3 100644
--- a/src/XomGeneric.h
+++ b/src/XomGeneric.h
@@ -31,6 +31,7 @@
* Modifier: Takanori Tateno FUJITSU LIMITED
*
*/
+/* $XFree86: xc/lib/X11/XomGeneric.h,v 1.5 2003/04/13 19:22:19 dawes Exp $ */
#ifndef _XOMGENERIC_H_
#define _XOMGENERIC_H_
@@ -59,7 +60,8 @@ typedef struct _VRotateRec {
typedef enum {
XOMMultiByte,
- XOMWideChar
+ XOMWideChar,
+ XOMUtf8String
} XOMTextType;
typedef struct _FontDataRec {
@@ -134,6 +136,7 @@ typedef struct _FontSetRec {
typedef struct _XOCGenericPart {
XlcConv mbs_to_cs;
XlcConv wcs_to_cs;
+ XlcConv utf8_to_cs;
int font_set_num;
FontSet font_set;
} XOCGenericPart;
@@ -147,24 +150,19 @@ typedef struct _XOCGenericRec {
_XFUNCPROTOBEGIN
extern XOM _XomGenericOpenOM(
-#if NeedFunctionPrototypes
XLCd /* lcd */,
Display* /* dpy */,
XrmDatabase /* rdb */,
_Xconst char* /* res_name */,
_Xconst char* /* res_class */
-#endif
);
extern XlcConv _XomInitConverter(
-#if NeedFunctionPrototypes
XOC /* oc */,
XOMTextType /* type */
-#endif
);
extern int _XomConvert(
-#if NeedFunctionPrototypes
XOC /* oc */,
XlcConv /* conv */,
XPointer* /* from */,
@@ -173,9 +171,148 @@ extern int _XomConvert(
int* /* to_left */,
XPointer* /* args */,
int /* num_args */
-#endif
);
+extern int
+_XmbDefaultTextEscapement(XOC oc, _Xconst char *text, int length);
+extern int
+_XwcDefaultTextEscapement(XOC oc, _Xconst wchar_t *text, int length);
+extern int
+_Xutf8DefaultTextEscapement(XOC oc, _Xconst char *text, int length);
+extern int
+_XmbDefaultTextExtents(XOC oc, _Xconst char *text, int length,
+ XRectangle *overall_ink, XRectangle *overall_logical);
+extern int
+_XwcDefaultTextExtents(XOC oc, _Xconst wchar_t *text, int length,
+ XRectangle *overall_ink, XRectangle *overall_logical);
+extern int
+_Xutf8DefaultTextExtents(XOC oc, _Xconst char *text, int length,
+ XRectangle *overall_ink, XRectangle *overall_logical);
+extern Status
+_XmbDefaultTextPerCharExtents(
+ XOC oc, _Xconst char *text, int length,
+ XRectangle *ink_buf, XRectangle *logical_buf,
+ int buf_size, int *num_chars,
+ XRectangle *overall_ink,
+ XRectangle *overall_logical);
+extern Status
+_XwcDefaultTextPerCharExtents(
+ XOC oc, _Xconst wchar_t *text, int length,
+ XRectangle *ink_buf, XRectangle *logical_buf,
+ int buf_size, int *num_chars,
+ XRectangle *overall_ink,
+ XRectangle *overall_logical);
+extern Status
+_Xutf8DefaultTextPerCharExtents(
+ XOC oc, _Xconst char *text, int length,
+ XRectangle *ink_buf, XRectangle *logical_buf,
+ int buf_size, int *num_chars,
+ XRectangle *overall_ink,
+ XRectangle *overall_logical);
+extern int
+_XmbDefaultDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
+ _Xconst char *text, int length);
+extern int
+_XwcDefaultDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
+ _Xconst wchar_t *text, int length);
+extern int
+_Xutf8DefaultDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
+ _Xconst char *text, int length);
+extern void
+_XmbDefaultDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
+ int y, _Xconst char *text, int length);
+extern void
+_XwcDefaultDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
+ int y, _Xconst wchar_t *text, int length);
+extern void
+_Xutf8DefaultDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
+ int y, _Xconst char *text, int length);
+
+extern int
+_XmbGenericTextEscapement(XOC oc, _Xconst char *text, int length);
+extern int
+_XmbGenericTextExtents(XOC oc, _Xconst char *text, int length,
+ XRectangle *overall_ink, XRectangle *overall_logical);
+extern int
+_Xutf8GenericDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
+ _Xconst char *text, int length);
+extern void
+_Xutf8GenericDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
+ int y, _Xconst char *text, int length);
+extern Status
+_Xutf8GenericTextPerCharExtents(
+ XOC oc, _Xconst char *text, int length,
+ XRectangle *ink_buf, XRectangle *logical_buf,
+ int buf_size, int *num_chars,
+ XRectangle *overall_ink,
+ XRectangle *overall_logical);
+extern int
+_Xutf8GenericTextExtents(XOC oc, _Xconst char *text, int length,
+ XRectangle *overall_ink, XRectangle *overall_logical);
+extern int
+_Xutf8GenericTextEscapement(XOC oc, _Xconst char *text, int length);
+extern void
+_XwcGenericDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
+ int y, _Xconst wchar_t *text, int length);
+extern int
+_XwcGenericDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
+ _Xconst wchar_t *text, int length);
+extern Status
+_XwcGenericTextPerCharExtents(XOC oc, _Xconst wchar_t *text, int length,
+ XRectangle *ink_buf, XRectangle *logical_buf,
+ int buf_size, int *num_chars,
+ XRectangle *overall_ink,
+ XRectangle *overall_logical);
+extern int
+_XwcGenericTextExtents(XOC oc, _Xconst wchar_t *text, int length,
+ XRectangle *overall_ink, XRectangle *overall_logical);
+extern int
+_XwcGenericTextEscapement(XOC oc, _Xconst wchar_t *text, int length);
+extern void
+_XmbGenericDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
+ int y, _Xconst char *text, int length);
+extern int
+_XmbGenericDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
+ _Xconst char *text, int length);
+extern Status
+_XmbGenericTextPerCharExtents(XOC oc, _Xconst char *text, int length,
+ XRectangle *ink_buf, XRectangle *logical_buf,
+ int buf_size, int *num_chars,
+ XRectangle *overall_ink,
+ XRectangle *overall_logical);
+
+extern FontData
+read_EncodingInfo(
+ int count,
+ char **value);
+
+extern int
+_XomGenericDrawString(
+ Display *dpy,
+ Drawable d,
+ XOC oc,
+ GC gc,
+ int x, int y,
+ XOMTextType type,
+ XPointer text,
+ int length);
+extern int
+_XomGenericTextExtents(
+ XOC oc,
+ XOMTextType type,
+ XPointer text,
+ int length,
+ XRectangle *overall_ink,
+ XRectangle *overall_logical);
+extern FontData
+_XomGetFontDataFromFontSet(
+ FontSet fs,
+ unsigned char *str,
+ int len,
+ int *len_ret,
+ int is2b,
+ int type);
+
_XFUNCPROTOEND
#endif /* _XOMGENERIC_H_ */
diff --git a/src/Xresinternal.h b/src/Xresinternal.h
index b0a7897f..fc752855 100644
--- a/src/Xresinternal.h
+++ b/src/Xresinternal.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/Xresinternal.h,v 1.1 2003/04/13 19:22:19 dawes Exp $ */
+/* $XFree86$ */
#ifndef _XRESINTERNAL_H_
#define _XRESINTERNAL_H_
diff --git a/src/Xrm.c b/src/Xrm.c
index 022dbe60..08ecd793 100644
--- a/src/Xrm.c
+++ b/src/Xrm.c
@@ -49,6 +49,7 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
+/* $XFree86: xc/lib/X11/Xrm.c,v 3.22 2003/07/16 01:38:26 dawes Exp $ */
#include <stdio.h>
#include <ctype.h>
@@ -60,17 +61,8 @@ from The Open Group.
#endif
#include "XrmI.h"
#include <X11/Xos.h>
-
-#ifdef __STDC__
-#define Const const
-#else
-#define Const /**/
-#endif
-#if defined(__STDC__) && !defined(NORCONST)
-#define RConst const
-#else
-#define RConst /**/
-#endif
+#include "Xresinternal.h"
+#include "Xresource.h"
/*
@@ -120,19 +112,15 @@ Bob Scheifler
*/
-typedef unsigned long Signature;
-
static XrmQuark XrmQString, XrmQANY;
typedef Bool (*DBEnumProc)(
-#if NeedNestedPrototypes /* this is Nested on purpose, to match Xlib.h */
XrmDatabase* /* db */,
XrmBindingList /* bindings */,
XrmQuarkList /* quarks */,
XrmRepresentation* /* type */,
XrmValue* /* value */,
XPointer /* closure */
-#endif
);
typedef struct _VEntry {
@@ -226,6 +214,24 @@ typedef struct _EClosure {
int mode; /* XrmEnum<kind> */
} EClosureRec, *EClosure;
+/* types for typecasting ETable based functions to NTable based functions */
+typedef Bool (*getNTableSProcp)(
+ NTable table,
+ XrmNameList names,
+ XrmClassList classes,
+ SClosure closure);
+typedef Bool (*getNTableVProcp)(
+ NTable table,
+ XrmNameList names,
+ XrmClassList classes,
+ VClosure closure);
+typedef Bool (*getNTableEProcp)(
+ NTable table,
+ XrmNameList names,
+ XrmClassList classes,
+ register int level,
+ EClosure closure);
+
/* predicate to determine when to resize a hash table */
#define GrowthPred(n,m) ((unsigned)(n) > (((m) + 1) << 2))
@@ -294,10 +300,10 @@ typedef unsigned char XrmBits;
#define is_special(bits) ((bits) & (ENDOF|BSLASH))
/* parsing types */
-static XrmBits Const xrmtypes[256] = {
+static XrmBits const xrmtypes[256] = {
EOS,0,0,0,0,0,0,0,
0,SPACE,EOL,0,0,
-#if defined(WIN32) || defined(__EMX__) /* || defined(OS2) */
+#if defined(WIN32) || defined(__UNIXOS2__)
EOL, /* treat CR the same as LF, just in case */
#else
0,
@@ -320,14 +326,15 @@ static XrmBits Const xrmtypes[256] = {
/* The rest will be automatically initialized to zero. */
};
-void XrmInitialize()
+void XrmInitialize(void)
{
XrmQString = XrmPermStringToQuark("String");
XrmQANY = XrmPermStringToQuark("?");
}
-XrmDatabase XrmGetDatabase(display)
- Display *display;
+#ifndef _XP_PRINT_SERVER_
+XrmDatabase XrmGetDatabase(
+ Display *display)
{
XrmDatabase retval;
LockDisplay(display);
@@ -336,24 +343,25 @@ XrmDatabase XrmGetDatabase(display)
return retval;
}
-void XrmSetDatabase(display, database)
- Display *display;
- XrmDatabase database;
+void XrmSetDatabase(
+ Display *display,
+ XrmDatabase database)
{
LockDisplay(display);
+ /* destroy database if set up imlicitely by XGetDefault() */
+ if (display->db && (display->flags & XlibDisplayDfltRMDB)) {
+ XrmDestroyDatabase(display->db);
+ display->flags &= ~XlibDisplayDfltRMDB;
+ }
display->db = database;
UnlockDisplay(display);
}
+#endif /* !_XP_PRINT_SERVER_ */
-#if NeedFunctionPrototypes
-void XrmStringToQuarkList(
+void
+XrmStringToQuarkList(
register _Xconst char *name,
register XrmQuarkList quarks) /* RETURN */
-#else
-void XrmStringToQuarkList(name, quarks)
- register char *name;
- register XrmQuarkList quarks; /* RETURN */
-#endif
{
register XrmBits bits;
register Signature sig = 0;
@@ -383,17 +391,11 @@ void XrmStringToQuarkList(name, quarks)
*quarks = NULLQUARK;
}
-#if NeedFunctionPrototypes
-void XrmStringToBindingQuarkList(
+void
+XrmStringToBindingQuarkList(
register _Xconst char *name,
register XrmBindingList bindings, /* RETURN */
register XrmQuarkList quarks) /* RETURN */
-#else
-void XrmStringToBindingQuarkList(name, bindings, quarks)
- register char *name;
- register XrmBindingList bindings; /* RETURN */
- register XrmQuarkList quarks; /* RETURN */
-#endif
{
register XrmBits bits;
register Signature sig = 0;
@@ -434,9 +436,9 @@ void XrmStringToBindingQuarkList(name, bindings, quarks)
#ifdef DEBUG
-static void PrintQuarkList(quarks, stream)
- XrmQuarkList quarks;
- FILE *stream;
+static void PrintQuarkList(
+ XrmQuarkList quarks,
+ FILE *stream)
{
Bool firstNameSeen;
@@ -451,38 +453,45 @@ static void PrintQuarkList(quarks, stream)
#endif /* DEBUG */
-/*ARGSUSED*/
-static void mbnoop(state)
- XPointer state;
+
+/*
+ * Fallback methods for Xrm parsing.
+ * Simulate a C locale. No state needed here.
+ */
+
+static void
+c_mbnoop(
+ XPointer state)
{
}
-/*ARGSUSED*/
-static char mbchar(state, str, lenp)
- XPointer state;
- char *str;
- int *lenp;
+static char
+c_mbchar(
+ XPointer state,
+ const char *str,
+ int *lenp)
{
*lenp = 1;
return *str;
}
-/*ARGSUSED*/
-static char *lcname(state)
- XPointer state;
+static const char *
+c_lcname(
+ XPointer state)
{
return "C";
}
-static RConst XrmMethodsRec mb_methods = {
- mbnoop,
- mbchar,
- mbnoop,
- lcname,
- mbnoop
+static const XrmMethodsRec mb_methods = {
+ c_mbnoop, /* mbinit */
+ c_mbchar, /* mbchar */
+ c_mbnoop, /* mbfinish */
+ c_lcname, /* lcname */
+ c_mbnoop /* destroy */
};
-static XrmDatabase NewDatabase()
+
+static XrmDatabase NewDatabase(void)
{
register XrmDatabase db;
@@ -491,9 +500,13 @@ static XrmDatabase NewDatabase()
_XCreateMutex(&db->linfo);
db->table = (NTable)NULL;
db->mbstate = (XPointer)NULL;
+#ifdef _XP_PRINT_SERVER_
+ db->methods = NULL;
+#else
db->methods = _XrmInitParseInfo(&db->mbstate);
+#endif
if (!db->methods)
- db->methods = (XrmMethods)&mb_methods;
+ db->methods = &mb_methods;
}
return db;
}
@@ -501,9 +514,9 @@ static XrmDatabase NewDatabase()
/* move all values from ftable to ttable, and free ftable's buckets.
* ttable is quaranteed empty to start with.
*/
-static void MoveValues(ftable, ttable)
- LTable ftable;
- register LTable ttable;
+static void MoveValues(
+ LTable ftable,
+ register LTable ttable)
{
register VEntry fentry, nfentry;
register VEntry *prev;
@@ -528,9 +541,9 @@ static void MoveValues(ftable, ttable)
/* move all tables from ftable to ttable, and free ftable.
* ttable is quaranteed empty to start with.
*/
-static void MoveTables(ftable, ttable)
- NTable ftable;
- register NTable ttable;
+static void MoveTables(
+ NTable ftable,
+ register NTable ttable)
{
register NTable fentry, nfentry;
register NTable *prev;
@@ -553,8 +566,8 @@ static void MoveTables(ftable, ttable)
}
/* grow the table, based on current number of entries */
-static void GrowTable(prev)
- NTable *prev;
+static void GrowTable(
+ NTable *prev)
{
register NTable table;
register int i;
@@ -596,10 +609,10 @@ static void GrowTable(prev)
}
/* merge values from ftable into *pprev, destroy ftable in the process */
-static void MergeValues(ftable, pprev, override)
- LTable ftable;
- NTable *pprev;
- Bool override;
+static void MergeValues(
+ LTable ftable,
+ NTable *pprev,
+ Bool override)
{
register VEntry fentry, tentry;
register VEntry *prev;
@@ -676,10 +689,10 @@ static void MergeValues(ftable, pprev, override)
}
/* merge tables from ftable into *pprev, destroy ftable in the process */
-static void MergeTables(ftable, pprev, override)
- NTable ftable;
- NTable *pprev;
- Bool override;
+static void MergeTables(
+ NTable ftable,
+ NTable *pprev,
+ Bool override)
{
register NTable fentry, tentry;
NTable nfentry;
@@ -749,9 +762,9 @@ static void MergeTables(ftable, pprev, override)
GROW(pprev);
}
-void XrmCombineDatabase(from, into, override)
- XrmDatabase from, *into;
- Bool override;
+void XrmCombineDatabase(
+ XrmDatabase from, XrmDatabase *into,
+ Bool override)
{
register NTable *prev;
register NTable ftable, ttable, nftable;
@@ -798,19 +811,19 @@ void XrmCombineDatabase(from, into, override)
}
}
-void XrmMergeDatabases(from, into)
- XrmDatabase from, *into;
+void XrmMergeDatabases(
+ XrmDatabase from, XrmDatabase *into)
{
XrmCombineDatabase(from, into, True);
}
/* store a value in the database, overriding any existing entry */
-static void PutEntry(db, bindings, quarks, type, value)
- XrmDatabase db;
- XrmBindingList bindings;
- XrmQuarkList quarks;
- XrmRepresentation type;
- XrmValuePtr value;
+static void PutEntry(
+ XrmDatabase db,
+ XrmBindingList bindings,
+ XrmQuarkList quarks,
+ XrmRepresentation type,
+ XrmValuePtr value)
{
register NTable *pprev, *prev;
register NTable table;
@@ -998,12 +1011,12 @@ static void PutEntry(db, bindings, quarks, type, value)
#undef NEWTABLE
}
-void XrmQPutResource(pdb, bindings, quarks, type, value)
- XrmDatabase *pdb;
- XrmBindingList bindings;
- XrmQuarkList quarks;
- XrmRepresentation type;
- XrmValuePtr value;
+void XrmQPutResource(
+ XrmDatabase *pdb,
+ XrmBindingList bindings,
+ XrmQuarkList quarks,
+ XrmRepresentation type,
+ XrmValuePtr value)
{
if (!*pdb) *pdb = NewDatabase();
_XLockMutex(&(*pdb)->linfo);
@@ -1011,19 +1024,12 @@ void XrmQPutResource(pdb, bindings, quarks, type, value)
_XUnlockMutex(&(*pdb)->linfo);
}
-#if NeedFunctionPrototypes
-void XrmPutResource(
+void
+XrmPutResource(
XrmDatabase *pdb,
_Xconst char *specifier,
_Xconst char *type,
XrmValuePtr value)
-#else
-void XrmPutResource(pdb, specifier, type, value)
- XrmDatabase *pdb;
- char *specifier;
- char *type;
- XrmValuePtr value;
-#endif
{
XrmBinding bindings[MAXDBDEPTH+1];
XrmQuark quarks[MAXDBDEPTH+1];
@@ -1035,19 +1041,12 @@ void XrmPutResource(pdb, specifier, type, value)
_XUnlockMutex(&(*pdb)->linfo);
}
-#if NeedFunctionPrototypes
-void XrmQPutStringResource(
+void
+XrmQPutStringResource(
XrmDatabase *pdb,
XrmBindingList bindings,
XrmQuarkList quarks,
_Xconst char *str)
-#else
-void XrmQPutStringResource(pdb, bindings, quarks, str)
- XrmDatabase *pdb;
- XrmBindingList bindings;
- XrmQuarkList quarks;
- char *str;
-#endif
{
XrmValue value;
@@ -1088,13 +1087,17 @@ void XrmQPutStringResource(pdb, bindings, quarks, str)
*/
#define DEF_BUFF_SIZE 8192
-static void GetIncludeFile();
+static void GetIncludeFile(
+ XrmDatabase db,
+ _Xconst char *base,
+ _Xconst char *fname,
+ int fnamelen);
-static void GetDatabase(db, str, filename, doall)
- XrmDatabase db;
- register char *str;
- char *filename;
- Bool doall;
+static void GetDatabase(
+ XrmDatabase db,
+ _Xconst register char *str,
+ _Xconst char *filename,
+ Bool doall)
{
char *rhs;
char *lhs, lhs_s[DEF_BUFF_SIZE];
@@ -1191,7 +1194,7 @@ static void GetDatabase(db, str, filename, doall)
while (is_space(bits = next_char(c, str))) {};
/* must have a starting " */
if (c == '"') {
- char *fname = str+1;
+ _Xconst char *fname = str+1;
len = 0;
do {
if (only_pcs) {
@@ -1518,17 +1521,11 @@ static void GetDatabase(db, str, filename, doall)
(*db->methods->mbfinish)(db->mbstate);
}
-#if NeedFunctionPrototypes
-void XrmPutStringResource(
+void
+XrmPutStringResource(
XrmDatabase *pdb,
_Xconst char*specifier,
_Xconst char*str)
-#else
-void XrmPutStringResource(pdb, specifier, str)
- XrmDatabase *pdb;
- char *specifier;
- char *str;
-#endif
{
XrmValue value;
XrmBinding bindings[MAXDBDEPTH+1];
@@ -1544,15 +1541,10 @@ void XrmPutStringResource(pdb, specifier, str)
}
-#if NeedFunctionPrototypes
-void XrmPutLineResource(
+void
+XrmPutLineResource(
XrmDatabase *pdb,
_Xconst char*line)
-#else
-void XrmPutLineResource(pdb, line)
- XrmDatabase *pdb;
- char *line;
-#endif
{
if (!*pdb) *pdb = NewDatabase();
_XLockMutex(&(*pdb)->linfo);
@@ -1560,13 +1552,9 @@ void XrmPutLineResource(pdb, line)
_XUnlockMutex(&(*pdb)->linfo);
}
-#if NeedFunctionPrototypes
-XrmDatabase XrmGetStringDatabase(
+XrmDatabase
+XrmGetStringDatabase(
_Xconst char *data)
-#else
-XrmDatabase XrmGetStringDatabase(data)
- char *data;
-#endif
{
XrmDatabase db;
@@ -1584,12 +1572,15 @@ XrmDatabase XrmGetStringDatabase(data)
*/
static char *
-ReadInFile(filename)
-char * filename;
+ReadInFile(_Xconst char *filename)
{
register int fd, size;
char * filebuf;
+#ifdef __UNIXOS2__
+ filename = __XOS2RedirRoot(filename);
+#endif
+
/*
* MS-Windows and OS/2 note: Default open mode includes O_TEXT
*/
@@ -1598,11 +1589,11 @@ char * filename;
/*
* MS-Windows and OS/2 note: depending on how the sources are
- * untarred, the newlines in resource files may or may not have
- * been * expanded to CRLF. Either way the size returned by fstat
- * is sufficient to read the file into because in text-mode any
- * CRLFs in a file will be converted to newlines (LF) with the
- * result that * the number of bytes actually read with be <=
+ * untarred, the newlines in resource files may or may not have
+ * been expanded to CRLF. Either way the size returned by fstat
+ * is sufficient to read the file into because in text-mode any
+ * CRLFs in a file will be converted to newlines (LF) with the
+ * result that the number of bytes actually read with be <=
* to the size returned by fstat.
*/
GetSizeOfFile(fd, size);
@@ -1613,6 +1604,17 @@ char * filename;
}
size = read (fd, filebuf, size);
+#ifdef __UNIXOS2__
+ { /* kill CRLF */
+ int i,k;
+ for (i=k=0; i<size; i++)
+ if (filebuf[i] != 0x0d) {
+ filebuf[k++] = filebuf[i];
+ }
+ filebuf[k] = 0;
+ }
+#endif
+
if (size < 0) {
close (fd);
Xfree(filebuf);
@@ -1625,11 +1627,11 @@ char * filename;
}
static void
-GetIncludeFile(db, base, fname, fnamelen)
- XrmDatabase db;
- char *base;
- char *fname;
- int fnamelen;
+GetIncludeFile(
+ XrmDatabase db,
+ _Xconst char *base,
+ _Xconst char *fname,
+ int fnamelen)
{
int len;
char *str;
@@ -1654,13 +1656,9 @@ GetIncludeFile(db, base, fname, fnamelen)
Xfree(str);
}
-#if NeedFunctionPrototypes
-XrmDatabase XrmGetFileDatabase(
+XrmDatabase
+XrmGetFileDatabase(
_Xconst char *filename)
-#else
-XrmDatabase XrmGetFileDatabase(filename)
- char *filename;
-#endif
{
XrmDatabase db;
char *str;
@@ -1676,17 +1674,11 @@ XrmDatabase XrmGetFileDatabase(filename)
return db;
}
-#if NeedFunctionPrototypes
-Status XrmCombineFileDatabase(
+Status
+XrmCombineFileDatabase(
_Xconst char *filename,
XrmDatabase *target,
Bool override)
-#else
-Status XrmCombineFileDatabase(filename, target, override)
- char *filename;
- XrmDatabase *target;
- Bool override;
-#endif
{
XrmDatabase db;
char *str;
@@ -1712,12 +1704,12 @@ Status XrmCombineFileDatabase(filename, target, override)
* stop if user proc returns True. level is current depth in database.
*/
/*ARGSUSED*/
-static Bool EnumLTable(table, names, classes, level, closure)
- LTable table;
- XrmNameList names;
- XrmClassList classes;
- register int level;
- register EClosure closure;
+static Bool EnumLTable(
+ LTable table,
+ XrmNameList names,
+ XrmClassList classes,
+ register int level,
+ register EClosure closure)
{
register VEntry *bucket;
register int i;
@@ -1758,10 +1750,10 @@ static Bool EnumLTable(table, names, classes, level, closure)
return False;
}
-static Bool EnumAllNTable(table, level, closure)
- NTable table;
- register int level;
- register EClosure closure;
+static Bool EnumAllNTable(
+ NTable table,
+ register int level,
+ register EClosure closure)
{
register NTable *bucket;
register int i;
@@ -1792,17 +1784,22 @@ static Bool EnumAllNTable(table, level, closure)
/* recurse on every table in the table, arbitrary order.
* stop if user proc returns True. level is current depth in database.
*/
-static Bool EnumNTable(table, names, classes, level, closure)
- NTable table;
- XrmNameList names;
- XrmClassList classes;
- register int level;
- register EClosure closure;
+static Bool EnumNTable(
+ NTable table,
+ XrmNameList names,
+ XrmClassList classes,
+ register int level,
+ register EClosure closure)
{
register NTable entry;
register XrmQuark q;
register unsigned int leaf;
- Bool (*get)();
+ Bool (*get)(
+ NTable table,
+ XrmNameList names,
+ XrmClassList classes,
+ register int level,
+ EClosure closure);
Bool bilevel;
/* find entries named ename, leafness leaf, tight or loose, and call get */
@@ -1863,7 +1860,7 @@ static Bool EnumNTable(table, names, classes, level, closure)
leaf = 0;
bilevel = !names[1];
} else {
- get = EnumLTable; /* bottom of recursion */
+ get = (getNTableEProcp)EnumLTable; /* bottom of recursion */
leaf = 1;
bilevel = False;
}
@@ -1906,7 +1903,7 @@ static Bool EnumNTable(table, names, classes, level, closure)
if (!*names)
break;
if (!names[1] && closure->mode != XrmEnumAllLevels) {
- get = EnumLTable; /* bottom of recursion */
+ get = (getNTableEProcp)EnumLTable; /* bottom of recursion */
leaf = 1;
}
ILOOSE(*names); /* loose names */
@@ -1950,13 +1947,13 @@ static Bool EnumNTable(table, names, classes, level, closure)
/* call the proc for every value in the database, arbitrary order.
* stop if the proc returns True.
*/
-Bool XrmEnumerateDatabase(db, names, classes, mode, proc, closure)
- XrmDatabase db;
- XrmNameList names;
- XrmClassList classes;
- int mode;
- DBEnumProc proc;
- XPointer closure;
+Bool XrmEnumerateDatabase(
+ XrmDatabase db,
+ XrmNameList names,
+ XrmClassList classes,
+ int mode,
+ DBEnumProc proc,
+ XPointer closure)
{
XrmBinding bindings[MAXDBDEPTH+2];
XrmQuark quarks[MAXDBDEPTH+2];
@@ -1986,10 +1983,10 @@ Bool XrmEnumerateDatabase(db, names, classes, mode, proc, closure)
return retval;
}
-static void PrintBindingQuarkList(bindings, quarks, stream)
- XrmBindingList bindings;
- XrmQuarkList quarks;
- FILE *stream;
+static void PrintBindingQuarkList(
+ XrmBindingList bindings,
+ XrmQuarkList quarks,
+ FILE *stream)
{
Bool firstNameSeen;
@@ -2006,13 +2003,13 @@ static void PrintBindingQuarkList(bindings, quarks, stream)
/* output out the entry in correct file syntax */
/*ARGSUSED*/
-static Bool DumpEntry(db, bindings, quarks, type, value, data)
- XrmDatabase *db;
- XrmBindingList bindings;
- XrmQuarkList quarks;
- XrmRepresentation *type;
- XrmValuePtr value;
- XPointer data;
+static Bool DumpEntry(
+ XrmDatabase *db,
+ XrmBindingList bindings,
+ XrmQuarkList quarks,
+ XrmRepresentation *type,
+ XrmValuePtr value,
+ XPointer data)
{
FILE *stream = (FILE *)data;
register unsigned int i;
@@ -2054,9 +2051,9 @@ static Bool DumpEntry(db, bindings, quarks, type, value, data)
#ifdef DEBUG
-void PrintTable(table, file)
- NTable table;
- FILE *file;
+void PrintTable(
+ NTable table,
+ FILE *file)
{
XrmBinding bindings[MAXDBDEPTH+1];
XrmQuark quarks[MAXDBDEPTH+1];
@@ -2077,15 +2074,10 @@ void PrintTable(table, file)
#endif /* DEBUG */
-#if NeedFunctionPrototypes
-void XrmPutFileDatabase(
+void
+XrmPutFileDatabase(
XrmDatabase db,
_Xconst char *fileName)
-#else
-void XrmPutFileDatabase(db, fileName)
- XrmDatabase db;
- char *fileName;
-#endif
{
FILE *file;
XrmQuark empty = NULLQUARK;
@@ -2144,11 +2136,11 @@ void XrmPutFileDatabase(db, fileName)
/* add tight/loose entry to the search list, return True if list is full */
/*ARGSUSED*/
-static Bool AppendLEntry(table, names, classes, closure)
- LTable table;
- XrmNameList names;
- XrmClassList classes;
- register SClosure closure;
+static Bool AppendLEntry(
+ LTable table,
+ XrmNameList names,
+ XrmClassList classes,
+ register SClosure closure)
{
/* check for duplicate */
if (closure->idx >= 0 && closure->list[closure->idx] == table)
@@ -2163,11 +2155,11 @@ static Bool AppendLEntry(table, names, classes, closure)
/* add loose entry to the search list, return True if list is full */
/*ARGSUSED*/
-static Bool AppendLooseLEntry(table, names, classes, closure)
- LTable table;
- XrmNameList names;
- XrmClassList classes;
- register SClosure closure;
+static Bool AppendLooseLEntry(
+ LTable table,
+ XrmNameList names,
+ XrmClassList classes,
+ register SClosure closure)
{
/* check for duplicate */
if (closure->idx >= 0 && closure->list[closure->idx] == table)
@@ -2183,22 +2175,26 @@ static Bool AppendLooseLEntry(table, names, classes, closure)
}
/* search for a leaf table */
-static Bool SearchNEntry(table, names, classes, closure)
- NTable table;
- XrmNameList names;
- XrmClassList classes;
- SClosure closure;
+static Bool SearchNEntry(
+ NTable table,
+ XrmNameList names,
+ XrmClassList classes,
+ SClosure closure)
{
register NTable entry;
register XrmQuark q;
register unsigned int leaf;
- Bool (*get)();
+ Bool (*get)(
+ NTable table,
+ XrmNameList names,
+ XrmClassList classes,
+ SClosure closure);
if (names[1]) {
get = SearchNEntry; /* recurse */
leaf = 0;
} else {
- get = AppendLEntry; /* bottom of recursion */
+ get = (getNTableSProcp)AppendLEntry; /* bottom of recursion */
leaf = 1;
}
GTIGHTLOOSE(*names, AppendLooseLEntry); /* do name, tight and loose */
@@ -2213,7 +2209,7 @@ static Bool SearchNEntry(table, names, classes, closure)
if (!*names)
break;
if (!names[1]) {
- get = AppendLEntry; /* bottom of recursion */
+ get = (getNTableSProcp)AppendLEntry; /* bottom of recursion */
leaf = 1;
}
GLOOSE(*names, AppendLooseLEntry); /* loose names */
@@ -2247,12 +2243,12 @@ static Bool SearchNEntry(table, names, classes, closure)
return False;
}
-Bool XrmQGetSearchList(db, names, classes, searchList, listLength)
- XrmDatabase db;
- XrmNameList names;
- XrmClassList classes;
- XrmSearchList searchList; /* RETURN */
- int listLength;
+Bool XrmQGetSearchList(
+ XrmDatabase db,
+ XrmNameList names,
+ XrmClassList classes,
+ XrmSearchList searchList, /* RETURN */
+ int listLength)
{
register NTable table;
SClosureRec closure;
@@ -2292,16 +2288,16 @@ Bool XrmQGetSearchList(db, names, classes, searchList, listLength)
return True;
}
-Bool XrmQGetSearchResource(searchList, name, class, pType, pValue)
- XrmSearchList searchList;
- register XrmName name;
- register XrmClass class;
- XrmRepresentation *pType; /* RETURN */
- XrmValue *pValue; /* RETURN */
+Bool XrmQGetSearchResource(
+ XrmSearchList searchList,
+ register XrmName name,
+ register XrmClass class,
+ XrmRepresentation *pType, /* RETURN */
+ XrmValue *pValue) /* RETURN */
{
register LTable *list;
register LTable table;
- register VEntry entry;
+ register VEntry entry = NULL;
int flags;
/* find tight or loose entry */
@@ -2381,11 +2377,11 @@ Bool XrmQGetSearchResource(searchList, name, class, pType, pValue)
}
/* look for a tight/loose value */
-static Bool GetVEntry(table, names, classes, closure)
- LTable table;
- XrmNameList names;
- XrmClassList classes;
- VClosure closure;
+static Bool GetVEntry(
+ LTable table,
+ XrmNameList names,
+ XrmClassList classes,
+ VClosure closure)
{
register VEntry entry;
register XrmQuark q;
@@ -2416,11 +2412,11 @@ static Bool GetVEntry(table, names, classes, closure)
}
/* look for a loose value */
-static Bool GetLooseVEntry(table, names, classes, closure)
- LTable table;
- XrmNameList names;
- XrmClassList classes;
- VClosure closure;
+static Bool GetLooseVEntry(
+ LTable table,
+ XrmNameList names,
+ XrmClassList classes,
+ VClosure closure)
{
register VEntry entry;
register XrmQuark q;
@@ -2458,23 +2454,27 @@ static Bool GetLooseVEntry(table, names, classes, closure)
}
/* recursive search for a value */
-static Bool GetNEntry(table, names, classes, closure)
- NTable table;
- XrmNameList names;
- XrmClassList classes;
- VClosure closure;
+static Bool GetNEntry(
+ NTable table,
+ XrmNameList names,
+ XrmClassList classes,
+ VClosure closure)
{
register NTable entry;
register XrmQuark q;
register unsigned int leaf;
- Bool (*get)();
+ Bool (*get)(
+ NTable table,
+ XrmNameList names,
+ XrmClassList classes,
+ VClosure closure);
NTable otable;
if (names[2]) {
get = GetNEntry; /* recurse */
leaf = 0;
} else {
- get = GetVEntry; /* bottom of recursion */
+ get = (getNTableVProcp)GetVEntry; /* bottom of recursion */
leaf = 1;
}
GTIGHTLOOSE(*names, GetLooseVEntry); /* do name, tight and loose */
@@ -2489,7 +2489,7 @@ static Bool GetNEntry(table, names, classes, closure)
if (!names[1])
break;
if (!names[2]) {
- get = GetVEntry; /* bottom of recursion */
+ get = (getNTableVProcp)GetVEntry; /* bottom of recursion */
leaf = 1;
}
GLOOSE(*names, GetLooseVEntry); /* do name, loose only */
@@ -2526,12 +2526,12 @@ static Bool GetNEntry(table, names, classes, closure)
return False;
}
-Bool XrmQGetResource(db, names, classes, pType, pValue)
- XrmDatabase db;
- XrmNameList names;
- XrmClassList classes;
- XrmRepresentation *pType; /* RETURN */
- XrmValuePtr pValue; /* RETURN */
+Bool XrmQGetResource(
+ XrmDatabase db,
+ XrmNameList names,
+ XrmClassList classes,
+ XrmRepresentation *pType, /* RETURN */
+ XrmValuePtr pValue) /* RETURN */
{
register NTable table;
VClosureRec closure;
@@ -2568,21 +2568,13 @@ Bool XrmQGetResource(db, names, classes, pType, pValue)
return False;
}
-#if NeedFunctionPrototypes
-Bool XrmGetResource(db, name_str, class_str, pType_str, pValue)
+Bool
+XrmGetResource(db, name_str, class_str, pType_str, pValue)
XrmDatabase db;
_Xconst char *name_str;
_Xconst char *class_str;
XrmString *pType_str; /* RETURN */
XrmValuePtr pValue; /* RETURN */
-#else
-Bool XrmGetResource(db, name_str, class_str, pType_str, pValue)
- XrmDatabase db;
- XrmString name_str;
- XrmString class_str;
- XrmString *pType_str; /* RETURN */
- XrmValuePtr pValue; /* RETURN */
-#endif
{
XrmName names[MAXDBDEPTH+1];
XrmClass classes[MAXDBDEPTH+1];
@@ -2597,8 +2589,8 @@ Bool XrmGetResource(db, name_str, class_str, pType_str, pValue)
}
/* destroy all values, plus table itself */
-static void DestroyLTable(table)
- LTable table;
+static void DestroyLTable(
+ LTable table)
{
register int i;
register VEntry *buckets;
@@ -2616,8 +2608,8 @@ static void DestroyLTable(table)
}
/* destroy all contained tables, plus table itself */
-static void DestroyNTable(table)
- NTable table;
+static void DestroyNTable(
+ NTable table)
{
register int i;
register NTable *buckets;
@@ -2636,18 +2628,19 @@ static void DestroyNTable(table)
Xfree((char *)table);
}
-char *XrmLocaleOfDatabase(db)
- XrmDatabase db;
+const char *
+XrmLocaleOfDatabase(
+ XrmDatabase db)
{
- char* retval;
+ const char* retval;
_XLockMutex(&db->linfo);
retval = (*db->methods->lcname)(db->mbstate);
_XUnlockMutex(&db->linfo);
return retval;
}
-void XrmDestroyDatabase(db)
- XrmDatabase db;
+void XrmDestroyDatabase(
+ XrmDatabase db)
{
register NTable table, next;
diff --git a/src/evtomask.c b/src/evtomask.c
index 80047503..1ce018cd 100644
--- a/src/evtomask.c
+++ b/src/evtomask.c
@@ -24,20 +24,15 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/evtomask.c,v 3.4 2001/07/29 05:01:11 tsi Exp $ */
#include <X11/X.h>
-#ifdef __STDC__
-#define Const const
-#else
-#define Const /**/
-#endif
-
/*
* This array can be used given an event type to determine the mask bits
* that could have generated it.
*/
-long Const _Xevent_to_mask [LASTEvent] = {
+long const _Xevent_to_mask [LASTEvent] = {
0, /* no event 0 */
0, /* no event 1 */
KeyPressMask, /* KeyPress */
diff --git a/src/globals.c b/src/globals.c
index aadfa878..0fa860dc 100644
--- a/src/globals.c
+++ b/src/globals.c
@@ -26,7 +26,7 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
-
+/* $XFree86: xc/lib/X11/globals.c,v 3.4 2001/07/29 05:01:11 tsi Exp $ */
/*
*
@@ -53,7 +53,7 @@ from The Open Group.
/*
* If we need to define extra variables for each global
*/
-#if (defined(__STDC__) && !defined(UNIXCPP)) || defined(ANSICPP)
+#if !defined(UNIXCPP) || defined(ANSICPP)
#define ZEROINIT(t,var,val) SetZero(t,var,val); \
SetZero (long, _libX_##var##Flag, 0); \
SetZero (void *, _libX_##var##Ptr, NULL)
diff --git a/src/imConv.c b/src/imConv.c
index e16fb4d2..e0015716 100644
--- a/src/imConv.c
+++ b/src/imConv.c
@@ -1,4 +1,4 @@
-/* $Xorg: imConv.c,v 1.5 2000/08/17 19:45:11 cpqbld Exp $ */
+/* $TOG: imConv.c /main/20 1998/06/17 15:46:41 kaleb $ */
/******************************************************************
Copyright 1991, 1992 by Fuji Xerox Co.,Ltd.
@@ -31,6 +31,9 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
fujiwara@a80.tech.yk.fujitsu.co.jp
******************************************************************/
+/* 2000 Modifier: Ivan Pascal The XFree86 Project.
+ */
+/* $XFree86: xc/lib/X11/imConv.c,v 1.32 2003/04/13 19:22:20 dawes Exp $ */
#define NEED_EVENTS
#include <stdio.h>
@@ -38,8 +41,6 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include "Xlcint.h"
#include "Ximint.h"
#include "XlcPubI.h"
-#define XK_PUBLISHING
-#include "X11/keysym.h"
#ifdef XKB
/*
@@ -53,716 +54,100 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#define XLOOKUPSTRING XLookupString
#endif
-/* bit (1<<i) means character is in codeset i */
-unsigned int _Xlatin1[128] = {
-0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-0x990ee, 0x88000, 0x89000, 0x89084, 0x0902e, 0x89000, 0x09080, 0x9908e,
-0x0908e, 0x89080, 0x88000, 0x89080, 0x89080, 0x990ee, 0x89000, 0x89008,
-0x9908e, 0x89080, 0x89084, 0x89084, 0x0908e, 0x89004, 0x89000, 0x99084,
-0x0900c, 0x89000, 0x88000, 0x89080, 0x09000, 0x09084, 0x09000, 0x88000,
-0x88004, 0x9800e, 0x9800e, 0x98008, 0x9800e, 0x98008, 0x98008, 0x88006,
-0x88004, 0x9800e, 0x88004, 0x9800e, 0x88004, 0x9800e, 0x9800e, 0x98004,
-0x90000, 0x88004, 0x88004, 0x98006, 0x9800e, 0x98008, 0x9800e, 0x8800e,
-0x98008, 0x88004, 0x9800e, 0x9800c, 0x9800e, 0x90002, 0x90000, 0x9800e,
-0x88004, 0x9800e, 0x9800e, 0x98008, 0x9800e, 0x98008, 0x98008, 0x88004,
-0x88004, 0x9800e, 0x88004, 0x9800e, 0x88004, 0x9800e, 0x9800e, 0x98004,
-0x90000, 0x88004, 0x88004, 0x98006, 0x9800e, 0x98008, 0x9800e, 0x8800e,
-0x98008, 0x88004, 0x9800e, 0x9800c, 0x9800e, 0x90002, 0x90000, 0x88000
-};
-
-/* bit (1<<i) means character is in codeset i */
-unsigned int _Xlatin2[128] = {
-0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-0x1800c, 0x10008, 0x00004, 0x00000, 0x0800c, 0x00000, 0x00000, 0x1800c,
-0x0800c, 0x00008, 0x00004, 0x00000, 0x00000, 0x1800c, 0x00008, 0x00004,
-0x1800c, 0x10008, 0x00008, 0x00000, 0x0800c, 0x00000, 0x00000, 0x00008,
-0x0800c, 0x00008, 0x00004, 0x00000, 0x00000, 0x00000, 0x00008, 0x00004,
-0x00000, 0x1800c, 0x1800c, 0x00000, 0x1800c, 0x00000, 0x00000, 0x08004,
-0x10008, 0x1800c, 0x10008, 0x1800c, 0x00000, 0x18008, 0x18008, 0x00000,
-0x00008, 0x00000, 0x00000, 0x18004, 0x1800c, 0x00000, 0x1800c, 0x0800c,
-0x00000, 0x00000, 0x0800c, 0x00000, 0x0800c, 0x10000, 0x00000, 0x1800c,
-0x00000, 0x1800c, 0x1800c, 0x00000, 0x1800c, 0x00000, 0x00000, 0x08004,
-0x10008, 0x1800c, 0x10008, 0x1800c, 0x00000, 0x1800c, 0x1800c, 0x00000,
-0x00008, 0x00000, 0x00000, 0x18004, 0x1800c, 0x00000, 0x1800c, 0x0800c,
-0x00000, 0x00000, 0x0800c, 0x00000, 0x0800c, 0x10000, 0x00000, 0x0000c
-};
-
-/* maps Cyrillic keysyms to 8859-5 */
-unsigned char _Xcyrillic[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80 - */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90 - */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0xf2, 0xf3, 0xf1, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xa0 - */
- 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0xfe, 0xff,
- 0xf0, 0xa2, 0xa3, 0xa1, 0xa4, 0xa5, 0xa6, 0xa7, /* 0xb0 - */
- 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0x00, 0xae, 0xaf,
- 0xee, 0xd0, 0xd1, 0xe6, 0xd4, 0xd5, 0xe4, 0xd3, /* 0xc0 - */
- 0xe5, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde,
- 0xdf, 0xef, 0xe0, 0xe1, 0xe2, 0xe3, 0xd6, 0xd2, /* 0xd0 - */
- 0xec, 0xeb, 0xd7, 0xe8, 0xed, 0xe9, 0xe7, 0xea,
- 0xce, 0xb0, 0xb1, 0xc6, 0xb4, 0xb5, 0xc4, 0xb3, /* 0xe0 - */
- 0xc5, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe,
- 0xbf, 0xcf, 0xc0, 0xc1, 0xc2, 0xc3, 0xb6, 0xb2, /* 0xf0 - */
- 0xcc, 0xcb, 0xb7, 0xc8, 0xcd, 0xc9, 0xc7, 0xca
-};
-
-/* maps Cyrillic keysyms to KOI8-R */
-unsigned char _Xkoi8[] =
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0xa3, 0x00, 0x00, 0x00, 0x00, /* 10 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, /* 11 */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 12 */
- 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
- 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 13 */
- 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
- 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 14 */
- 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
- 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 15 */
- 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff};
-
-unsigned short _Xkoi8_size = sizeof _Xkoi8;
-
-/* maps Greek keysyms to 8859-7 */
-unsigned char _Xgreek[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80 - */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90 - */
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0xb6, 0xb8, 0xb9, 0xba, 0xda, 0x00, 0xbc, /* 0xa0 - */
- 0xbe, 0xdb, 0x00, 0xbf, 0x00, 0x00, 0xb5, 0xaf,
- 0x00, 0xdc, 0xdd, 0xde, 0xdf, 0xfa, 0xc0, 0xfc, /* 0xb0 - */
- 0xfd, 0xfb, 0xe0, 0xfe, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0xc0 - */
- 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
- 0xd0, 0xd1, 0xd3, 0x00, 0xd4, 0xd5, 0xd6, 0xd7, /* 0xd0 - */
- 0xd8, 0xd9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xe0 - */
- 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
- 0xf0, 0xf1, 0xf3, 0xf2, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xf0 - */
- 0xf8, 0xf9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-};
-
-
-static unsigned short keysym_to_unicode_1a1_1ff[] = {
- 0x0104, 0x02d8, 0x0141, 0x0000, 0x013d, 0x015a, 0x0000, /* 0x01a0-0x01a7 */
- 0x0000, 0x0160, 0x015e, 0x0164, 0x0179, 0x0000, 0x017d, 0x017b, /* 0x01a8-0x01af */
- 0x0000, 0x0105, 0x02db, 0x0142, 0x0000, 0x013e, 0x015b, 0x02c7, /* 0x01b0-0x01b7 */
- 0x0000, 0x0161, 0x015f, 0x0165, 0x017a, 0x02dd, 0x017e, 0x017c, /* 0x01b8-0x01bf */
- 0x0154, 0x0000, 0x0000, 0x0102, 0x0000, 0x0139, 0x0106, 0x0000, /* 0x01c0-0x01c7 */
- 0x010c, 0x0000, 0x0118, 0x0000, 0x011a, 0x0000, 0x0000, 0x010e, /* 0x01c8-0x01cf */
- 0x0110, 0x0143, 0x0147, 0x0000, 0x0000, 0x0150, 0x0000, 0x0000, /* 0x01d0-0x01d7 */
- 0x0158, 0x016e, 0x0000, 0x0170, 0x0000, 0x0000, 0x0162, 0x0000, /* 0x01d8-0x01df */
- 0x0155, 0x0000, 0x0000, 0x0103, 0x0000, 0x013a, 0x0107, 0x0000, /* 0x01e0-0x01e7 */
- 0x010d, 0x0000, 0x0119, 0x0000, 0x011b, 0x0000, 0x0000, 0x010f, /* 0x01e8-0x01ef */
- 0x0111, 0x0144, 0x0148, 0x0000, 0x0000, 0x0151, 0x0000, 0x0000, /* 0x01f0-0x01f7 */
- 0x0159, 0x016f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0163, 0x02d9 /* 0x01f8-0x01ff */
-};
-
-static unsigned short keysym_to_unicode_2a1_2fe[] = {
- 0x0126, 0x0000, 0x0000, 0x0000, 0x0000, 0x0124, 0x0000, /* 0x02a0-0x02a7 */
- 0x0000, 0x0130, 0x0000, 0x011e, 0x0134, 0x0000, 0x0000, 0x0000, /* 0x02a8-0x02af */
- 0x0000, 0x0127, 0x0000, 0x0000, 0x0000, 0x0000, 0x0125, 0x0000, /* 0x02b0-0x02b7 */
- 0x0000, 0x0131, 0x0000, 0x011f, 0x0135, 0x0000, 0x0000, 0x0000, /* 0x02b8-0x02bf */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x010a, 0x0108, 0x0000, /* 0x02c0-0x02c7 */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x02c8-0x02cf */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0120, 0x0000, 0x0000, /* 0x02d0-0x02d7 */
- 0x011c, 0x0000, 0x0000, 0x0000, 0x0000, 0x016c, 0x015c, 0x0000, /* 0x02d8-0x02df */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x010b, 0x0109, 0x0000, /* 0x02e0-0x02e7 */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x02e8-0x02ef */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0121, 0x0000, 0x0000, /* 0x02f0-0x02f7 */
- 0x011d, 0x0000, 0x0000, 0x0000, 0x0000, 0x016c, 0x015d /* 0x02f8-0x02ff */
-};
-
-static unsigned short keysym_to_unicode_3a2_3fe[] = {
- 0x0138, 0x0156, 0x0000, 0x0128, 0x013b, 0x0000, /* 0x03a0-0x03a7 */
- 0x0000, 0x0000, 0x0112, 0x0122, 0x0166, 0x0000, 0x0000, 0x0000, /* 0x03a8-0x03af */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x013c, 0x0000, /* 0x03b0-0x03b7 */
- 0x0000, 0x0000, 0x0113, 0x0123, 0x0167, 0x014a, 0x0000, 0x014b, /* 0x03b8-0x03bf */
- 0x0100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x012e, /* 0x03c0-0x03c7 */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0116, 0x0000, 0x0000, 0x012a, /* 0x03c8-0x03cf */
- 0x0000, 0x0145, 0x014c, 0x0136, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x03d0-0x03d7 */
- 0x0000, 0x0172, 0x0000, 0x0000, 0x0000, 0x0168, 0x016a, 0x0000, /* 0x03d8-0x03df */
- 0x0101, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x012f, /* 0x03e0-0x03e7 */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0117, 0x0000, 0x0000, 0x012b, /* 0x03e8-0x03ef */
- 0x0000, 0x0146, 0x014d, 0x0137, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x03f0-0x03f7 */
- 0x0000, 0x0173, 0x0000, 0x0000, 0x0000, 0x0169, 0x016b /* 0x03f8-0x03ff */
-};
-
-static unsigned short keysym_to_unicode_4a1_4df[] = {
- 0x3002, 0x3008, 0x3009, 0x3001, 0x30fb, 0x30f2, 0x30a1, /* 0x04a0-0x04a7 */
- 0x30a3, 0x03a5, 0x30a7, 0x30a9, 0x30e3, 0x30e5, 0x30e7, 0x30c3, /* 0x04a8-0x04af */
- 0x30fc, 0x03a2, 0x30a4, 0x30a6, 0x30a8, 0x30aa, 0x30ab, 0x30ad, /* 0x04b0-0x04b7 */
- 0x30af, 0x30b1, 0x30b3, 0x30b5, 0x30b7, 0x30b9, 0x30bb, 0x30bd, /* 0x04b8-0x04bf */
- 0x30bf, 0x30c1, 0x30c4, 0x30c6, 0x30c8, 0x30ca, 0x30cb, 0x30cc, /* 0x04c0-0x04c7 */
- 0x30cd, 0x30ce, 0x30cf, 0x30d2, 0x30d5, 0x30d8, 0x30db, 0x30de, /* 0x04c8-0x04cf */
- 0x30df, 0x30e0, 0x30e1, 0x30e2, 0x30e4, 0x30e6, 0x30e8, 0x30e9, /* 0x04d0-0x04d7 */
- 0x30ea, 0x30eb, 0x30ec, 0x30ed, 0x30ef, 0x30f3, 0x309b, 0x309c /* 0x04d8-0x04df */
-};
-
-static unsigned short keysym_to_unicode_5ac_5f2[] = {
- 0x060c, 0x0000, 0x0000, 0x0000, /* 0x05ac-0x05af */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x05b0-0x05b7 */
- 0x0000, 0x0000, 0x0000, 0x061b, 0x0000, 0x0000, 0x0000, 0x061f, /* 0x05b8-0x05bf */
- 0x0000, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, /* 0x05c0-0x05c7 */
- 0x0628, 0x0629, 0x062a, 0x062b, 0x062c, 0x062d, 0x062e, 0x062f, /* 0x05c8-0x05cf */
- 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, /* 0x05d0-0x05d7 */
- 0x0638, 0x0639, 0x063a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x05d8-0x05df */
- 0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647, /* 0x05e0-0x05e7 */
- 0x0648, 0x0649, 0x064a, 0x064b, 0x064c, 0x064d, 0x064e, 0x064f, /* 0x05e8-0x05ef */
- 0x0650, 0x0651, 0x0652 /* 0x05f0-0x05f7 */
-};
-
-static unsigned short keysym_to_unicode_6a1_6ff[] = {
- 0x0452, 0x0453, 0x0451, 0x0454, 0x0455, 0x0456, 0x0457, /* 0x06a0-0x06a7 */
- 0x0458, 0x0459, 0x045a, 0x045b, 0x045c, 0x0000, 0x045e, 0x045f, /* 0x06a8-0x06af */
- 0x2116, 0x0402, 0x0403, 0x0401, 0x0404, 0x0405, 0x0406, 0x0407, /* 0x06b0-0x06b7 */
- 0x0408, 0x0409, 0x040a, 0x040b, 0x040c, 0x0000, 0x040e, 0x040f, /* 0x06b8-0x06bf */
- 0x044e, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, /* 0x06c0-0x06c7 */
- 0x0445, 0x0438, 0x0439, 0x043a, 0x043b, 0x043c, 0x043d, 0x043e, /* 0x06c8-0x06cf */
- 0x043f, 0x044f, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, /* 0x06d0-0x06d7 */
- 0x044c, 0x044b, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044a, /* 0x06d8-0x06df */
- 0x042e, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, /* 0x06e0-0x06e7 */
- 0x0425, 0x0418, 0x0419, 0x041a, 0x041b, 0x041c, 0x041d, 0x041e, /* 0x06e8-0x06ef */
- 0x041f, 0x042f, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, /* 0x06f0-0x06f7 */
- 0x042c, 0x042d, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042a /* 0x06f8-0x06ff */
-};
-
-static unsigned short keysym_to_unicode_7a1_7f9[] = {
- 0x0386, 0x0388, 0x0389, 0x038a, 0x03aa, 0x0000, 0x038c, /* 0x07a0-0x07a7 */
- 0x038e, 0x03ab, 0x0000, 0x038f, 0x0000, 0x0000, 0x0385, 0x2015, /* 0x07a8-0x07af */
- 0x0000, 0x03ac, 0x03ad, 0x03ae, 0x03af, 0x03ca, 0x0390, 0x03cc, /* 0x07b0-0x07b7 */
- 0x03cd, 0x03cb, 0x03b0, 0x03ce, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x07b8-0x07bf */
- 0x0000, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, /* 0x07c0-0x07c7 */
- 0x0398, 0x0399, 0x039a, 0x039b, 0x039c, 0x039d, 0x039e, 0x039f, /* 0x07c8-0x07cf */
- 0x03a0, 0x03a1, 0x03a2, 0x03a3, 0x03a4, 0x03a5, 0x03a6, 0x03a7, /* 0x07d0-0x07d7 */
- 0x03a8, 0x03a9, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x07d8-0x07df */
- 0x0000, 0x03b1, 0x03b2, 0x03b3, 0x03b4, 0x03b5, 0x03b6, 0x03b7, /* 0x07e0-0x07e7 */
- 0x03b8, 0x03b9, 0x03ba, 0x03bb, 0x03bc, 0x03bd, 0x03be, 0x03bf, /* 0x07e8-0x07ef */
- 0x03c0, 0x03c1, 0x03c2, 0x03c3, 0x03c4, 0x03c5, 0x03c6, 0x03c7, /* 0x07f0-0x07f7 */
- 0x03c8, 0x03c9 /* 0x07f8-0x07ff */
-};
-
-static unsigned short keysym_to_unicode_8a4_8fe[] = {
- 0x2320, 0x2321, 0x0000, 0x231c, /* 0x08a0-0x08a7 */
- 0x231d, 0x231e, 0x231f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x08a8-0x08af */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x08b0-0x08b7 */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x2264, 0x2260, 0x2265, 0x222b, /* 0x08b8-0x08bf */
- 0x2234, 0x0000, 0x221e, 0x0000, 0x0000, 0x2207, 0x0000, 0x0000, /* 0x08c0-0x08c7 */
- 0x2245, 0x2246, 0x0000, 0x0000, 0x0000, 0x0000, 0x22a2, 0x0000, /* 0x08c8-0x08cf */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x221a, 0x0000, /* 0x08d0-0x08d7 */
- 0x0000, 0x0000, 0x2282, 0x2283, 0x2229, 0x222a, 0x2227, 0x2228, /* 0x08d8-0x08df */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x08e0-0x08e7 */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x08e8-0x08ef */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0192, 0x0000, /* 0x08f0-0x08f7 */
- 0x0000, 0x0000, 0x0000, 0x2190, 0x2191, 0x2192, 0x2193 /* 0x08f8-0x08ff */
-};
-
-static unsigned short keysym_to_unicode_9df_9f8[] = {
- 0x2422, /* 0x09d8-0x09df */
- 0x2666, 0x25a6, 0x2409, 0x240c, 0x240d, 0x240a, 0x0000, 0x0000, /* 0x09e0-0x09e7 */
- 0x240a, 0x240b, 0x2518, 0x2510, 0x250c, 0x2514, 0x253c, 0x2500, /* 0x09e8-0x09ef */
- 0x0000, 0x0000, 0x0000, 0x0000, 0x251c, 0x2524, 0x2534, 0x252c, /* 0x09f0-0x09f7 */
- 0x2502 /* 0x09f8-0x09ff */
-};
+typedef unsigned int ucs4_t;
-static unsigned short keysym_to_unicode_aa1_afe[] = {
- 0x2003, 0x2002, 0x2004, 0x2005, 0x2007, 0x2008, 0x2009, /* 0x0aa0-0x0aa7 */
- 0x200a, 0x2014, 0x2013, 0x0000, 0x0000, 0x0000, 0x2026, 0x2025, /* 0x0aa8-0x0aaf */
- 0x2153, 0x2154, 0x2155, 0x2156, 0x2157, 0x2158, 0x2159, 0x215a, /* 0x0ab0-0x0ab7 */
- 0x2105, 0x0000, 0x0000, 0x2012, 0x2039, 0x2024, 0x203a, 0x0000, /* 0x0ab8-0x0abf */
- 0x0000, 0x0000, 0x0000, 0x215b, 0x215c, 0x215d, 0x215e, 0x0000, /* 0x0ac0-0x0ac7 */
- 0x0000, 0x2122, 0x2120, 0x00ae, 0x25c1, 0x25b7, 0x25cb, 0x25ad, /* 0x0ac8-0x0acf */
- 0x2018, 0x2019, 0x201c, 0x201d, 0x211e, 0x0000, 0x2032, 0x2033, /* 0x0ad0-0x0ad7 */
- 0x0000, 0x271d, 0x0000, 0x220e, 0x25c2, 0x2023, 0x25cf, 0x25ac, /* 0x0ad8-0x0adf */
- 0x25e6, 0x25ab, 0x25ae, 0x25b5, 0x25bf, 0x2606, 0x2022, 0x25aa, /* 0x0ae0-0x0ae7 */
- 0x25b4, 0x25be, 0x261a, 0x261b, 0x2663, 0x2666, 0x2665, 0x0000, /* 0x0ae8-0x0aef */
- 0x2720, 0x2020, 0x2021, 0x2713, 0x2612, 0x266f, 0x266d, 0x2642, /* 0x0af0-0x0af7 */
- 0x2640, 0x2121, 0x2315, 0x2117, 0x2038, 0x201a, 0x201e /* 0x0af8-0x0aff */
-};
-
-/* none of the APL keysyms match the Unicode characters */
+typedef int (*ucstocsConvProc)(
+ XPointer,
+ unsigned char *,
+ ucs4_t,
+ int
+);
-static unsigned short keysym_to_unicode_cdf_cfa[] = {
- 0x2017, /* 0x0cd8-0x0cdf */
- 0x05d0, 0x05d1, 0x05d2, 0x05d3, 0x05d4, 0x05d5, 0x05d6, 0x05d7, /* 0x0ce0-0x0ce7 */
- 0x05d8, 0x05d9, 0x05da, 0x05db, 0x05dc, 0x05dd, 0x05de, 0x05df, /* 0x0ce8-0x0cef */
- 0x05e0, 0x05e1, 0x05e2, 0x05e3, 0x05e4, 0x05e5, 0x05e6, 0x05e7, /* 0x0cf0-0x0cf7 */
- 0x05e8, 0x05e9, 0x05ea /* 0x0cf8-0x0cff */
+struct SubstRec {
+ char* encoding_name;
+ char* charset_name;
};
-static unsigned short keysym_to_unicode_da1_df9[] = {
- 0x0e01, 0x0e02, 0x0e03, 0x0e04, 0x0e05, 0x0e06, 0x0e07, /* 0x0da0-0x0da7 */
- 0x0e08, 0x0e09, 0x0e0a, 0x0e0b, 0x0e0c, 0x0e0d, 0x0e0e, 0x0e0f, /* 0x0da8-0x0daf */
- 0x0e10, 0x0e11, 0x0e12, 0x0e13, 0x0e14, 0x0e15, 0x0e16, 0x0e17, /* 0x0db0-0x0db7 */
- 0x0e18, 0x0e19, 0x0e1a, 0x0e1b, 0x0e1c, 0x0e1d, 0x0e1e, 0x0e1f, /* 0x0db8-0x0dbf */
- 0x0e20, 0x0e21, 0x0e22, 0x0e23, 0x0e24, 0x0e25, 0x0e26, 0x0e27, /* 0x0dc0-0x0dc7 */
- 0x0e28, 0x0e29, 0x0e2a, 0x0e2b, 0x0e2c, 0x0e2d, 0x0e2e, 0x0e2f, /* 0x0dc8-0x0dcf */
- 0x0e30, 0x0e31, 0x0e32, 0x0e33, 0x0e34, 0x0e35, 0x0e36, 0x0e37, /* 0x0dd0-0x0dd7 */
- 0x0e38, 0x0e39, 0x0e3a, 0x0e3b, 0x0e3c, 0x0e3d, 0x0e3e, 0x0e3f, /* 0x0dd8-0x0ddf */
- 0x0e40, 0x0e41, 0x0e42, 0x0e43, 0x0e44, 0x0e45, 0x0e46, 0x0e47, /* 0x0de0-0x0de7 */
- 0x0e48, 0x0e49, 0x0e4a, 0x0e4b, 0x0e4c, 0x0e4d, 0x0000, 0x0000, /* 0x0de8-0x0def */
- 0x0e50, 0x0e51, 0x0e52, 0x0e53, 0x0e54, 0x0e55, 0x0e56, 0x0e57, /* 0x0df0-0x0df7 */
- 0x0e58, 0x0e59 /* 0x0df8-0x0dff */
+static struct SubstRec SubstTable[] = {
+ {"STRING", "ISO8859-1"},
+ {"TIS620", "TIS620-0"},
+ {"UTF-8", "ISO10646-1"}
};
+#define num_substitute (sizeof SubstTable / sizeof SubstTable[0])
-static unsigned short keysym_to_unicode_ea0_eff[] = {
- 0x0000, 0x1101, 0x1101, 0x11aa, 0x1102, 0x11ac, 0x11ad, 0x1103, /* 0x0ea0-0x0ea7 */
- 0x1104, 0x1105, 0x11b0, 0x11b1, 0x11b2, 0x11b3, 0x11b4, 0x11b5, /* 0x0ea8-0x0eaf */
- 0x11b6, 0x1106, 0x1107, 0x1108, 0x11b9, 0x1109, 0x110a, 0x110b, /* 0x0eb0-0x0eb7 */
- 0x110c, 0x110d, 0x110e, 0x110f, 0x1110, 0x1111, 0x1112, 0x1161, /* 0x0eb8-0x0ebf */
- 0x1162, 0x1163, 0x1164, 0x1165, 0x1166, 0x1167, 0x1168, 0x1169, /* 0x0ec0-0x0ec7 */
- 0x116a, 0x116b, 0x116c, 0x116d, 0x116e, 0x116f, 0x1170, 0x1171, /* 0x0ec8-0x0ecf */
- 0x1172, 0x1173, 0x1174, 0x1175, 0x11a8, 0x11a9, 0x11aa, 0x11ab, /* 0x0ed0-0x0ed7 */
- 0x11ac, 0x11ad, 0x11ae, 0x11af, 0x11b0, 0x11b1, 0x11b2, 0x11b3, /* 0x0ed8-0x0edf */
- 0x11b4, 0x11b5, 0x11b6, 0x11b7, 0x11b8, 0x11b9, 0x11ba, 0x11bb, /* 0x0ee0-0x0ee7 */
- 0x11bc, 0x11bd, 0x11be, 0x11bf, 0x11c0, 0x11c1, 0x11c2, 0x0000, /* 0x0ee8-0x0eef */
- 0x0000, 0x0000, 0x1140, 0x0000, 0x0000, 0x1159, 0x119e, 0x0000, /* 0x0ef0-0x0ef7 */
- 0x11eb, 0x0000, 0x11f9, 0x0000, 0x0000, 0x0000, 0x0000, 0x20a9, /* 0x0ef8-0x0eff */
-};
-
-static unsigned short keysym_to_unicode_13bc_13be[] = {
- 0x0152, 0x0153, 0x0178 /* 0x13b8-0x13bf */
-};
-
-static unsigned short keysym_to_unicode_20a0_20ac[] = {
- 0x20a0, 0x20a1, 0x20a2, 0x20a3, 0x20a4, 0x20a5, 0x20a6, 0x20a7, /* 0x20a0-0x20a7 */
- 0x20a8, 0x20a9, 0x20aa, 0x20ab, 0x20ac /* 0x20a8-0x20af */
-};
-
-static int keysym_to_ucs4(keysym)
- KeySym keysym;
-{
- if (keysym > 0 && keysym < 0x100)
- return keysym;
- else if (keysym > 0x1a0 && keysym < 0x200)
- return keysym_to_unicode_1a1_1ff[keysym - 0x1a1];
- else if (keysym > 0x2a0 && keysym < 0x2ff)
- return keysym_to_unicode_2a1_2fe[keysym - 0x2a1];
- else if (keysym > 0x3a1 && keysym < 0x3ff)
- return keysym_to_unicode_3a2_3fe[keysym - 0x3a2];
- else if (keysym > 0x4a0 && keysym < 0x4e0)
- return keysym_to_unicode_4a1_4df[keysym - 0x4a1];
- else if (keysym > 0x5ab && keysym < 0x5f3)
- return keysym_to_unicode_5ac_5f2[keysym - 0x5ac];
- else if (keysym > 0x6a0 && keysym < 0x700)
- return keysym_to_unicode_6a1_6ff[keysym - 0x6a1];
- else if (keysym > 0x7a0 && keysym < 0x7fa)
- return keysym_to_unicode_7a1_7f9[keysym - 0x7a1];
- else if (keysym > 0x8a3 && keysym < 0x8ff)
- return keysym_to_unicode_8a4_8fe[keysym - 0x8a4];
- else if (keysym > 0x9de && keysym < 0x9f9)
- return keysym_to_unicode_9df_9f8[keysym - 0x9df];
- else if (keysym > 0xaa0 && keysym < 0xaff)
- return keysym_to_unicode_aa1_afe[keysym - 0xaa1];
- else if (keysym > 0xcde && keysym < 0xcfb)
- return keysym_to_unicode_cdf_cfa[keysym - 0xcdf];
- else if (keysym > 0xda0 && keysym < 0xdfa)
- return keysym_to_unicode_da1_df9[keysym - 0xda1];
- else if (keysym > 0xe9f && keysym < 0xf00)
- return keysym_to_unicode_ea0_eff[keysym - 0xea0];
- else if (keysym > 0x13bb && keysym < 0x13bf)
- return keysym_to_unicode_13bc_13be[keysym - 0x13bc];
- else if (keysym > 0x209f && keysym < 0x20ad)
- return keysym_to_unicode_20a0_20ac[keysym - 0x20a0];
- else
- return 0;
-}
-
-struct CodesetRec {
- unsigned long locale_code;
- char* locale_name;
- char* escape_seq;
-};
-
-#define sLatin1 0L
-#define sLatin2 1L
-#define sLatin3 2L
-#define sLatin4 3L
-#define sKana 4L
-#define sX0201 0x01000004L
-#define sArabic 5L
-#define sCyrillic 6L
-#define sKoi8 0x01000006L
-#define sGreek 7L
-#define sHebrew 12L
-#define sThai 13L
-#define sKorean 14L
-#define sLatin5 15L
-#define sLatin6 16L
-#define sLatin7 17L
-#define sLatin8 18L
-#define sLatin9 19L
-#define sCurrency 32L
-#define sUTF8 0x02000000L
-
-static struct CodesetRec CodesetTable[] = {
- {sLatin1, "ISO8859-1", "\033-A"},
- {sLatin2, "ISO8859-2", "\033-B"},
- {sLatin3, "ISO8859-3", "\033-C"},
- {sLatin4, "ISO8859-4", "\033-D"},
- {sArabic, "ISO8859-6", "\033-G"},
- {sCyrillic, "ISO8859-5", "\033-L"},
- {sGreek, "ISO8859-7", "\033-F"},
- {sHebrew, "ISO8859-8", "\033-H"},
- {sLatin5, "ISO8859-9", "\033-M"},
- {sLatin6, "ISO8859-10", "\033-V"},
- {sThai, "TACTIS", "\033-T"},
- {sKorean, "ko.euc", "\033$(C"},
- {sThai, "ISO8859-11", "\033-T"},
-#if 0
- {sLatin8, "ISO8859-12", "\033-?"},/* Celtic, superceded by -14 */
- {sLatin7, "ISO8859-13", "\033-?"},/* Baltic Rim */
- {sLatin8 "ISO8859-14", "\033-?"},/* Celtic */
-#endif
- {sUTF8, "utf8", "\033%B"},
- /* Non-standard */
- {sKoi8, "KOI8-R", "\033%/1\200\210koi8-r\002"},
- {sLatin9, "FCD8859-15", "\033%/1\200\213fcd8859-15\002"},/* a.k.a. Latin-0 */
-};
-
-#define NUM_CODESETS sizeof CodesetTable / sizeof CodesetTable[0]
-
-#ifndef XK_emdash
-#define XK_emdash 0xaa9
-#endif
-
-
-/* ================================================================ */
/*
-File: ConvertUTF.C
-Author: Mark E. Davis
-Copyright (C) 1994 Taligent, Inc. All rights reserved.
-
-This code is copyrighted. Under the copyright laws, this code may not
-be copied, in whole or part, without prior written consent of Taligent.
-
-Taligent grants the right to use or reprint this code as long as this
-ENTIRE copyright notice is reproduced in the code or reproduction.
-The code is provided AS-IS, AND TALIGENT DISCLAIMS ALL WARRANTIES,
-EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN
-NO EVENT WILL TALIGENT BE LIABLE FOR ANY DAMAGES WHATSOEVER (INCLUDING,
-WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS
-INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY
-LOSS) ARISING OUT OF THE USE OR INABILITY TO USE THIS CODE, EVEN
-IF TALIGENT HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-BECAUSE SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF
-LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES, THE ABOVE
-LIMITATION MAY NOT APPLY TO YOU.
-
-RESTRICTED RIGHTS LEGEND: Use, duplication, or disclosure by the
-government is subject to restrictions as set forth in subparagraph
-(c)(l)(ii) of the Rights in Technical Data and Computer Software
-clause at DFARS 252.227-7013 and FAR 52.227-19.
-
-This code may be protected by one or more U.S. and International
-Patents.
-
-TRADEMARKS: Taligent and the Taligent Design Mark are registered
-trademarks of Taligent, Inc.
-*/
-/* ================================================================ */
-
-#define kReplacementCharacter 0x0000FFFDUL
-#define kMaximumUCS2 0x0000FFFFUL
-#define kMaximumUCS4 0x7FFFFFFFUL
-
-typedef enum {
- ok, /* conversion successful */
- sourceExhausted, /* partial character in source, but hit end */
- targetExhausted /* insuff. room in target for conversion */
-} ConversionResult;
-
-#define halfShift 10
-#define halfBase 0x0010000UL
-#define halfMask 0x3FFUL
-#define kSurrogateHighStart 0xD800UL
-#define kSurrogateHighEnd 0xDBFFUL
-#define kSurrogateLowStart 0xDC00UL
-#define kSurrogateLowEnd 0xDFFFUL
-
-typedef unsigned int UCS4; /* wchar_t, but on AIX, SunOS wchar_t is 16 bits */
-typedef unsigned char UTF8;
-
-static UCS4 offsetsFromUTF8[6] = {
- 0x00000000UL, 0x00003080UL, 0x000E2080UL,
- 0x03C82080UL, 0xFA082080UL, 0x82082080UL
-};
-
-static char bytesFromUTF8[256] = {
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
- 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
- 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 3,3,3,3,3,3,3,3,4,4,4,4,5,5,5,5
-};
-
-static UTF8 firstByteMark[7] = {
- 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC
-};
-
-static ConversionResult ConvertUCS4toUTF8 (
- UCS4** sourceStart, UCS4* sourceEnd,
- UTF8** targetStart, UTF8* targetEnd)
+ * Given the name of a charset, returns the pointer to convertors
+ * from UCS char to specified charset char.
+ * This converter is needed for _XimGetCharCode subroutine.
+ */
+XPointer
+_XimGetLocaleCode (
+ _Xconst char* encoding_name)
{
- ConversionResult result = ok;
- register UCS4* source = *sourceStart;
- register UTF8* target = *targetStart;
- while (source < sourceEnd) {
- register UCS4 ch;
- register unsigned short bytesToWrite = 0;
- register const UCS4 byteMask = 0xBF;
- register const UCS4 byteMark = 0x80;
- ch = *source++;
- if (ch >= kSurrogateHighStart && ch <= kSurrogateHighEnd
- && source < sourceEnd) {
- register UCS4 ch2 = *source;
- if (ch2 >= kSurrogateLowStart && ch2 <= kSurrogateLowEnd) {
- ch = ((ch - kSurrogateHighStart) << halfShift)
- + (ch2 - kSurrogateLowStart) + halfBase;
- ++source;
- };
- };
- if (ch < 0x80) { bytesToWrite = 1;
- } else if (ch < 0x800) { bytesToWrite = 2;
- } else if (ch < 0x10000) { bytesToWrite = 3;
- } else if (ch < 0x200000) { bytesToWrite = 4;
- } else if (ch < 0x4000000) { bytesToWrite = 5;
- } else if (ch <= kMaximumUCS4){ bytesToWrite = 6;
- } else { bytesToWrite = 2;
- ch = kReplacementCharacter;
- }; /* I wish there were a smart way to avoid this conditional */
-
- target += bytesToWrite;
- if (target > targetEnd) {
- target -= bytesToWrite; result = targetExhausted; break;
- };
- switch (bytesToWrite) { /* note: code falls through cases! */
- case 6: *--target = (ch | byteMark) & byteMask; ch >>= 6;
- case 5: *--target = (ch | byteMark) & byteMask; ch >>= 6;
- case 4: *--target = (ch | byteMark) & byteMask; ch >>= 6;
- case 3: *--target = (ch | byteMark) & byteMask; ch >>= 6;
- case 2: *--target = (ch | byteMark) & byteMask; ch >>= 6;
- case 1: *--target = ch | firstByteMark[bytesToWrite];
- };
- target += bytesToWrite;
- };
- *sourceStart = source;
- *targetStart = target;
- return result;
+ XPointer cvt = _Utf8GetConvByName(encoding_name);
+ if (!cvt && encoding_name) {
+ int i;
+ for (i = 0; i < num_substitute; i++)
+ if (!strcmp(encoding_name, SubstTable[i].encoding_name))
+ return _Utf8GetConvByName(SubstTable[i].charset_name);
+ }
+ return cvt;
}
+/*
+ * Returns the locale dependent representation of a keysym.
+ * The locale's encoding is passed in form of pointer to UCS convertor.
+ * The resulting multi-byte sequence is placed starting at buf (a buffer
+ * with nbytes bytes, nbytes should be >= 8) and is NUL terminated.
+ * Returns the length of the resulting multi-byte sequence, excluding the
+ * terminating NUL byte. Return 0 if the keysym is not representable in the
+ * locale
+ */
/*ARGSUSED*/
int
-#if NeedFunctionPrototypes
-_XGetCharCode (
- unsigned long locale_code,
- KeySym keysym,
- unsigned char* buf,
- int nbytes)
-#else
-_XGetCharCode (locale_code, keysym, buf, nbytes)
- unsigned long locale_code;
- KeySym keysym;
- unsigned char *buf;
- int nbytes;
-#endif
+_XimGetCharCode (
+ XPointer ucs_conv,
+ KeySym keysym,
+ unsigned char* buf,
+ int nbytes)
{
- unsigned long kset;
- int count,isLatin1;
-
- if (locale_code == sUTF8) {
- unsigned int ucs4[2];
- unsigned int* ucs4vec[1];
- unsigned char* utf8vec[1];
-
- ucs4[0] = keysym_to_ucs4 (keysym);
- ucs4[1] = 0;
- ucs4vec[0] = ucs4;
- utf8vec[0] = buf;
-
- (void) ConvertUCS4toUTF8 (ucs4vec, &ucs4[1], utf8vec, &buf[nbytes]);
- return (strlen ((char*) buf));
+ int count = 0;
+ ucstocsConvProc cvt = (ucstocsConvProc) ucs_conv;
+ ucs4_t ucs4;
+
+ if (keysym < 0x80) {
+ buf[0] = (char) keysym;
+ count = 1;
+ } else if (cvt) {
+ ucs4 = KeySymToUcs4(keysym);
+ if (ucs4)
+ count = (*cvt)((XPointer)NULL, buf, ucs4, nbytes);
}
- kset = locale_code&0xffffff;
-
- isLatin1 = ((keysym&0xffffff00)==0);
- count = 0;
-
- if ( keysym == NoSymbol )
- return 0;
- else if ((keysym >> 8) == kset) {
- count = 1;
- switch (kset) {
- case sKana:
- *buf = (unsigned char)(keysym & 0xff);
- if (buf[0] == 0x7e)
- count = 0;
- break;
- case sCyrillic:
- if (locale_code == sKoi8)
- *buf = _Xkoi8[keysym & 0x7f];
- else
- *buf = _Xcyrillic[keysym & 0x7f];
- break;
- case sGreek:
- *buf = _Xgreek[keysym & 0x7f];
- if (!buf[0])
- count = 0;
- break;
- default:
- *buf = (unsigned char)(keysym & 0xff);
- break;
- }
- } else if ((locale_code != 0) && (isLatin1) && (keysym & 0x80)) {
- if (_Xlatin1[keysym & 0x7f] & (1 << kset)) {
- /* Most non-latin1 locales use some latin-1 upper half
- keysyms as defined by bitpatterns in array latin1.
- Enforce it. */
- *buf = (unsigned char)(keysym & 0xff);
- count = 1;
- } else {
- count= 1;
- if ((locale_code == sHebrew) && (keysym == XK_multiply))
- *buf = (unsigned char)0xaa;
- else if ((locale_code == sHebrew) && (keysym == XK_division))
- *buf = (unsigned char)0xba;
- else if ((locale_code == sCyrillic) && (keysym == XK_section))
- *buf = (unsigned char)0xfd;
- else if ((locale_code == sX0201) && (keysym == XK_yen))
- *buf = (unsigned char)0x5c;
- else count = 0;
- }
- } else if (isLatin1) {
- if ((locale_code == sX0201) &&
- ((keysym == XK_backslash) || (keysym == XK_asciitilde)))
- count = 0;
- if ( (keysym&0x80)==0 ) {
- *buf = (unsigned char)(keysym&0x7f);
- count = 1;
- }
- } else if ((keysym >> 8) == sLatin2) {
- count = 1;
- if ((keysym & 0x80) && (_Xlatin2[keysym & 0x7f] & (1 << kset)))
- *buf = (unsigned char)(keysym & 0xff);
- else if (locale_code == sLatin5) {
- if (keysym == XK_Scedilla)
- *buf = (unsigned char)0xde;
- else if (keysym == XK_scedilla)
- *buf = (unsigned char)0xfe;
- else count = 0;
- } else if (locale_code == sLatin9) {
- if (keysym == XK_Scaron)
- *buf = (unsigned char)0xa6;
- else if (keysym == XK_scaron)
- *buf = (unsigned char)0xa8;
- else if (keysym == XK_Zcaron)
- *buf = (unsigned char)0xb4;
- else if (keysym == XK_zcaron)
- *buf = (unsigned char)0xb8;
- else count = 0;
- } else count = 0;
- } else if ((keysym >> 8) == sLatin3) {
- if (locale_code == sLatin5) {
- count = 1;
- switch (keysym) {
- case XK_Gbreve: *buf = (unsigned char)0xd0; break;
- case XK_gbreve: *buf = (unsigned char)0xf0; break;
- case XK_Scedilla: *buf = (unsigned char)0xde; break;
- case XK_scedilla: *buf = (unsigned char)0xfe; break;
- case XK_Iabovedot: *buf = (unsigned char)0xdd; break;
- case XK_idotless: *buf = (unsigned char)0xfd; break;
- default: count = 0;
- }
- }
- } else if ((keysym >> 8) == sLatin4) {
- if (locale_code == sLatin6) {
- count = 1;
- switch (keysym) {
- case XK_Emacron: *buf = (unsigned char)0xa2; break;
- case XK_Gcedilla: *buf = (unsigned char)0xa3; break;
- case XK_Imacron: *buf = (unsigned char)0xa4; break;
- case XK_Lcedilla: *buf = (unsigned char) 0xa8; break;
- case XK_Dstroke: *buf = (unsigned char)0xa9; break;
- case XK_Scaron: *buf = (unsigned char)0xaa; break;
- case XK_Tslash: *buf = (unsigned char)0xab; break;
- case XK_Zcaron: *buf = (unsigned char)0xac; break;
- case XK_Umacron: *buf = (unsigned char)0xae; break;
- case XK_Utilde: *buf = (unsigned char)0xd7; break;
- case XK_ENG: *buf = (unsigned char)0xaf; break;
- case XK_emacron: *buf = (unsigned char)0xb2; break;
- case XK_gcedilla: *buf = (unsigned char)0xb3; break;
- case XK_imacron: *buf = (unsigned char)0xb4; break;
- case XK_lcedilla: *buf = (unsigned char) 0xb8; break;
- case XK_dstroke: *buf = (unsigned char)0xb9; break;
- case XK_scaron: *buf = (unsigned char)0xba; break;
- case XK_tslash: *buf = (unsigned char)0xbb; break;
- case XK_zcaron: *buf = (unsigned char)0xbc; break;
- case XK_umacron: *buf = (unsigned char)0xbe; break;
- case XK_utilde: *buf = (unsigned char)0xf7; break;
- case XK_eng: *buf = (unsigned char)0xbf; break;
- case XK_kra: *buf = (unsigned char)0xff; break;
- case XK_Itilde:
- case XK_Kcedilla:
- case XK_Iogonek:
- case XK_Ncedilla:
- case XK_Omacron:
- case XK_Uogonek:
- case XK_itilde:
- case XK_kcedilla:
- case XK_iogonek:
- case XK_ncedilla:
- case XK_omacron:
- case XK_uogonek: *buf = (unsigned char)(keysym & 0xff); break;
- default: count = 0;
- }
- }
- } else if (locale_code == sLatin9 && keysym == XK_EuroSign) {
- count = 1;
- *buf = (unsigned char)0xa4;
- } else if ((locale_code == sGreek) &&
- ((keysym == XK_leftsinglequotemark) ||
- (keysym == XK_rightsinglequotemark))) {
- *buf = (unsigned char)(keysym - (XK_leftsinglequotemark - 0xa1));
- count = 1;
- }
+ if (count < 0)
+ count = 0;
if (count>nbytes)
- return nbytes;
+ return nbytes;
if (count<nbytes)
- buf[count]= '\0';
+ buf[count]= '\0';
return count;
}
#ifdef XKB
-static int lookup_string (event, buffer, nbytes, keysym, status)
- XKeyEvent* event;
- char* buffer;
- int nbytes;
- KeySym* keysym;
- XComposeStatus* status;
+static int lookup_string(
+ XKeyEvent* event,
+ char* buffer,
+ int nbytes,
+ KeySym* keysym,
+ XComposeStatus* status)
{
int ret;
unsigned ctrls = XkbGetXlibControls (event->display);
XkbSetXlibControls (event->display,
XkbLC_ForceLatin1Lookup, XkbLC_ForceLatin1Lookup);
- ret = XLookupString(event, buffer, nbytes, keysym, status);
- XkbSetXlibControls (event->display, ctrls, ctrls);
+ ret = XLookupString(event, (char *)buffer, nbytes, keysym, status);
+ XkbSetXlibControls (event->display,
+ XkbLC_ForceLatin1Lookup, ctrls);
return ret;
}
#endif
@@ -778,45 +163,20 @@ _XimLookupMBText(ic, event, buffer, nbytes, keysym, status)
KeySym* keysym;
XComposeStatus* status;
{
- int count, local_count;
+ int count;
KeySym symbol;
- struct CodesetRec *cset;
- int i;
Status dummy;
Xim im = (Xim)ic->core.im;
- XLCd lcd = im->core.lcd;
- unsigned char local_buf[BUF_SIZE];
+ XimCommonPrivateRec* private = &im->private.common;
unsigned char look[BUF_SIZE];
-
+ ucs4_t ucs4;
/* force a latin-1 lookup for compatibility */
count = XLOOKUPSTRING(event, (char *)buffer, nbytes, &symbol, status);
if (keysym != NULL) *keysym = symbol;
if ((nbytes == 0) || (symbol == NoSymbol)) return count;
- for (cset = NULL, i = 0; i < NUM_CODESETS; i++) {
- if (strcmp (XLC_PUBLIC(lcd,encoding_name), CodesetTable[i].locale_name) == 0) {
- cset = &CodesetTable[i];
- break;
- }
- }
- if (count == 0 && cset != NULL ||
- (count == 1 && (symbol > 0x7f && symbol < 0xff00) &&
- cset != NULL && cset->locale_code != 0)) {
- if ((count = _XGetCharCode(cset->locale_code, symbol,
- look, sizeof look))) {
- strcpy((char*) local_buf, cset->escape_seq);
- local_count = strlen(cset->escape_seq);
- local_buf[local_count] = look[0];
- local_count++;
- local_buf[local_count] = '\0';
- if ((count = im->methods->ctstombs(ic->core.im,
- (char*) local_buf, local_count,
- (char *)buffer, nbytes, &dummy)) < 0) {
- count = 0;
- }
- }
- } else if (count > 1) { /* not ASCII Encoding */
+ if (count > 1) {
memcpy(look, (char *)buffer,count);
look[count] = '\0';
if ((count = im->methods->ctstombs(ic->core.im,
@@ -824,8 +184,40 @@ _XimLookupMBText(ic, event, buffer, nbytes, keysym, status)
buffer, nbytes, &dummy)) < 0) {
count = 0;
}
+ } else if ((count == 0) ||
+ (count == 1 && (symbol > 0x7f && symbol < 0xff00))) {
+
+ XPointer from = (XPointer) &ucs4;
+ XPointer to = (XPointer) look;
+ int from_len = 1;
+ int to_len = BUF_SIZE;
+ XPointer args[1];
+ XlcCharSet charset;
+ args[0] = (XPointer) &charset;
+ ucs4 = (ucs4_t) KeySymToUcs4(symbol);
+ if (!ucs4)
+ return 0;
+
+ if (_XlcConvert(private->ucstoc_conv,
+ &from, &from_len, &to, &to_len,
+ args, 1 ) != 0) {
+ count = 0;
+ } else {
+ from = (XPointer) look;
+ to = (XPointer) buffer;
+ from_len = BUF_SIZE - to_len;
+ to_len = nbytes;
+ args[0] = (XPointer) charset;
+ if (_XlcConvert(private->cstomb_conv,
+ &from, &from_len, &to, &to_len,
+ args, 1 ) != 0) {
+ count = 0;
+ } else {
+ count = nbytes - to_len;
+ }
+ }
}
- /*
+ /* FIXME:
* we should make sure that if the character is a Latin1 character
* and it's on the right side, and we're in a non-Latin1 locale
* that this is a valid Latin1 character for this locale.
@@ -842,51 +234,60 @@ _XimLookupWCText(ic, event, buffer, nbytes, keysym, status)
KeySym* keysym;
XComposeStatus* status;
{
- int count, local_count;
+ int count;
KeySym symbol;
- struct CodesetRec *cset;
- int i;
Status dummy;
Xim im = (Xim)ic->core.im;
- XLCd lcd = im->core.lcd;
- unsigned char local_buf[BUF_SIZE];
+ XimCommonPrivateRec* private = &im->private.common;
unsigned char look[BUF_SIZE];
+ ucs4_t ucs4;
/* force a latin-1 lookup for compatibility */
count = XLOOKUPSTRING(event, (char *)look, nbytes, &symbol, status);
if (keysym != NULL) *keysym = symbol;
if ((nbytes == 0) || (symbol == NoSymbol)) return count;
- for (cset = NULL, i = 0; i < NUM_CODESETS; i++) {
- if (strcmp (XLC_PUBLIC(lcd,encoding_name), CodesetTable[i].locale_name) == 0) {
- cset = &CodesetTable[i];
- break;
- }
- }
- if (count == 0 && cset != NULL ||
- (count == 1 && (symbol > 0x7f && symbol < 0xff00) &&
- cset != NULL && cset->locale_code != 0)) {
- if ((count = _XGetCharCode(cset->locale_code, symbol,
- look, sizeof look))) {
- strcpy((char*) local_buf, cset->escape_seq);
- local_count = strlen(cset->escape_seq);
- local_buf[local_count] = look[0];
- local_count++;
- local_buf[local_count] = '\0';
- if ((count = im->methods->ctstowcs(ic->core.im,
- (char*) local_buf, local_count,
- buffer, nbytes, &dummy)) < 0) {
- count = 0;
- }
- }
- } else if (count > 1) {
+ if (count > 1) {
if ((count = im->methods->ctstowcs(ic->core.im,
(char*) look, count,
buffer, nbytes, &dummy)) < 0) {
count = 0;
}
+ } else if ((count == 0) ||
+ (count == 1 && (symbol > 0x7f && symbol < 0xff00))) {
+
+ XPointer from = (XPointer) &ucs4;
+ XPointer to = (XPointer) look;
+ int from_len = 1;
+ int to_len = BUF_SIZE;
+ XPointer args[1];
+ XlcCharSet charset;
+ args[0] = (XPointer) &charset;
+ ucs4 = (ucs4_t) KeySymToUcs4(symbol);
+ if (!ucs4)
+ return 0;
+
+ if (_XlcConvert(private->ucstoc_conv,
+ &from, &from_len, &to, &to_len,
+ args, 1 ) != 0) {
+ count = 0;
+ } else {
+ from = (XPointer) look;
+ to = (XPointer) buffer;
+ from_len = BUF_SIZE - to_len;
+ to_len = nbytes;
+ args[0] = (XPointer) charset;
+
+ if (_XlcConvert(private->cstowc_conv,
+ &from, &from_len, &to, &to_len,
+ args, 1 ) != 0) {
+ count = 0;
+ } else {
+ count = nbytes - to_len;
+ }
+ }
} else
- /*
+ /* FIXME:
* we should make sure that if the character is a Latin1 character
* and it's on the right side, and we're in a non-Latin1 locale
* that this is a valid Latin1 character for this locale.
@@ -895,3 +296,61 @@ _XimLookupWCText(ic, event, buffer, nbytes, keysym, status)
return count;
}
+
+int
+_XimLookupUTF8Text(ic, event, buffer, nbytes, keysym, status)
+ Xic ic;
+ XKeyEvent* event;
+ char* buffer;
+ int nbytes;
+ KeySym* keysym;
+ XComposeStatus* status;
+{
+ int count;
+ KeySym symbol;
+ Status dummy;
+ Xim im = (Xim)ic->core.im;
+ XimCommonPrivateRec* private = &im->private.common;
+ unsigned char look[BUF_SIZE];
+ ucs4_t ucs4;
+
+ /* force a latin-1 lookup for compatibility */
+ count = XLOOKUPSTRING(event, (char *)buffer, nbytes, &symbol, status);
+ if (keysym != NULL) *keysym = symbol;
+ if ((nbytes == 0) || (symbol == NoSymbol)) return count;
+
+ if (count > 1) {
+ memcpy(look, (char *)buffer,count);
+ look[count] = '\0';
+ if ((count = im->methods->ctstoutf8(ic->core.im,
+ (char*) look, count,
+ buffer, nbytes, &dummy)) < 0) {
+ count = 0;
+ }
+ } else if ((count == 0) ||
+ (count == 1 && (symbol > 0x7f && symbol < 0xff00))) {
+
+ XPointer from = (XPointer) &ucs4;
+ int from_len = 1;
+ XPointer to = (XPointer) buffer;
+ int to_len = nbytes;
+
+ ucs4 = (ucs4_t) KeySymToUcs4(symbol);
+ if (!ucs4)
+ return 0;
+
+ if (_XlcConvert(private->ucstoutf8_conv,
+ &from, &from_len, &to, &to_len,
+ NULL, 0) != 0) {
+ count = 0;
+ } else {
+ count = nbytes - to_len;
+ }
+ }
+ /* FIXME:
+ * we should make sure that if the character is a Latin1 character
+ * and it's on the right side, and we're in a non-Latin1 locale
+ * that this is a valid Latin1 character for this locale.
+ */
+ return count;
+}
diff --git a/src/locking.c b/src/locking.c
index 96926975..3508dea8 100644
--- a/src/locking.c
+++ b/src/locking.c
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/locking.c,v 1.5 2003/04/13 19:22:22 dawes Exp $ */
/*
* Author: Stephen Gildea, MIT X Consortium
@@ -46,10 +47,6 @@ in this Software without prior written authorization from The Open Group.
#define NUM_FREE_CVLS 4
-/* in XOpenDis.c */
-extern int (*_XInitDisplayLock_fn)();
-extern void (*_XFreeDisplayLock_fn)();
-
/* in lcWrap.c */
extern LockInfoPtr _Xi18n_lock;
@@ -77,7 +74,7 @@ _Xthread_waiter()
}
#endif /* WIN32 */
-static xthread_t _Xthread_self()
+static xthread_t _Xthread_self(void)
{
return xthread_self();
}
@@ -91,28 +88,28 @@ static void _XLockMutex(lip,file,line)
char* file;
int line;
#else
-static void _XLockMutex(lip)
- LockInfoPtr lip;
+static void _XLockMutex(
+ LockInfoPtr lip)
#endif
{
xmutex_lock(lip->lock);
}
#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
-static void _XUnlockMutex(lip,file,line)
- LockInfoPtr lip;
- char* file;
- int line;
+static void _XUnlockMutex(
+ LockInfoPtr lip,
+ char* file,
+ int line)
#else
-static void _XUnlockMutex(lip)
- LockInfoPtr lip;
+static void _XUnlockMutex(
+ LockInfoPtr lip)
#endif
{
xmutex_unlock(lip->lock);
}
-static void _XCreateMutex(lip)
- LockInfoPtr lip;
+static void _XCreateMutex(
+ LockInfoPtr lip)
{
lip->lock = xmutex_malloc();
if (lip->lock) {
@@ -121,8 +118,8 @@ static void _XCreateMutex(lip)
}
}
-static void _XFreeMutex(lip)
- LockInfoPtr lip;
+static void _XFreeMutex(
+ LockInfoPtr lip)
{
xmutex_clear(lip->lock);
xmutex_free(lip->lock);
@@ -146,10 +143,10 @@ static struct {
int lock_hist_loc = 0; /* next slot to fill */
-static void _XLockDisplayWarn(dpy,file,line)
- Display *dpy;
- char *file; /* source file, from macro */
- int line;
+static void _XLockDisplayWarn(
+ Display *dpy,
+ char *file, /* source file, from macro */
+ int line)
{
xthread_t self;
xthread_t old_locker;
@@ -204,8 +201,8 @@ static void _XUnlockDisplay(dpy,file,line)
char *file;
int line;
#else
-static void _XUnlockDisplay(dpy)
- Display *dpy;
+static void _XUnlockDisplay(
+ Display *dpy)
#endif
{
#ifdef XTHREADS_WARN
@@ -241,8 +238,8 @@ static void _XUnlockDisplay(dpy)
}
-static struct _XCVList *_XCreateCVL(dpy)
- Display *dpy;
+static struct _XCVList *_XCreateCVL(
+ Display *dpy)
{
struct _XCVList *cvl;
@@ -269,9 +266,9 @@ static struct _XCVList *_XCreateCVL(dpy)
Allocates and returns a queue element. */
static struct _XCVList *
-_XPushReader(dpy, tail)
- Display *dpy;
- struct _XCVList ***tail;
+_XPushReader(
+ Display *dpy,
+ struct _XCVList ***tail)
{
struct _XCVList *cvl;
@@ -287,10 +284,10 @@ _XPushReader(dpy, tail)
/* signal the next thread waiting to read the connection */
-static void _XPopReader(dpy, list, tail)
- Display *dpy;
- struct _XCVList **list;
- struct _XCVList ***tail;
+static void _XPopReader(
+ Display *dpy,
+ struct _XCVList **list,
+ struct _XCVList ***tail)
{
register struct _XCVList *front = *list;
@@ -333,9 +330,9 @@ static void _XConditionWait(cv, mutex,file,line)
char *file;
int line;
#else
-static void _XConditionWait(cv, mutex)
- xcondition_t cv;
- xmutex_t mutex;
+static void _XConditionWait(
+ xcondition_t cv,
+ xmutex_t mutex)
#endif
{
#ifdef XTHREADS_WARN
@@ -383,8 +380,8 @@ static void _XConditionSignal(cv,file,line)
char *file;
int line;
#else
-static void _XConditionSignal(cv)
- xcondition_t cv;
+static void _XConditionSignal(
+ xcondition_t cv)
#endif
{
#ifdef XTHREADS_WARN
@@ -402,8 +399,8 @@ static void _XConditionBroadcast(cv,file,line)
char *file;
int line;
#else
-static void _XConditionBroadcast(cv)
- xcondition_t cv;
+static void _XConditionBroadcast(
+ xcondition_t cv)
#endif
{
#ifdef XTHREADS_WARN
@@ -415,8 +412,8 @@ static void _XConditionBroadcast(cv)
}
-static void _XFreeDisplayLock(dpy)
- Display *dpy;
+static void _XFreeDisplayLock(
+ Display *dpy)
{
struct _XCVList *cvl;
@@ -452,8 +449,8 @@ static void _XFreeDisplayLock(dpy)
* wait for thread with user-level display lock to release it.
*/
-static void _XDisplayLockWait(dpy)
- Display *dpy;
+static void _XDisplayLockWait(
+ Display *dpy)
{
xthread_t self;
@@ -471,8 +468,8 @@ static void _XLockDisplay(dpy, file, line)
char *file; /* source file, from macro */
int line;
#else
-static void _XLockDisplay(dpy)
- Display *dpy;
+static void _XLockDisplay(
+ Display *dpy)
#endif
{
#ifdef XTHREADS_WARN
@@ -495,9 +492,9 @@ static void _XInternalLockDisplay(dpy, wskip, file, line)
char *file; /* source file, from macro */
int line;
#else
-static void _XInternalLockDisplay(dpy, wskip)
- Display *dpy;
- Bool wskip;
+static void _XInternalLockDisplay(
+ Display *dpy,
+ Bool wskip)
#endif
{
#ifdef XTHREADS_WARN
@@ -509,13 +506,8 @@ static void _XInternalLockDisplay(dpy, wskip)
_XDisplayLockWait(dpy);
}
-#if NeedFunctionPrototypes
static void _XUserLockDisplay(
register Display* dpy)
-#else
-static void _XUserLockDisplay(dpy)
- register Display* dpy;
-#endif
{
if (++dpy->lock->locking_level == 1) {
dpy->lock->lock_wait = _XDisplayLockWait;
@@ -523,13 +515,9 @@ static void _XUserLockDisplay(dpy)
}
}
-#if NeedFunctionPrototypes
+static
void _XUserUnlockDisplay(
register Display* dpy)
-#else
-void _XUserUnlockDisplay(dpy)
- register Display* dpy;
-#endif
{
if (dpy->lock->locking_level > 0 && --dpy->lock->locking_level == 0) {
/* signal other threads that might be waiting in XLockDisplay */
@@ -542,8 +530,8 @@ void _XUserUnlockDisplay(dpy)
/* returns 0 if initialized ok, -1 if unable to allocate
a mutex or other memory */
-static int _XInitDisplayLock(dpy)
- Display *dpy;
+static int _XInitDisplayLock(
+ Display *dpy)
{
dpy->lock_fns = (struct _XLockPtrs*)Xmalloc(sizeof(struct _XLockPtrs));
if (dpy->lock_fns == NULL)
diff --git a/src/locking.h b/src/locking.h
index 2b3afd32..96c99b97 100644
--- a/src/locking.h
+++ b/src/locking.h
@@ -24,6 +24,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/locking.h,v 1.4 2001/12/14 19:54:10 dawes Exp $ */
/*
* Author: Stephen Gildea, MIT X Consortium
@@ -46,9 +47,7 @@ struct _XCVList {
};
extern xthread_t (*_Xthread_self_fn)( /* in XlibInt.c */
-#if NeedFunctionPrototypes
void
-#endif
);
/* Display->lock is a pointer to one of these */
@@ -73,77 +72,57 @@ struct _XLockInfo {
struct _XCVList *free_cvls;
/* used only in XlibInt.c */
void (*pop_reader)(
-#if NeedNestedPrototypes
Display* /* dpy */,
struct _XCVList** /* list */,
struct _XCVList*** /* tail */
-#endif
);
struct _XCVList *(*push_reader)(
-#if NeedNestedPrototypes
Display * /* dpy */,
struct _XCVList*** /* tail */
-#endif
);
void (*condition_wait)(
-#if NeedNestedPrototypes
xcondition_t /* cv */,
xmutex_t /* mutex */
#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
, char* /* file */,
int /* line */
#endif
-#endif
);
void (*internal_lock_display)(
-#if NeedNestedPrototypes
Display* /* dpy */,
Bool /* wskip */
#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
, char* /* file */,
int /* line */
#endif
-#endif
);
/* used in XlibInt.c and locking.c */
void (*condition_signal)(
-#if NeedNestedPrototypes
xcondition_t /* cv */
#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
, char* /* file */,
int /* line */
#endif
-#endif
);
void (*condition_broadcast)(
-#if NeedNestedPrototypes
xcondition_t /* cv */
#if defined(XTHREADS_WARN) || defined(XTHREADS_FILE_LINE)
, char* /* file */,
int /* line */
#endif
-#endif
);
/* used in XlibInt.c and XLockDis.c */
void (*lock_wait)(
-#if NeedNestedPrototypes
Display* /* dpy */
-#endif
);
void (*user_lock_display)(
-#if NeedNestedPrototypes
Display* /* dpy */
-#endif
);
void (*user_unlock_display)(
-#if NeedNestedPrototypes
Display* /* dpy */
-#endif
);
struct _XCVList *(*create_cvl)(
-#if NeedNestedPrototypes
Display * /* dpy */
-#endif
);
};
@@ -170,4 +149,8 @@ typedef struct _LockInfoRec {
xmutex_t lock;
} LockInfoRec;
+/* XOpenDis.c */
+extern int (*_XInitDisplayLock_fn)(Display *dpy);
+extern void (*_XFreeDisplayLock_fn)(Display *dpy);
+
#endif /* _X_locking_H_ */
diff --git a/src/os2Stubs.c b/src/os2Stubs.c
index 6e3c4655..4fa953cf 100644
--- a/src/os2Stubs.c
+++ b/src/os2Stubs.c
@@ -28,7 +28,7 @@
*
*/
-/* $XFree86: xc/lib/X11/os2Stubs.c,v 3.1 2002/05/31 18:45:42 dawes Exp $ */
+/* $XFree86: xc/lib/X11/os2Stubs.c,v 3.0 1996/05/13 06:37:17 dawes Exp $ */
/* A few OS/2 functions needed in the X11 lib. Mainly, the file path redirection
* functions and the "optimized" select() for the clients */
diff --git a/src/udcInf.c b/src/udcInf.c
index c1392bed..b2a01727 100644
--- a/src/udcInf.c
+++ b/src/udcInf.c
@@ -32,6 +32,9 @@ from The Open Group.
* Modifier: Takanori Tateno FUJITSU LIMITED
*
*/
+
+/* $XFree86: xc/lib/X11/udcInf.c,v 1.6 2001/01/17 19:41:57 dawes Exp $ */
+
#include <stdio.h>
#include <locale.h>
#include <Xlib.h>
@@ -386,14 +389,15 @@ XlcCharSet charset;
char *src;
int size;
{
- int name_len,seq_len,i;
+ int name_len,seq_len,rest_len,i;
name_len = 2 + strlen(charset->encoding_name) + 1;
seq_len = strlen(charset->ct_sequence);
- if (name_len + seq_len + strlen(src) >= size)
+ rest_len = strlen(charset->encoding_name) + 1 + strlen(src);
+ if (name_len + seq_len + strlen(src) >= size || rest_len >= 0x4000)
return False;
strcpy(from,charset->ct_sequence);
- from[seq_len] = name_len / 128 + 128;
- from[seq_len+1] = name_len % 128 + 128;
+ from[seq_len] = (rest_len >> 7) + 128;
+ from[seq_len+1] = (rest_len & 0x7f) + 128;
strcpy(&from[seq_len + 2],charset->encoding_name);
from[seq_len+name_len-1] = 0x02; /* STX */
strcpy(&from[seq_len + name_len],src);
@@ -415,7 +419,7 @@ unsigned long *codepoint;
unsigned long from32[25];
unsigned long to32[25];
int i,j;
- char tmp[256],charsetname[256],src[10];
+ char charsetname[256],src[10];
XlcConv conv;
XlcCharSet charset;
XPointer args[2];
@@ -652,7 +656,7 @@ int *num_gi;
unsigned int from32[25];
unsigned int to32[25];
int i,j;
- char tmp[256],charsetname[256],src[10];
+ char charsetname[256],src[10];
XlcConv conv;
XlcCharSet charset;
XPointer args[2];
diff --git a/src/util/makekeys.c b/src/util/makekeys.c
index 24272bfb..768f5e8b 100644
--- a/src/util/makekeys.c
+++ b/src/util/makekeys.c
@@ -26,6 +26,7 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
+/* $XFree86: xc/lib/X11/util/makekeys.c,v 3.6 2001/07/25 15:04:48 dawes Exp $ */
/* Constructs hash tables for XStringToKeysym and XKeysymToString. */
@@ -33,12 +34,7 @@ from The Open Group.
#include <X11/Xos.h>
#include <X11/keysymdef.h>
#include <stdio.h>
-
-#ifndef X_NOT_STDC_ENV
#include <stdlib.h>
-#else
-char *malloc();
-#endif
#if defined(macII) && !defined(__STDC__) /* stdlib.h fails to define these */
char *malloc();
#endif /* macII */
@@ -61,7 +57,8 @@ unsigned short indexes[KTNUM];
KeySym values[KTNUM];
char buf[1024];
-main()
+int
+main(int argc, char *argv[])
{
int ksnum;
int max_rehash;
@@ -144,7 +141,7 @@ next1: ;
z = best_z;
printf("#ifdef NEEDKTABLE\n");
- printf("Const unsigned char _XkeyTable[] = {\n");
+ printf("const unsigned char _XkeyTable[] = {\n");
printf("0,\n");
k = 1;
for (i = 0; i < ksnum; i++) {
@@ -161,7 +158,7 @@ next1: ;
offsets[j] = k;
indexes[i] = k;
val = info[i].val;
- printf("0x%.2x, 0x%.2x, 0x%.2x, 0x%.2x, ",
+ printf("0x%.2lx, 0x%.2lx, 0x%.2lx, 0x%.2lx, ",
(sig >> 8) & 0xff, sig & 0xff,
(val >> 8) & 0xff, val & 0xff);
for (name = info[i].name, k += 5; (c = *name++); k++)
@@ -173,7 +170,7 @@ next1: ;
printf("#define KTABLESIZE %d\n", z);
printf("#define KMAXHASH %d\n", best_max_rehash + 1);
printf("\n");
- printf("static Const unsigned short hashString[KTABLESIZE] = {\n");
+ printf("static const unsigned short hashString[KTABLESIZE] = {\n");
for (i = 0; i < z;) {
printf("0x%.4x", offsets[i]);
i++;
@@ -243,7 +240,7 @@ skip2: ;
printf("#define VTABLESIZE %d\n", z);
printf("#define VMAXHASH %d\n", best_max_rehash + 1);
printf("\n");
- printf("static Const unsigned short hashKeysym[VTABLESIZE] = {\n");
+ printf("static const unsigned short hashKeysym[VTABLESIZE] = {\n");
for (i = 0; i < z;) {
printf("0x%.4x", offsets[i]);
i++;
diff --git a/src/xcms/AddDIC.c b/src/xcms/AddDIC.c
index aefae0f8..22364bec 100644
--- a/src/xcms/AddDIC.c
+++ b/src/xcms/AddDIC.c
@@ -32,9 +32,11 @@
*
*
*/
+/* $XFree86$ */
#include "Xlibint.h"
#include "Xcmsint.h"
+#include "Cv.h"
/*
@@ -44,15 +46,6 @@
(XCMS_UNREG_ID(lastid) ? ++lastid : XCMS_FIRST_UNREG_DI_ID)
#define MAX(x,y) ((x) < (y) ? (y) : (x))
-
-/*
- * EXTERNS
- */
-extern XcmsPerDpyInfo *_XcmsFindDpyInfo();
-extern XPointer *_XcmsPushPointerArray();
-extern XcmsColorFormat _XcmsRegFormatOfPrefix();
-extern XcmsColorSpace **_XcmsDIColorSpaces;
-extern XcmsColorSpace *_XcmsDIColorSpacesInit[];
/*
* NAME
diff --git a/src/xcms/AddSF.c b/src/xcms/AddSF.c
index 5c2ae54d..39601c2b 100644
--- a/src/xcms/AddSF.c
+++ b/src/xcms/AddSF.c
@@ -32,9 +32,11 @@
*
*
*/
+/* $XFree86$ */
#include "Xlibint.h"
#include "Xcmsint.h"
+#include "Cv.h"
/*
* DEFINES
@@ -43,18 +45,6 @@
(XCMS_UNREG_ID(lastid) ? ++lastid : XCMS_FIRST_UNREG_DD_ID)
#define MIN(x,y) ((x) > (y) ? (y) : (x))
-
-/*
- * EXTERNS
- */
-extern XPointer *_XcmsPushPointerArray();
-extern XcmsColorFormat _XcmsRegFormatOfPrefix();
-extern XcmsFunctionSet **_XcmsSCCFuncSets;
-extern XcmsFunctionSet **_XcmsSCCFuncSetsInit;
-extern XcmsColorSpace **_XcmsDDColorSpaces;
-extern XcmsColorSpace **_XcmsDDColorSpacesInit;
-
-
/*
* NAME
diff --git a/src/xcms/CCC.c b/src/xcms/CCC.c
index 9a7d5162..20cd3840 100644
--- a/src/xcms/CCC.c
+++ b/src/xcms/CCC.c
@@ -33,6 +33,7 @@
*
*
*/
+/* $XFree86: xc/lib/X11/CCC.c,v 1.4 2001/12/14 19:53:56 dawes Exp $ */
/*
@@ -65,8 +66,7 @@ from The Open Group.
#include <stdio.h>
#include "Xlibint.h"
#include "Xcmsint.h"
-
-extern XcmsIntensityMap *_XcmsGetIntensityMap();
+#include "Cv.h"
diff --git a/src/xcms/Cv.h b/src/xcms/Cv.h
index 08969e03..a887e9d2 100644
--- a/src/xcms/Cv.h
+++ b/src/xcms/Cv.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/Cv.h,v 1.2 2003/04/17 02:06:31 dawes Exp $ */
+/* $XFree86: xc/lib/X11/Cv.h,v 1.1 2003/04/13 19:22:15 dawes Exp $ */
#ifndef _CV_H_
#define _CV_H_
diff --git a/src/xcms/CvColW.c b/src/xcms/CvColW.c
index 249e30e5..336f606e 100644
--- a/src/xcms/CvColW.c
+++ b/src/xcms/CvColW.c
@@ -33,9 +33,11 @@
*
*
*/
+/* $XFree86: xc/lib/X11/CvColW.c,v 1.3 2001/01/17 19:41:34 dawes Exp $ */
#include "Xlibint.h"
#include "Xcmsint.h"
+#include "Cv.h"
/************************************************************************
@@ -52,14 +54,13 @@
* SYNOPSIS
*/
Status
-_XcmsConvertColorsWithWhitePt(ccc, pColors_in_out, pWhitePt, nColors,
- newFormat, pCompressed)
- XcmsCCC ccc;
- XcmsColor *pColors_in_out;
- XcmsColor *pWhitePt;
- unsigned int nColors;
- XcmsColorFormat newFormat;
- Bool *pCompressed;
+_XcmsConvertColorsWithWhitePt(
+ XcmsCCC ccc,
+ XcmsColor *pColors_in_out,
+ XcmsColor *pWhitePt,
+ unsigned int nColors,
+ XcmsColorFormat newFormat,
+ Bool *pCompressed)
/*
* DESCRIPTION
* Convert XcmsColor structures between device-independent
diff --git a/src/xcms/CvCols.c b/src/xcms/CvCols.c
index d74ea323..6cd805b9 100644
--- a/src/xcms/CvCols.c
+++ b/src/xcms/CvCols.c
@@ -33,19 +33,11 @@
*
*
*/
+/* $XFree86: xc/lib/X11/CvCols.c,v 1.4 2003/04/13 19:22:15 dawes Exp $ */
#include "Xlibint.h"
#include "Xcmsint.h"
-
-/*
- * EXTERNS
- * External declarations required locally to this package
- * that are not already declared in any of the included header
- * files (external includes or internal includes).
- */
-extern XcmsRegColorSpaceEntry _XcmsRegColorSpaces[];
-extern XcmsColorSpace **_XcmsDIColorSpaces;
-extern XcmsColorSpace **_XcmsDDColorSpaces;
+#include "Cv.h"
/*
* LOCAL DEFINES
@@ -57,12 +49,6 @@ extern XcmsColorSpace **_XcmsDDColorSpaces;
# define MAX(x,y) ((x) > (y) ? (x) : (y))
#endif
-/*
- * FORWARD DECLARATIONS
- */
-Status _XcmsDIConvertColors();
-Status _XcmsDDConvertColors();
-
/************************************************************************
* *
@@ -77,8 +63,8 @@ Status _XcmsDDConvertColors();
* SYNOPSIS
*/
static int
-EqualCIEXYZ(p1, p2)
- XcmsColor *p1, *p2;
+EqualCIEXYZ(
+ XcmsColor *p1, XcmsColor *p2)
/*
* DESCRIPTION
* Compares two XcmsColor structures that are in XcmsCIEXYZFormat
@@ -107,9 +93,9 @@ EqualCIEXYZ(p1, p2)
* SYNOPSIS
*/
static XcmsColorSpace *
-ColorSpaceOfID(ccc, id)
- XcmsCCC ccc;
- XcmsColorFormat id;
+ColorSpaceOfID(
+ XcmsCCC ccc,
+ XcmsColorFormat id)
/*
* DESCRIPTION
* Returns a pointer to the color space structure
@@ -164,8 +150,8 @@ ColorSpaceOfID(ccc, id)
* SYNOPSIS
*/
static int
-ValidDIColorSpaceID(id)
- XcmsColorFormat id;
+ValidDIColorSpaceID(
+ XcmsColorFormat id)
/*
* DESCRIPTION
* Determines if the specified color space ID is a valid
@@ -197,9 +183,9 @@ ValidDIColorSpaceID(id)
* SYNOPSIS
*/
static int
-ValidDDColorSpaceID(ccc, id)
- XcmsCCC ccc;
- XcmsColorFormat id;
+ValidDDColorSpaceID(
+ XcmsCCC ccc,
+ XcmsColorFormat id)
/*
* DESCRIPTION
* Determines if the specified color space ID is a valid
@@ -232,14 +218,13 @@ ValidDDColorSpaceID(ccc, id)
* SYNOPSIS
*/
static Status
-ConvertMixedColors(ccc, pColors_in_out, pWhitePt, nColors,
- targetFormat, format_flag)
- XcmsCCC ccc;
- XcmsColor *pColors_in_out;
- XcmsColor *pWhitePt;
- unsigned int nColors;
- XcmsColorFormat targetFormat;
- unsigned char format_flag;
+ConvertMixedColors(
+ XcmsCCC ccc,
+ XcmsColor *pColors_in_out,
+ XcmsColor *pWhitePt,
+ unsigned int nColors,
+ XcmsColorFormat targetFormat,
+ unsigned char format_flag)
/*
* DESCRIPTION
* This routine will only convert the following types of
@@ -374,9 +359,7 @@ ConvertMixedColors(ccc, pColors_in_out, pWhitePt, nColors,
* SYNOPSIS
*/
int
-_XcmsEqualWhitePts(ccc, pWhitePt1, pWhitePt2)
- XcmsCCC ccc;
- XcmsColor *pWhitePt1, *pWhitePt2;
+_XcmsEqualWhitePts(XcmsCCC ccc, XcmsColor *pWhitePt1, XcmsColor *pWhitePt2)
/*
* DESCRIPTION
*
@@ -415,13 +398,12 @@ _XcmsEqualWhitePts(ccc, pWhitePt1, pWhitePt2)
* SYNOPSIS
*/
Status
-_XcmsDIConvertColors(ccc, pColors_in_out, pWhitePt, nColors,
- newFormat)
- XcmsCCC ccc;
- XcmsColor *pColors_in_out;
- XcmsColor *pWhitePt;
- unsigned int nColors;
- XcmsColorFormat newFormat;
+_XcmsDIConvertColors(
+ XcmsCCC ccc,
+ XcmsColor *pColors_in_out,
+ XcmsColor *pWhitePt,
+ unsigned int nColors,
+ XcmsColorFormat newFormat)
/*
* DESCRIPTION
* Convert XcmsColor structures to another Device-Independent
@@ -445,10 +427,10 @@ _XcmsDIConvertColors(ccc, pColors_in_out, pWhitePt, nColors,
*/
{
XcmsColorSpace *pFrom, *pTo;
- XcmsConversionProc *src_to_CIEXYZ, *src_from_CIEXYZ;
- XcmsConversionProc *dest_to_CIEXYZ, *dest_from_CIEXYZ;
- XcmsConversionProc *to_CIEXYZ_stop, *from_CIEXYZ_start;
- XcmsConversionProc *tmp;
+ XcmsDIConversionProc *src_to_CIEXYZ, *src_from_CIEXYZ;
+ XcmsDIConversionProc *dest_to_CIEXYZ, *dest_from_CIEXYZ;
+ XcmsDIConversionProc *to_CIEXYZ_stop, *from_CIEXYZ_start;
+ XcmsDIConversionProc *tmp;
/*
* Allow pWhitePt to equal NULL. This appropriate when converting
@@ -560,13 +542,12 @@ Continue:
* SYNOPSIS
*/
Status
-_XcmsDDConvertColors(ccc, pColors_in_out, nColors, newFormat,
- pCompressed)
- XcmsCCC ccc;
- XcmsColor *pColors_in_out;
- unsigned int nColors;
- XcmsColorFormat newFormat;
- Bool *pCompressed;
+_XcmsDDConvertColors(
+ XcmsCCC ccc,
+ XcmsColor *pColors_in_out,
+ unsigned int nColors,
+ XcmsColorFormat newFormat,
+ Bool *pCompressed)
/*
* DESCRIPTION
* Convert XcmsColor structures:
@@ -597,10 +578,10 @@ _XcmsDDConvertColors(ccc, pColors_in_out, nColors, newFormat,
*/
{
XcmsColorSpace *pFrom, *pTo;
- XcmsConversionProc *src_to_CIEXYZ, *src_from_CIEXYZ;
- XcmsConversionProc *dest_to_CIEXYZ, *dest_from_CIEXYZ;
- XcmsConversionProc *from_CIEXYZ_start, *to_CIEXYZ_stop;
- XcmsConversionProc *tmp;
+ XcmsDDConversionProc *src_to_CIEXYZ, *src_from_CIEXYZ;
+ XcmsDDConversionProc *dest_to_CIEXYZ, *dest_from_CIEXYZ;
+ XcmsDDConversionProc *from_CIEXYZ_start, *to_CIEXYZ_stop;
+ XcmsDDConversionProc *tmp;
int retval;
int hasCompressed = 0;
@@ -640,10 +621,10 @@ _XcmsDDConvertColors(ccc, pColors_in_out, nColors, newFormat,
return(XcmsFailure);
}
- src_to_CIEXYZ = pFrom->to_CIEXYZ;
- src_from_CIEXYZ = pFrom->from_CIEXYZ;
- dest_to_CIEXYZ = pTo->to_CIEXYZ;
- dest_from_CIEXYZ = pTo->from_CIEXYZ;
+ src_to_CIEXYZ = (XcmsDDConversionProc *)pFrom->to_CIEXYZ;
+ src_from_CIEXYZ = (XcmsDDConversionProc *)pFrom->from_CIEXYZ;
+ dest_to_CIEXYZ = (XcmsDDConversionProc *)pTo->to_CIEXYZ;
+ dest_from_CIEXYZ = (XcmsDDConversionProc *)pTo->from_CIEXYZ;
if (pTo->inverse_flag && pFrom->inverse_flag) {
/*
@@ -1024,8 +1005,8 @@ Failure:
* SYNOPSIS
*/
XcmsColorFormat
-_XcmsRegFormatOfPrefix(prefix)
- char *prefix;
+_XcmsRegFormatOfPrefix(
+ _Xconst char *prefix)
/*
* DESCRIPTION
* Returns a color space ID associated with the specified
diff --git a/src/xcms/HVC.c b/src/xcms/HVC.c
index 26bca265..bc08867e 100644
--- a/src/xcms/HVC.c
+++ b/src/xcms/HVC.c
@@ -1,3 +1,4 @@
+/* $XdotOrg: lib/X11/src/xcms/HVC.c,v 1.2 2004-04-23 18:43:24 eich Exp $ */
/* $Xorg: HVC.c,v 1.3 2000/08/17 19:44:36 cpqbld Exp $ */
/*
@@ -47,11 +48,15 @@
* DOCUMENTATION
* "TekColor Color Management System, System Implementor's Manual"
*/
+/* $XFree86: xc/lib/X11/HVC.c,v 1.3 2001/01/17 19:41:37 dawes Exp $ */
#include "Xlibint.h"
#include "Xcmsint.h"
#include <X11/Xos.h>
#include <math.h>
+#include "Cv.h"
+
+#include <stdio.h>
/*
* DEFINES
@@ -90,18 +95,10 @@
#endif
/*
- * EXTERNS
- */
-
-extern char _XcmsTekHVC_prefix[];
-
-/*
* FORWARD DECLARATIONS
*/
-
-static int TekHVC_ParseString();
-static Status XcmsTekHVC_ValidSpec();
-
+static int TekHVC_ParseString(register char *spec, XcmsColor *pColor);
+static Status XcmsTekHVC_ValidSpec(XcmsColor *pColor);
/*
* LOCAL VARIABLES
@@ -158,9 +155,9 @@ XcmsColorSpace XcmsTekHVCColorSpace =
* SYNOPSIS
*/
static int
-TekHVC_ParseString(spec, pColor)
- register char *spec;
- XcmsColor *pColor;
+TekHVC_ParseString(
+ register char *spec,
+ XcmsColor *pColor)
/*
* DESCRIPTION
* This routines takes a string and attempts to convert
@@ -216,9 +213,9 @@ TekHVC_ParseString(spec, pColor)
* SYNOPSIS
*/
static int
-ThetaOffset(pWhitePt, pThetaOffset)
- XcmsColor *pWhitePt;
- XcmsFloat *pThetaOffset;
+ThetaOffset(
+ XcmsColor *pWhitePt,
+ XcmsFloat *pThetaOffset)
/*
* DESCRIPTION
* This routine computes the theta offset of a given
@@ -265,8 +262,8 @@ ThetaOffset(pWhitePt, pThetaOffset)
* SYNOPSIS
*/
static int
-XcmsTekHVC_ValidSpec(pColor)
- XcmsColor *pColor;
+XcmsTekHVC_ValidSpec(
+ XcmsColor *pColor)
/*
* DESCRIPTION
* Checks if values in the color specification are valid.
@@ -567,8 +564,8 @@ XcmsCIEuvYToTekHVC(ccc, pHVC_WhitePt, pColors_in_out, nColors)
* SYNOPSIS
*/
int
-_XcmsTekHVC_CheckModify(pColor)
- XcmsColor *pColor;
+_XcmsTekHVC_CheckModify(
+ XcmsColor *pColor)
/*
* DESCRIPTION
* Checks if values in the color specification are valid.
diff --git a/src/xcms/HVCGcC.c b/src/xcms/HVCGcC.c
index 26a3f121..dc78bfec 100644
--- a/src/xcms/HVCGcC.c
+++ b/src/xcms/HVCGcC.c
@@ -43,16 +43,11 @@
* Source for XcmsTekHVCClipC() gamut compression routine.
*
*/
+/* $XFree86: xc/lib/X11/HVCGcC.c,v 1.3 2001/01/17 19:41:37 dawes Exp $ */
#include "Xlibint.h"
#include "Xcmsint.h"
-
-/*
- * EXTERNS
- */
-extern XcmsColorSpace XcmsTekHVCColorSpace;
-extern XcmsFunctionSet XcmsLinearRGBFunctionSet;
-
+#include "Cv.h"
/************************************************************************
diff --git a/src/xcms/HVCGcV.c b/src/xcms/HVCGcV.c
index 7b062123..6b9f92b8 100644
--- a/src/xcms/HVCGcV.c
+++ b/src/xcms/HVCGcV.c
@@ -43,17 +43,11 @@
* Source for XcmsTekHVCClipV() gamut compression routine.
*
*/
+/* $XFree86: xc/lib/X11/HVCGcV.c,v 1.3 2001/01/17 19:41:37 dawes Exp $ */
#include "Xlibint.h"
#include "Xcmsint.h"
-
-/*
- * EXTERNS
- */
-extern Status _XcmsTekHVC_CheckModify();
-extern XcmsColorSpace XcmsTekHVCColorSpace;
-extern XcmsFunctionSet XcmsLinearRGBFunctionSet;
-
+#include "Cv.h"
/************************************************************************
diff --git a/src/xcms/HVCGcVC.c b/src/xcms/HVCGcVC.c
index 00d09b2a..1286a20e 100644
--- a/src/xcms/HVCGcVC.c
+++ b/src/xcms/HVCGcVC.c
@@ -43,10 +43,12 @@
* Source for XcmsTekHVCClipVC() gamut
* compression function.
*/
+/* $XFree86: xc/lib/X11/HVCGcVC.c,v 1.3 2001/01/17 19:41:37 dawes Exp $ */
#include "Xlibint.h"
#include "Xcmsint.h"
#include <math.h>
+#include "Cv.h"
/*
* INTERNALS
@@ -55,14 +57,6 @@
*/
#define MAXBISECTCOUNT 100
-/*
- * EXTERNS
- */
-extern int _XcmsTekHVC_CheckModify();
-extern Status _XcmsTekHVCQueryMaxVCRGB();
-extern XcmsColorSpace XcmsTekHVCColorSpace;
-extern XcmsFunctionSet XcmsLinearRGBFunctionSet;
-
/************************************************************************
* *
diff --git a/src/xcms/HVCMnV.c b/src/xcms/HVCMnV.c
index f66e0e1c..c730d088 100644
--- a/src/xcms/HVCMnV.c
+++ b/src/xcms/HVCMnV.c
@@ -43,22 +43,17 @@
* Source for XcmsTekHVCQueryMinV gamut boundary querying routine.
*
*/
+/* $XFree86$ */
#include "Xlibint.h"
#include "Xcmsint.h"
+#include "Cv.h"
/*
* DEFINES
*/
#define EPS 0.001
-/*
- * EXTERNS
- */
-extern Status _XcmsTekHVCQueryMaxVCRGB();
-extern Status _XcmsTekHVC_CheckModify();
-extern XcmsColorSpace XcmsTekHVCColorSpace;
-
/************************************************************************
* *
diff --git a/src/xcms/HVCMxC.c b/src/xcms/HVCMxC.c
index e7e316fe..636e6d39 100644
--- a/src/xcms/HVCMxC.c
+++ b/src/xcms/HVCMxC.c
@@ -44,10 +44,12 @@
* querying routine.
*
*/
+/* $XFree86: xc/lib/X11/HVCMxC.c,v 1.4 2003/04/13 19:22:16 dawes Exp $ */
#include "Xlibint.h"
#include "Xcmsint.h"
#include <math.h>
+#include "Cv.h"
/*
* DEFINES
@@ -55,14 +57,6 @@
#define MAXBISECTCOUNT 100
#define EPS 0.001
-/*
- * EXTERNS
- */
-extern Status _XcmsTekHVCQueryMaxVCRGB();
-extern int _XcmsTekHVC_CheckModify();
-extern XcmsColorSpace XcmsTekHVCColorSpace;
-
-
/************************************************************************
* *
@@ -163,6 +157,7 @@ XcmsTekHVCQueryMaxC(ccc, hue, value, pColor_return)
/* save the structure input so that any elements that */
/* are not touched are recopied later in the routine. */
nValue = savedValue = value;
+ lastChroma = -1.0;
lastValue = -1.0;
nMaxCount = MAXBISECTCOUNT;
maxDist = 100.0 - max_vc.spec.TekHVC.V;
diff --git a/src/xcms/HVCMxV.c b/src/xcms/HVCMxV.c
index b1e70094..331651f1 100644
--- a/src/xcms/HVCMxV.c
+++ b/src/xcms/HVCMxV.c
@@ -44,10 +44,12 @@
* querying routine.
*
*/
+/* $XFree86: xc/lib/X11/HVCMxV.c,v 1.4 2003/04/13 19:22:16 dawes Exp $ */
#include "Xlibint.h"
#include "Xcmsint.h"
#include <math.h>
+#include "Cv.h"
/*
* DEFINES
@@ -55,13 +57,6 @@
#define MAXBISECTCOUNT 100
#define EPS 0.001
-/*
- * EXTERNS
- */
-extern Status _XcmsTekHVCQueryMaxVCRGB();
-extern int _XcmsTekHVC_CheckModify();
-extern XcmsColorSpace XcmsTekHVCColorSpace;
-
/************************************************************************
* *
@@ -173,6 +168,7 @@ XcmsTekHVCQueryMaxV(ccc, hue, chroma, pColor_return)
tmp.spec.TekHVC.C = max_vc.spec.TekHVC.C;
tmp.spec.TekHVC.V = max_vc.spec.TekHVC.V;
lastChroma = -1.0;
+ lastValue = -1.0;
nMaxCount = MAXBISECTCOUNT;
rFactor = 1.0;
diff --git a/src/xcms/HVCMxVC.c b/src/xcms/HVCMxVC.c
index 7c8ec7d0..18060dba 100644
--- a/src/xcms/HVCMxVC.c
+++ b/src/xcms/HVCMxVC.c
@@ -44,9 +44,11 @@
* querying routine.
*
*/
+/* $XFree86$ */
#include "Xlibint.h"
#include "Xcmsint.h"
+#include "Cv.h"
/*
* DEFINES
@@ -58,18 +60,6 @@
#define START_V 40.0
#define START_C 120.0
-/*
- * EXTERNS
- */
-extern Status _XcmsTekHVC_CheckModify();
-extern Status _XcmsConvertColorsWithWhitePt();
-extern XcmsColorSpace XcmsTekHVCColorSpace;
-
-/*
- * FORWARD DECLARATIONS
- */
-Status _XcmsTekHVCQueryMaxVCRGB();
-
/************************************************************************
* *
@@ -84,11 +74,11 @@ Status _XcmsTekHVCQueryMaxVCRGB();
* SYNOPSIS
*/
Status
-_XcmsTekHVCQueryMaxVCRGB(ccc, hue, pColor_return, pRGB_return)
- XcmsCCC ccc;
- XcmsFloat hue;
- XcmsColor *pColor_return;
- XcmsRGBi *pRGB_return;
+_XcmsTekHVCQueryMaxVCRGB(
+ XcmsCCC ccc,
+ XcmsFloat hue,
+ XcmsColor *pColor_return,
+ XcmsRGBi *pRGB_return)
/*
* DESCRIPTION
diff --git a/src/xcms/HVCMxVs.c b/src/xcms/HVCMxVs.c
index 33f84b61..cb843108 100644
--- a/src/xcms/HVCMxVs.c
+++ b/src/xcms/HVCMxVs.c
@@ -43,17 +43,11 @@
* Source for the XcmsTekHVCQueryMaxVSamples() gamut boundary
* querying routine.
*/
+/* $XFree86: xc/lib/X11/HVCMxVs.c,v 1.3 2001/01/17 19:41:37 dawes Exp $ */
#include "Xlibint.h"
#include "Xcmsint.h"
-
-/*
- * EXTERNS
- */
-extern Status _XcmsTekHVCQueryMaxVCRGB();
-extern Status _XcmsTekHVC_CheckModify();
-extern XcmsColorSpace XcmsTekHVCColorSpace;
-
+#include "Cv.h"
/************************************************************************
diff --git a/src/xcms/HVCWpAj.c b/src/xcms/HVCWpAj.c
index 76e64c05..c61ccbd8 100644
--- a/src/xcms/HVCWpAj.c
+++ b/src/xcms/HVCWpAj.c
@@ -44,15 +44,11 @@
* adjustment of color specifications in the TekHVC color
* space.
*/
+/* $XFree86$ */
#include "Xlibint.h"
#include "Xcmsint.h"
-
-/*
- * EXTERNS
- */
-extern Status _XcmsConvertColorsWithWhitePt();
-extern XcmsColorSpace XcmsTekHVCColorSpace;
+#include "Cv.h"
/************************************************************************
diff --git a/src/xcms/IdOfPr.c b/src/xcms/IdOfPr.c
index d84986eb..99173afa 100644
--- a/src/xcms/IdOfPr.c
+++ b/src/xcms/IdOfPr.c
@@ -32,16 +32,11 @@
*
*
*/
+/* $XFree86$ */
#include "Xlibint.h"
#include "Xcmsint.h"
-
-/*
- * EXTERNS
- */
-extern XcmsColorSpace **_XcmsDIColorSpaces;
-extern XcmsColorSpace **_XcmsDDColorSpaces;
-void _XcmsCopyISOLatin1Lowered();
+#include "Cv.h"
/*
diff --git a/src/xcms/LRGB.c b/src/xcms/LRGB.c
index 5b8b8068..6f8c6fb7 100644
--- a/src/xcms/LRGB.c
+++ b/src/xcms/LRGB.c
@@ -35,30 +35,14 @@
* 4. RGB intensity to CIE XYZ
*
*/
+/* $XFree86: xc/lib/X11/LRGB.c,v 3.6 2003/04/13 19:22:16 dawes Exp $ */
#include <stdio.h>
#include <X11/Xos.h>
#include <X11/Xatom.h>
#include "Xlibint.h"
#include "Xcmsint.h"
-
-#ifdef __STDC__
-#define Const const
-#else
-#define Const /**/
-#endif
-
-/*
- * EXTERNS
- * External declarations required locally to this package
- * that are not already declared in any of the included header
- * files (external includes or internal includes).
- */
-extern char _XcmsRGB_prefix[];
-extern char _XcmsRGBi_prefix[];
-extern unsigned long _XcmsGetElement();
-extern void _XcmsFreeIntensityMaps();
-
+#include "Cv.h"
/*
* LOCAL DEFINES
@@ -87,12 +71,23 @@ extern void _XcmsFreeIntensityMaps();
/*
* FORWARD DECLARATIONS
*/
-static void LINEAR_RGB_FreeSCCData();
-static int LINEAR_RGB_InitSCCData();
-static int XcmsLRGB_RGB_ParseString();
-static int XcmsLRGB_RGBi_ParseString();
-Status _XcmsGetTableType0();
-Status _XcmsGetTableType1();
+static void LINEAR_RGB_FreeSCCData(XPointer pScreenDataTemp);
+static int LINEAR_RGB_InitSCCData(Display *dpy,
+ int screenNumber, XcmsPerScrnInfo *pPerScrnInfo);
+static int XcmsLRGB_RGB_ParseString(register char *spec, XcmsColor *pColor);
+static int XcmsLRGB_RGBi_ParseString(register char *spec, XcmsColor *pColor);
+static Status
+_XcmsGetTableType0(
+ IntensityTbl *pTbl,
+ int format,
+ char **pChar,
+ unsigned long *pCount);
+static Status
+_XcmsGetTableType1(
+ IntensityTbl *pTbl,
+ int format,
+ char **pChar,
+ unsigned long *pCount);
/*
* LOCALS VARIABLES
@@ -101,7 +96,7 @@ Status _XcmsGetTableType1();
* static int ExampleLocalVar;
*/
-static unsigned short Const MASK[17] = {
+static unsigned short const MASK[17] = {
0x0000, /* 0 bitsPerRGB */
0x8000, /* 1 bitsPerRGB */
0xc000, /* 2 bitsPerRGB */
@@ -128,8 +123,8 @@ static unsigned short Const MASK[17] = {
* to XcmsCIEXYZFormat.
*/
static XcmsConversionProc Fl_RGB_to_CIEXYZ[] = {
- XcmsRGBToRGBi,
- XcmsRGBiToCIEXYZ,
+ (XcmsConversionProc)XcmsRGBToRGBi,
+ (XcmsConversionProc)XcmsRGBiToCIEXYZ,
NULL
};
@@ -139,8 +134,8 @@ static XcmsConversionProc Fl_RGB_to_CIEXYZ[] = {
* to XcmsRGBFormat.
*/
static XcmsConversionProc Fl_CIEXYZ_to_RGB[] = {
- XcmsCIEXYZToRGBi,
- XcmsRGBiToRGB,
+ (XcmsConversionProc)XcmsCIEXYZToRGBi,
+ (XcmsConversionProc)XcmsRGBiToRGB,
NULL
};
@@ -150,7 +145,7 @@ static XcmsConversionProc Fl_CIEXYZ_to_RGB[] = {
* to XcmsCIEXYZFormat.
*/
static XcmsConversionProc Fl_RGBi_to_CIEXYZ[] = {
- XcmsRGBiToCIEXYZ,
+ (XcmsConversionProc)XcmsRGBiToCIEXYZ,
NULL
};
@@ -160,7 +155,7 @@ static XcmsConversionProc Fl_RGBi_to_CIEXYZ[] = {
* to XcmsRGBiFormat.
*/
static XcmsConversionProc Fl_CIEXYZ_to_RGBi[] = {
- XcmsCIEXYZToRGBi,
+ (XcmsConversionProc)XcmsCIEXYZToRGBi,
NULL
};
@@ -231,169 +226,169 @@ XcmsFunctionSet XcmsLinearRGBFunctionSet =
* MODEL Tek4300, Tek4800
*/
-static IntensityRec Const Default_RGB_RedTuples[] = {
+static IntensityRec const Default_RGB_RedTuples[] = {
/* {unsigned short value, XcmsFloat intensity} */
- 0x0000, 0.000000,
- 0x0909, 0.000000,
- 0x0a0a, 0.000936,
- 0x0f0f, 0.001481,
- 0x1414, 0.002329,
- 0x1919, 0.003529,
- 0x1e1e, 0.005127,
- 0x2323, 0.007169,
- 0x2828, 0.009699,
- 0x2d2d, 0.012759,
- 0x3232, 0.016392,
- 0x3737, 0.020637,
- 0x3c3c, 0.025533,
- 0x4141, 0.031119,
- 0x4646, 0.037431,
- 0x4b4b, 0.044504,
- 0x5050, 0.052373,
- 0x5555, 0.061069,
- 0x5a5a, 0.070624,
- 0x5f5f, 0.081070,
- 0x6464, 0.092433,
- 0x6969, 0.104744,
- 0x6e6e, 0.118026,
- 0x7373, 0.132307,
- 0x7878, 0.147610,
- 0x7d7d, 0.163958,
- 0x8282, 0.181371,
- 0x8787, 0.199871,
- 0x8c8c, 0.219475,
- 0x9191, 0.240202,
- 0x9696, 0.262069,
- 0x9b9b, 0.285089,
- 0xa0a0, 0.309278,
- 0xa5a5, 0.334647,
- 0xaaaa, 0.361208,
- 0xafaf, 0.388971,
- 0xb4b4, 0.417945,
- 0xb9b9, 0.448138,
- 0xbebe, 0.479555,
- 0xc3c3, 0.512202,
- 0xc8c8, 0.546082,
- 0xcdcd, 0.581199,
- 0xd2d2, 0.617552,
- 0xd7d7, 0.655144,
- 0xdcdc, 0.693971,
- 0xe1e1, 0.734031,
- 0xe6e6, 0.775322,
- 0xebeb, 0.817837,
- 0xf0f0, 0.861571,
- 0xf5f5, 0.906515,
- 0xfafa, 0.952662,
- 0xffff, 1.000000
+ { 0x0000, 0.000000 },
+ { 0x0909, 0.000000 },
+ { 0x0a0a, 0.000936 },
+ { 0x0f0f, 0.001481 },
+ { 0x1414, 0.002329 },
+ { 0x1919, 0.003529 },
+ { 0x1e1e, 0.005127 },
+ { 0x2323, 0.007169 },
+ { 0x2828, 0.009699 },
+ { 0x2d2d, 0.012759 },
+ { 0x3232, 0.016392 },
+ { 0x3737, 0.020637 },
+ { 0x3c3c, 0.025533 },
+ { 0x4141, 0.031119 },
+ { 0x4646, 0.037431 },
+ { 0x4b4b, 0.044504 },
+ { 0x5050, 0.052373 },
+ { 0x5555, 0.061069 },
+ { 0x5a5a, 0.070624 },
+ { 0x5f5f, 0.081070 },
+ { 0x6464, 0.092433 },
+ { 0x6969, 0.104744 },
+ { 0x6e6e, 0.118026 },
+ { 0x7373, 0.132307 },
+ { 0x7878, 0.147610 },
+ { 0x7d7d, 0.163958 },
+ { 0x8282, 0.181371 },
+ { 0x8787, 0.199871 },
+ { 0x8c8c, 0.219475 },
+ { 0x9191, 0.240202 },
+ { 0x9696, 0.262069 },
+ { 0x9b9b, 0.285089 },
+ { 0xa0a0, 0.309278 },
+ { 0xa5a5, 0.334647 },
+ { 0xaaaa, 0.361208 },
+ { 0xafaf, 0.388971 },
+ { 0xb4b4, 0.417945 },
+ { 0xb9b9, 0.448138 },
+ { 0xbebe, 0.479555 },
+ { 0xc3c3, 0.512202 },
+ { 0xc8c8, 0.546082 },
+ { 0xcdcd, 0.581199 },
+ { 0xd2d2, 0.617552 },
+ { 0xd7d7, 0.655144 },
+ { 0xdcdc, 0.693971 },
+ { 0xe1e1, 0.734031 },
+ { 0xe6e6, 0.775322 },
+ { 0xebeb, 0.817837 },
+ { 0xf0f0, 0.861571 },
+ { 0xf5f5, 0.906515 },
+ { 0xfafa, 0.952662 },
+ { 0xffff, 1.000000 }
};
-static IntensityRec Const Default_RGB_GreenTuples[] = {
+static IntensityRec const Default_RGB_GreenTuples[] = {
/* {unsigned short value, XcmsFloat intensity} */
- 0x0000, 0.000000,
- 0x1313, 0.000000,
- 0x1414, 0.000832,
- 0x1919, 0.001998,
- 0x1e1e, 0.003612,
- 0x2323, 0.005736,
- 0x2828, 0.008428,
- 0x2d2d, 0.011745,
- 0x3232, 0.015740,
- 0x3737, 0.020463,
- 0x3c3c, 0.025960,
- 0x4141, 0.032275,
- 0x4646, 0.039449,
- 0x4b4b, 0.047519,
- 0x5050, 0.056520,
- 0x5555, 0.066484,
- 0x5a5a, 0.077439,
- 0x5f5f, 0.089409,
- 0x6464, 0.102418,
- 0x6969, 0.116485,
- 0x6e6e, 0.131625,
- 0x7373, 0.147853,
- 0x7878, 0.165176,
- 0x7d7d, 0.183604,
- 0x8282, 0.203140,
- 0x8787, 0.223783,
- 0x8c8c, 0.245533,
- 0x9191, 0.268384,
- 0x9696, 0.292327,
- 0x9b9b, 0.317351,
- 0xa0a0, 0.343441,
- 0xa5a5, 0.370580,
- 0xaaaa, 0.398747,
- 0xafaf, 0.427919,
- 0xb4b4, 0.458068,
- 0xb9b9, 0.489165,
- 0xbebe, 0.521176,
- 0xc3c3, 0.554067,
- 0xc8c8, 0.587797,
- 0xcdcd, 0.622324,
- 0xd2d2, 0.657604,
- 0xd7d7, 0.693588,
- 0xdcdc, 0.730225,
- 0xe1e1, 0.767459,
- 0xe6e6, 0.805235,
- 0xebeb, 0.843491,
- 0xf0f0, 0.882164,
- 0xf5f5, 0.921187,
- 0xfafa, 0.960490,
- 0xffff, 1.000000
+ { 0x0000, 0.000000 },
+ { 0x1313, 0.000000 },
+ { 0x1414, 0.000832 },
+ { 0x1919, 0.001998 },
+ { 0x1e1e, 0.003612 },
+ { 0x2323, 0.005736 },
+ { 0x2828, 0.008428 },
+ { 0x2d2d, 0.011745 },
+ { 0x3232, 0.015740 },
+ { 0x3737, 0.020463 },
+ { 0x3c3c, 0.025960 },
+ { 0x4141, 0.032275 },
+ { 0x4646, 0.039449 },
+ { 0x4b4b, 0.047519 },
+ { 0x5050, 0.056520 },
+ { 0x5555, 0.066484 },
+ { 0x5a5a, 0.077439 },
+ { 0x5f5f, 0.089409 },
+ { 0x6464, 0.102418 },
+ { 0x6969, 0.116485 },
+ { 0x6e6e, 0.131625 },
+ { 0x7373, 0.147853 },
+ { 0x7878, 0.165176 },
+ { 0x7d7d, 0.183604 },
+ { 0x8282, 0.203140 },
+ { 0x8787, 0.223783 },
+ { 0x8c8c, 0.245533 },
+ { 0x9191, 0.268384 },
+ { 0x9696, 0.292327 },
+ { 0x9b9b, 0.317351 },
+ { 0xa0a0, 0.343441 },
+ { 0xa5a5, 0.370580 },
+ { 0xaaaa, 0.398747 },
+ { 0xafaf, 0.427919 },
+ { 0xb4b4, 0.458068 },
+ { 0xb9b9, 0.489165 },
+ { 0xbebe, 0.521176 },
+ { 0xc3c3, 0.554067 },
+ { 0xc8c8, 0.587797 },
+ { 0xcdcd, 0.622324 },
+ { 0xd2d2, 0.657604 },
+ { 0xd7d7, 0.693588 },
+ { 0xdcdc, 0.730225 },
+ { 0xe1e1, 0.767459 },
+ { 0xe6e6, 0.805235 },
+ { 0xebeb, 0.843491 },
+ { 0xf0f0, 0.882164 },
+ { 0xf5f5, 0.921187 },
+ { 0xfafa, 0.960490 },
+ { 0xffff, 1.000000 }
};
-static IntensityRec Const Default_RGB_BlueTuples[] = {
+static IntensityRec const Default_RGB_BlueTuples[] = {
/* {unsigned short value, XcmsFloat intensity} */
- 0x0000, 0.000000,
- 0x0e0e, 0.000000,
- 0x0f0f, 0.001341,
- 0x1414, 0.002080,
- 0x1919, 0.003188,
- 0x1e1e, 0.004729,
- 0x2323, 0.006766,
- 0x2828, 0.009357,
- 0x2d2d, 0.012559,
- 0x3232, 0.016424,
- 0x3737, 0.021004,
- 0x3c3c, 0.026344,
- 0x4141, 0.032489,
- 0x4646, 0.039481,
- 0x4b4b, 0.047357,
- 0x5050, 0.056154,
- 0x5555, 0.065903,
- 0x5a5a, 0.076634,
- 0x5f5f, 0.088373,
- 0x6464, 0.101145,
- 0x6969, 0.114968,
- 0x6e6e, 0.129862,
- 0x7373, 0.145841,
- 0x7878, 0.162915,
- 0x7d7d, 0.181095,
- 0x8282, 0.200386,
- 0x8787, 0.220791,
- 0x8c8c, 0.242309,
- 0x9191, 0.264937,
- 0x9696, 0.288670,
- 0x9b9b, 0.313499,
- 0xa0a0, 0.339410,
- 0xa5a5, 0.366390,
- 0xaaaa, 0.394421,
- 0xafaf, 0.423481,
- 0xb4b4, 0.453547,
- 0xb9b9, 0.484592,
- 0xbebe, 0.516587,
- 0xc3c3, 0.549498,
- 0xc8c8, 0.583291,
- 0xcdcd, 0.617925,
- 0xd2d2, 0.653361,
- 0xd7d7, 0.689553,
- 0xdcdc, 0.726454,
- 0xe1e1, 0.764013,
- 0xe6e6, 0.802178,
- 0xebeb, 0.840891,
- 0xf0f0, 0.880093,
- 0xf5f5, 0.919723,
- 0xfafa, 0.959715,
- 0xffff, 1.00000
+ { 0x0000, 0.000000 },
+ { 0x0e0e, 0.000000 },
+ { 0x0f0f, 0.001341 },
+ { 0x1414, 0.002080 },
+ { 0x1919, 0.003188 },
+ { 0x1e1e, 0.004729 },
+ { 0x2323, 0.006766 },
+ { 0x2828, 0.009357 },
+ { 0x2d2d, 0.012559 },
+ { 0x3232, 0.016424 },
+ { 0x3737, 0.021004 },
+ { 0x3c3c, 0.026344 },
+ { 0x4141, 0.032489 },
+ { 0x4646, 0.039481 },
+ { 0x4b4b, 0.047357 },
+ { 0x5050, 0.056154 },
+ { 0x5555, 0.065903 },
+ { 0x5a5a, 0.076634 },
+ { 0x5f5f, 0.088373 },
+ { 0x6464, 0.101145 },
+ { 0x6969, 0.114968 },
+ { 0x6e6e, 0.129862 },
+ { 0x7373, 0.145841 },
+ { 0x7878, 0.162915 },
+ { 0x7d7d, 0.181095 },
+ { 0x8282, 0.200386 },
+ { 0x8787, 0.220791 },
+ { 0x8c8c, 0.242309 },
+ { 0x9191, 0.264937 },
+ { 0x9696, 0.288670 },
+ { 0x9b9b, 0.313499 },
+ { 0xa0a0, 0.339410 },
+ { 0xa5a5, 0.366390 },
+ { 0xaaaa, 0.394421 },
+ { 0xafaf, 0.423481 },
+ { 0xb4b4, 0.453547 },
+ { 0xb9b9, 0.484592 },
+ { 0xbebe, 0.516587 },
+ { 0xc3c3, 0.549498 },
+ { 0xc8c8, 0.583291 },
+ { 0xcdcd, 0.617925 },
+ { 0xd2d2, 0.653361 },
+ { 0xd7d7, 0.689553 },
+ { 0xdcdc, 0.726454 },
+ { 0xe1e1, 0.764013 },
+ { 0xe6e6, 0.802178 },
+ { 0xebeb, 0.840891 },
+ { 0xf0f0, 0.880093 },
+ { 0xf5f5, 0.919723 },
+ { 0xfafa, 0.959715 },
+ { 0xffff, 1.00000 }
};
static IntensityTbl Default_RGB_RedTbl = {
@@ -418,16 +413,19 @@ static IntensityTbl Default_RGB_BlueTbl = {
};
static LINEAR_RGB_SCCData Default_RGB_SCCData = {
-
/* XcmsFloat XYZtoRGBmatrix[3][3] */
- 3.48340481253539000, -1.52176374927285200, -0.55923133354049780,
- -1.07152751306193600, 1.96593795204372400, 0.03673691339553462,
- 0.06351179790497788, -0.20020501000496480, 0.81070942031648220,
+ {
+ { 3.48340481253539000, -1.52176374927285200, -0.55923133354049780 },
+ {-1.07152751306193600, 1.96593795204372400, 0.03673691339553462 },
+ { 0.06351179790497788, -0.20020501000496480, 0.81070942031648220 }
+ },
/* XcmsFloat RGBtoXYZmatrix[3][3] */
- 0.38106149108714790, 0.32025712365352110, 0.24834578525933100,
- 0.20729745115140850, 0.68054638776373240, 0.11215616108485920,
- 0.02133944350088028, 0.14297193020246480, 1.24172892629665500,
+ {
+ { 0.38106149108714790, 0.32025712365352110, 0.24834578525933100 },
+ { 0.20729745115140850, 0.68054638776373240, 0.11215616108485920 },
+ { 0.02133944350088028, 0.14297193020246480, 1.24172892629665500 }
+ },
/* IntensityTbl *pRedTbl */
&Default_RGB_RedTbl,
@@ -452,10 +450,10 @@ static LINEAR_RGB_SCCData Default_RGB_SCCData = {
* SYNOPSIS
*/
static Status
-LINEAR_RGB_InitSCCData(dpy, screenNumber, pPerScrnInfo)
- Display *dpy;
- int screenNumber;
- XcmsPerScrnInfo *pPerScrnInfo;
+LINEAR_RGB_InitSCCData(
+ Display *dpy,
+ int screenNumber,
+ XcmsPerScrnInfo *pPerScrnInfo)
/*
* DESCRIPTION
*
@@ -834,8 +832,8 @@ FreeSCCData:
* SYNOPSIS
*/
static void
-LINEAR_RGB_FreeSCCData(pScreenDataTemp)
- XPointer pScreenDataTemp;
+LINEAR_RGB_FreeSCCData(
+ XPointer pScreenDataTemp)
/*
* DESCRIPTION
*
@@ -894,12 +892,12 @@ LINEAR_RGB_FreeSCCData(pScreenDataTemp)
*
* SYNOPSIS
*/
-Status
-_XcmsGetTableType0(pTbl, format, pChar, pCount)
- IntensityTbl *pTbl;
- int format;
- char **pChar;
- unsigned long *pCount;
+static Status
+_XcmsGetTableType0(
+ IntensityTbl *pTbl,
+ int format,
+ char **pChar,
+ unsigned long *pCount)
/*
* DESCRIPTION
*
@@ -955,12 +953,12 @@ _XcmsGetTableType0(pTbl, format, pChar, pCount)
*
* SYNOPSIS
*/
-Status
-_XcmsGetTableType1(pTbl, format, pChar, pCount)
- IntensityTbl *pTbl;
- int format;
- char **pChar;
- unsigned long *pCount;
+static Status
+_XcmsGetTableType1(
+ IntensityTbl *pTbl,
+ int format,
+ char **pChar,
+ unsigned long *pCount)
/*
* DESCRIPTION
*
@@ -1017,9 +1015,9 @@ _XcmsGetTableType1(pTbl, format, pChar, pCount)
*
* SYNOPSIS
*/
-int
-_XcmsValueCmp (p1, p2)
- IntensityRec *p1, *p2;
+static int
+_XcmsValueCmp(
+ IntensityRec *p1, IntensityRec *p2)
/*
* DESCRIPTION
* Compares the value component of two IntensityRec
@@ -1042,9 +1040,9 @@ _XcmsValueCmp (p1, p2)
*
* SYNOPSIS
*/
-int
-_XcmsIntensityCmp (p1, p2)
- IntensityRec *p1, *p2;
+static int
+_XcmsIntensityCmp(
+ IntensityRec *p1, IntensityRec *p2)
/*
* DESCRIPTION
* Compares the intensity component of two IntensityRec
@@ -1073,10 +1071,10 @@ _XcmsIntensityCmp (p1, p2)
* SYNOPSIS
*/
/* ARGSUSED */
-int
-_XcmsValueInterpolation (key, lo, hi, answer, bitsPerRGB)
- IntensityRec *key, *lo, *hi, *answer;
- int bitsPerRGB;
+static int
+_XcmsValueInterpolation(
+ IntensityRec *key, IntensityRec *lo, IntensityRec *hi, IntensityRec *answer,
+ int bitsPerRGB)
/*
* DESCRIPTION
* Based on a given value, performs a linear interpolation
@@ -1103,10 +1101,10 @@ _XcmsValueInterpolation (key, lo, hi, answer, bitsPerRGB)
*
* SYNOPSIS
*/
-int
-_XcmsIntensityInterpolation (key, lo, hi, answer, bitsPerRGB)
- IntensityRec *key, *lo, *hi, *answer;
- int bitsPerRGB;
+static int
+_XcmsIntensityInterpolation(
+ IntensityRec *key, IntensityRec *lo, IntensityRec *hi, IntensityRec *answer,
+ int bitsPerRGB)
/*
* DESCRIPTION
* Based on a given intensity, performs a linear interpolation
@@ -1145,22 +1143,40 @@ _XcmsIntensityInterpolation (key, lo, hi, answer, bitsPerRGB)
}
+
+typedef int (*comparProcp)(
+ char *p1,
+ char *p2);
+typedef int (*interpolProcp)(
+ char *key,
+ char *lo,
+ char *hi,
+ char *answer,
+ int bitsPerRGB);
+
/*
* NAME
* _XcmsTableSearch
*
* SYNOPSIS
*/
-int
-_XcmsTableSearch (key, bitsPerRGB, base, nel, nKeyPtrSize, compar, interpol, answer)
- char *key;
- int bitsPerRGB;
- char *base;
- unsigned nel;
- unsigned nKeyPtrSize;
- int (*compar)();
- int (*interpol)();
- char *answer;
+static int
+_XcmsTableSearch(
+ char *key,
+ int bitsPerRGB,
+ char *base,
+ unsigned nel,
+ unsigned nKeyPtrSize,
+ int (*compar)(
+ char *p1,
+ char *p2),
+ int (*interpol)(
+ char *key,
+ char *lo,
+ char *hi,
+ char *answer,
+ int bitsPerRGB),
+ char *answer)
/*
* DESCRIPTION
@@ -1218,8 +1234,8 @@ _XcmsTableSearch (key, bitsPerRGB, base, nel, nKeyPtrSize, compar, interpol, ans
*
* SYNOPSIS
*/
-void _XcmsMatVec(pMat, pIn, pOut)
- XcmsFloat *pMat, *pIn, *pOut;
+static void _XcmsMatVec(
+ XcmsFloat *pMat, XcmsFloat *pIn, XcmsFloat *pOut)
/*
* DESCRIPTION
* Multiply the passed vector by the passed matrix to return a
@@ -1253,9 +1269,9 @@ void _XcmsMatVec(pMat, pIn, pOut)
* SYNOPSIS
*/
static int
-XcmsLRGB_RGB_ParseString(spec, pColor)
- register char *spec;
- XcmsColor *pColor;
+XcmsLRGB_RGB_ParseString(
+ register char *spec,
+ XcmsColor *pColor)
/*
* DESCRIPTION
* This routines takes a string and attempts to convert
@@ -1371,9 +1387,9 @@ XcmsLRGB_RGB_ParseString(spec, pColor)
* SYNOPSIS
*/
static int
-XcmsLRGB_RGBi_ParseString(spec, pColor)
- register char *spec;
- XcmsColor *pColor;
+XcmsLRGB_RGBi_ParseString(
+ register char *spec,
+ XcmsColor *pColor)
/*
* DESCRIPTION
* This routines takes a string and attempts to convert
@@ -1651,7 +1667,7 @@ XcmsRGBiToRGB(ccc, pXcmsColors_in_out, nColors, pCompressed)
(char *)pScreenData->pRedTbl->pBase,
(unsigned)pScreenData->pRedTbl->nEntries,
(unsigned)sizeof(IntensityRec),
- _XcmsIntensityCmp, _XcmsIntensityInterpolation, (char *)&answerIRec)) {
+ (comparProcp)_XcmsIntensityCmp, (interpolProcp)_XcmsIntensityInterpolation, (char *)&answerIRec)) {
return(XcmsFailure);
}
tmpRGB.red = answerIRec.value;
@@ -1661,7 +1677,7 @@ XcmsRGBiToRGB(ccc, pXcmsColors_in_out, nColors, pCompressed)
(char *)pScreenData->pGreenTbl->pBase,
(unsigned)pScreenData->pGreenTbl->nEntries,
(unsigned)sizeof(IntensityRec),
- _XcmsIntensityCmp, _XcmsIntensityInterpolation, (char *)&answerIRec)) {
+ (comparProcp)_XcmsIntensityCmp, (interpolProcp)_XcmsIntensityInterpolation, (char *)&answerIRec)) {
return(XcmsFailure);
}
tmpRGB.green = answerIRec.value;
@@ -1671,7 +1687,7 @@ XcmsRGBiToRGB(ccc, pXcmsColors_in_out, nColors, pCompressed)
(char *)pScreenData->pBlueTbl->pBase,
(unsigned)pScreenData->pBlueTbl->nEntries,
(unsigned)sizeof(IntensityRec),
- _XcmsIntensityCmp, _XcmsIntensityInterpolation, (char *)&answerIRec)) {
+ (comparProcp)_XcmsIntensityCmp, (interpolProcp)_XcmsIntensityInterpolation, (char *)&answerIRec)) {
return(XcmsFailure);
}
tmpRGB.blue = answerIRec.value;
@@ -1691,11 +1707,11 @@ XcmsRGBiToRGB(ccc, pXcmsColors_in_out, nColors, pCompressed)
*/
/* ARGSUSED */
Status
-XcmsRGBToRGBi(ccc, pXcmsColors_in_out, nColors, pCompressed)
- XcmsCCC ccc;
- XcmsColor *pXcmsColors_in_out;/* pointer to XcmsColors to convert */
- unsigned int nColors; /* Number of colors */
- Bool *pCompressed; /* pointer to a bit array */
+XcmsRGBToRGBi(
+ XcmsCCC ccc,
+ XcmsColor *pXcmsColors_in_out,/* pointer to XcmsColors to convert */
+ unsigned int nColors, /* Number of colors */
+ Bool *pCompressed) /* pointer to a bit array */
/*
* DESCRIPTION
* Converts color specifications in an array of XcmsColor
@@ -1732,7 +1748,7 @@ XcmsRGBToRGBi(ccc, pXcmsColors_in_out, nColors, pCompressed)
(char *)pScreenData->pRedTbl->pBase,
(unsigned)pScreenData->pRedTbl->nEntries,
(unsigned)sizeof(IntensityRec),
- _XcmsValueCmp, _XcmsValueInterpolation, (char *)&answerIRec)) {
+ (comparProcp)_XcmsValueCmp, (interpolProcp)_XcmsValueInterpolation, (char *)&answerIRec)) {
return(XcmsFailure);
}
tmpRGBi.red = answerIRec.intensity;
@@ -1742,7 +1758,7 @@ XcmsRGBToRGBi(ccc, pXcmsColors_in_out, nColors, pCompressed)
(char *)pScreenData->pGreenTbl->pBase,
(unsigned)pScreenData->pGreenTbl->nEntries,
(unsigned)sizeof(IntensityRec),
- _XcmsValueCmp, _XcmsValueInterpolation, (char *)&answerIRec)) {
+ (comparProcp)_XcmsValueCmp, (interpolProcp)_XcmsValueInterpolation, (char *)&answerIRec)) {
return(XcmsFailure);
}
tmpRGBi.green = answerIRec.intensity;
@@ -1752,7 +1768,7 @@ XcmsRGBToRGBi(ccc, pXcmsColors_in_out, nColors, pCompressed)
(char *)pScreenData->pBlueTbl->pBase,
(unsigned)pScreenData->pBlueTbl->nEntries,
(unsigned)sizeof(IntensityRec),
- _XcmsValueCmp, _XcmsValueInterpolation, (char *)&answerIRec)) {
+ (comparProcp)_XcmsValueCmp, (interpolProcp)_XcmsValueInterpolation, (char *)&answerIRec)) {
return(XcmsFailure);
}
tmpRGBi.blue = answerIRec.intensity;
@@ -1771,10 +1787,10 @@ XcmsRGBToRGBi(ccc, pXcmsColors_in_out, nColors, pCompressed)
*/
/* ARGSUSED */
int
-_XcmsLRGB_InitScrnDefault(dpy, screenNumber, pPerScrnInfo)
- Display *dpy;
- int screenNumber;
- XcmsPerScrnInfo *pPerScrnInfo;
+_XcmsLRGB_InitScrnDefault(
+ Display *dpy,
+ int screenNumber,
+ XcmsPerScrnInfo *pPerScrnInfo)
/*
* DESCRIPTION
* Given a display and screen number, this routine attempts
diff --git a/src/xcms/Lab.c b/src/xcms/Lab.c
index 7827d8e7..fed6115a 100644
--- a/src/xcms/Lab.c
+++ b/src/xcms/Lab.c
@@ -36,11 +36,14 @@
*
* Note that the range for L* is 0 to 1.
*/
+/* $XFree86: xc/lib/X11/Lab.c,v 1.3 2001/01/17 19:41:38 dawes Exp $ */
#include <X11/Xos.h>
+#include <stdio.h> /* sscanf */
#include "Xlibint.h"
#include "Xcmsint.h"
+#include "Cv.h"
/*
* DEFINES
@@ -55,17 +58,11 @@
#define DIV16BY116 0.137931
/*
- * EXTERNS
- */
-extern char _XcmsCIELab_prefix[];
-
-
-/*
* FORWARD DECLARATIONS
*/
-static int CIELab_ParseString();
-static Status XcmsCIELab_ValidSpec();
+static int CIELab_ParseString(register char *spec, XcmsColor *pColor);
+static Status XcmsCIELab_ValidSpec(XcmsColor *pColor);
/*
@@ -120,9 +117,9 @@ XcmsColorSpace XcmsCIELabColorSpace =
* SYNOPSIS
*/
static int
-CIELab_ParseString(spec, pColor)
- register char *spec;
- XcmsColor *pColor;
+CIELab_ParseString(
+ register char *spec,
+ XcmsColor *pColor)
/*
* DESCRIPTION
* This routines takes a string and attempts to convert
@@ -185,8 +182,8 @@ CIELab_ParseString(spec, pColor)
* SYNOPSIS
*/
static Status
-XcmsCIELab_ValidSpec(pColor)
- XcmsColor *pColor;
+XcmsCIELab_ValidSpec(
+ XcmsColor *pColor)
/*
* DESCRIPTION
* Checks if color specification valid for CIE L*a*b*.
diff --git a/src/xcms/LabGcC.c b/src/xcms/LabGcC.c
index 0618dcbb..306b811a 100644
--- a/src/xcms/LabGcC.c
+++ b/src/xcms/LabGcC.c
@@ -30,9 +30,11 @@
* Source for XcmsCIELabClipuv() gamut compression routine.
*
*/
+/* $XFree86: xc/lib/X11/LabGcC.c,v 1.3 2001/01/17 19:41:38 dawes Exp $ */
#include "Xlibint.h"
#include "Xcmsint.h"
+#include "Cv.h"
/************************************************************************
diff --git a/src/xcms/LabGcL.c b/src/xcms/LabGcL.c
index bc6d20ef..3311a978 100644
--- a/src/xcms/LabGcL.c
+++ b/src/xcms/LabGcL.c
@@ -30,14 +30,11 @@
* Source for XcmsCIELabClipL() gamut compression routine.
*
*/
+/* $XFree86: xc/lib/X11/LabGcL.c,v 1.3 2001/01/17 19:41:38 dawes Exp $ */
#include "Xlibint.h"
#include "Xcmsint.h"
-
-/*
- * EXTERNS
- */
-extern Status _XcmsCIELabQueryMaxLCRGB();
+#include "Cv.h"
/************************************************************************
diff --git a/src/xcms/LabGcLC.c b/src/xcms/LabGcLC.c
index 8ffaf8c3..85b1b001 100644
--- a/src/xcms/LabGcLC.c
+++ b/src/xcms/LabGcLC.c
@@ -30,10 +30,12 @@
* Source for XcmsCIELabClipLab() gamut
* compression function.
*/
+/* $XFree86: xc/lib/X11/LabGcLC.c,v 1.3 2001/01/17 19:41:39 dawes Exp $ */
#include "Xlibint.h"
#include "Xcmsint.h"
#include <math.h>
+#include "Cv.h"
/*
* INTERNALS
@@ -42,11 +44,6 @@
*/
#define MAXBISECTCOUNT 100
-/*
- * EXTERNS
- */
-extern Status _XcmsCIELabQueryMaxLCRGB();
-
/************************************************************************
* *
diff --git a/src/xcms/LabMnL.c b/src/xcms/LabMnL.c
index c5ca3e8e..dd5f5c1b 100644
--- a/src/xcms/LabMnL.c
+++ b/src/xcms/LabMnL.c
@@ -31,10 +31,12 @@
* querying routine.
*
*/
+/* $XFree86: xc/lib/X11/LabMnL.c,v 1.3 2001/01/17 19:41:39 dawes Exp $ */
#include "Xlibint.h"
#include "Xcmsint.h"
#include <math.h>
+#include "Cv.h"
/*
* DEFINES
@@ -43,11 +45,6 @@
#define EPS (XcmsFloat)0.001
#define START_L_STAR (XcmsFloat)40.0
-/*
- * EXTERNS
- */
-extern Status _XcmsCIELabQueryMaxLCRGB();
-
/************************************************************************
* *
diff --git a/src/xcms/LabMxC.c b/src/xcms/LabMxC.c
index a1a3d69d..d03ed9d8 100644
--- a/src/xcms/LabMxC.c
+++ b/src/xcms/LabMxC.c
@@ -33,10 +33,12 @@
* querying routine.
*
*/
+/* $XFree86: xc/lib/X11/LabMxC.c,v 1.3 2001/01/17 19:41:39 dawes Exp $ */
#include "Xlibint.h"
#include "Xcmsint.h"
#include <math.h>
+#include "Cv.h"
/*
* DEFINES
@@ -46,11 +48,6 @@
#define START_CHROMA (XcmsFloat)3.6
#define TOPL (XcmsFloat)100.0
-/*
- * EXTERNS
- */
-extern Status _XcmsCIELabQueryMaxLCRGB();
-
/************************************************************************
* *
diff --git a/src/xcms/LabMxL.c b/src/xcms/LabMxL.c
index a31a8f41..32f4bdbe 100644
--- a/src/xcms/LabMxL.c
+++ b/src/xcms/LabMxL.c
@@ -31,10 +31,12 @@
* querying routine.
*
*/
+/* $XFree86: xc/lib/X11/LabMxL.c,v 1.3 2001/01/17 19:41:39 dawes Exp $ */
#include "Xlibint.h"
#include "Xcmsint.h"
#include <math.h>
+#include "Cv.h"
/*
* DEFINES
@@ -43,11 +45,6 @@
#define EPS (XcmsFloat)0.001
#define START_L_STAR (XcmsFloat)40
-/*
- * EXTERNS
- */
-extern Status _XcmsCIELabQueryMaxLCRGB();
-
/************************************************************************
* *
diff --git a/src/xcms/LabMxLC.c b/src/xcms/LabMxLC.c
index 6fdeeb1b..e806bb19 100644
--- a/src/xcms/LabMxLC.c
+++ b/src/xcms/LabMxLC.c
@@ -38,9 +38,11 @@
* Fred W. Billmeyer & Max Saltzman, "Principles of Color
* Technology", John Wily & Sons, Inc, 1981.
*/
+/* $XFree86$ */
#include "Xlibint.h"
#include "Xcmsint.h"
+#include "Cv.h"
/*
* DEFINES
@@ -52,16 +54,6 @@
#define START_LSTAR (XcmsFloat)40.0
#define START_CHROMA (XcmsFloat)3.6
-/*
- * EXTERNS
- */
-extern Status _XcmsConvertColorsWithWhitePt();
-
-/*
- * FORWARD DECLARATIONS
- */
-Status _XcmsCIELabQueryMaxLCRGB();
-
/************************************************************************
* *
@@ -76,12 +68,11 @@ Status _XcmsCIELabQueryMaxLCRGB();
* SYNOPSIS
*/
Status
-_XcmsCIELabQueryMaxLCRGB(ccc, hue, pColor_return, pRGB_return)
- XcmsCCC ccc;
- XcmsFloat hue; /* hue in radians */
- XcmsColor *pColor_return;
- XcmsRGBi *pRGB_return;
-
+_XcmsCIELabQueryMaxLCRGB(
+ XcmsCCC ccc,
+ XcmsFloat hue, /* hue in radians */
+ XcmsColor *pColor_return,
+ XcmsRGBi *pRGB_return)
/*
* DESCRIPTION
* Return the maximum psychometric chroma for a specified
diff --git a/src/xcms/LabWpAj.c b/src/xcms/LabWpAj.c
index b4fc4a32..ec2a68d2 100644
--- a/src/xcms/LabWpAj.c
+++ b/src/xcms/LabWpAj.c
@@ -32,16 +32,16 @@
* adjustment of color specifications in the CIE L*a*b* color
* space.
*/
+/* $XFree86$ */
#include "Xlibint.h"
#include "Xcmsint.h"
+#include "Cv.h"
/*
* EXTERNS
*/
-extern Status _XcmsConvertColorsWithWhitePt();
-
/************************************************************************
* *
diff --git a/src/xcms/Luv.c b/src/xcms/Luv.c
index 9cb56cfd..17fff09a 100644
--- a/src/xcms/Luv.c
+++ b/src/xcms/Luv.c
@@ -38,24 +38,22 @@
* Fred W. Billmeyer & Max Saltzman, "Principles of Color
* Technology", John Wily & Sons, Inc, 1981.
*/
+/* $XFree86: xc/lib/X11/Luv.c,v 1.3 2001/01/17 19:41:39 dawes Exp $ */
#include <X11/Xos.h>
#include "Xlibint.h"
#include "Xcmsint.h"
+#include "Cv.h"
-/*
- * EXTERNS
- */
-
-extern char _XcmsCIELuv_prefix[];
+#include <stdio.h> /* sscanf */
/*
* FORWARD DECLARATIONS
*/
-static int CIELuv_ParseString();
-static Status XcmsCIELuv_ValidSpec();
+static int CIELuv_ParseString(register char *spec, XcmsColor *pColor);
+static Status XcmsCIELuv_ValidSpec(XcmsColor *pColor);
/*
* DEFINES
@@ -122,9 +120,9 @@ XcmsColorSpace XcmsCIELuvColorSpace =
* SYNOPSIS
*/
static int
-CIELuv_ParseString(spec, pColor)
- register char *spec;
- XcmsColor *pColor;
+CIELuv_ParseString(
+ register char *spec,
+ XcmsColor *pColor)
/*
* DESCRIPTION
* This routines takes a string and attempts to convert
@@ -185,8 +183,8 @@ CIELuv_ParseString(spec, pColor)
* SYNOPSIS
*/
static Status
-XcmsCIELuv_ValidSpec(pColor)
- XcmsColor *pColor;
+XcmsCIELuv_ValidSpec(
+ XcmsColor *pColor)
/*
* DESCRIPTION
* Checks if color specification valid for CIE L*u*v*.
diff --git a/src/xcms/LuvGcC.c b/src/xcms/LuvGcC.c
index fa3b3f11..a945cc8a 100644
--- a/src/xcms/LuvGcC.c
+++ b/src/xcms/LuvGcC.c
@@ -30,9 +30,11 @@
* Source for XcmsCIELuvClipuv() gamut compression routine.
*
*/
+/* $XFree86: xc/lib/X11/LuvGcC.c,v 1.3 2001/01/17 19:41:39 dawes Exp $ */
#include "Xlibint.h"
#include "Xcmsint.h"
+#include "Cv.h"
/************************************************************************
diff --git a/src/xcms/LuvGcL.c b/src/xcms/LuvGcL.c
index 32d09bdb..e2a0aa13 100644
--- a/src/xcms/LuvGcL.c
+++ b/src/xcms/LuvGcL.c
@@ -30,14 +30,11 @@
* Source for XcmsCIELuvClipL() gamut compression routine.
*
*/
+/* $XFree86: xc/lib/X11/LuvGcL.c,v 1.3 2001/01/17 19:41:39 dawes Exp $ */
#include "Xlibint.h"
#include "Xcmsint.h"
-
-/*
- * EXTERNS
- */
-extern Status _XcmsCIELuvQueryMaxLCRGB();
+#include "Cv.h"
/************************************************************************
diff --git a/src/xcms/LuvGcLC.c b/src/xcms/LuvGcLC.c
index 376f5f40..c859e37b 100644
--- a/src/xcms/LuvGcLC.c
+++ b/src/xcms/LuvGcLC.c
@@ -30,10 +30,12 @@
* Source for XcmsCIELuvClipLuv() gamut
* compression function.
*/
+/* $XFree86: xc/lib/X11/LuvGcLC.c,v 1.3 2001/01/17 19:41:39 dawes Exp $ */
#include "Xlibint.h"
#include "Xcmsint.h"
#include <math.h>
+#include "Cv.h"
/*
* INTERNALS
@@ -42,11 +44,6 @@
*/
#define MAXBISECTCOUNT 100
-/*
- * EXTERNS
- */
-extern Status _XcmsCIELuvQueryMaxLCRGB();
-
/************************************************************************
* *
diff --git a/src/xcms/LuvMnL.c b/src/xcms/LuvMnL.c
index c687037d..668365db 100644
--- a/src/xcms/LuvMnL.c
+++ b/src/xcms/LuvMnL.c
@@ -31,10 +31,12 @@
* querying routine.
*
*/
+/* $XFree86: xc/lib/X11/LuvMnL.c,v 1.3 2001/01/17 19:41:39 dawes Exp $ */
#include "Xlibint.h"
#include "Xcmsint.h"
#include <math.h>
+#include "Cv.h"
/*
* DEFINES
@@ -43,11 +45,6 @@
#define EPS (XcmsFloat)0.001
#define START_L_STAR (XcmsFloat)40.0
-/*
- * EXTERNS
- */
-extern Status _XcmsCIELuvQueryMaxLCRGB();
-
/************************************************************************
* *
diff --git a/src/xcms/LuvMxC.c b/src/xcms/LuvMxC.c
index 100a3b9e..2ff95afb 100644
--- a/src/xcms/LuvMxC.c
+++ b/src/xcms/LuvMxC.c
@@ -33,10 +33,12 @@
* querying routine.
*
*/
+/* $XFree86: xc/lib/X11/LuvMxC.c,v 1.3 2001/01/17 19:41:39 dawes Exp $ */
#include "Xlibint.h"
#include "Xcmsint.h"
#include <math.h>
+#include "Cv.h"
/*
* DEFINES
@@ -45,10 +47,6 @@
#define EPS (XcmsFloat)0.001
#define START_CHROMA (XcmsFloat)2.2
#define TOPL (XcmsFloat)100.0
-/*
- * EXTERNS
- */
-extern Status _XcmsCIELuvQueryMaxLCRGB();
/************************************************************************
diff --git a/src/xcms/LuvMxL.c b/src/xcms/LuvMxL.c
index 7925b010..08d01280 100644
--- a/src/xcms/LuvMxL.c
+++ b/src/xcms/LuvMxL.c
@@ -31,10 +31,12 @@
* querying routine.
*
*/
+/* $XFree86: xc/lib/X11/LuvMxL.c,v 1.3 2001/01/17 19:41:40 dawes Exp $ */
#include "Xlibint.h"
#include "Xcmsint.h"
#include <math.h>
+#include "Cv.h"
/*
* DEFINES
@@ -43,11 +45,6 @@
#define EPS (XcmsFloat)0.001
#define START_L_STAR (XcmsFloat)40.0
-/*
- * EXTERNS
- */
-extern Status _XcmsCIELuvQueryMaxLCRGB();
-
/************************************************************************
* *
diff --git a/src/xcms/LuvMxLC.c b/src/xcms/LuvMxLC.c
index 337bbbf2..bb00b713 100644
--- a/src/xcms/LuvMxLC.c
+++ b/src/xcms/LuvMxLC.c
@@ -38,9 +38,11 @@
* Fred W. Billmeyer & Max Saltzman, "Principles of Color
* Technology", John Wily & Sons, Inc, 1981.
*/
+/* $XFree86$ */
#include "Xlibint.h"
#include "Xcmsint.h"
+#include "Cv.h"
/*
* DEFINES
@@ -52,16 +54,6 @@
#define START_LSTAR (XcmsFloat)40.0
#define START_CHROMA (XcmsFloat)2.2
-/*
- * EXTERNS
- */
-extern Status _XcmsConvertColorsWithWhitePt();
-
-/*
- * FORWARD DECLARATIONS
- */
-Status _XcmsCIELuvQueryMaxLCRGB();
-
/************************************************************************
* *
@@ -76,12 +68,11 @@ Status _XcmsCIELuvQueryMaxLCRGB();
* SYNOPSIS
*/
Status
-_XcmsCIELuvQueryMaxLCRGB(ccc, hue, pColor_return, pRGB_return)
- XcmsCCC ccc;
- XcmsFloat hue; /* hue in radians */
- XcmsColor *pColor_return;
- XcmsRGBi *pRGB_return;
-
+_XcmsCIELuvQueryMaxLCRGB(
+ XcmsCCC ccc,
+ XcmsFloat hue, /* hue in radians */
+ XcmsColor *pColor_return,
+ XcmsRGBi *pRGB_return)
/*
* DESCRIPTION
* Return the maximum psychometric chroma for a specified
diff --git a/src/xcms/LuvWpAj.c b/src/xcms/LuvWpAj.c
index 5083ccb7..f19bfa5c 100644
--- a/src/xcms/LuvWpAj.c
+++ b/src/xcms/LuvWpAj.c
@@ -32,15 +32,11 @@
* adjustment of color specifications in the CIE CIELuv.color
* space.
*/
+/* $XFree86$ */
#include "Xlibint.h"
#include "Xcmsint.h"
-
-/*
- * EXTERNS
- */
-
-extern Status _XcmsConvertColorsWithWhitePt();
+#include "Cv.h"
diff --git a/src/xcms/PrOfId.c b/src/xcms/PrOfId.c
index 7b301e41..84c6166a 100644
--- a/src/xcms/PrOfId.c
+++ b/src/xcms/PrOfId.c
@@ -32,15 +32,11 @@
*
*
*/
+/* $XFree86$ */
#include "Xlibint.h"
#include "Xcmsint.h"
-
-/*
- * EXTERNS
- */
-extern XcmsColorSpace **_XcmsDIColorSpaces;
-extern XcmsColorSpace **_XcmsDDColorSpaces;
+#include "Cv.h"
/*
diff --git a/src/xcms/QuCol.c b/src/xcms/QuCol.c
index d632d457..3c48467b 100644
--- a/src/xcms/QuCol.c
+++ b/src/xcms/QuCol.c
@@ -32,10 +32,11 @@
*
*
*/
+/* $XFree86: xc/lib/X11/QuCol.c,v 1.3 2001/01/17 19:41:42 dawes Exp $ */
#include "Xlibint.h"
#include "Xcmsint.h"
-
+#include "Cv.h"
/************************************************************************
@@ -71,6 +72,6 @@ XcmsQueryColor(dpy, colormap, pXcmsColor_in_out, result_format)
* specified pixel.
*/
{
- return(_XcmsSetGetColors (XQueryColor, dpy, colormap,
- pXcmsColor_in_out, 1, result_format, (Bool *) NULL));
+ return(_XcmsSetGetColor(XQueryColor, dpy, colormap,
+ pXcmsColor_in_out, result_format, (Bool *) NULL));
}
diff --git a/src/xcms/QuCols.c b/src/xcms/QuCols.c
index 9a35cf05..3f4350b1 100644
--- a/src/xcms/QuCols.c
+++ b/src/xcms/QuCols.c
@@ -32,9 +32,11 @@
*
*
*/
+/* $XFree86: xc/lib/X11/QuCols.c,v 1.3 2001/01/17 19:41:42 dawes Exp $ */
#include "Xlibint.h"
#include "Xcmsint.h"
+#include "Cv.h"
/************************************************************************
@@ -70,6 +72,6 @@ XcmsQueryColors(dpy, colormap, pXcmsColors_in_out, nColors, result_format)
* specified pixels.
*/
{
- return(_XcmsSetGetColors (XQueryColors, dpy, colormap,
+ return(_XcmsSetGetColors(XQueryColors, dpy, colormap,
pXcmsColors_in_out, nColors, result_format, (Bool *) NULL));
}
diff --git a/src/xcms/SetCCC.c b/src/xcms/SetCCC.c
index d58daf8a..e8d3a779 100644
--- a/src/xcms/SetCCC.c
+++ b/src/xcms/SetCCC.c
@@ -33,6 +33,7 @@
*
*
*/
+/* $XFree86$ */
#include "Xlibint.h"
#include "Xcms.h"
@@ -86,17 +87,10 @@ XcmsSetWhitePoint(ccc, pColor)
*/
XcmsCompressionProc
-#if NeedFunctionPrototypes
XcmsSetCompressionProc(
XcmsCCC ccc,
XcmsCompressionProc compression_proc,
XPointer client_data)
-#else
-XcmsSetCompressionProc(ccc, compression_proc, client_data)
- XcmsCCC ccc;
- XcmsCompressionProc compression_proc;
- XPointer client_data;
-#endif
/*
* DESCRIPTION
* Set the specified CCC's compression function and client data.
@@ -122,17 +116,10 @@ XcmsSetCompressionProc(ccc, compression_proc, client_data)
*/
XcmsWhiteAdjustProc
-#if NeedFunctionPrototypes
XcmsSetWhiteAdjustProc(
XcmsCCC ccc,
XcmsWhiteAdjustProc white_adjust_proc,
XPointer client_data )
-#else
-XcmsSetWhiteAdjustProc(ccc, white_adjust_proc, client_data)
- XcmsCCC ccc;
- XcmsWhiteAdjustProc white_adjust_proc;
- XPointer client_data;
-#endif
/*
* DESCRIPTION
* Set the specified CCC's white_adjust function and client data.
diff --git a/src/xcms/SetGetCols.c b/src/xcms/SetGetCols.c
index 5ee68985..66477652 100644
--- a/src/xcms/SetGetCols.c
+++ b/src/xcms/SetGetCols.c
@@ -32,6 +32,7 @@
*
*
*/
+/* $XFree86$ */
/*
* EXTERNAL INCLUDES
@@ -40,15 +41,7 @@
*/
#include "Xlibint.h"
#include "Xcmsint.h"
-
-
-/*
- * EXTERNS
- */
-
-extern void _XcmsRGB_to_XColor();
-extern void _XColor_to_XcmsRGB();
-
+#include "Cv.h"
/************************************************************************
@@ -59,27 +52,144 @@ extern void _XColor_to_XcmsRGB();
/*
* NAME
- * XcmsSetColors -
+ * XcmsSetColor -
*
* SYNOPSIS
*/
Status
-_XcmsSetGetColors(xColorProc, dpy, cmap, pColors_in_out, nColors,
- result_format, pCompressed)
- Status (*xColorProc)();
- Display *dpy;
- Colormap cmap;
- XcmsColor *pColors_in_out;
- unsigned int nColors;
- XcmsColorFormat result_format;
- Bool *pCompressed;
+_XcmsSetGetColor(
+ Status (*xColorProc)(
+ Display* /* display */,
+ Colormap /* colormap */,
+ XColor* /* screen_in_out */),
+ Display *dpy,
+ Colormap cmap,
+ XcmsColor *pColors_in_out,
+ XcmsColorFormat result_format,
+ Bool *pCompressed)
/*
* DESCRIPTION
* Routine containing code common to:
* XcmsAllocColor
* XcmsQueryColor
- * XcmsQueryColors
* XcmsStoreColor
+ *
+ * RETURNS
+ * XcmsFailure if failed;
+ * XcmsSuccess if it succeeded without gamut compression;
+ * XcmsSuccessWithCompression if it succeeded with gamut
+ * compression;
+ */
+{
+ XcmsCCC ccc;
+ XColor XColors_in_out;
+ Status retval = XcmsSuccess;
+
+ /*
+ * Argument Checking
+ * 1. Assume xColorProc is correct
+ * 2. Insure ccc not NULL
+ * 3. Assume cmap correct (should be checked by Server)
+ * 4. Insure pColors_in_out valid
+ * 5. Assume method_in is valid (should be checked by Server)
+ */
+
+ if (dpy == NULL) {
+ return(XcmsFailure);
+ }
+
+ if (result_format == XcmsUndefinedFormat) {
+ return(XcmsFailure);
+ }
+
+ if ( !((*xColorProc == XAllocColor) || (*xColorProc == XStoreColor)
+ || (*xColorProc == XQueryColor)) ) {
+ return(XcmsFailure);
+ }
+
+ if ((ccc = XcmsCCCOfColormap(dpy, cmap)) == (XcmsCCC)NULL) {
+ return(XcmsFailure);
+ }
+
+ if (*xColorProc == XQueryColor) {
+ goto Query;
+ }
+
+ /*
+ * Convert to RGB, adjusting for white point differences if necessary.
+ */
+ if ((retval = XcmsConvertColors(ccc, pColors_in_out, 1, XcmsRGBFormat,
+ pCompressed)) == XcmsFailure) {
+ return(XcmsFailure);
+ }
+
+Query:
+ /*
+ * Convert XcmsColor to XColor structures
+ */
+ _XcmsRGB_to_XColor(pColors_in_out, &XColors_in_out, 1);
+
+ /*
+ * Now make appropriate X Call
+ */
+ if (*xColorProc == XAllocColor) {
+ if ((*xColorProc)(ccc->dpy, cmap, &XColors_in_out) == 0) {
+ return(XcmsFailure);
+ }
+ } else if ((*xColorProc == XQueryColor) || (*xColorProc == XStoreColor)) {
+ /* Note: XQueryColor and XStoreColor do not return any Status */
+ (*xColorProc)(ccc->dpy, cmap, &XColors_in_out);
+ } else {
+ return(XcmsFailure);
+ }
+
+ if ((*xColorProc == XStoreColor)) {
+ return(retval);
+ }
+
+ /*
+ * Now, convert the returned XColor (i.e., rgb) to XcmsColor structures
+ */
+ _XColor_to_XcmsRGB(ccc, &XColors_in_out, pColors_in_out, 1);
+
+ /*
+ * Then, convert XcmsColor structures to the original specification
+ * format. Note that we must use NULL instead of passing
+ * pCompressed.
+ */
+
+ if (result_format != XcmsRGBFormat) {
+ if (XcmsConvertColors(ccc, pColors_in_out, 1, result_format,
+ (Bool *) NULL) == XcmsFailure) {
+ return(XcmsFailure);
+ }
+ }
+ return(retval);
+}
+
+/*
+ * NAME
+ * XcmsSetColors -
+ *
+ * SYNOPSIS
+ */
+Status
+_XcmsSetGetColors(
+ Status (*xColorProc)(
+ Display* /* display */,
+ Colormap /* colormap */,
+ XColor* /* screen_in_out */,
+ int /* nColors */),
+ Display *dpy,
+ Colormap cmap,
+ XcmsColor *pColors_in_out,
+ int nColors,
+ XcmsColorFormat result_format,
+ Bool *pCompressed)
+/*
+ * DESCRIPTION
+ * Routine containing code common to:
+ * XcmsQueryColors
* XcmsStoreColors
*
* RETURNS
@@ -115,9 +225,7 @@ _XcmsSetGetColors(xColorProc, dpy, cmap, pColors_in_out, nColors,
return(XcmsFailure);
}
- if (!((*xColorProc == XAllocColor) || (*xColorProc == XStoreColor)
- || (*xColorProc == XStoreColors) || (*xColorProc == XQueryColor)
- || (*xColorProc == XQueryColors))) {
+ if ( !((*xColorProc == XStoreColors) || (*xColorProc == XQueryColors)) ) {
return(XcmsFailure);
}
@@ -125,11 +233,6 @@ _XcmsSetGetColors(xColorProc, dpy, cmap, pColors_in_out, nColors,
return(XcmsFailure);
}
- if ((*xColorProc == XAllocColor) || (*xColorProc == XStoreColor)
- || (*xColorProc == XQueryColor)) {
- nColors = 1;
- }
-
/*
* Allocate space for XColors
*/
@@ -138,14 +241,16 @@ _XcmsSetGetColors(xColorProc, dpy, cmap, pColors_in_out, nColors,
return(XcmsFailure);
}
- if ((*xColorProc == XQueryColor) || (*xColorProc == XQueryColors)) {
+ if (*xColorProc == XQueryColors) {
goto Query;
}
+
/*
* Convert to RGB, adjusting for white point differences if necessary.
*/
if ((retval = XcmsConvertColors(ccc, pColors_in_out, nColors, XcmsRGBFormat,
pCompressed)) == XcmsFailure) {
+ Xfree((char *)pXColors_in_out);
return(XcmsFailure);
}
@@ -158,15 +263,7 @@ Query:
/*
* Now make appropriate X Call
*/
- if (*xColorProc == XAllocColor) {
- if ((*xColorProc)(ccc->dpy, cmap, pXColors_in_out) == 0) {
- Xfree((char *)pXColors_in_out);
- return(XcmsFailure);
- }
- } else if ((*xColorProc == XQueryColor) || (*xColorProc == XStoreColor)) {
- /* Note: XQueryColor and XStoreColor do not return any Status */
- (*xColorProc)(ccc->dpy, cmap, pXColors_in_out);
- } else if ((*xColorProc == XQueryColors) || (*xColorProc == XStoreColors)){
+ if ((*xColorProc == XQueryColors) || (*xColorProc == XStoreColors)){
/* Note: XQueryColors and XStoreColors do not return any Status */
(*xColorProc)(ccc->dpy, cmap, pXColors_in_out, nColors);
} else {
@@ -174,13 +271,13 @@ Query:
return(XcmsFailure);
}
- if ((*xColorProc == XStoreColor) || (*xColorProc == XStoreColors)) {
+ if (*xColorProc == XStoreColors) {
Xfree((char *)pXColors_in_out);
return(retval);
}
/*
- * Now, convert returned XColor(i.e., rgb) to XcmsColor structures
+ * Now, convert the returned XColor (i.e., rgb) to XcmsColor structures
*/
_XColor_to_XcmsRGB(ccc, pXColors_in_out, pColors_in_out, nColors);
Xfree((char *)pXColors_in_out);
@@ -190,12 +287,14 @@ Query:
* format. Note that we must use NULL instead of passing
* pCompressed.
*/
-
if (result_format != XcmsRGBFormat) {
if (XcmsConvertColors(ccc, pColors_in_out, nColors, result_format,
(Bool *) NULL) == XcmsFailure) {
return(XcmsFailure);
}
}
+
return(retval);
}
+
+/* ### EOF ### */
diff --git a/src/xcms/StCol.c b/src/xcms/StCol.c
index b6229f98..5893d65b 100644
--- a/src/xcms/StCol.c
+++ b/src/xcms/StCol.c
@@ -32,9 +32,11 @@
*
*
*/
+/* $XFree86: xc/lib/X11/StCol.c,v 1.3 2001/01/17 19:41:44 dawes Exp $ */
#include "Xlibint.h"
#include "Xcmsint.h"
+#include "Cv.h"
/************************************************************************
@@ -74,6 +76,6 @@ XcmsStoreColor(dpy, colormap, pColor_in)
XcmsColor tmpColor;
tmpColor = *pColor_in;
- return(_XcmsSetGetColors (XStoreColor, dpy, colormap,
- &tmpColor, 1, XcmsRGBFormat, (Bool *) NULL));
+ return(_XcmsSetGetColor(XStoreColor, dpy, colormap,
+ &tmpColor, XcmsRGBFormat, (Bool *) NULL));
}
diff --git a/src/xcms/StCols.c b/src/xcms/StCols.c
index 1e833c34..8219a7f1 100644
--- a/src/xcms/StCols.c
+++ b/src/xcms/StCols.c
@@ -32,9 +32,11 @@
*
*
*/
+/* $XFree86: xc/lib/X11/StCols.c,v 1.3 2001/01/17 19:41:44 dawes Exp $ */
#include "Xlibint.h"
#include "Xcmsint.h"
+#include "Cv.h"
/************************************************************************
diff --git a/src/xcms/UNDEFINED.c b/src/xcms/UNDEFINED.c
index a4e05551..520d97a1 100644
--- a/src/xcms/UNDEFINED.c
+++ b/src/xcms/UNDEFINED.c
@@ -33,6 +33,7 @@
*
*
*/
+/* $XFree86$ */
#include "Xlibint.h"
#include "Xcmsint.h"
@@ -40,21 +41,33 @@
/*
* FORWARD DECLARATIONS
*/
-static int ReturnZero();
+static int DummyParseStringProc(
+ char* /* color_string */,
+ XcmsColor* /* color_return */
+ );
+static Status ReturnZero(
+ XcmsCCC /* ccc */,
+ XcmsColor* /* white_point */,
+ XcmsColor* /* colors */,
+ unsigned int /* ncolors */
+ );
/*
* LOCALS VARIABLES
*/
-static Status (*(Fl_ReturnZero[]))() = {
+static Status (*(Fl_ReturnZero[]))(
+ XcmsCCC /* ccc */,
+ XcmsColor* /* white_point */,
+ XcmsColor* /* colors */,
+ unsigned int /* ncolors */
+ ) = {
ReturnZero,
NULL
};
-
-
/*
* GLOBALS
* Variables declared in this package that are allowed
@@ -67,7 +80,7 @@ XcmsColorSpace XcmsUNDEFINEDColorSpace =
{
"undefined", /* prefix */
XcmsUndefinedFormat, /* id */
- ReturnZero, /* parseString */
+ &DummyParseStringProc, /* parseString */
Fl_ReturnZero, /* to_CIEXYZ */
Fl_ReturnZero /* from_CIEXYZ */
};
@@ -87,8 +100,13 @@ XcmsColorSpace XcmsUNDEFINEDColorSpace =
* SYNOPSIS
*/
/* ARGSUSED */
-static int
-ReturnZero()
+static Status
+ReturnZero(
+ XcmsCCC ccc /* ccc */,
+ XcmsColor* white /* white_point */,
+ XcmsColor* colors /* colors */,
+ unsigned int ncolors /* ncolors */
+ )
/*
* DESCRIPTION
* Does nothing.
@@ -100,3 +118,13 @@ ReturnZero()
{
return(0);
}
+
+static int DummyParseStringProc(
+ char* color_string /* color_string */,
+ XcmsColor* color_return /* color_return */
+ )
+{
+ return(0);
+}
+
+/* ### EOF ### */
diff --git a/src/xcms/XRGB.c b/src/xcms/XRGB.c
index 7e5b7f84..f868afcc 100644
--- a/src/xcms/XRGB.c
+++ b/src/xcms/XRGB.c
@@ -33,21 +33,17 @@
*
*
*/
+/* $XFree86: xc/lib/X11/XRGB.c,v 3.3 2001/07/29 05:01:11 tsi Exp $ */
#include "Xlibint.h"
#include "Xcmsint.h"
-
-#ifdef __STDC__
-#define Const const
-#else
-#define Const /**/
-#endif
+#include "Cv.h"
/*
* LOCAL VARIABLES
*/
-static unsigned short Const MASK[17] = {
+static unsigned short const MASK[17] = {
0x0000, /* 0 bitsPerRGB */
0x8000, /* 1 bitsPerRGB */
0xc000, /* 2 bitsPerRGB */
@@ -82,10 +78,10 @@ static unsigned short Const MASK[17] = {
* SYNOPSIS
*/
void
-_XcmsRGB_to_XColor(pColors, pXColors, nColors)
- XcmsColor *pColors;
- XColor *pXColors;
- unsigned int nColors;
+_XcmsRGB_to_XColor(
+ XcmsColor *pColors,
+ XColor *pXColors,
+ unsigned int nColors)
/*
* DESCRIPTION
* Translates a color specification in XcmsRGBFormat in a XcmsColor
@@ -112,11 +108,11 @@ _XcmsRGB_to_XColor(pColors, pXColors, nColors)
* SYNOPSIS
*/
void
-_XColor_to_XcmsRGB(ccc, pXColors, pColors, nColors)
- XcmsCCC ccc;
- XColor *pXColors;
- XcmsColor *pColors;
- unsigned int nColors;
+_XColor_to_XcmsRGB(
+ XcmsCCC ccc,
+ XColor *pXColors,
+ XcmsColor *pColors,
+ unsigned int nColors)
/*
* DESCRIPTION
* Translates an RGB color specification in an XColor
@@ -150,9 +146,9 @@ _XColor_to_XcmsRGB(ccc, pXColors, pColors, nColors)
* SYNOPSIS
*/
void
-_XcmsResolveColor(ccc, pXcmsColor)
- XcmsCCC ccc;
- XcmsColor *pXcmsColor;
+_XcmsResolveColor(
+ XcmsCCC ccc,
+ XcmsColor *pXcmsColor)
/*
* DESCRIPTION
* Uses the X Server ResolveColor() algorithm to
@@ -196,9 +192,9 @@ _XcmsResolveColor(ccc, pXcmsColor)
* SYNOPSIS
*/
void
-_XcmsUnresolveColor(ccc, pColor)
- XcmsCCC ccc;
- XcmsColor *pColor;
+_XcmsUnresolveColor(
+ XcmsCCC ccc,
+ XcmsColor *pColor)
/*
* DESCRIPTION
* Masks out insignificant bits.
@@ -225,9 +221,9 @@ _XcmsUnresolveColor(ccc, pColor)
* SYNOPSIS
*/
void
-_XUnresolveColor(ccc, pXColor)
- XcmsCCC ccc;
- XColor *pXColor;
+_XUnresolveColor(
+ XcmsCCC ccc,
+ XColor *pXColor)
/*
* DESCRIPTION
* Masks out insignificant bits.
diff --git a/src/xcms/XYZ.c b/src/xcms/XYZ.c
index a06b2132..86b18e10 100644
--- a/src/xcms/XYZ.c
+++ b/src/xcms/XYZ.c
@@ -33,19 +33,14 @@
*
*
*/
+/* $XFree86: xc/lib/X11/XYZ.c,v 1.3 2001/01/17 19:41:49 dawes Exp $ */
#include <X11/Xos.h>
#include "Xlibint.h"
#include "Xcmsint.h"
+#include "Cv.h"
-
-/*
- * EXTERNS
- * External declarations required locally to this package
- * that are not already declared in any of the included header
- * files (external includes or internal includes).
- */
-extern char _XcmsCIEXYZ_prefix[];
+#include <stdio.h> /* sscanf */
/*
* DEFINES
@@ -61,9 +56,7 @@ extern char _XcmsCIEXYZ_prefix[];
/*
* FORWARD DECLARATIONS
*/
-static int CIEXYZ_ParseString();
-Status _XcmsCIEXYZ_ValidSpec();
-
+static int CIEXYZ_ParseString(register char *spec, XcmsColor *pColor);
/*
* LOCALS VARIABLES
@@ -107,9 +100,9 @@ XcmsColorSpace XcmsCIEXYZColorSpace =
* SYNOPSIS
*/
static int
-CIEXYZ_ParseString(spec, pColor)
- register char *spec;
- XcmsColor *pColor;
+CIEXYZ_ParseString(
+ register char *spec,
+ XcmsColor *pColor)
/*
* DESCRIPTION
* This routines takes a string and attempts to convert
@@ -169,8 +162,8 @@ CIEXYZ_ParseString(spec, pColor)
* SYNOPSIS
*/
Status
-_XcmsCIEXYZ_ValidSpec(pColor)
- XcmsColor *pColor;
+_XcmsCIEXYZ_ValidSpec(
+ XcmsColor *pColor)
/*
* DESCRIPTION
* Checks if color specification valid for CIE XYZ
diff --git a/src/xcms/Xcms.txt b/src/xcms/Xcms.txt
index c27fd8f4..29069416 100644
--- a/src/xcms/Xcms.txt
+++ b/src/xcms/Xcms.txt
@@ -25,6 +25,7 @@
* DESCRIPTION
* Sample Color Name Database
*
+ * $XFree86$
*/
@@ -38,24 +39,7 @@ version number of the format/syntax used in this file. The color name is
delimited from the color specification by one or more tabs.
XCMS_COLORDB_START 0.1
-red CIEXYZ:0.371298/0.201443/0.059418
-green CIEXYZ:0.321204/0.660070/0.159833
-blue CIEXYZ:0.279962/0.160195/1.210705
-aquamarine CIEXYZ:0.34672401/0.54832153/0.44658871
-cadet blue CIEXYZ:0.22601070/0.28905571/0.47233452
-cornflower blue CIEXYZ:0.05658276/0.04476296/0.17063955
-navy blue CIEXYZ:0.06713718/0.03366278/0.31293880
-navy CIEXYZ:0.06713718/0.03366278/0.31293880
-brown CIEXYZ:0.08443233/0.06011398/0.01840693
-gray0 TekHVC:0.0/0.0/0.0
-gray10 TekHVC:0.0/10.0/0.0
-gray20 TekHVC:0.0/20.0/0.0
-gray30 TekHVC:0.0/30.0/0.0
-gray40 TekHVC:0.0/40.0/0.0
-gray50 TekHVC:0.0/50.0/0.0
-gray60 TekHVC:0.0/60.0/0.0
-gray70 TekHVC:0.0/70.0/0.0
-gray80 TekHVC:0.0/80.0/0.0
-gray90 TekHVC:0.0/90.0/0.0
-gray100 TekHVC:0.0/100.0/0.0
+cms red CIEXYZ:0.3811/0.2073/0.0213
+cms green CIEXYZ:0.3203/0.6805/0.1430
+cms blue CIEXYZ:0.2483/0.1122/1.2417
XCMS_COLORDB_END
diff --git a/src/xcms/Xcmsint.h b/src/xcms/Xcmsint.h
index 68cd1b7b..1bf02ba2 100644
--- a/src/xcms/Xcmsint.h
+++ b/src/xcms/Xcmsint.h
@@ -29,6 +29,8 @@
* (i.e., for API internal use only)
*
*/
+/* $XFree86: xc/lib/X11/Xcmsint.h,v 3.3 2001/07/25 15:04:44 dawes Exp $ */
+
#ifndef _XCMSINT_H_
#define _XCMSINT_H_
@@ -107,7 +109,7 @@ typedef struct _XcmsIntensityMap {
VisualID visualID;
XPointer screenData; /* pointer to corresponding Screen Color*/
/* Characterization Data */
- void (*pFreeScreenData)(); /* Function that frees a Screen */
+ void (*pFreeScreenData)(XPointer pScreenDataTemp); /* Function that frees a Screen */
/* structure. */
struct _XcmsIntensityMap *pNext;
} XcmsIntensityMap;
@@ -117,7 +119,7 @@ typedef struct _XcmsIntensityMap {
* Structure for storing "registered" color space prefix/ID
*/
typedef struct _XcmsRegColorSpaceEntry {
- char *prefix; /* Color Space prefix (e.g., "CIEXYZ:") */
+ const char *prefix; /* Color Space prefix (e.g., "CIEXYZ:") */
XcmsColorFormat id; /* Color Space ID (e.g., XcmsCIEXYZFormat) */
} XcmsRegColorSpaceEntry;
@@ -174,6 +176,28 @@ typedef struct {
IntensityTbl *pBlueTbl;
} LINEAR_RGB_SCCData;
+/* function prototypes */
+extern XcmsCmapRec *
+_XcmsAddCmapRec(
+ Display *dpy,
+ Colormap cmap,
+ Window windowID,
+ Visual *visual);
+extern void
+_XcmsRGB_to_XColor(
+ XcmsColor *pColors,
+ XColor *pXColors,
+ unsigned int nColors);
+extern Status
+_XcmsResolveColorString (
+ XcmsCCC ccc,
+ const char **color_string,
+ XcmsColor *pColor_exact_return,
+ XcmsColorFormat result_format);
+extern void
+_XUnresolveColor(
+ XcmsCCC ccc,
+ XColor *pXColor);
/*
* DESCRIPTION
* Include file for defining the math macros used in the
@@ -194,19 +218,11 @@ typedef struct {
#define XCMS_SQRT(x) _XcmsSquareRoot(x)
#define XCMS_TAN(x) (XCMS_SIN(x) / XCMS_COS(x))
-#ifdef __STDC__
double _XcmsArcTangent(double a);
double _XcmsCosine(double a);
double _XcmsCubeRoot(double a);
double _XcmsSine(double a);
double _XcmsSquareRoot(double a);
-#else
-double _XcmsArcTangent();
-double _XcmsCosine();
-double _XcmsCubeRoot();
-double _XcmsSine();
-double _XcmsSquareRoot();
-#endif
/*
* DEFINES FOR GAMUT COMPRESSION AND QUERY ROUTINES
diff --git a/src/xcms/cmsAllCol.c b/src/xcms/cmsAllCol.c
index b631064b..4d301485 100644
--- a/src/xcms/cmsAllCol.c
+++ b/src/xcms/cmsAllCol.c
@@ -32,9 +32,11 @@
*
*
*/
+/* $XFree86: xc/lib/X11/cmsAllCol.c,v 1.3 2001/01/17 19:41:50 dawes Exp $ */
#include "Xlibint.h"
#include "Xcmsint.h"
+#include "Cv.h"
/*
@@ -66,6 +68,6 @@ XcmsAllocColor(dpy, colormap, pXcmsColor_in_out, result_format)
*
*/
{
- return(_XcmsSetGetColors (XAllocColor, dpy, colormap, pXcmsColor_in_out, 1,
+ return(_XcmsSetGetColor(XAllocColor, dpy, colormap, pXcmsColor_in_out,
result_format, (Bool *)NULL));
}
diff --git a/src/xcms/cmsAllNCol.c b/src/xcms/cmsAllNCol.c
index 960173f8..efbb1e83 100644
--- a/src/xcms/cmsAllNCol.c
+++ b/src/xcms/cmsAllNCol.c
@@ -32,17 +32,13 @@
*
*
*/
+/* $XFree86: xc/lib/X11/cmsAllNCol.c,v 1.4 2003/04/13 19:22:20 dawes Exp $ */
#define NEED_REPLIES
#include <stdio.h>
#include "Xlibint.h"
#include "Xcmsint.h"
-
-/*
- * EXTERNS
- */
-extern void _XColor_to_XcmsRGB();
-extern void _XcmsRGB_to_XColor();
+#include "Cv.h"
/*
@@ -51,7 +47,6 @@ extern void _XcmsRGB_to_XColor();
*
* SYNOPSIS
*/
-#if NeedFunctionPrototypes
Status
XcmsAllocNamedColor (
Display *dpy,
@@ -60,17 +55,6 @@ XcmsAllocNamedColor (
XcmsColor *pColor_scrn_return,
XcmsColor *pColor_exact_return,
XcmsColorFormat result_format)
-#else
-Status
-XcmsAllocNamedColor(dpy, cmap, colorname, pColor_scrn_return,
- pColor_exact_return, result_format)
- Display *dpy;
- Colormap cmap;
- char *colorname;
- XcmsColor *pColor_scrn_return;
- XcmsColor *pColor_exact_return;
- XcmsColorFormat result_format;
-#endif
/*
* DESCRIPTION
* Finds the color specification associated with the color
diff --git a/src/xcms/cmsCmap.c b/src/xcms/cmsCmap.c
index 84d60a46..acdbb9d7 100644
--- a/src/xcms/cmsCmap.c
+++ b/src/xcms/cmsCmap.c
@@ -33,18 +33,20 @@
*
*
*/
+/* $XFree86$ */
#define NEED_EVENTS
#define NEED_REPLIES
#include "Xlibint.h"
#include "Xcmsint.h"
#include "Xutil.h"
+#include "Cmap.h"
+#include "Cv.h"
/*
* FORWARD DECLARATIONS
*/
-XcmsCmapRec *_XcmsAddCmapRec();
-static void _XcmsFreeClientCmaps();
+static void _XcmsFreeClientCmaps(Display *dpy);
/************************************************************************
@@ -60,9 +62,9 @@ static void _XcmsFreeClientCmaps();
* SYNOPSIS
*/
static XcmsCmapRec *
-CmapRecForColormap(dpy, cmap)
- Display *dpy;
- Colormap cmap;
+CmapRecForColormap(
+ Display *dpy,
+ Colormap cmap)
/*
* DESCRIPTION
* Find the corresponding XcmsCmapRec for cmap. In not found
@@ -278,10 +280,10 @@ _XcmsAddCmapRec(dpy, cmap, windowID, visual)
* SYNOPSIS
*/
XcmsCmapRec *
-_XcmsCopyCmapRecAndFree(dpy, src_cmap, copy_cmap)
- Display *dpy;
- Colormap src_cmap;
- Colormap copy_cmap;
+_XcmsCopyCmapRecAndFree(
+ Display *dpy,
+ Colormap src_cmap,
+ Colormap copy_cmap)
/*
* DESCRIPTION
* Augments Xlib's XCopyColormapAndFree() to copy
@@ -317,9 +319,9 @@ _XcmsCopyCmapRecAndFree(dpy, src_cmap, copy_cmap)
* SYNOPSIS
*/
void
-_XcmsDeleteCmapRec(dpy, cmap)
- Display *dpy;
- Colormap cmap;
+_XcmsDeleteCmapRec(
+ Display *dpy,
+ Colormap cmap)
/*
* DESCRIPTION
* Removes and frees the specified XcmsCmapRec structure
@@ -364,8 +366,8 @@ _XcmsDeleteCmapRec(dpy, cmap)
* SYNOPSIS
*/
static void
-_XcmsFreeClientCmaps(dpy)
- Display *dpy;
+_XcmsFreeClientCmaps(
+ Display *dpy)
/*
* DESCRIPTION
* Frees all XcmsCmapRec structures in the linked list
diff --git a/src/xcms/cmsColNm.c b/src/xcms/cmsColNm.c
index e4a9fc90..f7dd472f 100644
--- a/src/xcms/cmsColNm.c
+++ b/src/xcms/cmsColNm.c
@@ -1,3 +1,4 @@
+/* $XdotOrg: lib/X11/src/xcms/cmsColNm.c,v 1.2 2004-04-23 18:43:24 eich Exp $ */
/* $Xorg: cmsColNm.c,v 1.3 2000/08/17 19:45:09 cpqbld Exp $ */
/*
@@ -31,6 +32,7 @@
*
*
*/
+/* $XFree86: xc/lib/X11/cmsColNm.c,v 3.11 2003/04/13 19:22:20 dawes Exp $ */
#include "Xlibint.h"
#include "Xcmsint.h"
@@ -40,22 +42,11 @@
#include <ctype.h>
#define XK_LATIN1
#include <X11/keysymdef.h>
+#include "Cv.h"
+/* forwards/locals */
+static Status LoadColornameDB(void);
-/*
- * EXTERNS
- * External declarations required locally to this package
- * that are not already declared in any of the included header
- * files (external includes or internal includes).
- */
-#ifdef X_NOT_STDC_ENV
-extern char *getenv();
-extern void qsort();
-extern char *bsearch();
-#endif
-extern XcmsColorSpace **_XcmsDIColorSpaces;
-static Status LoadColornameDB();
-void _XcmsCopyISOLatin1Lowered();
/*
* LOCAL DEFINES
@@ -89,8 +80,8 @@ void _XcmsCopyISOLatin1Lowered();
* LOCAL TYPEDEFS
*/
typedef struct _XcmsPair {
- char *first;
- char *second;
+ const char *first;
+ const char *second;
int flag;
} XcmsPair;
@@ -101,7 +92,7 @@ static int XcmsColorDbState = XcmsDbInitNone;
static int nEntries;
static char *strings;
static XcmsPair *pairs;
-static char whitePtStr[] = "WhitePoint";
+static const char whitePtStr[] = "WhitePoint";
/************************************************************************
@@ -117,9 +108,9 @@ static char whitePtStr[] = "WhitePoint";
* SYNOPSIS
*/
static XcmsColorSpace *
-_XcmsColorSpaceOfString(ccc, color_string)
- XcmsCCC ccc;
- char *color_string;
+_XcmsColorSpaceOfString(
+ XcmsCCC ccc,
+ const char *color_string)
/*
* DESCRIPTION
* Returns a pointer to the color space structure
@@ -185,10 +176,10 @@ _XcmsColorSpaceOfString(ccc, color_string)
* SYNOPSIS
*/
static int
-_XcmsParseColorString(ccc, color_string, pColor)
- XcmsCCC ccc;
- char *color_string;
- XcmsColor *pColor;
+_XcmsParseColorString(
+ XcmsCCC ccc,
+ const char *color_string,
+ XcmsColor *pColor)
/*
* DESCRIPTION
* Assuming color_string contains a numerical string color
@@ -250,12 +241,7 @@ _XcmsParseColorString(ccc, color_string, pColor)
* SYNOPSIS
*/
static int
-FirstCmp(p1, p2)
-#ifdef __STDC__
- const void *p1, *p2;
-#else
- XcmsPair *p1, *p2;
-#endif
+FirstCmp(const void *p1, const void *p2)
/*
* DESCRIPTION
* Compares the color names of XcmsColorTuples.
@@ -280,7 +266,7 @@ FirstCmp(p1, p2)
* SYNOPSIS
*/
static void
-SetNoVisit()
+SetNoVisit(void)
/*
* DESCRIPTION
*
@@ -309,11 +295,11 @@ SetNoVisit()
* SYNOPSIS
*/
static int
-field2(pBuf, delim, p1, p2)
- char *pBuf;
- char delim; /* in: field delimiter */
- char **p1; /* in/out: pointer to pointer to field 1 */
- char **p2; /* in/out: pointer to pointer to field 2 */
+field2(
+ char *pBuf,
+ char delim, /* in: field delimiter */
+ char **p1, /* in/out: pointer to pointer to field 1 */
+ char **p2) /* in/out: pointer to pointer to field 2 */
/*
* DESCRIPTION
* Extracts two fields from a "record".
@@ -379,10 +365,10 @@ field2(pBuf, delim, p1, p2)
* SYNOPSIS
*/
static Status
-_XcmsLookupColorName(ccc, name, pColor)
- XcmsCCC ccc;
- char **name;
- XcmsColor *pColor;
+_XcmsLookupColorName(
+ XcmsCCC ccc,
+ const char **name,
+ XcmsColor *pColor)
/*
* DESCRIPTION
* Searches for an entry in the Device-Independent Color Name
@@ -403,8 +389,8 @@ _XcmsLookupColorName(ccc, name, pColor)
char *name_lowered;
register int i, j, left, right;
int len;
- char *tmpName;
- XcmsPair *pair;
+ const char *tmpName;
+ XcmsPair *pair = NULL;
/*
* Check state of Database:
@@ -502,8 +488,8 @@ Retry:
* SYNOPSIS
*/
static int
-RemoveSpaces(pString)
- char *pString;
+RemoveSpaces(
+ char *pString)
/*
* DESCRIPTION
* Removes spaces from string.
@@ -536,10 +522,10 @@ RemoveSpaces(pString)
* SYNOPSIS
*/
static int
-stringSectionSize(stream, pNumEntries, pSectionSize)
- FILE *stream;
- int *pNumEntries;
- int *pSectionSize;
+stringSectionSize(
+ FILE *stream,
+ int *pNumEntries,
+ int *pSectionSize)
/*
* DESCRIPTION
* Determines the amount of memory required to store the
@@ -621,10 +607,10 @@ stringSectionSize(stream, pNumEntries, pSectionSize)
* SYNOPSIS
*/
static Status
-ReadColornameDB(stream, pRec, pString)
- FILE *stream;
- XcmsPair *pRec;
- char *pString;
+ReadColornameDB(
+ FILE *stream,
+ XcmsPair *pRec,
+ char *pString)
/*
* DESCRIPTION
* Loads the Color Name Database from a text file.
@@ -708,7 +694,7 @@ ReadColornameDB(stream, pRec, pString)
* SYNOPSIS
*/
static Status
-LoadColornameDB()
+LoadColornameDB(void)
/*
* DESCRIPTION
* Loads the Color Name Database from a text file.
@@ -729,6 +715,9 @@ LoadColornameDB()
if ((pathname = getenv("XCMSDB")) == NULL) {
pathname = XCMSDB;
}
+#ifdef __UNIXOS2__
+ pathname = __XOS2RedirRoot(pathname);
+#endif
length = strlen(pathname);
if ((length == 0) || (length >= (BUFSIZ - 5))){
@@ -778,8 +767,9 @@ LoadColornameDB()
* SYNOPSIS
*/
void
-_XcmsCopyISOLatin1Lowered(dst, src)
- char *dst, *src;
+_XcmsCopyISOLatin1Lowered(
+ char *dst,
+ const char *src)
/*
* DESCRIPTION
* ISO Latin-1 case conversion routine
@@ -794,9 +784,10 @@ _XcmsCopyISOLatin1Lowered(dst, src)
*
*/
{
- register unsigned char *dest, *source;
+ register unsigned char *dest;
+ register const unsigned char *source;
- for (dest = (unsigned char *)dst, source = (unsigned char *)src;
+ for (dest = (unsigned char *)dst, source = (const unsigned char *)src;
*source;
source++, dest++)
{
@@ -819,21 +810,12 @@ _XcmsCopyISOLatin1Lowered(dst, src)
*
* SYNOPSIS
*/
-#if NeedFunctionPrototypes
Status
_XcmsResolveColorString (
XcmsCCC ccc,
- _Xconst char **color_string,
+ const char **color_string,
XcmsColor *pColor_exact_return,
XcmsColorFormat result_format)
-#else
-Status
-_XcmsResolveColorString(ccc, color_string, pColor_exact_return, result_format)
- XcmsCCC ccc;
- char **color_string;
- XcmsColor *pColor_exact_return;
- XcmsColorFormat result_format;
-#endif
/*
* DESCRIPTION
* The XcmsLookupColor function finds the color specification
@@ -861,7 +843,7 @@ _XcmsResolveColorString(ccc, color_string, pColor_exact_return, result_format)
/* the screen's white point */
XcmsColor *pClientWhitePt;
int retval;
- char *strptr = whitePtStr;
+ const char *strptr = whitePtStr;
/*
* 0. Check for invalid arguments.
diff --git a/src/xcms/cmsGlobls.c b/src/xcms/cmsGlobls.c
index deeea982..2a92a229 100644
--- a/src/xcms/cmsGlobls.c
+++ b/src/xcms/cmsGlobls.c
@@ -32,46 +32,11 @@
*
*
*/
+/* $XFree86: xc/lib/X11/cmsGlobls.c,v 1.4 2001/01/17 19:41:51 dawes Exp $ */
#include "Xlibint.h"
#include "Xcmsint.h"
-
-/*
- * EXTERNS
- * External declarations required locally to this package
- * that are not already declared in any of the included header
- * files (external includes or internal includes).
- */
-extern XcmsFunctionSet XcmsLinearRGBFunctionSet;
-#ifdef GRAY
-extern XcmsFunctionSet XcmsGrayFunctionSet;
-#endif /* GRAY */
-
-/* UNDEFINED Color Space */
-extern XcmsColorSpace XcmsUNDEFINEDColorSpace;
-
-/* CIE XYZ Color Space */
-extern XcmsColorSpace XcmsCIEXYZColorSpace;
-
-/* CIE uvY Color Space */
-extern XcmsColorSpace XcmsCIEuvYColorSpace;
-
-/* CIE xyY Color Space */
-extern XcmsColorSpace XcmsCIExyYColorSpace;
-
-/* CIE Lab Color Space */
-extern XcmsColorSpace XcmsCIELabColorSpace;
-
-/* CIE Luv Color Space */
-extern XcmsColorSpace XcmsCIELuvColorSpace;
-
-/* TekHVC Color Space */
-extern XcmsColorSpace XcmsTekHVCColorSpace;
-
-/* Device Dependent Color Space Structures */
-extern XcmsColorSpace XcmsRGBiColorSpace;
-extern XcmsColorSpace XcmsRGBColorSpace;
-
+#include "Cv.h"
/*
* GLOBALS
@@ -135,26 +100,26 @@ XcmsFunctionSet **_XcmsSCCFuncSets = _XcmsSCCFuncSetsInit;
* X Consortium Registered Device-Independent Color Spaces
* Note that prefix must be in lowercase.
*/
-char _XcmsCIEXYZ_prefix[] = "ciexyz";
-char _XcmsCIEuvY_prefix[] = "cieuvy";
-char _XcmsCIExyY_prefix[] = "ciexyy";
-char _XcmsCIELab_prefix[] = "cielab";
-char _XcmsCIELuv_prefix[] = "cieluv";
-char _XcmsTekHVC_prefix[] = "tekhvc";
+const char _XcmsCIEXYZ_prefix[] = "ciexyz";
+const char _XcmsCIEuvY_prefix[] = "cieuvy";
+const char _XcmsCIExyY_prefix[] = "ciexyy";
+const char _XcmsCIELab_prefix[] = "cielab";
+const char _XcmsCIELuv_prefix[] = "cieluv";
+const char _XcmsTekHVC_prefix[] = "tekhvc";
/*
* Registered Device-Dependent Color Spaces
*/
-char _XcmsRGBi_prefix[] = "rgbi";
-char _XcmsRGB_prefix[] = "rgb";
+const char _XcmsRGBi_prefix[] = "rgbi";
+const char _XcmsRGB_prefix[] = "rgb";
XcmsRegColorSpaceEntry _XcmsRegColorSpaces[] = {
- _XcmsCIEXYZ_prefix, XcmsCIEXYZFormat,
- _XcmsCIEuvY_prefix, XcmsCIEuvYFormat,
- _XcmsCIExyY_prefix, XcmsCIExyYFormat,
- _XcmsCIELab_prefix, XcmsCIELabFormat,
- _XcmsCIELuv_prefix, XcmsCIELuvFormat,
- _XcmsTekHVC_prefix, XcmsTekHVCFormat,
- _XcmsRGB_prefix, XcmsRGBFormat,
- _XcmsRGBi_prefix, XcmsRGBiFormat,
- NULL, 0
+ { _XcmsCIEXYZ_prefix, XcmsCIEXYZFormat },
+ { _XcmsCIEuvY_prefix, XcmsCIEuvYFormat },
+ { _XcmsCIExyY_prefix, XcmsCIExyYFormat },
+ { _XcmsCIELab_prefix, XcmsCIELabFormat },
+ { _XcmsCIELuv_prefix, XcmsCIELuvFormat },
+ { _XcmsTekHVC_prefix, XcmsTekHVCFormat },
+ { _XcmsRGB_prefix, XcmsRGBFormat },
+ { _XcmsRGBi_prefix, XcmsRGBiFormat },
+ { NULL, 0 }
};
diff --git a/src/xcms/cmsInt.c b/src/xcms/cmsInt.c
index b70e2c08..ea75c503 100644
--- a/src/xcms/cmsInt.c
+++ b/src/xcms/cmsInt.c
@@ -34,28 +34,20 @@
*
*
*/
+/* $XFree86: xc/lib/X11/cmsInt.c,v 1.4 2003/04/13 19:22:20 dawes Exp $ */
/* #define NEED_EVENTS */
#include <stdio.h>
#include "Xlibint.h"
#include "Xcmsint.h"
+#include "Cv.h"
#ifndef XCMSCOMPPROC
# define XCMSCOMPPROC XcmsTekHVCClipC
#endif
-/*
- * EXTERNS
- */
-extern XcmsColorSpace **_XcmsDIColorSpaces;
-extern XcmsFunctionSet **_XcmsSCCFuncSets;
-
-static void _XcmsFreeDefaultCCCs();
-
-/*
- * GLOBALS
- */
-
+/* forward/static */
+static void _XcmsFreeDefaultCCCs(Display *dpy);
/************************************************************************
@@ -71,8 +63,8 @@ static void _XcmsFreeDefaultCCCs();
* SYNOPSIS
*/
XPointer *
-_XcmsCopyPointerArray(pap)
- XPointer *pap;
+_XcmsCopyPointerArray(
+ XPointer *pap)
/*
* DESCRIPTION
* Copies an array of NULL terminated pointers.
@@ -104,8 +96,8 @@ _XcmsCopyPointerArray(pap)
* SYNOPSIS
*/
void
-_XcmsFreePointerArray(pap)
- XPointer *pap;
+_XcmsFreePointerArray(
+ XPointer *pap)
/*
* DESCRIPTION
* Frees an array of NULL terminated pointers.
@@ -125,10 +117,10 @@ _XcmsFreePointerArray(pap)
* SYNOPSIS
*/
XPointer *
-_XcmsPushPointerArray(pap, p, papNoFree)
- XPointer *pap;
- XPointer p;
- XPointer *papNoFree;
+_XcmsPushPointerArray(
+ XPointer *pap,
+ XPointer p,
+ XPointer *papNoFree)
/*
* DESCRIPTION
* Places the specified pointer at the head of an array of NULL
@@ -167,8 +159,8 @@ _XcmsPushPointerArray(pap, p, papNoFree)
* SYNOPSIS
*/
int
-_XcmsInitDefaultCCCs(dpy)
- Display *dpy;
+_XcmsInitDefaultCCCs(
+ Display *dpy)
/*
* DESCRIPTION
* Initializes the Xcms per Display Info structure
@@ -228,8 +220,8 @@ _XcmsInitDefaultCCCs(dpy)
* SYNOPSIS
*/
static void
-_XcmsFreeDefaultCCCs(dpy)
- Display *dpy;
+_XcmsFreeDefaultCCCs(
+ Display *dpy)
/*
* DESCRIPTION
* This routine frees the default XcmsCCC's associated with
@@ -287,9 +279,9 @@ _XcmsFreeDefaultCCCs(dpy)
* SYNOPSIS
*/
int
-_XcmsInitScrnInfo(dpy, screenNumber)
- register Display *dpy;
- int screenNumber;
+_XcmsInitScrnInfo(
+ register Display *dpy,
+ int screenNumber)
/*
* DESCRIPTION
* Given a display and screen number, this routine attempts
@@ -360,8 +352,8 @@ _XcmsInitScrnInfo(dpy, screenNumber)
* SYNOPSIS
*/
void
-_XcmsFreeIntensityMaps(dpy)
- Display *dpy;
+_XcmsFreeIntensityMaps(
+ Display *dpy)
/*
* DESCRIPTION
* Frees all XcmsIntensityMap structures in the linked list
@@ -393,9 +385,9 @@ _XcmsFreeIntensityMaps(dpy)
* SYNOPSIS
*/
XcmsIntensityMap *
-_XcmsGetIntensityMap(dpy, visual)
- Display *dpy;
- Visual *visual;
+_XcmsGetIntensityMap(
+ Display *dpy,
+ Visual *visual)
/*
* DESCRIPTION
* Attempts to return a per-Visual intensity map.
diff --git a/src/xcms/cmsLkCol.c b/src/xcms/cmsLkCol.c
index eb9669ff..8b3f5346 100644
--- a/src/xcms/cmsLkCol.c
+++ b/src/xcms/cmsLkCol.c
@@ -32,22 +32,14 @@
*
*
*/
+/* $XFree86: xc/lib/X11/cmsLkCol.c,v 1.5 2003/04/13 19:22:20 dawes Exp $ */
#define NEED_REPLIES
#include <stdio.h>
#include "Xlibint.h"
#include "Xcmsint.h"
+#include "Cv.h"
-/*
- * EXTERNS
- */
-extern void _XColor_to_XcmsRGB();
-extern void _XcmsRGB_to_XColor();
-extern void _XcmsResolveColor();
-extern void _XcmsUnresolveColor();
-#ifdef X_NOT_STDC_ENV
-extern char *getenv();
-#endif
/*
* NAME
@@ -55,7 +47,6 @@ extern char *getenv();
*
* SYNOPSIS
*/
-#if NeedFunctionPrototypes
Status
XcmsLookupColor (
Display *dpy,
@@ -64,17 +55,6 @@ XcmsLookupColor (
XcmsColor *pColor_exact_return,
XcmsColor *pColor_scrn_return,
XcmsColorFormat result_format)
-#else
-Status
-XcmsLookupColor(dpy, cmap, colorname, pColor_exact_return, pColor_scrn_return,
- result_format)
- Display *dpy;
- Colormap cmap;
- char *colorname;
- XcmsColor *pColor_exact_return;
- XcmsColor *pColor_scrn_return;
- XcmsColorFormat result_format;
-#endif
/*
* DESCRIPTION
* The XcmsLookupColor function finds the color specification
diff --git a/src/xcms/cmsMath.c b/src/xcms/cmsMath.c
index fd09cec1..04c0aea7 100644
--- a/src/xcms/cmsMath.c
+++ b/src/xcms/cmsMath.c
@@ -25,6 +25,7 @@ used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from The Open Group.
*/
+/* $XFree86: xc/lib/X11/cmsMath.c,v 3.4 2001/07/29 05:01:11 tsi Exp $ */
/*
* Stephen Gildea, MIT X Consortium, January 1991
@@ -33,9 +34,7 @@ in this Software without prior written authorization from The Open Group.
#include "Xlibint.h"
#include "Xcmsint.h"
-#if !defined(X_NOT_STDC_ENV) && (defined(__STDC__) || !(defined(sun) || (defined(sony) && !defined(SYSTYPE_SYSV) && !defined(_SYSTYPE_SYSV))))
#include <float.h>
-#endif
#ifndef DBL_EPSILON
#define DBL_EPSILON 1e-6
#endif
diff --git a/src/xcms/cmsProp.c b/src/xcms/cmsProp.c
index 28d7a880..7af729a7 100644
--- a/src/xcms/cmsProp.c
+++ b/src/xcms/cmsProp.c
@@ -31,10 +31,12 @@
* This utility routines for manipulating properties.
*
*/
+/* $XFree86$ */
#include <X11/Xatom.h>
#include "Xlibint.h"
#include "Xcmsint.h"
+#include "Cv.h"
/************************************************************************
@@ -51,10 +53,10 @@
* SYNOPSIS
*/
unsigned long
-_XcmsGetElement (format, pValue, pCount)
- int format;
- char **pValue;
- unsigned long *pCount;
+_XcmsGetElement(
+ int format,
+ char **pValue,
+ unsigned long *pCount)
/*
* DESCRIPTION
* Get the next element from the property and return it.
@@ -97,14 +99,14 @@ _XcmsGetElement (format, pValue, pCount)
* SYNOPSIS
*/
int
-_XcmsGetProperty (pDpy, w, property, pFormat, pNItems, pNBytes, pValue)
- Display *pDpy;
- Window w;
- Atom property;
- int *pFormat;
- unsigned long *pNItems;
- unsigned long *pNBytes;
- char **pValue;
+_XcmsGetProperty(
+ Display *pDpy,
+ Window w,
+ Atom property,
+ int *pFormat,
+ unsigned long *pNItems,
+ unsigned long *pNBytes,
+ char **pValue)
/*
* DESCRIPTION
*
diff --git a/src/xcms/cmsTrig.c b/src/xcms/cmsTrig.c
index a1e9b50c..6ff60e9e 100644
--- a/src/xcms/cmsTrig.c
+++ b/src/xcms/cmsTrig.c
@@ -24,6 +24,7 @@
* CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
*/
+/* $XFree86: xc/lib/X11/cmsTrig.c,v 3.8 2001/10/28 03:32:34 tsi Exp $ */
/*
* It should be pointed out that for simplicity's sake, the
* environment parameters are defined as floating point constants,
@@ -44,30 +45,22 @@
*
*/
-/*
- * EXTERNS
- */
-extern double _XcmsSquareRoot();
+#include "Xcmsint.h"
-/*
- * FORWARD DECLARATIONS
- */
-double _XcmsCosine();
-static double _XcmsModulo();
-static double _XcmsModuloF();
-static double _XcmsPolynomial();
-double _XcmsSine();
-double _XcmsArcTangent();
+/* forward/static */
+static double _XcmsModulo(double value, double base);
+static double _XcmsPolynomial(
+ register int order,
+ double const *coeffs,
+ double x);
+static double
+_XcmsModuloF(
+ double val,
+ register double *dp);
/*
* DEFINES
*/
-
-#ifdef __STDC__
-#define Const const
-#else
-#define Const /**/
-#endif
#define XCMS_MAXERROR 0.000001
#define XCMS_MAXITER 10000
#define XCMS_PI 3.14159265358979323846264338327950
@@ -90,35 +83,35 @@ double _XcmsArcTangent();
#define XCMS_DMAXPOWTWO ((double)(1 < 47))
#else
#define XCMS_DMAXPOWTWO ((double)(XCMS_LONG_MAX) * \
- (1L << (XCMS_NBITS(double)-XCMS_DEXPLEN) - XCMS_NBITS(long) + 1))
+ (1L << ((XCMS_NBITS(double)-XCMS_DEXPLEN) - XCMS_NBITS(int) + 1)))
#endif
/*
* LOCAL VARIABLES
*/
-static double Const cos_pcoeffs[] = {
+static double const cos_pcoeffs[] = {
0.12905394659037374438e7,
-0.37456703915723204710e6,
0.13432300986539084285e5,
-0.11231450823340933092e3
};
-static double Const cos_qcoeffs[] = {
+static double const cos_qcoeffs[] = {
0.12905394659037373590e7,
0.23467773107245835052e5,
0.20969518196726306286e3,
1.0
};
-static double Const sin_pcoeffs[] = {
+static double const sin_pcoeffs[] = {
0.20664343336995858240e7,
-0.18160398797407332550e6,
0.35999306949636188317e4,
-0.20107483294588615719e2
};
-static double Const sin_qcoeffs[] = {
+static double const sin_qcoeffs[] = {
0.26310659102647698963e7,
0.39270242774649000308e5,
0.27811919481083844087e3,
@@ -232,8 +225,7 @@ static double Const sin_qcoeffs[] = {
*
*/
-double _XcmsCosine (x)
-double x;
+double _XcmsCosine(double x)
{
auto double y;
auto double yt2;
@@ -293,9 +285,7 @@ double x;
* Fred Fish
*
*/
-static double _XcmsModulo (value, base)
-double value;
-double base;
+static double _XcmsModulo(double value, double base)
{
auto double intpart;
@@ -316,12 +306,16 @@ double base;
* defined in "math.h".
*/
static double
-_XcmsModuloF(val, dp)
-double val;
-register double *dp;
+_XcmsModuloF(
+ double val,
+ register double *dp)
{
register double abs;
- register double ip;
+ /*
+ * Don't use a register for this. The extra precision this results
+ * in on some systems causes problems.
+ */
+ double ip;
/* should check for illegal values here - nan, inf, etc */
abs = XCMS_FABS(val);
@@ -377,10 +371,10 @@ register double *dp;
*
*/
-static double _XcmsPolynomial (order, coeffs, x)
-register int order;
-double Const *coeffs;
-double x;
+static double _XcmsPolynomial(
+ register int order,
+ double const *coeffs,
+ double x)
{
auto double rtn_value;
@@ -567,7 +561,7 @@ _XcmsArcTangent(x)
* Returns the arctangent
*/
{
- double ai, a1, bi, b1, l, d;
+ double ai, a1 = 0.0, bi, b1 = 0.0, l, d;
double maxerror;
int i;
diff --git a/src/xcms/uvY.c b/src/xcms/uvY.c
index 3438d88d..d589b407 100644
--- a/src/xcms/uvY.c
+++ b/src/xcms/uvY.c
@@ -35,24 +35,20 @@
* DOCUMENTATION
* "TekColor Color Management System, System Implementor's Manual"
*/
+/* $XFree86: xc/lib/X11/uvY.c,v 1.3 2001/01/17 19:41:57 dawes Exp $ */
#include <X11/Xos.h>
#include "Xlibint.h"
#include "Xcmsint.h"
+#include "Cv.h"
-
-/*
- * EXTERNS
- */
-extern char _XcmsCIEuvY_prefix[];
-
+#include <stdio.h>
/*
* FORWARD DECLARATIONS
*/
+static int CIEuvY_ParseString(register char *spec, XcmsColor *pColor);
-static int CIEuvY_ParseString();
-Status _XcmsCIEuvY_ValidSpec();
/*
* DEFINES
* Internal definitions that need NOT be exported to any package
@@ -118,9 +114,9 @@ XcmsColorSpace XcmsCIEuvYColorSpace =
* SYNOPSIS
*/
static int
-CIEuvY_ParseString(spec, pColor)
- register char *spec;
- XcmsColor *pColor;
+CIEuvY_ParseString(
+ register char *spec,
+ XcmsColor *pColor)
/*
* DESCRIPTION
* This routines takes a string and attempts to convert
@@ -181,8 +177,8 @@ CIEuvY_ParseString(spec, pColor)
* SYNOPSIS
*/
Status
-_XcmsCIEuvY_ValidSpec(pColor)
- XcmsColor *pColor;
+_XcmsCIEuvY_ValidSpec(
+ XcmsColor *pColor)
/*
* DESCRIPTION
* Checks if color specification valid for CIE u'v'Y.
diff --git a/src/xcms/xyY.c b/src/xcms/xyY.c
index 00bd8413..749a05bb 100644
--- a/src/xcms/xyY.c
+++ b/src/xcms/xyY.c
@@ -34,11 +34,13 @@
* DOCUMENTATION
* "TekColor Color Management System, System Implementor's Manual"
*/
+/* $XFree86: xc/lib/X11/xyY.c,v 1.3 2001/01/17 19:41:57 dawes Exp $ */
#include <stdio.h>
#include <X11/Xos.h>
#include "Xlibint.h"
#include "Xcmsint.h"
+#include "Cv.h"
/*
* DEFINES
@@ -51,17 +53,11 @@
#endif
/*
- * EXTERNS
- */
-
-extern char _XcmsCIExyY_prefix[];
-
-/*
* FORWARD DECLARATIONS
*/
-static int CIExyY_ParseString();
-static Status XcmsCIExyY_ValidSpec();
+static int CIExyY_ParseString(register char *spec, XcmsColor *pColor);
+static Status XcmsCIExyY_ValidSpec(XcmsColor *pColor);
/*
@@ -117,9 +113,9 @@ XcmsColorSpace XcmsCIExyYColorSpace =
* SYNOPSIS
*/
static int
-CIExyY_ParseString(spec, pColor)
- register char *spec;
- XcmsColor *pColor;
+CIExyY_ParseString(
+ register char *spec,
+ XcmsColor *pColor)
/*
* DESCRIPTION
* This routines takes a string and attempts to convert
@@ -181,8 +177,8 @@ CIExyY_ParseString(spec, pColor)
* SYNOPSIS
*/
static Status
-XcmsCIExyY_ValidSpec(pColor)
- XcmsColor *pColor;
+XcmsCIExyY_ValidSpec(
+ XcmsColor *pColor)
/*
* DESCRIPTION
* Checks a valid CIExyY color specification.
diff --git a/src/xkb/XKB.c b/src/xkb/XKB.c
index 22a8731f..20936198 100644
--- a/src/xkb/XKB.c
+++ b/src/xkb/XKB.c
@@ -24,6 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
+/* $XFree86: xc/lib/X11/XKB.c,v 1.9 2003/04/17 02:06:31 dawes Exp $ */
#include <stdio.h>
#define NEED_REPLIES
@@ -36,23 +37,12 @@ XkbInternAtomFunc _XkbInternAtomFunc= XInternAtom;
XkbGetAtomNameFunc _XkbGetAtomNameFunc= XGetAtomName;
Bool
-#if NeedFunctionPrototypes
XkbQueryExtension( Display *dpy,
int * opcodeReturn,
int * eventBaseReturn,
int * errorBaseReturn,
int * majorReturn,
int * minorReturn)
-#else
-XkbQueryExtension(dpy,opcodeReturn,eventBaseReturn,errorBaseReturn,
- majorReturn,minorReturn)
- Display *dpy;
- int *opcodeReturn;
- int *eventBaseReturn;
- int *errorBaseReturn;
- int *majorReturn;
- int *minorReturn;
-#endif
{
if (!XkbUseExtension(dpy,majorReturn,minorReturn))
return False;
@@ -70,13 +60,7 @@ XkbQueryExtension(dpy,opcodeReturn,eventBaseReturn,errorBaseReturn,
}
Bool
-#if NeedFunctionPrototypes
XkbLibraryVersion(int *libMajorRtrn,int *libMinorRtrn)
-#else
-XkbLibraryVersion(libMajorRtrn,libMinorRtrn)
- int *libMajorRtrn;
- int *libMinorRtrn;
-#endif
{
int supported;
@@ -96,18 +80,10 @@ int supported;
}
Bool
-#if NeedFunctionPrototypes
XkbSelectEvents( Display * dpy,
unsigned int deviceSpec,
unsigned int affect,
unsigned int selectAll)
-#else
-XkbSelectEvents(dpy,deviceSpec,affect,selectAll)
- Display *dpy;
- unsigned int deviceSpec;
- unsigned int affect;
- unsigned int selectAll;
-#endif
{
register xkbSelectEventsReq *req;
XkbInfoPtr xkbi;
@@ -154,24 +130,15 @@ XkbSelectEvents(dpy,deviceSpec,affect,selectAll)
}
Bool
-#if NeedFunctionPrototypes
XkbSelectEventDetails( Display * dpy,
unsigned deviceSpec,
unsigned eventType,
unsigned long int affect,
unsigned long int details)
-#else
-XkbSelectEventDetails(dpy,deviceSpec,eventType,affect,details)
- Display *dpy;
- unsigned deviceSpec;
- unsigned eventType;
- unsigned long int affect;
- unsigned long int details;
-#endif
{
register xkbSelectEventsReq *req;
XkbInfoPtr xkbi;
- int size;
+ int size = 0;
char *out;
union {
CARD8 *c8;
@@ -255,18 +222,10 @@ XkbSelectEventDetails(dpy,deviceSpec,eventType,affect,details)
}
Bool
-#if NeedFunctionPrototypes
XkbLockModifiers( Display * dpy,
unsigned int deviceSpec,
unsigned int affect,
unsigned int values)
-#else
-XkbLockModifiers(dpy,deviceSpec,affect,values)
- Display *dpy;
- unsigned int deviceSpec;
- unsigned int affect;
- unsigned int values;
-#endif
{
register xkbLatchLockStateReq *req;
XkbInfoPtr xkbi;
@@ -294,18 +253,10 @@ XkbLockModifiers(dpy,deviceSpec,affect,values)
}
Bool
-#if NeedFunctionPrototypes
XkbLatchModifiers( Display * dpy,
unsigned int deviceSpec,
unsigned int affect,
unsigned int values)
-#else
-XkbLatchModifiers(dpy,deviceSpec,affect,values)
- Display *dpy;
- unsigned int deviceSpec;
- unsigned int affect;
- unsigned int values;
-#endif
{
register xkbLatchLockStateReq *req;
XkbInfoPtr xkbi;
@@ -335,14 +286,7 @@ XkbLatchModifiers(dpy,deviceSpec,affect,values)
}
Bool
-#if NeedFunctionPrototypes
XkbLockGroup(Display *dpy,unsigned int deviceSpec,unsigned int group)
-#else
-XkbLockGroup(dpy,deviceSpec,group)
- Display *dpy;
- unsigned int deviceSpec;
- unsigned int group;
-#endif
{
register xkbLatchLockStateReq *req;
XkbInfoPtr xkbi;
@@ -370,14 +314,7 @@ XkbLockGroup(dpy,deviceSpec,group)
}
Bool
-#if NeedFunctionPrototypes
XkbLatchGroup(Display *dpy,unsigned int deviceSpec,unsigned int group)
-#else
-XkbLatchGroup(dpy,deviceSpec,group)
- Display *dpy;
- unsigned int deviceSpec;
- unsigned int group;
-#endif
{
register xkbLatchLockStateReq *req;
XkbInfoPtr xkbi;
@@ -407,18 +344,12 @@ XkbLatchGroup(dpy,deviceSpec,group)
}
unsigned
-#if NeedFunctionPrototypes
XkbSetXlibControls(Display *dpy,unsigned affect,unsigned values)
-#else
-XkbSetXlibControls(dpy,affect,values)
- Display * dpy;
- unsigned affect;
- unsigned values;
-#endif
{
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy,NULL,NULL)))
- return False;
+ if (!dpy->xkb_info)
+ XkbUseExtension(dpy,NULL,NULL);
+ if (!dpy->xkb_info)
+ return 0;
affect&= XkbLC_AllControls;
dpy->xkb_info->xlib_ctrls&= ~affect;
dpy->xkb_info->xlib_ctrls|= (affect&values);
@@ -426,25 +357,17 @@ XkbSetXlibControls(dpy,affect,values)
}
unsigned
-#if NeedFunctionPrototypes
XkbGetXlibControls(Display *dpy)
-#else
-XkbGetXlibControls(dpy)
- Display * dpy;
-#endif
{
- if ((dpy->flags & XlibDisplayNoXkb) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy,NULL,NULL)))
+ if (!dpy->xkb_info)
+ XkbUseExtension(dpy,NULL,NULL);
+ if (!dpy->xkb_info)
return 0;
return dpy->xkb_info->xlib_ctrls;
}
unsigned int
-#if NeedFunctionPrototypes
XkbXlibControlsImplemented(void)
-#else
-XkbXlibControlsImplemented()
-#endif
{
#ifdef __sgi
return XkbLC_AllControls;
@@ -454,7 +377,6 @@ XkbXlibControlsImplemented()
}
Bool
-#if NeedFunctionPrototypes
XkbSetDebuggingFlags( Display * dpy,
unsigned int mask,
unsigned int flags,
@@ -463,17 +385,6 @@ XkbSetDebuggingFlags( Display * dpy,
unsigned int ctrls,
unsigned int * rtrn_flags,
unsigned int * rtrn_ctrls)
-#else
-XkbSetDebuggingFlags(dpy,mask,flags,msg,ctrls_mask,ctrls,rtrn_flags,rtrn_ctrls)
- Display * dpy;
- unsigned int mask;
- unsigned int flags;
- char * msg;
- unsigned int ctrls_mask;
- unsigned int ctrls;
- unsigned int * rtrn_flags;
- unsigned int * rtrn_ctrls;
-#endif
{
register xkbSetDebuggingFlagsReq *req;
xkbSetDebuggingFlagsReply rep;
@@ -515,20 +426,13 @@ XkbSetDebuggingFlags(dpy,mask,flags,msg,ctrls_mask,ctrls,rtrn_flags,rtrn_ctrls)
}
Bool
-#if NeedFunctionPrototypes
XkbComputeEffectiveMap( XkbDescPtr xkb,
XkbKeyTypePtr type,
unsigned char * map_rtrn)
-#else
-XkbComputeEffectiveMap(xkb,type,map_rtrn)
- XkbDescPtr xkb;
- XkbKeyTypePtr type;
- unsigned char * map_rtrn;
-#endif
{
register int i;
unsigned tmp;
-XkbKTMapEntryPtr entry;
+XkbKTMapEntryPtr entry = NULL;
if ((!xkb)||(!type)||(!xkb->server))
return False;
@@ -568,14 +472,7 @@ XkbKTMapEntryPtr entry;
}
Status
-#if NeedFunctionPrototypes
XkbGetState(Display *dpy,unsigned deviceSpec,XkbStatePtr rtrn)
-#else
-XkbGetState(dpy,deviceSpec,rtrn)
- Display * dpy;
- unsigned deviceSpec;
- XkbStatePtr rtrn;
-#endif
{
register xkbGetStateReq *req;
xkbGetStateReply rep;
@@ -615,14 +512,7 @@ XkbGetState(dpy,deviceSpec,rtrn)
}
Bool
-#if NeedFunctionPrototypes
XkbSetDetectableAutoRepeat(Display *dpy,Bool detectable,Bool *supported)
-#else
-XkbSetDetectableAutoRepeat(dpy,detectable,supported)
- Display * dpy;
- Bool detectable;
- Bool * supported;
-#endif
{
register xkbPerClientFlagsReq * req;
xkbPerClientFlagsReply rep;
@@ -655,13 +545,7 @@ XkbInfoPtr xkbi;
}
Bool
-#if NeedFunctionPrototypes
XkbGetDetectableAutoRepeat(Display *dpy,Bool *supported)
-#else
-XkbGetDetectableAutoRepeat(dpy,supported)
- Display * dpy;
- Bool * supported;
-#endif
{
register xkbPerClientFlagsReq * req;
xkbPerClientFlagsReply rep;
@@ -692,18 +576,10 @@ XkbInfoPtr xkbi;
}
Bool
-#if NeedFunctionPrototypes
XkbSetAutoResetControls( Display * dpy,
unsigned changes,
unsigned * auto_ctrls,
unsigned * auto_values)
-#else
-XkbSetAutoResetControls(dpy,changes,auto_ctrls,auto_values)
- Display * dpy;
- unsigned changes;
- unsigned * auto_ctrls;
- unsigned * auto_values;
-#endif
{
register xkbPerClientFlagsReq * req;
xkbPerClientFlagsReply rep;
@@ -736,16 +612,9 @@ XkbInfoPtr xkbi;
}
Bool
-#if NeedFunctionPrototypes
XkbGetAutoResetControls( Display * dpy,
unsigned * auto_ctrls,
unsigned * auto_ctrl_values)
-#else
-XkbGetAutoResetControls(dpy,auto_ctrls,auto_ctrl_values)
- Display * dpy;
- unsigned * auto_ctrls;
- unsigned * auto_ctrl_values;
-#endif
{
register xkbPerClientFlagsReq * req;
xkbPerClientFlagsReply rep;
@@ -778,16 +647,9 @@ XkbInfoPtr xkbi;
}
Bool
-#if NeedFunctionPrototypes
XkbSetPerClientControls( Display * dpy,
unsigned change,
unsigned * values)
-#else
-XkbSetPerClientControls(dpy,change,values)
- Display * dpy;
- unsigned change;
- unsigned * values;
-#endif
{
register xkbPerClientFlagsReq * req;
xkbPerClientFlagsReply rep;
@@ -819,14 +681,8 @@ unsigned value_hold = *values;
}
Bool
-#if NeedFunctionPrototypes
XkbGetPerClientControls( Display * dpy,
unsigned * ctrls)
-#else
-XkbGetPerClientControls(dpy,ctrls)
- Display * dpy;
- unsigned * ctrls;
-#endif
{
register xkbPerClientFlagsReq * req;
xkbPerClientFlagsReply rep;
@@ -853,27 +709,19 @@ XkbInfoPtr xkbi;
UnlockDisplay(dpy);
SyncHandle();
if (ctrls)
- *ctrls= (rep.value&XkbPCF_GrabsUseXKBStateMask|XkbPCF_LookupStateWhenGrabbed|XkbPCF_SendEventUsesXKBState);
+ *ctrls= (rep.value & (XkbPCF_GrabsUseXKBStateMask |
+ XkbPCF_LookupStateWhenGrabbed |
+ XkbPCF_SendEventUsesXKBState));
return (True);
}
Display *
-#if NeedFunctionPrototypes
XkbOpenDisplay( char * name,
int * ev_rtrn,
int * err_rtrn,
int * major_rtrn,
int * minor_rtrn,
int * reason)
-#else
-XkbOpenDisplay(name,ev_rtrn,err_rtrn,major_rtrn,minor_rtrn,reason)
- char * name;
- int * ev_rtrn;
- int * err_rtrn;
- int * major_rtrn;
- int * minor_rtrn;
- int * reason;
-#endif
{
Display* dpy;
int major_num,minor_num;
@@ -912,13 +760,7 @@ XkbOpenDisplay(name,ev_rtrn,err_rtrn,major_rtrn,minor_rtrn,reason)
}
void
-#if NeedFunctionPrototypes
XkbSetAtomFuncs(XkbInternAtomFunc getAtom,XkbGetAtomNameFunc getName)
-#else
-XkbSetAtomFuncs(getAtom,getName)
- XkbInternAtomFunc getAtom;
- XkbGetAtomNameFunc getName;
-#endif
{
_XkbInternAtomFunc= (getAtom?getAtom:XInternAtom);
_XkbGetAtomNameFunc= (getName?getName:XGetAtomName);
diff --git a/src/xkb/XKBAlloc.c b/src/xkb/XKBAlloc.c
index 82e98f4b..a6fec50f 100644
--- a/src/xkb/XKBAlloc.c
+++ b/src/xkb/XKBAlloc.c
@@ -24,6 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
+/* $XFree86: xc/lib/X11/XKBAlloc.c,v 3.5 2001/01/17 19:41:48 dawes Exp $ */
#ifndef XKB_IN_SERVER
@@ -54,14 +55,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
/*ARGSUSED*/
Status
-#if NeedFunctionPrototypes
XkbAllocCompatMap(XkbDescPtr xkb,unsigned which,unsigned nSI)
-#else
-XkbAllocCompatMap(xkb,which,nSI)
- XkbDescPtr xkb;
- unsigned which;
- unsigned nSI;
-#endif
{
XkbCompatMapPtr compat;
XkbSymInterpretRec *prev_interpret;
@@ -108,14 +102,7 @@ XkbSymInterpretRec *prev_interpret;
void
-#if NeedFunctionPrototypes
XkbFreeCompatMap(XkbDescPtr xkb,unsigned which,Bool freeMap)
-#else
-XkbFreeCompatMap(xkb,which,freeMap)
- XkbDescPtr xkb;
- unsigned which;
- Bool freeMap;
-#endif
{
register XkbCompatMapPtr compat;
@@ -142,15 +129,7 @@ register XkbCompatMapPtr compat;
/***===================================================================***/
Status
-#if NeedFunctionPrototypes
XkbAllocNames(XkbDescPtr xkb,unsigned which,int nTotalRG,int nTotalAliases)
-#else
-XkbAllocNames(xkb,which,nTotalRG,nTotalAliases)
- XkbDescPtr xkb;
- unsigned which;
- int nTotalRG;
- int nTotalAliases;
-#endif
{
XkbNamesPtr names;
@@ -230,14 +209,7 @@ XkbNamesPtr names;
}
void
-#if NeedFunctionPrototypes
XkbFreeNames(XkbDescPtr xkb,unsigned which,Bool freeMap)
-#else
-XkbFreeNames(xkb,which,freeMap)
- XkbDescPtr xkb;
- unsigned which;
- Bool freeMap;
-#endif
{
XkbNamesPtr names;
@@ -286,13 +258,7 @@ XkbNamesPtr names;
/*ARGSUSED*/
Status
-#if NeedFunctionPrototypes
XkbAllocControls(XkbDescPtr xkb,unsigned which)
-#else
-XkbAllocControls(xkb,which)
- XkbDescPtr xkb;
- unsigned which;
-#endif
{
if (xkb==NULL)
return BadMatch;
@@ -307,14 +273,7 @@ XkbAllocControls(xkb,which)
/*ARGSUSED*/
void
-#if NeedFunctionPrototypes
XkbFreeControls(XkbDescPtr xkb,unsigned which,Bool freeMap)
-#else
-XkbFreeControls(xkb,which,freeMap)
- XkbDescPtr xkb;
- unsigned which;
- Bool freeMap;
-#endif
{
if (freeMap && (xkb!=NULL) && (xkb->ctrls!=NULL)) {
_XkbFree(xkb->ctrls);
@@ -326,12 +285,7 @@ XkbFreeControls(xkb,which,freeMap)
/***===================================================================***/
Status
-#if NeedFunctionPrototypes
XkbAllocIndicatorMaps(XkbDescPtr xkb)
-#else
-XkbAllocIndicatorMaps(xkb)
- XkbDescPtr xkb;
-#endif
{
if (xkb==NULL)
return BadMatch;
@@ -344,12 +298,7 @@ XkbAllocIndicatorMaps(xkb)
}
void
-#if NeedFunctionPrototypes
XkbFreeIndicatorMaps(XkbDescPtr xkb)
-#else
-XkbFreeIndicatorMaps(xkb)
- XkbDescPtr xkb;
-#endif
{
if ((xkb!=NULL)&&(xkb->indicators!=NULL)) {
_XkbFree(xkb->indicators);
@@ -361,11 +310,7 @@ XkbFreeIndicatorMaps(xkb)
/***====================================================================***/
XkbDescRec *
-#if NeedFunctionPrototypes
XkbAllocKeyboard(void)
-#else
-XkbAllocKeyboard()
-#endif
{
XkbDescRec *xkb;
@@ -376,14 +321,7 @@ XkbDescRec *xkb;
}
void
-#if NeedFunctionPrototypes
XkbFreeKeyboard(XkbDescPtr xkb,unsigned which,Bool freeAll)
-#else
-XkbFreeKeyboard(xkb,which,freeAll)
- XkbDescPtr xkb;
- unsigned which;
- Bool freeAll;
-#endif
{
if (xkb==NULL)
return;
@@ -411,14 +349,7 @@ XkbFreeKeyboard(xkb,which,freeAll)
/***====================================================================***/
XkbDeviceLedInfoPtr
-#if NeedFunctionPrototypes
XkbAddDeviceLedInfo(XkbDeviceInfoPtr devi,unsigned ledClass,unsigned ledId)
-#else
-XkbAddDeviceLedInfo(devi,ledClass,ledId)
- XkbDeviceInfoPtr devi;
- unsigned ledClass;
- unsigned ledId;
-#endif
{
XkbDeviceLedInfoPtr devli;
register int i;
@@ -456,13 +387,7 @@ register int i;
}
Status
-#if NeedFunctionPrototypes
XkbResizeDeviceButtonActions(XkbDeviceInfoPtr devi,unsigned newTotal)
-#else
-XkbResizeDeviceButtonActions(devi,newTotal)
- XkbDeviceInfoPtr devi;
- unsigned newTotal;
-#endif
{
XkbAction *prev_btn_acts;
@@ -496,14 +421,7 @@ XkbResizeDeviceButtonActions(devi,newTotal)
/*ARGSUSED*/
XkbDeviceInfoPtr
-#if NeedFunctionPrototypes
XkbAllocDeviceInfo(unsigned deviceSpec,unsigned nButtons,unsigned szLeds)
-#else
-XkbAllocDeviceInfo(deviceSpec,nButtons,szLeds)
- unsigned deviceSpec;
- unsigned nButtons;
- unsigned szLeds;
-#endif
{
XkbDeviceInfoPtr devi;
@@ -542,14 +460,7 @@ XkbDeviceInfoPtr devi;
void
-#if NeedFunctionPrototypes
XkbFreeDeviceInfo(XkbDeviceInfoPtr devi,unsigned which,Bool freeDevI)
-#else
-XkbFreeDeviceInfo(devi,which,freeDevI)
- XkbDeviceInfoPtr devi;
- unsigned which;
- Bool freeDevI;
-#endif
{
if (devi) {
if (freeDevI) {
diff --git a/src/xkb/XKBBell.c b/src/xkb/XKBBell.c
index 3b6bb850..4c33b8e2 100644
--- a/src/xkb/XKBBell.c
+++ b/src/xkb/XKBBell.c
@@ -24,6 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
+/* $XFree86$ */
#include <stdio.h>
#define NEED_REPLIES
@@ -34,7 +35,6 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
Bool
-#if NeedFunctionPrototypes
XkbDeviceBell( Display * dpy,
Window window,
int deviceID,
@@ -42,16 +42,6 @@ XkbDeviceBell( Display * dpy,
int bellID,
int percent,
Atom name)
-#else
-XkbDeviceBell(dpy,window,deviceID,bellClass,bellID,percent,name)
- Display *dpy;
- Window window;
- int deviceID;
- int bellClass;
- int bellID;
- int percent;
- Atom name;
-#endif
{
register xkbBellReq *req;
XkbInfoPtr xkbi;
@@ -81,20 +71,11 @@ XkbDeviceBell(dpy,window,deviceID,bellClass,bellID,percent,name)
}
Bool
-#if NeedFunctionPrototypes
XkbForceDeviceBell( Display * dpy,
int deviceID,
int bellClass,
int bellID,
int percent)
-#else
-XkbForceDeviceBell(dpy,deviceID,bellClass,bellID,percent)
- Display *dpy;
- int deviceID;
- int bellClass;
- int bellID;
- int percent;
-#endif
{
register xkbBellReq *req;
XkbInfoPtr xkbi;
@@ -124,7 +105,6 @@ XkbForceDeviceBell(dpy,deviceID,bellClass,bellID,percent)
}
Bool
-#if NeedFunctionPrototypes
XkbDeviceBellEvent( Display * dpy,
Window window,
int deviceID,
@@ -132,16 +112,6 @@ XkbDeviceBellEvent( Display * dpy,
int bellID,
int percent,
Atom name)
-#else
-XkbDeviceBellEvent(dpy,window,deviceID,bellClass,bellID,percent,name)
- Display *dpy;
- Window window;
- int deviceID;
- int bellClass;
- int bellID;
- int percent;
- Atom name;
-#endif
{
register xkbBellReq *req;
XkbInfoPtr xkbi;
@@ -171,15 +141,7 @@ XkbDeviceBellEvent(dpy,window,deviceID,bellClass,bellID,percent,name)
}
Bool
-#if NeedFunctionPrototypes
XkbBell(Display *dpy,Window window,int percent,Atom name)
-#else
-XkbBell(dpy,window,percent,name)
- Display *dpy;
- Window window;
- int percent;
- Atom name;
-#endif
{
if ((dpy->flags & XlibDisplayNoXkb) ||
(!dpy->xkb_info && !XkbUseExtension(dpy,NULL,NULL))) {
@@ -191,13 +153,7 @@ XkbBell(dpy,window,percent,name)
}
Bool
-#if NeedFunctionPrototypes
XkbForceBell(Display *dpy,int percent)
-#else
-XkbForceBell(dpy,percent)
- Display * dpy;
- int percent;
-#endif
{
if ((dpy->flags & XlibDisplayNoXkb) ||
(!dpy->xkb_info && !XkbUseExtension(dpy,NULL,NULL))) {
@@ -209,15 +165,7 @@ XkbForceBell(dpy,percent)
}
Bool
-#if NeedFunctionPrototypes
XkbBellEvent(Display *dpy,Window window,int percent,Atom name)
-#else
-XkbBellEvent(dpy,window,percent,name)
- Display *dpy;
- Window window;
- int percent;
- Atom name;
-#endif
{
if ((dpy->flags & XlibDisplayNoXkb) ||
(!dpy->xkb_info && !XkbUseExtension(dpy,NULL,NULL))) {
diff --git a/src/xkb/XKBBind.c b/src/xkb/XKBBind.c
index 4c6334a7..ba9f53fa 100644
--- a/src/xkb/XKBBind.c
+++ b/src/xkb/XKBBind.c
@@ -26,9 +26,12 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
+/* $XFree86: xc/lib/X11/XKBBind.c,v 3.19 2003/05/27 22:26:25 tsi Exp $ */
+
/* the new monsters ate the old ones */
#define NEED_EVENTS
+#include "XKBlib.h"
#include <X11/Xlibint.h>
#include <X11/Xutil.h>
#include <X11/keysym.h>
@@ -47,9 +50,7 @@ from The Open Group.
Mod1Mask|Mod2Mask|Mod3Mask|Mod4Mask|Mod5Mask)
static int _XkbLoadDpy(
-#if NeedFunctionPrototypes
Display *dpy
-#endif
);
struct _XKeytrans {
@@ -63,7 +64,6 @@ struct _XKeytrans {
};
KeySym
-#if NeedFunctionPrototypes
XkbKeycodeToKeysym(Display *dpy,
#if NeedWidePrototypes
unsigned int kc,
@@ -72,13 +72,6 @@ XkbKeycodeToKeysym(Display *dpy,
#endif
int group,
int level)
-#else
-XkbKeycodeToKeysym(dpy, kc, group, level)
- Display *dpy;
- KeyCode kc;
- int group;
- int level;
-#endif
{
XkbDescRec *xkb;
@@ -107,7 +100,6 @@ XkbKeycodeToKeysym(dpy, kc, group, level)
}
KeySym
-#if NeedFunctionPrototypes
XKeycodeToKeysym(Display *dpy,
#if NeedWidePrototypes
unsigned int kc,
@@ -115,12 +107,6 @@ XKeycodeToKeysym(Display *dpy,
KeyCode kc,
#endif
int col)
-#else
-XKeycodeToKeysym(dpy, kc, col)
- Display *dpy;
- KeyCode kc;
- int col;
-#endif
{
XkbDescRec *xkb;
@@ -165,13 +151,7 @@ XKeycodeToKeysym(dpy, kc, col)
}
KeyCode
-#if NeedFunctionPrototypes
XKeysymToKeycode(Display *dpy, KeySym ks)
-#else
-XKeysymToKeycode(dpy, ks)
- Display *dpy;
- KeySym ks;
-#endif
{
register int i, j, gotOne;
@@ -196,12 +176,7 @@ XKeysymToKeycode(dpy, ks)
}
static int
-#if NeedFunctionPrototypes
_XkbComputeModmap(Display *dpy)
-#else
-_XkbComputeModmap(dpy)
- Display *dpy;
-#endif
{
register XkbDescPtr xkb;
@@ -212,13 +187,7 @@ register XkbDescPtr xkb;
}
unsigned
-#if NeedFunctionPrototypes
XkbKeysymToModifiers(Display *dpy,KeySym ks)
-#else
-XkbKeysymToModifiers(dpy,ks)
- Display *dpy;
- KeySym ks;
-#endif
{
XkbDescRec *xkb;
register int i,j;
@@ -247,13 +216,7 @@ XkbKeysymToModifiers(dpy,ks)
}
KeySym
-#if NeedFunctionPrototypes
XLookupKeysym(register XKeyEvent *event, int col)
-#else
-XLookupKeysym(event, col)
- register XKeyEvent *event;
- int col;
-#endif
{
Display *dpy = event->display;
if (_XkbUnavailable(dpy))
@@ -268,39 +231,27 @@ XLookupKeysym(event, col)
* version will continue to work in a shared library environment.
*/
int
-#if NeedFunctionPrototypes
+XkbTranslateKey( register Display * dpy,
+ KeyCode key,
+ register unsigned int mods,
+ unsigned int * mods_rtrn,
+ KeySym * keysym_rtrn);
+int
XkbTranslateKey( register Display * dpy,
KeyCode key,
register unsigned int mods,
unsigned int * mods_rtrn,
KeySym * keysym_rtrn)
-#else
-XkbTranslateKey(dpy, key, mods, mods_rtrn, keysym_rtrn)
- register Display *dpy;
- KeyCode key;
- register unsigned int mods;
- unsigned int *mods_rtrn;
- KeySym *keysym_rtrn;
-#endif
{
return XkbLookupKeySym(dpy,key,mods,mods_rtrn,keysym_rtrn);
}
Bool
-#if NeedFunctionPrototypes
XkbLookupKeySym( register Display * dpy,
KeyCode key,
register unsigned int mods,
unsigned int * mods_rtrn,
KeySym * keysym_rtrn)
-#else
-XkbLookupKeySym(dpy, key, mods, mods_rtrn, keysym_rtrn)
- register Display *dpy;
- KeyCode key;
- register unsigned int mods;
- unsigned int *mods_rtrn;
- KeySym *keysym_rtrn;
-#endif
{
if (_XkbUnavailable(dpy))
return _XTranslateKey(dpy, key, mods, mods_rtrn, keysym_rtrn);
@@ -310,20 +261,11 @@ XkbLookupKeySym(dpy, key, mods, mods_rtrn, keysym_rtrn)
}
Bool
-#if NeedFunctionPrototypes
XkbTranslateKeyCode( register XkbDescPtr xkb,
KeyCode key,
register unsigned int mods,
unsigned int * mods_rtrn,
KeySym * keysym_rtrn)
-#else
-XkbTranslateKeyCode(xkb, key, mods, mods_rtrn, keysym_rtrn)
- register XkbDescPtr xkb;
- KeyCode key;
- register unsigned int mods;
- unsigned int *mods_rtrn;
- KeySym *keysym_rtrn;
-#endif
{
XkbKeyTypeRec *type;
int col,nKeyGroups;
@@ -398,12 +340,7 @@ XkbTranslateKeyCode(xkb, key, mods, mods_rtrn, keysym_rtrn)
}
Status
-#if NeedFunctionPrototypes
XkbRefreshKeyboardMapping(register XkbMapNotifyEvent *event)
-#else
-XkbRefreshKeyboardMapping(event)
- register XkbMapNotifyEvent *event;
-#endif
{
Display *dpy = event->display;
XkbInfoPtr xkbi;
@@ -446,20 +383,18 @@ XkbRefreshKeyboardMapping(event)
}
int
-#if NeedFunctionPrototypes
XRefreshKeyboardMapping(register XMappingEvent *event)
-#else
-XRefreshKeyboardMapping(event)
- register XMappingEvent *event;
-#endif
{
XkbEvent *xkbevent = (XkbEvent *)event;
Display *dpy = event->display;
XkbMapChangesRec changes;
XkbInfoPtr xkbi;
+ /* always do this for input methods, which still use the old keymap */
+ (void) _XRefreshKeyboardMapping(event);
+
if (_XkbUnavailable(dpy))
- return _XRefreshKeyboardMapping(event);
+ return 1;
xkbi = dpy->xkb_info;
@@ -532,6 +467,7 @@ XRefreshKeyboardMapping(event)
UnlockDisplay(dpy);
}
if (event->request==MappingModifier) {
+ LockDisplay(dpy);
if (xkbi->desc->map->modmap) {
_XkbFree(xkbi->desc->map->modmap);
xkbi->desc->map->modmap= NULL;
@@ -556,12 +492,7 @@ XRefreshKeyboardMapping(event)
}
static int
-#if NeedFunctionPrototypes
_XkbLoadDpy(Display *dpy)
-#else
-_XkbLoadDpy(dpy)
- Display *dpy;
-#endif
{
XkbInfoPtr xkbi;
unsigned query,oldEvents;
@@ -582,8 +513,6 @@ _XkbLoadDpy(dpy)
LockDisplay(dpy);
xkbi->desc = desc;
- _XkbGetConverters(_XkbGetCharset(),&xkbi->cvt);
- _XkbGetConverters("ISO8859-1",&xkbi->latin1cvt);
UnlockDisplay(dpy);
oldEvents= xkbi->selected_events;
if (!(xkbi->xlib_ctrls&XkbLC_IgnoreNewKeyboards)) {
@@ -600,12 +529,7 @@ _XkbLoadDpy(dpy)
}
void
-#if NeedFunctionPrototypes
_XkbReloadDpy(Display *dpy)
-#else
-_XkbReloadDpy(dpy)
- Display *dpy;
-#endif
{
XkbInfoPtr xkbi;
XkbDescRec *desc;
@@ -648,56 +572,37 @@ _XkbReloadDpy(dpy)
}
int
-#if NeedFunctionPrototypes
XkbTranslateKeySym( register Display * dpy,
register KeySym * sym_rtrn,
unsigned int mods,
char * buffer,
int nbytes,
int * extra_rtrn)
-#else
-XkbTranslateKeySym(dpy, sym_rtrn, mods, buffer, nbytes, extra_rtrn)
- register Display *dpy;
- register KeySym *sym_rtrn;
- unsigned int mods;
- char *buffer;
- int nbytes;
- int *extra_rtrn;
-#endif
{
register XkbInfoPtr xkb;
XkbKSToMBFunc cvtr;
XPointer priv;
char tmp[4];
- register struct _XKeytrans *p;
int n;
+ xkb= dpy->xkb_info;
+ if (!xkb->cvt.KSToMB) {
+ _XkbGetConverters(_XkbGetCharset(),&xkb->cvt);
+ _XkbGetConverters("ISO8859-1",&xkb->latin1cvt);
+ }
+
if (extra_rtrn)
*extra_rtrn= 0;
- if (_XkbUnavailable(dpy))
- return _XTranslateKeySym(dpy, *sym_rtrn, mods, buffer, nbytes);
- _XkbCheckPendingRefresh(dpy,dpy->xkb_info);
-
- xkb= dpy->xkb_info;
if ((buffer==NULL)||(nbytes==0)) {
buffer= tmp;
nbytes= 4;
}
/* see if symbol rebound, if so, return that string. */
- for (p = dpy->key_bindings; p; p = p->next) {
- if (((mods & AllMods) == p->state) && (*sym_rtrn == p->key)) {
- int tmp = p->len;
- if (tmp > nbytes) {
- if (extra_rtrn)
- *extra_rtrn= tmp-nbytes;
- tmp = nbytes;
- }
- memcpy (buffer, p->string, tmp);
- return tmp;
- }
- }
+ n = XkbLookupKeyBinding(dpy,*sym_rtrn,mods,buffer,nbytes,extra_rtrn);
+ if (n)
+ return n;
if ( nbytes>0 )
buffer[0]= '\0';
@@ -717,35 +622,23 @@ XkbTranslateKeySym(dpy, sym_rtrn, mods, buffer, nbytes, extra_rtrn)
if ((!xkb->cvt.KSToUpper)&&( mods&LockMask )) {
register int i;
-
- if (!xkb->cvt.KSToUpper) {
- int change;
- char ch;
- for (i=change=0;i<n;i++) {
- ch= toupper(buffer[i]);
- change= (change||(buffer[i]!=ch));
- buffer[i] = ch;
- }
- if (change) {
- if (n==1)
- *sym_rtrn=(*xkb->cvt.MBToKS)(xkb->cvt.MBToKSPriv,
- buffer,n,0);
- else *sym_rtrn= NoSymbol;
- }
+ int change;
+ char ch;
+ for (i=change=0;i<n;i++) {
+ ch= toupper(buffer[i]);
+ change= (change||(buffer[i]!=ch));
+ buffer[i] = ch;
+ }
+ if (change) {
+ if (n==1)
+ *sym_rtrn=(*xkb->cvt.MBToKS)(xkb->cvt.MBToKSPriv,buffer,n,0);
+ else *sym_rtrn= NoSymbol;
}
}
if ( mods&ControlMask ) {
if ( n==1 ) {
- register char c = buffer[0];
-
- if ((c >= '@' && c < '\177') || c == ' ') c &= 0x1F;
- else if (c == '2') c = '\000';
- else if (c >= '3' && c <= '7') c -= ('3' - '\033');
- else if (c == '8') c = '\177';
- else if (c == '/') c = '_' & 0x1F;
-
- buffer[0]= c;
+ buffer[0]= XkbToControl(buffer[0]);
if ( nbytes>1 )
buffer[1]= '\0';
return 1;
@@ -758,38 +651,54 @@ XkbTranslateKeySym(dpy, sym_rtrn, mods, buffer, nbytes, extra_rtrn)
}
int
-#if NeedFunctionPrototypes
XLookupString ( register XKeyEvent * event,
char * buffer,
int nbytes,
KeySym * keysym,
XComposeStatus * status)
-#else
-XLookupString (event, buffer, nbytes, keysym, status)
- register XKeyEvent *event;
- char *buffer; /* buffer */
- int nbytes; /* space in buffer for characters */
- KeySym *keysym;
- XComposeStatus *status;
-#endif
{
KeySym dummy;
int rtrnLen;
unsigned int new_mods;
Display *dpy = event->display;
- XkbDescPtr xkb;
-
- if (_XkbUnavailable(dpy))
- return _XLookupString(event, buffer, nbytes, keysym, status);
- _XkbCheckPendingRefresh(dpy,dpy->xkb_info);
if (keysym==NULL)
keysym= &dummy;
- xkb= dpy->xkb_info->desc;
- if (!XkbTranslateKeyCode(xkb,event->keycode,event->state, &new_mods,keysym))
+ if (!XkbLookupKeySym(dpy,event->keycode,event->state, &new_mods,keysym))
return 0;
new_mods= (event->state&(~new_mods));
+ /* find the group where a symbol can be converted to control one */
+ if (new_mods&ControlMask && *keysym > 0x7F &&
+ (dpy->xkb_info->xlib_ctrls & XkbLC_ControlFallback)) {
+ XKeyEvent tmp_ev = *event;
+ KeySym tmp_keysym;
+ unsigned int tmp_new_mods;
+ if (_XkbUnavailable(dpy)) {
+ tmp_ev.state= event->state ^ dpy->mode_switch;
+ if (XkbLookupKeySym(dpy, tmp_ev.keycode, tmp_ev.state,
+ &tmp_new_mods, &tmp_keysym) &&
+ tmp_keysym != NoSymbol && tmp_keysym < 0x80 ) {
+ *keysym = tmp_keysym;
+ }
+ } else {
+ int n = XkbKeyNumGroups(dpy->xkb_info->desc, tmp_ev.keycode);
+ int i;
+ for (i = 0; i < n; i++) {
+ if (XkbGroupForCoreState(event->state) == i)
+ continue;
+ tmp_ev.state= XkbBuildCoreState(tmp_ev.state, i);
+ if (XkbLookupKeySym(dpy, tmp_ev.keycode, tmp_ev.state,
+ &tmp_new_mods, &tmp_keysym) &&
+ tmp_keysym != NoSymbol && tmp_keysym < 0x80 ) {
+ *keysym = tmp_keysym;
+ new_mods= (event->state&(~tmp_new_mods));
+ break;
+ }
+ }
+ }
+ }
+
#ifdef USE_OWN_COMPOSE
if ( status ) {
static int been_here= 0;
@@ -887,44 +796,25 @@ XLookupString (event, buffer, nbytes, keysym, status)
/* We *should* use the new_mods (which does not contain any modifiers */
/* that were used to compute the symbol here, but pre-XKB XLookupString */
/* did not and we have to remain compatible. Sigh. */
- if ((dpy->xkb_info->flags&XkbLC_ConsumeLookupMods)==0)
+ if (_XkbUnavailable(dpy) ||
+ (dpy->xkb_info->xlib_ctrls&XkbLC_ConsumeLookupMods)==0)
new_mods= event->state;
rtrnLen= XkbLookupKeyBinding(dpy,*keysym,new_mods,buffer,nbytes,NULL);
if (rtrnLen>0)
return rtrnLen;
- rtrnLen = XkbTranslateKeySym(dpy,keysym,new_mods,buffer,nbytes,NULL);
- if ((event->state&ControlMask)&&(nbytes>0)&&
- ((rtrnLen==0)||((rtrnLen==1)&&(buffer[0]>=' ')))&&
- (XkbGroupForCoreState(event->state)!=XkbGroup1Index)&&
- (dpy->xkb_info->xlib_ctrls&XkbLC_ControlFallback)) {
- XKeyEvent tmp_ev;
- tmp_ev= *event;
- tmp_ev.state= XkbBuildCoreState(event->state,XkbGroup1Index);
- return XLookupString (&tmp_ev, buffer, nbytes, keysym, status);
- }
- return rtrnLen;
+ return XkbTranslateKeySym(dpy,keysym,new_mods,buffer,nbytes,NULL);
}
int
-#if NeedFunctionPrototypes
XkbLookupKeyBinding( Display * dpy,
register KeySym sym,
unsigned int mods,
char * buffer,
int nbytes,
int * extra_rtrn)
-#else
-XkbLookupKeyBinding(dpy, sym, mods, buffer, nbytes, extra_rtrn)
- Display *dpy;
- register KeySym sym;
- unsigned int mods;
- char *buffer;
- int nbytes;
- int * extra_rtrn;
-#endif
{
register struct _XKeytrans *p;
@@ -947,13 +837,10 @@ XkbLookupKeyBinding(dpy, sym, mods, buffer, nbytes, extra_rtrn)
}
char
-#if NeedFunctionPrototypes
-XkbToControl( char c )
-#else
-XkbToControl( c )
- char c;
-#endif
+XkbToControl( char ch )
{
+ register char c = ch;
+
if ((c >= '@' && c < '\177') || c == ' ') c &= 0x1F;
else if (c == '2') c = '\000';
else if (c >= '3' && c <= '7') c -= ('3' - '\033');
diff --git a/src/xkb/XKBCompat.c b/src/xkb/XKBCompat.c
index 73c7d76d..859e0a0c 100644
--- a/src/xkb/XKBCompat.c
+++ b/src/xkb/XKBCompat.c
@@ -24,6 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
+/* $XFree86$ */
#include <stdio.h>
#define NEED_REPLIES
@@ -34,18 +35,10 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include "XKBlibint.h"
Status
-#if NeedFunctionPrototypes
_XkbReadGetCompatMapReply( Display * dpy,
xkbGetCompatMapReply * rep,
XkbDescPtr xkb,
int * nread_rtrn)
-#else
-_XkbReadGetCompatMapReply(dpy,rep,xkb,nread_rtrn)
- Display * dpy;
- xkbGetCompatMapReply * rep;
- XkbDescPtr xkb;
- int * nread_rtrn;
-#endif
{
register int i;
XkbReadBufferRec buf;
@@ -114,14 +107,7 @@ BAILOUT:
}
Status
-#if NeedFunctionPrototypes
XkbGetCompatMap(Display *dpy,unsigned which,XkbDescPtr xkb)
-#else
-XkbGetCompatMap(dpy,which,xkb)
- Display * dpy;
- unsigned which;
- XkbDescPtr xkb;
-#endif
{
register xkbGetCompatMapReq *req;
xkbGetCompatMapReply rep;
@@ -164,14 +150,7 @@ XkbGetCompatMap(dpy,which,xkb)
}
static Bool
-#if NeedFunctionPrototypes
_XkbWriteSetCompatMap(Display *dpy,xkbSetCompatMapReq *req,XkbDescPtr xkb)
-#else
-_XkbWriteSetCompatMap(dpy,req,xkb)
- Display * dpy;
- xkbSetCompatMapReq *req;
- XkbDescPtr xkb;
-#endif
{
CARD16 firstSI;
CARD16 nSI;
@@ -229,15 +208,7 @@ char * buf;
}
Bool
-#if NeedFunctionPrototypes
XkbSetCompatMap(Display *dpy,unsigned which,XkbDescPtr xkb,Bool updateActions)
-#else
-XkbSetCompatMap(dpy,which,xkb,updateActions)
- Display * dpy;
- unsigned which;
- XkbDescPtr xkb;
- Bool updateActions;
-#endif
{
register xkbSetCompatMapReq *req;
Status ok;
diff --git a/src/xkb/XKBCtrls.c b/src/xkb/XKBCtrls.c
index 2e08e50e..bc58316b 100644
--- a/src/xkb/XKBCtrls.c
+++ b/src/xkb/XKBCtrls.c
@@ -24,6 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
+/* $XFree86: xc/lib/X11/XKBCtrls.c,v 1.4 2002/12/10 04:33:48 dawes Exp $ */
#include <stdio.h>
#define NEED_REPLIES
@@ -34,14 +35,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
static xkbSetControlsReq *
-#if NeedFunctionPrototypes
_XkbGetSetControlsReq(Display *dpy,XkbInfoPtr xkbi,unsigned int deviceSpec)
-#else
-_XkbGetSetControlsReq(dpy,xkbi,deviceSpec)
- Display * dpy;
- XkbInfoPtr xkbi;
- unsigned int deviceSpec;
-#endif
{
xkbSetControlsReq *req;
@@ -55,18 +49,10 @@ xkbSetControlsReq *req;
}
Bool
-#if NeedFunctionPrototypes
XkbSetAutoRepeatRate( Display *dpy,
unsigned int deviceSpec,
unsigned int timeout,
unsigned int interval)
-#else
-XkbSetAutoRepeatRate(dpy, deviceSpec, timeout, interval)
- Display *dpy;
- unsigned int deviceSpec;
- unsigned int timeout;
- unsigned int interval;
-#endif
{
register xkbSetControlsReq *req;
@@ -84,18 +70,10 @@ XkbSetAutoRepeatRate(dpy, deviceSpec, timeout, interval)
}
Bool
-#if NeedFunctionPrototypes
XkbGetAutoRepeatRate( Display * dpy,
unsigned int deviceSpec,
unsigned int * timeoutp,
unsigned int * intervalp)
-#else
-XkbGetAutoRepeatRate(dpy, deviceSpec, timeoutp, intervalp)
- Display *dpy;
- unsigned int deviceSpec;
- unsigned int *timeoutp;
- unsigned int *intervalp;
-#endif
{
register xkbGetControlsReq *req;
xkbGetControlsReply rep;
@@ -124,23 +102,12 @@ XkbGetAutoRepeatRate(dpy, deviceSpec, timeoutp, intervalp)
}
Bool
-#if NeedFunctionPrototypes
XkbSetServerInternalMods( Display * dpy,
unsigned deviceSpec,
unsigned affectReal,
unsigned realValues,
unsigned affectVirtual,
unsigned virtualValues)
-#else
-XkbSetServerInternalMods(dpy,deviceSpec,
- affectReal,realValues,affectVirtual,virtualValues)
- Display *dpy;
- unsigned deviceSpec;
- unsigned affectReal;
- unsigned realValues;
- unsigned affectVirtual;
- unsigned virtualValues;
-#endif
{
register xkbSetControlsReq *req;
@@ -160,23 +127,12 @@ XkbSetServerInternalMods(dpy,deviceSpec,
}
Bool
-#if NeedFunctionPrototypes
XkbSetIgnoreLockMods( Display * dpy,
unsigned int deviceSpec,
unsigned affectReal,
unsigned realValues,
unsigned affectVirtual,
unsigned virtualValues)
-#else
-XkbSetIgnoreLockMods(dpy,deviceSpec,
- affectReal,realValues,affectVirtual,virtualValues)
- Display *dpy;
- unsigned int deviceSpec;
- unsigned affectReal;
- unsigned realValues;
- unsigned affectVirtual;
- unsigned virtualValues;
-#endif
{
register xkbSetControlsReq *req;
@@ -196,18 +152,10 @@ XkbSetIgnoreLockMods(dpy,deviceSpec,
}
Bool
-#if NeedFunctionPrototypes
XkbChangeEnabledControls( Display * dpy,
unsigned deviceSpec,
unsigned affect,
unsigned values)
-#else
-XkbChangeEnabledControls(dpy,deviceSpec,affect,values)
- Display * dpy;
- unsigned deviceSpec;
- unsigned affect;
- unsigned values;
-#endif
{
register xkbSetControlsReq *req;
@@ -225,14 +173,7 @@ XkbChangeEnabledControls(dpy,deviceSpec,affect,values)
}
Status
-#if NeedFunctionPrototypes
XkbGetControls(Display *dpy, unsigned long which, XkbDescPtr xkb)
-#else
-XkbGetControls(dpy, which, xkb)
- Display *dpy;
- unsigned long which;
- XkbDescPtr xkb;
-#endif
{
register xkbGetControlsReq *req;
xkbGetControlsReply rep;
@@ -303,6 +244,14 @@ XkbGetControls(dpy, which, xkb)
}
if (which&XkbAccessXKeysMask)
ctrls->ax_options= rep.axOptions;
+ if (which&XkbStickyKeysMask) {
+ ctrls->ax_options &= ~XkbAX_SKOptionsMask;
+ ctrls->ax_options |= rep.axOptions & XkbAX_SKOptionsMask;
+ }
+ if (which&XkbAccessXFeedbackMask) {
+ ctrls->ax_options &= ~XkbAX_FBOptionsMask;
+ ctrls->ax_options |= rep.axOptions & XkbAX_FBOptionsMask;
+ }
if (which&XkbAccessXTimeoutMask) {
ctrls->ax_timeout = rep.axTimeout;
ctrls->axt_ctrls_mask = rep.axtCtrlsMask;
@@ -320,14 +269,7 @@ XkbGetControls(dpy, which, xkb)
}
Bool
-#if NeedFunctionPrototypes
XkbSetControls(Display *dpy, unsigned long which, XkbDescPtr xkb)
-#else
-XkbSetControls(dpy, which, xkb)
- Display * dpy;
- unsigned long which;
- XkbDescPtr xkb;
-#endif
{
register xkbSetControlsReq *req;
XkbControlsPtr ctrls;
@@ -393,22 +335,15 @@ XkbSetControls(dpy, which, xkb)
}
UnlockDisplay(dpy);
SyncHandle();
- return False;
+ return True;
}
/***====================================================================***/
void
-#if NeedFunctionPrototypes
XkbNoteControlsChanges( XkbControlsChangesPtr old,
XkbControlsNotifyEvent * new,
unsigned int wanted)
-#else
-XkbNoteControlsChanges(old,new,wanted)
- XkbControlsChangesPtr old;
- XkbControlsNotifyEvent * new;
- unsigned int wanted;
-#endif
{
old->changed_ctrls|= (new->changed_ctrls&wanted);
if (new->changed_ctrls&XkbControlsEnabledMask&wanted)
diff --git a/src/xkb/XKBCvt.c b/src/xkb/XKBCvt.c
index bd965d24..f2347fa8 100644
--- a/src/xkb/XKBCvt.c
+++ b/src/xkb/XKBCvt.c
@@ -26,6 +26,7 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
+/* $XFree86: xc/lib/X11/XKBCvt.c,v 3.34 2002/10/08 23:31:35 dawes Exp $ */
#include <stdio.h>
#include <sys/types.h>
@@ -37,6 +38,7 @@ from The Open Group.
#include "Xlibint.h"
#include "Xlcint.h"
#include "XlcPubI.h"
+#include "Ximint.h"
#include <X11/Xutil.h>
#include <X11/Xmd.h>
#define XK_LATIN1
@@ -52,77 +54,8 @@ from The Open Group.
#define XKB_EXTEND_LOOKUP_STRING
#endif
-#ifdef X_NOT_STDC_ENV
-extern char *getenv();
-#endif
-
-#ifdef __STDC__
-#define Const const
-#else
-#define Const /**/
-#endif
-#if defined(__STDC__) && !defined(NORCONST)
-#define RConst const
-#else
-#define RConst /**/
-#endif
-
-/* bit (1<<i) means character is in codeset i at the same codepoint */
-extern unsigned int _Xlatin1[];
-
-/* bit (1<<i) means character is in codeset i at the same codepoint */
-extern unsigned int _Xlatin2[];
-
-/* maps Cyrillic keysyms to KOI8-R */
-extern unsigned char _Xkoi8[];
-
-extern unsigned short _Xkoi8_size;
-
-#define sLatin1 0
-#define sLatin2 1
-#define sLatin3 2
-#define sLatin4 3
-#define sKana 4
-#define sX0201 0x01000004
-#define sArabic 5
-#define sCyrillic 6
-#define sGreek 7
-#define sAPL 11
-#define sHebrew 12
-#define sThai 13
-#define sKorean 14
-#define sLatin5 15
-#define sLatin6 16
-#define sLatin7 17
-#define sLatin8 18
-#define sLatin9 19
-#define sCurrency 32
-
-
-static unsigned long WantLatin1 = sLatin1;
-static unsigned long WantLatin2 = sLatin2;
-static unsigned long WantLatin3 = sLatin3;
-static unsigned long WantLatin4 = sLatin4;
-static unsigned long WantLatin5 = sLatin5;
-static unsigned long WantLatin6 = sLatin6;
-static unsigned long WantKana = sKana;
-static unsigned long WantX0201 = sX0201;
-static unsigned long WantArabic = sArabic;
-static unsigned long WantCyrillic = sCyrillic;
-static unsigned long WantGreek = sGreek;
-static unsigned long WantAPL = sAPL;
-static unsigned long WantHebrew = sHebrew;
-
static int
-#if NeedFunctionPrototypes
_XkbHandleSpecialSym(KeySym keysym, char *buffer, int nbytes, int *extra_rtrn)
-#else
-_XkbHandleSpecialSym(keysym, buffer, nbytes, extra_rtrn)
- KeySym keysym;
- char *buffer;
- int nbytes;
- int * extra_rtrn;
-#endif
{
/* try to convert to Latin-1, handling ctrl */
@@ -149,40 +82,19 @@ _XkbHandleSpecialSym(keysym, buffer, nbytes, extra_rtrn)
return 1;
}
-extern int
-_XGetCharCode (
-#if NeedFunctionPrototypes
- unsigned long, KeySym, char*, int
-#endif
-);
-
/*ARGSUSED*/
-int
-#if NeedFunctionPrototypes
+static int
_XkbKSToKnownSet ( XPointer priv,
KeySym keysym,
char * buffer,
int nbytes,
int * extra_rtrn)
-#else
-_XkbKSToKnownSet (priv, keysym, buffer, nbytes, extra_rtrn)
- XPointer priv;
- KeySym keysym;
- char *buffer;
- int nbytes;
- int *extra_rtrn;
-#endif
{
- unsigned long kset,keysymSet;
- int count,isLatin1;
char tbuf[8],*buf;
if (extra_rtrn)
*extra_rtrn= 0;
- keysymSet = *((unsigned long *)priv);
- kset = keysymSet&0xffffff;
-
/* convert "dead" diacriticals for dumb applications */
if ( (keysym&0xffffff00)== 0xfe00 ) {
switch ( keysym ) {
@@ -207,16 +119,13 @@ _XkbKSToKnownSet (priv, keysym, buffer, nbytes, extra_rtrn)
}
}
- isLatin1 = ((keysym&0xffffff00)==0);
- count = 0;
-
if (nbytes<1) buf= tbuf;
else buf= buffer;
if ((keysym&0xffffff00)==0xff00) {
return _XkbHandleSpecialSym(keysym, buf, nbytes, extra_rtrn);
}
- return _XGetCharCode (keysymSet, keysym, buf, nbytes);
+ return _XimGetCharCode (priv, keysym, (unsigned char *)buf, nbytes);
}
typedef struct _XkbToKS {
@@ -226,15 +135,7 @@ typedef struct _XkbToKS {
/*ARGSUSED*/
static KeySym
-#if NeedFunctionPrototypes
_XkbKnownSetToKS(XPointer priv,char *buffer,int nbytes,Status *status)
-#else
-_XkbKnownSetToKS(priv,buffer,nbytes,status)
- XPointer priv;
- char *buffer;
- int nbytes;
- Status *status;
-#endif
{
if (nbytes!=1)
return NoSymbol;
@@ -251,69 +152,8 @@ _XkbKnownSetToKS(priv,buffer,nbytes,status)
return NoSymbol;
}
-/*ARGSUSED*/
-int
-#if NeedFunctionPrototypes
-_XkbKSToThai ( XPointer priv,
- KeySym keysym,
- char * buffer,
- int nbytes,
- int * extra_rtrn)
-#else
-_XkbKSToThai (priv, keysym, buffer, nbytes, extra_rtrn)
- XPointer priv;
- KeySym keysym;
- char *buffer;
- int nbytes;
- int *extra_rtrn;
-#endif
-{
-
- if ((keysym&0xffffff00)==0xff00) {
- return _XkbHandleSpecialSym(keysym, buffer, nbytes, extra_rtrn);
- }
- else if (((keysym&0xffffff80)==0xd80)||((keysym&0xffffff80)==0)) {
- if (nbytes>0) {
- buffer[0]= (char)(keysym&0xff);
- if (nbytes>1)
- buffer[1]= '\0';
- return 1;
- }
- if (extra_rtrn)
- *extra_rtrn= 1;
- }
- return 0;
-}
-
-/*ARGSUSED*/
-static KeySym
-#if NeedFunctionPrototypes
-_XkbThaiToKS(XPointer priv,char *buffer,int nbytes,Status *status)
-#else
-_XkbThaiToKS(priv,buffer,nbytes,status)
- XPointer priv;
- char *buffer;
- int nbytes;
- Status *status;
-#endif
-{
- if (nbytes!=1)
- return NoSymbol;
- if (((buffer[0]&0x80)==0)&&(buffer[0]>=32))
- return buffer[0];
- else if ((buffer[0]&0x7f)>=32) {
- return 0xd00|buffer[0];
- }
- return NoSymbol;
-}
-
static KeySym
-#if NeedFunctionPrototypes
__XkbDefaultToUpper(KeySym sym)
-#else
-__XkbDefaultToUpper(sym)
- KeySym sym;
-#endif
{
KeySym lower,upper;
@@ -321,129 +161,18 @@ __XkbDefaultToUpper(sym)
return upper;
}
-int _XkbKSToKoi8 (priv, keysym, buffer, nbytes, status)
- XPointer priv;
- KeySym keysym;
- char *buffer;
- int nbytes;
- Status *status;
-{
- if ((keysym&0xffffff00)==0xff00) {
- return _XkbHandleSpecialSym(keysym, buffer, nbytes, status);
- }
- else if (((keysym&0xffffff80)==0x680)||((keysym&0xffffff80)==0)) {
- if (nbytes>0) {
- if ( (keysym&0x80)==0 )
- buffer[0] = keysym&0x7f;
- else buffer[0] = _Xkoi8[keysym & 0x7f];
- if (nbytes>1)
- buffer[1]= '\0';
- return 1;
- }
- }
- return 0;
-}
-
-static KeySym
-_XkbKoi8ToKS(priv,buffer,nbytes,status)
- XPointer priv;
- char *buffer;
- int nbytes;
- Status *status;
-{
- if (nbytes!=1)
- return NoSymbol;
- if (((buffer[0]&0x80)==0)&&(buffer[0]>=32))
- return buffer[0];
- else if ((buffer[0]&0x7f)>=32) {
- register int i;
- for (i=0;i<_Xkoi8_size;i++) {
- if (_Xkoi8[i]==buffer[0])
- return 0x680|i;
- }
- }
- return NoSymbol;
-}
-
-/***====================================================================***/
-
-
-static XkbConverters RConst cvt_ascii = {
- _XkbKSToKnownSet,(XPointer)&WantLatin1,_XkbKnownSetToKS,NULL,__XkbDefaultToUpper
-};
-
-static XkbConverters RConst cvt_latin1 = {
- _XkbKSToKnownSet,(XPointer)&WantLatin1,_XkbKnownSetToKS,NULL,NULL
-};
-
-static XkbConverters RConst cvt_latin2 = {
- _XkbKSToKnownSet,(XPointer)&WantLatin2,_XkbKnownSetToKS,NULL,NULL
-};
-
-static XkbConverters RConst cvt_latin3 = {
- _XkbKSToKnownSet,(XPointer)&WantLatin3,_XkbKnownSetToKS,NULL,NULL
-};
-
-static XkbConverters RConst cvt_latin4 = {
- _XkbKSToKnownSet,(XPointer)&WantLatin4,_XkbKnownSetToKS,NULL,NULL
-};
-
-static XkbConverters RConst cvt_latin5 = {
- _XkbKSToKnownSet,(XPointer)&WantLatin5,_XkbKnownSetToKS,NULL,NULL
-};
-
-static XkbConverters RConst cvt_latin6 = {
- _XkbKSToKnownSet,(XPointer)&WantLatin6,_XkbKnownSetToKS,NULL,NULL
-};
-
-static XkbConverters RConst cvt_kana = {
- _XkbKSToKnownSet,(XPointer)&WantKana,_XkbKnownSetToKS,NULL,NULL
-};
-
-static XkbConverters RConst cvt_X0201 = {
- _XkbKSToKnownSet,(XPointer)&WantX0201,_XkbKnownSetToKS,NULL,NULL
-};
-
-static XkbConverters RConst cvt_Arabic = {
- _XkbKSToKnownSet,(XPointer)&WantArabic,_XkbKnownSetToKS,NULL,NULL
-};
-
-static XkbConverters RConst cvt_Cyrillic = {
- _XkbKSToKnownSet,(XPointer)&WantCyrillic,_XkbKnownSetToKS,NULL,NULL
-};
-
-static XkbConverters RConst cvt_Greek = {
- _XkbKSToKnownSet,(XPointer)&WantGreek,_XkbKnownSetToKS,NULL,NULL
-};
-
-static XkbConverters RConst cvt_APL = {
- _XkbKSToKnownSet,(XPointer)&WantAPL,_XkbKnownSetToKS,NULL,NULL
-};
-
-static XkbConverters RConst cvt_Hebrew = {
- _XkbKSToKnownSet,(XPointer)&WantHebrew,_XkbKnownSetToKS,NULL,NULL
-};
-
-static XkbConverters cvt_Thai = {
- _XkbKSToThai, NULL, _XkbThaiToKS, NULL, NULL
-};
-
-static XkbConverters cvt_Koi8 = {
- _XkbKSToKoi8, NULL, _XkbKoi8ToKS, NULL, NULL
-};
-
+#ifdef XKB_EXTEND_LOOKUP_STRING
static int
-#if NeedFunctionPrototypes
Strcmp(char *str1, char *str2)
-#else
-Strcmp(str1, str2)
- char *str1, *str2;
-#endif
{
char str[256];
char c, *s;
- if (strlen (str1) >= sizeof str) /* almost certain it's a mismatch */
+ /*
+ * unchecked strings from the environment can end up here, so check
+ * the length before copying.
+ */
+ if (strlen(str1) >= sizeof(str)) /* almost certain it's a mismatch */
return 1;
for (s = str; (c = *str1++); ) {
@@ -454,65 +183,18 @@ Strcmp(str1, str2)
*s = '\0';
return (strcmp(str, str2));
}
+#endif
int
-#if NeedFunctionPrototypes
_XkbGetConverters(char *encoding_name, XkbConverters *cvt_rtrn)
-#else
-_XkbGetConverters(encoding_name, cvt_rtrn)
- char *encoding_name;
- XkbConverters *cvt_rtrn;
-#endif
{
- if ( cvt_rtrn ) {
- if ( (encoding_name==NULL) ||
- (Strcmp(encoding_name,"ascii")==0) ||
- (Strcmp(encoding_name,"string")==0) )
- *cvt_rtrn = cvt_ascii;
- else if (Strcmp(encoding_name,"iso8859-1")==0)
- *cvt_rtrn = cvt_latin1;
- else if (Strcmp(encoding_name, "iso8859-2")==0)
- *cvt_rtrn = cvt_latin2;
- else if (Strcmp(encoding_name, "iso8859-3")==0)
- *cvt_rtrn = cvt_latin3;
- else if (Strcmp(encoding_name, "iso8859-4")==0)
- *cvt_rtrn = cvt_latin4;
- else if (Strcmp(encoding_name, "iso8859-5")==0)
- *cvt_rtrn = cvt_Cyrillic;
- else if (Strcmp(encoding_name, "iso8859-6")==0)
- *cvt_rtrn = cvt_Arabic;
- else if (Strcmp(encoding_name, "iso8859-7")==0)
- *cvt_rtrn = cvt_Greek;
- else if (Strcmp(encoding_name, "iso8859-8")==0)
- *cvt_rtrn = cvt_Hebrew;
- else if (Strcmp(encoding_name, "iso8859-9")==0)
- *cvt_rtrn = cvt_latin5;
- else if (Strcmp(encoding_name, "iso8859-10")==0)
- *cvt_rtrn = cvt_latin6;
- else if (Strcmp(encoding_name, "apl")==0)
- *cvt_rtrn = cvt_APL;
-#if 0
- else if (Strcmp(encoding_name, "ja.euc")==0)
- *cvt_rtrn = ???;
- else if (Strcmp(encoding_name, "ja.jis")==0)
- *cvt_rtrn = ???;
- else if (Strcmp(encoding_name, "ja.sjis")==0)
- *cvt_rtrn = ???;
-#endif
- else if (Strcmp(encoding_name, "jisx0201")==0) /* ??? */
- *cvt_rtrn = cvt_X0201;
- else if (Strcmp(encoding_name, "kana")==0) /* ??? */
- *cvt_rtrn = cvt_kana;
- else if ((Strcmp(encoding_name, "tactis")==0) ||
- (Strcmp(encoding_name, "tis620.2533-1")==0))
- *cvt_rtrn = cvt_Thai;
- else if (Strcmp(encoding_name, "koi8-r")==0)
- *cvt_rtrn = cvt_Koi8;
- /* other codesets go here */
- else *cvt_rtrn = cvt_latin1;
- return 1;
- }
- *cvt_rtrn= cvt_latin1;
+ if ( !cvt_rtrn ) return 0;
+
+ cvt_rtrn->KSToMB = _XkbKSToKnownSet;
+ cvt_rtrn->KSToMBPriv = _XimGetLocaleCode(encoding_name);
+ cvt_rtrn->MBToKS = _XkbKnownSetToKS;
+ cvt_rtrn->MBToKSPriv = NULL;
+ cvt_rtrn->KSToUpper = __XkbDefaultToUpper;
return 1;
}
@@ -532,7 +214,7 @@ _XkbGetConverters(encoding_name, cvt_rtrn)
*/
#define CHARSET_FILE "/usr/lib/X11/input/charsets"
-static char *_XkbKnownLanguages = "c=ascii:da,de,en,es,fi,fr,is,it,nl,no,pt,sv=iso8859-1:hu,pl,cs=iso8859-2:bg,ru=iso8859-5:ar,ara=iso8859-6:el=iso8859-7:th,th_TH,th_TH.TACTIS=tactis";
+static char *_XkbKnownLanguages = "c=ascii:da,de,en,es,fr,is,it,nl,no,pt,sv=iso8859-1:hu,pl,cs=iso8859-2:eo=iso8859-3:sp=iso8859-5:ar,ara=iso8859-6:el=iso8859-7:he=iso8859-8:tr=iso8859-9:lt,lv=iso8859-13:et,fi=iso8859-15:ru=koi8-r:uk=koi8-u:th,th_TH,th_TH.iso8859-11=iso8859-11:th_TH.TIS620=tis620:hy=armscii-8:vi=tcvn-5712:ka=georgian-academy:be,bg=microsoft-cp1251";
char *
_XkbGetCharset()
@@ -555,6 +237,9 @@ _XkbGetCharset()
if ( locale == NULL )
return NULL;
+ if (strlen(locale) >= sizeof(lang))
+ return NULL;
+
for (tmp = lang; *tmp = *locale++; tmp++) {
if (isupper(*tmp))
*tmp = tolower(*tmp);
@@ -581,8 +266,13 @@ _XkbGetCharset()
} else {
struct stat sbuf;
FILE *file;
- if ( (stat(CHARSET_FILE,&sbuf)==0) && (sbuf.st_mode&S_IFREG) &&
- (file = fopen(CHARSET_FILE,"r")) ) {
+#ifndef __UNIXOS2__
+ char *cf = CHARSET_FILE;
+#else
+ char *cf = __XOS2RedirRoot(CHARSET_FILE);
+#endif
+ if ( (stat(cf,&sbuf)==0) && (sbuf.st_mode&S_IFREG) &&
+ (file = fopen(cf,"r")) ) {
tmp = _XkbAlloc(sbuf.st_size+1);
if (tmp!=NULL) {
sbuf.st_size = (long)fread(tmp,1,sbuf.st_size,file);
diff --git a/src/xkb/XKBExtDev.c b/src/xkb/XKBExtDev.c
index c4d99681..1bc9a064 100644
--- a/src/xkb/XKBExtDev.c
+++ b/src/xkb/XKBExtDev.c
@@ -24,6 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
+/* $XFree86: xc/lib/X11/XKBExtDev.c,v 3.4 2001/10/28 03:32:33 tsi Exp $ */
#include <stdio.h>
#define NEED_REPLIES
@@ -37,16 +38,9 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
/***====================================================================***/
extern void
-#if NeedFunctionPrototypes
XkbNoteDeviceChanges( XkbDeviceChangesPtr old,
XkbExtensionDeviceNotifyEvent * new,
unsigned int wanted)
-#else
-XkbNoteDeviceChanges(old,new,wanted)
- XkbDeviceChangesPtr old;
- XkbExtensionDeviceNotifyEvent * new;
- unsigned int wanted;
-#endif
{
if ((!old)||(!new)||(!wanted)||((new->reason&wanted)==0))
return;
@@ -113,16 +107,9 @@ XkbNoteDeviceChanges(old,new,wanted)
/***====================================================================***/
static Status
-#if NeedFunctionPrototypes
_XkbReadDeviceLedInfo( XkbReadBufferPtr buf,
unsigned present,
XkbDeviceInfoPtr devi)
-#else
-_XkbReadDeviceLedInfo(buf,present,devi)
- XkbReadBufferPtr buf;
- unsigned present;
- XkbDeviceInfoPtr devi;
-#endif
{
register unsigned i,bit;
XkbDeviceLedInfoPtr devli;
@@ -178,16 +165,9 @@ xkbDeviceLedsWireDesc * wireli;
}
static Status
-#if NeedFunctionPrototypes
_XkbReadGetDeviceInfoReply( Display * dpy,
xkbGetDeviceInfoReply * rep,
XkbDeviceInfoPtr devi)
-#else
-_XkbReadGetDeviceInfoReply(dpy,rep,devi)
- Display * dpy;
- xkbGetDeviceInfoReply * rep;
- XkbDeviceInfoPtr devi;
-#endif
{
XkbReadBufferRec buf;
XkbAction * act;
@@ -235,20 +215,11 @@ BAILOUT:
}
XkbDeviceInfoPtr
-#if NeedFunctionPrototypes
XkbGetDeviceInfo( Display * dpy,
unsigned which,
unsigned deviceSpec,
unsigned class,
unsigned id)
-#else
-XkbGetDeviceInfo(dpy,which,deviceSpec,class,id)
- Display * dpy;
- unsigned which;
- unsigned deviceSpec;
- unsigned class;
- unsigned id;
-#endif
{
register xkbGetDeviceInfoReq * req;
xkbGetDeviceInfoReply rep;
@@ -293,16 +264,9 @@ XkbGetDeviceInfo(dpy,which,deviceSpec,class,id)
}
Status
-#if NeedFunctionPrototypes
XkbGetDeviceInfoChanges( Display * dpy,
XkbDeviceInfoPtr devi,
XkbDeviceChangesPtr changes)
-#else
-XkbGetDeviceInfoChanges(dpy,devi,changes)
- Display * dpy;
- XkbDeviceInfoPtr devi;
- XkbDeviceChangesPtr changes;
-#endif
{
register xkbGetDeviceInfoReq * req;
xkbGetDeviceInfoReply rep;
@@ -360,20 +324,11 @@ XkbGetDeviceInfoChanges(dpy,devi,changes)
}
Status
-#if NeedFunctionPrototypes
XkbGetDeviceButtonActions( Display * dpy,
XkbDeviceInfoPtr devi,
Bool all,
unsigned int first,
unsigned int num)
-#else
-XkbGetDeviceButtonActions(dpy,devi,all,first,num)
- Display * dpy;
- XkbDeviceInfoPtr devi;
- Bool all;
- unsigned int first;
- unsigned int num;
-#endif
{
register xkbGetDeviceInfoReq * req;
xkbGetDeviceInfoReply rep;
@@ -410,20 +365,11 @@ XkbGetDeviceButtonActions(dpy,devi,all,first,num)
}
Status
-#if NeedFunctionPrototypes
XkbGetDeviceLedInfo( Display * dpy,
XkbDeviceInfoPtr devi,
unsigned int ledClass,
unsigned int ledId,
unsigned int which)
-#else
-XkbGetDeviceLedInfo(dpy,devi,ledClass,ledId,which)
- Display * dpy;
- XkbDeviceInfoPtr devi;
- unsigned int ledClass;
- unsigned int ledId;
- unsigned int which;
-#endif
{
register xkbGetDeviceInfoReq * req;
xkbGetDeviceInfoReply rep;
@@ -477,14 +423,7 @@ typedef struct _SetLedStuff {
} SetLedStuff;
static void
-#if NeedFunctionPrototypes
_InitLedStuff(SetLedStuff *stuff,unsigned wanted,XkbDeviceInfoPtr devi)
-#else
-_InitLedStuff(stuff,wanted,devi)
- SetLedStuff * stuff;
- unsigned wanted;
- XkbDeviceInfoPtr devi;
-#endif
{
int i;
register XkbDeviceLedInfoPtr devli;
@@ -516,12 +455,7 @@ register XkbDeviceLedInfoPtr devli;
}
static void
-#if NeedFunctionPrototypes
_FreeLedStuff(SetLedStuff *stuff)
-#else
-_FreeLedStuff(stuff)
- SetLedStuff *stuff;
-#endif
{
if ((stuff->num_info>0)&&(stuff->info!=NULL))
_XkbFree(stuff->info);
@@ -530,13 +464,7 @@ _FreeLedStuff(stuff)
}
static int
-#if NeedFunctionPrototypes
_XkbSizeLedInfo(unsigned changed,XkbDeviceLedInfoPtr devli)
-#else
-_XkbSizeLedInfo(changed,devli)
- unsigned changed;
- XkbDeviceLedInfoPtr devli;
-#endif
{
register int i,size;
register unsigned bit,namesNeeded,mapsNeeded;
@@ -559,18 +487,10 @@ register unsigned bit,namesNeeded,mapsNeeded;
}
static Bool
-#if NeedFunctionPrototypes
_SizeMatches( SetLedStuff * stuff,
XkbDeviceLedChangesPtr changes,
int * sz_rtrn,
int * nleds_rtrn)
-#else
-_SizeMatches(stuff,changes,sz_rtrn,nleds_rtrn)
- SetLedStuff * stuff;
- XkbDeviceLedChangesPtr changes;
- int * sz_rtrn;
- int * nleds_rtrn;
-#endif
{
int i,nMatch,class,id;
LedInfoStuff * linfo;
@@ -589,8 +509,10 @@ Bool match;
match= ((class==devli->led_class)||(class==XkbAllXIClasses));
if (devli->led_class==KbdFeedbackClass) dflt= stuff->dflt_kbd_fb;
else dflt= stuff->dflt_led_fb;
- match= match && (id==devli->led_id) || (id==XkbAllXIIds) ||
- ((id==XkbDfltXIId)&&(linfo==dflt));
+ match = (match && (id == devli->led_id)) ||
+ (id == XkbAllXIIds) ||
+ ((id == XkbDfltXIId) &&
+ (linfo == dflt));
if (match) {
if (!linfo->used) {
*sz_rtrn+= _XkbSizeLedInfo(stuff->wanted,devli);
@@ -610,20 +532,11 @@ Bool match;
static Status
-#if NeedFunctionPrototypes
_XkbSetDeviceInfoSize( XkbDeviceInfoPtr devi,
XkbDeviceChangesPtr changes,
SetLedStuff * stuff,
int * sz_rtrn,
int * num_leds_rtrn)
-#else
-_XkbSetDeviceInfoSize(devi,changes,stuff,sz_rtrn,num_leds_rtrn)
- XkbDeviceInfoPtr devi;
- XkbDeviceChangesPtr changes;
- SetLedStuff * stuff;
- int * sz_rtrn;
- int * num_leds_rtrn;
-#endif
{
*sz_rtrn= 0;
if ((changes->changed&XkbXI_ButtonActionsMask)&&(changes->num_btns>0)) {
@@ -652,14 +565,7 @@ _XkbSetDeviceInfoSize(devi,changes,stuff,sz_rtrn,num_leds_rtrn)
}
static char *
-#if NeedFunctionPrototypes
_XkbWriteLedInfo(char *wire,unsigned changed,XkbDeviceLedInfoPtr devli)
-#else
-_XkbWriteLedInfo(wire,changed,devli)
- char * wire;
- unsigned changed;
- XkbDeviceLedInfoPtr devli;
-#endif
{
register int i;
register unsigned bit,namesNeeded,mapsNeeded;
@@ -716,18 +622,10 @@ xkbDeviceLedsWireDesc * lwire;
static int
-#if NeedFunctionPrototypes
_XkbWriteSetDeviceInfo( char * wire,
XkbDeviceChangesPtr changes,
SetLedStuff * stuff,
XkbDeviceInfoPtr devi)
-#else
-_XkbWriteSetDeviceInfo(wire,changes,stuff,devi)
- char * wire;
- XkbDeviceChangesPtr changes;
- SetLedStuff * stuff;
- XkbDeviceInfoPtr devi;
-#endif
{
char *start;
@@ -756,19 +654,12 @@ char *start;
}
Bool
-#if NeedFunctionPrototypes
XkbSetDeviceInfo( Display * dpy,
unsigned which,
XkbDeviceInfoPtr devi)
-#else
-XkbSetDeviceInfo(dpy,which,devi)
- Display * dpy;
- unsigned which;
- XkbDeviceInfoPtr devi;
-#endif
{
register xkbSetDeviceInfoReq *req;
- Status ok;
+ Status ok = 0;
int size,nLeds;
XkbInfoPtr xkbi;
XkbDeviceChangesRec changes;
@@ -818,19 +709,12 @@ XkbSetDeviceInfo(dpy,which,devi)
}
Bool
-#if NeedFunctionPrototypes
XkbChangeDeviceInfo( Display * dpy,
XkbDeviceInfoPtr devi,
XkbDeviceChangesPtr changes)
-#else
-XkbChangeDeviceInfo(dpy,devi,changes)
- Display * dpy;
- XkbDeviceInfoPtr devi;
- XkbDeviceChangesPtr changes;
-#endif
{
register xkbSetDeviceInfoReq *req;
- Status ok;
+ Status ok = 0;
int size,nLeds;
XkbInfoPtr xkbi;
SetLedStuff lstuff;
@@ -873,40 +757,23 @@ XkbChangeDeviceInfo(dpy,devi,changes)
}
Bool
-#if NeedFunctionPrototypes
XkbSetDeviceLedInfo( Display * dpy,
XkbDeviceInfoPtr devi,
unsigned ledClass,
unsigned ledID,
unsigned which)
-#else
-XkbSetDeviceLedInfo(dpy,devi,ledClass,ledID,which)
- Display * dpy;
- XkbDeviceInfoPtr devi;
- unsigned ledClass;
- unsigned ledID;
- unsigned which;
-#endif
{
return False;
}
Bool
-#if NeedFunctionPrototypes
XkbSetDeviceButtonActions( Display * dpy,
XkbDeviceInfoPtr devi,
unsigned int first,
unsigned int nBtns)
-#else
-XkbSetDeviceButtonActions(dpy,devi,first,nBtns)
- Display * dpy;
- XkbDeviceInfoPtr devi;
- unsigned int first;
- unsigned int nBtns;
-#endif
{
register xkbSetDeviceInfoReq *req;
- Status ok;
+ Status ok = 0;
int size,nLeds;
XkbInfoPtr xkbi;
XkbDeviceChangesRec changes;
diff --git a/src/xkb/XKBGAlloc.c b/src/xkb/XKBGAlloc.c
index c89e1197..6aa41d06 100644
--- a/src/xkb/XKBGAlloc.c
+++ b/src/xkb/XKBGAlloc.c
@@ -24,6 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
+/* $XFree86: xc/lib/X11/XKBGAlloc.c,v 3.4 2001/01/17 19:41:48 dawes Exp $ */
#define NEED_EVENTS
#define NEED_REPLIES
@@ -57,7 +58,6 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
/***====================================================================***/
static void
-#if NeedFunctionPrototypes
_XkbFreeGeomLeafElems( Bool freeAll,
int first,
int count,
@@ -65,16 +65,6 @@ _XkbFreeGeomLeafElems( Bool freeAll,
unsigned short * sz_inout,
char ** elems,
unsigned int elem_sz)
-#else
-_XkbFreeGeomLeafElems(freeAll,first,count,num_inout,sz_inout,elems,elem_sz)
- Bool freeAll;
- int first;
- int count;
- unsigned short * num_inout;
- unsigned short * sz_inout;
- char ** elems;
- unsigned int elem_sz;
-#endif
{
if ((freeAll)||(*elems==NULL)) {
*num_inout= *sz_inout= 0;
@@ -105,13 +95,10 @@ _XkbFreeGeomLeafElems(freeAll,first,count,num_inout,sz_inout,elems,elem_sz)
}
typedef void (*ContentsClearFunc)(
-#if NeedFunctionPrototypes
char * /* priv */
-#endif
);
static void
-#if NeedFunctionPrototypes
_XkbFreeGeomNonLeafElems( Bool freeAll,
int first,
int count,
@@ -120,18 +107,6 @@ _XkbFreeGeomNonLeafElems( Bool freeAll,
char ** elems,
unsigned int elem_sz,
ContentsClearFunc freeFunc)
-#else
-_XkbFreeGeomNonLeafElems(freeAll,first,count,num_inout,sz_inout,elems,elem_sz,
- freeFunc)
- Bool freeAll;
- int first;
- int count;
- unsigned short * num_inout;
- unsigned short * sz_inout;
- char ** elems;
- unsigned int elem_sz;
- ContentsClearFunc freeFunc;
-#endif
{
register int i;
register char *ptr;
@@ -176,12 +151,7 @@ register char *ptr;
/***====================================================================***/
static void
-#if NeedFunctionPrototypes
_XkbClearProperty(char *prop_in)
-#else
-_XkbClearProperty(prop_in)
- char * prop_in;
-#endif
{
XkbPropertyPtr prop= (XkbPropertyPtr)prop_in;
@@ -197,18 +167,10 @@ XkbPropertyPtr prop= (XkbPropertyPtr)prop_in;
}
void
-#if NeedFunctionPrototypes
XkbFreeGeomProperties( XkbGeometryPtr geom,
int first,
int count,
Bool freeAll)
-#else
-XkbFreeGeomProperties(geom,first,count,freeAll)
- XkbGeometryPtr geom;
- int first;
- int count;
- Bool freeAll;
-#endif
{
_XkbFreeGeomNonLeafElems(freeAll,first,count,
&geom->num_properties,&geom->sz_properties,
@@ -220,18 +182,10 @@ XkbFreeGeomProperties(geom,first,count,freeAll)
/***====================================================================***/
void
-#if NeedFunctionPrototypes
XkbFreeGeomKeyAliases( XkbGeometryPtr geom,
int first,
int count,
Bool freeAll)
-#else
-XkbFreeGeomKeyAliases(geom,first,count,freeAll)
- XkbGeometryPtr geom;
- int first;
- int count;
- Bool freeAll;
-#endif
{
_XkbFreeGeomLeafElems(freeAll,first,count,
&geom->num_key_aliases,&geom->sz_key_aliases,
@@ -243,12 +197,7 @@ XkbFreeGeomKeyAliases(geom,first,count,freeAll)
/***====================================================================***/
static void
-#if NeedFunctionPrototypes
_XkbClearColor(char *color_in)
-#else
-_XkbClearColor(color_in)
- char * color_in;
-#endif
{
XkbColorPtr color= (XkbColorPtr)color_in;
@@ -258,15 +207,7 @@ XkbColorPtr color= (XkbColorPtr)color_in;
}
void
-#if NeedFunctionPrototypes
XkbFreeGeomColors(XkbGeometryPtr geom,int first,int count,Bool freeAll)
-#else
-XkbFreeGeomColors(geom,first,count,freeAll)
- XkbGeometryPtr geom;
- int first;
- int count;
- Bool freeAll;
-#endif
{
_XkbFreeGeomNonLeafElems(freeAll,first,count,
&geom->num_colors,&geom->sz_colors,
@@ -278,15 +219,7 @@ XkbFreeGeomColors(geom,first,count,freeAll)
/***====================================================================***/
void
-#if NeedFunctionPrototypes
XkbFreeGeomPoints(XkbOutlinePtr outline,int first,int count,Bool freeAll)
-#else
-XkbFreeGeomPoints(outline,first,count,freeAll)
- XkbOutlinePtr outline;
- int first;
- int count;
- Bool freeAll;
-#endif
{
_XkbFreeGeomLeafElems(freeAll,first,count,
&outline->num_points,&outline->sz_points,
@@ -298,12 +231,7 @@ XkbFreeGeomPoints(outline,first,count,freeAll)
/***====================================================================***/
static void
-#if NeedFunctionPrototypes
_XkbClearOutline(char *outline_in)
-#else
-_XkbClearOutline(outline_in)
- char * outline_in;
-#endif
{
XkbOutlinePtr outline= (XkbOutlinePtr)outline_in;
@@ -313,15 +241,7 @@ XkbOutlinePtr outline= (XkbOutlinePtr)outline_in;
}
void
-#if NeedFunctionPrototypes
XkbFreeGeomOutlines(XkbShapePtr shape,int first,int count,Bool freeAll)
-#else
-XkbFreeGeomOutlines(shape,first,count,freeAll)
- XkbShapePtr shape;
- int first;
- int count;
- Bool freeAll;
-#endif
{
_XkbFreeGeomNonLeafElems(freeAll,first,count,
&shape->num_outlines,&shape->sz_outlines,
@@ -334,12 +254,7 @@ XkbFreeGeomOutlines(shape,first,count,freeAll)
/***====================================================================***/
static void
-#if NeedFunctionPrototypes
_XkbClearShape(char *shape_in)
-#else
-_XkbClearShape(shape_in)
- char * shape_in;
-#endif
{
XkbShapePtr shape= (XkbShapePtr)shape_in;
@@ -349,15 +264,7 @@ XkbShapePtr shape= (XkbShapePtr)shape_in;
}
void
-#if NeedFunctionPrototypes
XkbFreeGeomShapes(XkbGeometryPtr geom,int first,int count,Bool freeAll)
-#else
-XkbFreeGeomShapes(geom,first,count,freeAll)
- XkbGeometryPtr geom;
- int first;
- int count;
- Bool freeAll;
-#endif
{
_XkbFreeGeomNonLeafElems(freeAll,first,count,
&geom->num_shapes,&geom->sz_shapes,
@@ -369,15 +276,7 @@ XkbFreeGeomShapes(geom,first,count,freeAll)
/***====================================================================***/
void
-#if NeedFunctionPrototypes
XkbFreeGeomOverlayKeys(XkbOverlayRowPtr row,int first,int count,Bool freeAll)
-#else
-XkbFreeGeomOverlayKeys(row,first,count,freeAll)
- XkbOverlayRowPtr row;
- int first;
- int count;
- Bool freeAll;
-#endif
{
_XkbFreeGeomLeafElems(freeAll,first,count,
&row->num_keys,&row->sz_keys,
@@ -389,12 +288,7 @@ XkbFreeGeomOverlayKeys(row,first,count,freeAll)
/***====================================================================***/
static void
-#if NeedFunctionPrototypes
_XkbClearOverlayRow(char *row_in)
-#else
-_XkbClearOverlayRow(row_in)
- char * row_in;
-#endif
{
XkbOverlayRowPtr row= (XkbOverlayRowPtr)row_in;
@@ -404,15 +298,7 @@ XkbOverlayRowPtr row= (XkbOverlayRowPtr)row_in;
}
void
-#if NeedFunctionPrototypes
XkbFreeGeomOverlayRows(XkbOverlayPtr overlay,int first,int count,Bool freeAll)
-#else
-XkbFreeGeomOverlayRows(overlay,first,count,freeAll)
- XkbOverlayPtr overlay;
- int first;
- int count;
- Bool freeAll;
-#endif
{
_XkbFreeGeomNonLeafElems(freeAll,first,count,
&overlay->num_rows,&overlay->sz_rows,
@@ -424,12 +310,7 @@ XkbFreeGeomOverlayRows(overlay,first,count,freeAll)
/***====================================================================***/
static void
-#if NeedFunctionPrototypes
_XkbClearOverlay(char *overlay_in)
-#else
-_XkbClearOverlay(overlay_in)
- char * overlay_in;
-#endif
{
XkbOverlayPtr overlay= (XkbOverlayPtr)overlay_in;
@@ -439,15 +320,7 @@ XkbOverlayPtr overlay= (XkbOverlayPtr)overlay_in;
}
void
-#if NeedFunctionPrototypes
XkbFreeGeomOverlays(XkbSectionPtr section,int first,int count,Bool freeAll)
-#else
-XkbFreeGeomOverlays(section,first,count,freeAll)
- XkbSectionPtr section;
- int first;
- int count;
- Bool freeAll;
-#endif
{
_XkbFreeGeomNonLeafElems(freeAll,first,count,
&section->num_overlays,&section->sz_overlays,
@@ -459,15 +332,7 @@ XkbFreeGeomOverlays(section,first,count,freeAll)
/***====================================================================***/
void
-#if NeedFunctionPrototypes
XkbFreeGeomKeys(XkbRowPtr row,int first,int count,Bool freeAll)
-#else
-XkbFreeGeomKeys(row,first,count,freeAll)
- XkbRowPtr row;
- int first;
- int count;
- Bool freeAll;
-#endif
{
_XkbFreeGeomLeafElems(freeAll,first,count,
&row->num_keys,&row->sz_keys,
@@ -479,12 +344,7 @@ XkbFreeGeomKeys(row,first,count,freeAll)
/***====================================================================***/
static void
-#if NeedFunctionPrototypes
_XkbClearRow(char *row_in)
-#else
-_XkbClearRow(row_in)
- char * row_in;
-#endif
{
XkbRowPtr row= (XkbRowPtr)row_in;
@@ -494,15 +354,7 @@ XkbRowPtr row= (XkbRowPtr)row_in;
}
void
-#if NeedFunctionPrototypes
XkbFreeGeomRows(XkbSectionPtr section,int first,int count,Bool freeAll)
-#else
-XkbFreeGeomRows(section,first,count,freeAll)
- XkbSectionPtr section;
- int first;
- int count;
- Bool freeAll;
-#endif
{
_XkbFreeGeomNonLeafElems(freeAll,first,count,
&section->num_rows,&section->sz_rows,
@@ -513,12 +365,7 @@ XkbFreeGeomRows(section,first,count,freeAll)
/***====================================================================***/
static void
-#if NeedFunctionPrototypes
_XkbClearSection(char *section_in)
-#else
-_XkbClearSection(section_in)
- char * section_in;
-#endif
{
XkbSectionPtr section= (XkbSectionPtr)section_in;
@@ -532,15 +379,7 @@ XkbSectionPtr section= (XkbSectionPtr)section_in;
}
void
-#if NeedFunctionPrototypes
XkbFreeGeomSections(XkbGeometryPtr geom,int first,int count,Bool freeAll)
-#else
-XkbFreeGeomSections(geom,first,count,freeAll)
- XkbGeometryPtr geom;
- int first;
- int count;
- Bool freeAll;
-#endif
{
_XkbFreeGeomNonLeafElems(freeAll,first,count,
&geom->num_sections,&geom->sz_sections,
@@ -552,12 +391,7 @@ XkbFreeGeomSections(geom,first,count,freeAll)
/***====================================================================***/
static void
-#if NeedFunctionPrototypes
_XkbClearDoodad(char *doodad_in)
-#else
-_XkbClearDoodad(doodad_in)
- char * doodad_in;
-#endif
{
XkbDoodadPtr doodad= (XkbDoodadPtr)doodad_in;
@@ -587,14 +421,7 @@ XkbDoodadPtr doodad= (XkbDoodadPtr)doodad_in;
}
void
-#if NeedFunctionPrototypes
XkbFreeGeomDoodads(XkbDoodadPtr doodads,int nDoodads,Bool freeAll)
-#else
-XkbFreeGeomDoodads(doodads,nDoodads,freeAll)
- XkbDoodadPtr doodads;
- int nDoodads;
- Bool freeAll;
-#endif
{
register int i;
register XkbDoodadPtr doodad;
@@ -610,14 +437,7 @@ register XkbDoodadPtr doodad;
}
void
-#if NeedFunctionPrototypes
XkbFreeGeometry(XkbGeometryPtr geom,unsigned which,Bool freeMap)
-#else
-XkbFreeGeometry(geom,which,freeMap)
- XkbGeometryPtr geom;
- unsigned which;
- Bool freeMap;
-#endif
{
if (geom==NULL)
return;
@@ -651,20 +471,11 @@ XkbFreeGeometry(geom,which,freeMap)
/***====================================================================***/
static Status
-#if NeedFunctionPrototypes
_XkbGeomAlloc( XPointer * old,
unsigned short * num,
unsigned short * total,
int num_new,
Size_t sz_elem)
-#else
-_XkbGeomAlloc(old,num,total,num_new,sz_elem)
- XPointer * old;
- unsigned short * num;
- unsigned short * total;
- int num_new;
- Size_t sz_elem;
-#endif
{
if (num_new<1)
return Success;
@@ -732,181 +543,91 @@ _XkbGeomAlloc(old,num,total,num_new,sz_elem)
(n),sizeof(XkbOverlayKeyRec))
Status
-#if NeedFunctionPrototypes
XkbAllocGeomProps(XkbGeometryPtr geom,int nProps)
-#else
-XkbAllocGeomProps(geom,nProps)
- XkbGeometryPtr geom;
- int nProps;
-#endif
{
return _XkbAllocProps(geom,nProps);
}
Status
-#if NeedFunctionPrototypes
XkbAllocGeomColors(XkbGeometryPtr geom,int nColors)
-#else
-XkbAllocGeomColors(geom,nColors)
- XkbGeometryPtr geom;
- int nColors;
-#endif
{
return _XkbAllocColors(geom,nColors);
}
Status
-#if NeedFunctionPrototypes
XkbAllocGeomKeyAliases(XkbGeometryPtr geom,int nKeyAliases)
-#else
-XkbAllocGeomKeyAliases(geom,nKeyAliases)
- XkbGeometryPtr geom;
- int nKeyAliases;
-#endif
{
return _XkbAllocKeyAliases(geom,nKeyAliases);
}
Status
-#if NeedFunctionPrototypes
XkbAllocGeomShapes(XkbGeometryPtr geom,int nShapes)
-#else
-XkbAllocGeomShapes(geom,nShapes)
- XkbGeometryPtr geom;
- int nShapes;
-#endif
{
return _XkbAllocShapes(geom,nShapes);
}
Status
-#if NeedFunctionPrototypes
XkbAllocGeomSections(XkbGeometryPtr geom,int nSections)
-#else
-XkbAllocGeomSections(geom,nSections)
- XkbGeometryPtr geom;
- int nSections;
-#endif
{
return _XkbAllocSections(geom,nSections);
}
Status
-#if NeedFunctionPrototypes
XkbAllocGeomOverlays(XkbSectionPtr section,int nOverlays)
-#else
-XkbAllocGeomOverlays(section,nOverlays)
- XkbSectionPtr section;
- int nOverlays;
-#endif
{
return _XkbAllocOverlays(section,nOverlays);
}
Status
-#if NeedFunctionPrototypes
XkbAllocGeomOverlayRows(XkbOverlayPtr overlay,int nRows)
-#else
-XkbAllocGeomOverlayRows(overlay,nRows)
- XkbOverlayPtr overlay;
- int nRows;
-#endif
{
return _XkbAllocOverlayRows(overlay,nRows);
}
Status
-#if NeedFunctionPrototypes
XkbAllocGeomOverlayKeys(XkbOverlayRowPtr row,int nKeys)
-#else
-XkbAllocGeomOverlayKeys(row,nKeys)
- XkbOverlayRowPtr row;
- int nKeys;
-#endif
{
return _XkbAllocOverlayKeys(row,nKeys);
}
Status
-#if NeedFunctionPrototypes
XkbAllocGeomDoodads(XkbGeometryPtr geom,int nDoodads)
-#else
-XkbAllocGeomDoodads(geom,nDoodads)
- XkbGeometryPtr geom;
- int nDoodads;
-#endif
{
return _XkbAllocDoodads(geom,nDoodads);
}
Status
-#if NeedFunctionPrototypes
XkbAllocGeomSectionDoodads(XkbSectionPtr section,int nDoodads)
-#else
-XkbAllocGeomSectionDoodads(section,nDoodads)
- XkbSectionPtr section;
- int nDoodads;
-#endif
{
return _XkbAllocDoodads(section,nDoodads);
}
Status
-#if NeedFunctionPrototypes
XkbAllocGeomOutlines(XkbShapePtr shape,int nOL)
-#else
-XkbAllocGeomOutlines(shape,nOL)
- XkbShapePtr shape;
- int nOL;
-#endif
{
return _XkbAllocOutlines(shape,nOL);
}
Status
-#if NeedFunctionPrototypes
XkbAllocGeomRows(XkbSectionPtr section,int nRows)
-#else
-XkbAllocGeomRows(section,nRows)
- XkbSectionPtr section;
- int nRows;
-#endif
{
return _XkbAllocRows(section,nRows);
}
Status
-#if NeedFunctionPrototypes
XkbAllocGeomPoints(XkbOutlinePtr ol,int nPts)
-#else
-XkbAllocGeomPoints(ol,nPts)
- XkbOutlinePtr ol;
- int nPts;
-#endif
{
return _XkbAllocPoints(ol,nPts);
}
Status
-#if NeedFunctionPrototypes
XkbAllocGeomKeys(XkbRowPtr row,int nKeys)
-#else
-XkbAllocGeomKeys(row,nKeys)
- XkbRowPtr row;
- int nKeys;
-#endif
{
return _XkbAllocKeys(row,nKeys);
}
Status
-#if NeedFunctionPrototypes
XkbAllocGeometry(XkbDescPtr xkb,XkbGeometrySizesPtr sizes)
-#else
-XkbAllocGeometry(xkb,sizes)
- XkbDescPtr xkb;
- XkbGeometrySizesPtr sizes;
-#endif
{
XkbGeometryPtr geom;
Status rtrn;
@@ -951,14 +672,7 @@ BAIL:
/***====================================================================***/
XkbPropertyPtr
-#if NeedFunctionPrototypes
XkbAddGeomProperty(XkbGeometryPtr geom,char *name,char *value)
-#else
-XkbAddGeomProperty(geom,name,value)
- XkbGeometryPtr geom;
- char * name;
- char * value;
-#endif
{
register int i;
register XkbPropertyPtr prop;
@@ -996,14 +710,7 @@ register XkbPropertyPtr prop;
}
XkbKeyAliasPtr
-#if NeedFunctionPrototypes
XkbAddGeomKeyAlias(XkbGeometryPtr geom,char *aliasStr,char *realStr)
-#else
-XkbAddGeomKeyAlias(geom,aliasStr,realStr)
- XkbGeometryPtr geom;
- char * aliasStr;
- char * realStr;
-#endif
{
register int i;
register XkbKeyAliasPtr alias;
@@ -1030,14 +737,7 @@ register XkbKeyAliasPtr alias;
}
XkbColorPtr
-#if NeedFunctionPrototypes
XkbAddGeomColor(XkbGeometryPtr geom,char *spec,unsigned int pixel)
-#else
-XkbAddGeomColor(geom,spec,pixel)
- XkbGeometryPtr geom;
- char * spec;
- unsigned int pixel;
-#endif
{
register int i;
register XkbColorPtr color;
@@ -1065,13 +765,7 @@ register XkbColorPtr color;
}
XkbOutlinePtr
-#if NeedFunctionPrototypes
XkbAddGeomOutline(XkbShapePtr shape,int sz_points)
-#else
-XkbAddGeomOutline(shape,sz_points)
- XkbShapePtr shape;
- int sz_points;
-#endif
{
XkbOutlinePtr outline;
@@ -1090,14 +784,7 @@ XkbOutlinePtr outline;
}
XkbShapePtr
-#if NeedFunctionPrototypes
XkbAddGeomShape(XkbGeometryPtr geom,Atom name,int sz_outlines)
-#else
-XkbAddGeomShape(geom,name,sz_outlines)
- XkbGeometryPtr geom;
- Atom name;
- int sz_outlines;
-#endif
{
XkbShapePtr shape;
register int i;
@@ -1124,12 +811,7 @@ register int i;
}
XkbKeyPtr
-#if NeedFunctionPrototypes
XkbAddGeomKey(XkbRowPtr row)
-#else
-XkbAddGeomKey(row)
- XkbRowPtr row;
-#endif
{
XkbKeyPtr key;
if (!row)
@@ -1142,13 +824,7 @@ XkbKeyPtr key;
}
XkbRowPtr
-#if NeedFunctionPrototypes
XkbAddGeomRow(XkbSectionPtr section,int sz_keys)
-#else
-XkbAddGeomRow(section,sz_keys)
- XkbSectionPtr section;
- int sz_keys;
-#endif
{
XkbRowPtr row;
@@ -1166,20 +842,11 @@ XkbRowPtr row;
}
XkbSectionPtr
-#if NeedFunctionPrototypes
XkbAddGeomSection( XkbGeometryPtr geom,
Atom name,
int sz_rows,
int sz_doodads,
int sz_over)
-#else
-XkbAddGeomSection(geom,name,sz_rows,sz_doodads,sz_over)
- XkbGeometryPtr geom;
- Atom name;
- int sz_rows;
- int sz_doodads;
- int sz_over;
-#endif
{
register int i;
XkbSectionPtr section;
@@ -1215,14 +882,7 @@ XkbSectionPtr section;
}
XkbDoodadPtr
-#if NeedFunctionPrototypes
XkbAddGeomDoodad(XkbGeometryPtr geom,XkbSectionPtr section,Atom name)
-#else
-XkbAddGeomDoodad(geom,section,name)
- XkbGeometryPtr geom;
- XkbSectionPtr section;
- Atom name;
-#endif
{
XkbDoodadPtr old,doodad;
register int i,nDoodads;
@@ -1260,18 +920,10 @@ register int i,nDoodads;
}
XkbOverlayKeyPtr
-#if NeedFunctionPrototypes
XkbAddGeomOverlayKey( XkbOverlayPtr overlay,
XkbOverlayRowPtr row,
char * over,
char * under)
-#else
-XkbAddGeomOverlayKey(overlay,row,over,under)
- XkbOverlayPtr overlay;
- XkbOverlayRowPtr row;
- char * over;
- char * under;
-#endif
{
register int i;
XkbOverlayKeyPtr key;
@@ -1303,14 +955,7 @@ Bool found;
}
XkbOverlayRowPtr
-#if NeedFunctionPrototypes
XkbAddGeomOverlayRow(XkbOverlayPtr overlay,int row_under,int sz_keys)
-#else
-XkbAddGeomOverlayRow(overlay,row_under,sz_keys)
- XkbOverlayPtr overlay;
- int row_under;
- int sz_keys;
-#endif
{
register int i;
XkbOverlayRowPtr row;
@@ -1342,14 +987,7 @@ XkbOverlayRowPtr row;
}
XkbOverlayPtr
-#if NeedFunctionPrototypes
XkbAddGeomOverlay(XkbSectionPtr section,Atom name,int sz_rows)
-#else
-XkbAddGeomOverlay(section,name,sz_rows)
- XkbSectionPtr section;
- Atom name;
- int sz_rows;
-#endif
{
register int i;
XkbOverlayPtr overlay;
diff --git a/src/xkb/XKBGeom.c b/src/xkb/XKBGeom.c
index 5cdd6b99..f41823f5 100644
--- a/src/xkb/XKBGeom.c
+++ b/src/xkb/XKBGeom.c
@@ -24,6 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
+/* $XFree86: xc/lib/X11/XKBGeom.c,v 1.5 2003/04/13 19:22:18 dawes Exp $ */
#ifdef DEBUG
#include <stdio.h>
@@ -31,10 +32,11 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#define NEED_EVENTS
#define NEED_REPLIES
+#define NEED_MAP_READERS
#include "Xlibint.h"
-#include "XKBlibint.h"
#include <X11/extensions/XKBgeom.h>
#include <X11/extensions/XKBproto.h>
+#include "XKBlibint.h"
#ifndef MINSHORT
#define MINSHORT -32768
@@ -46,13 +48,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
/***====================================================================***/
static void
-#if NeedFunctionPrototypes
_XkbCheckBounds(XkbBoundsPtr bounds,int x,int y)
-#else
-_XkbCheckBounds(bounds,x,y)
- XkbBoundsPtr bounds;
- int x,y;
-#endif
{
if (x<bounds->x1) bounds->x1= x;
if (x>bounds->x2) bounds->x2= x;
@@ -62,12 +58,7 @@ _XkbCheckBounds(bounds,x,y)
}
Bool
-#if NeedFunctionPrototypes
XkbComputeShapeBounds(XkbShapePtr shape)
-#else
-XkbComputeShapeBounds(shape)
- XkbShapePtr shape;
-#endif
{
register int o,p;
XkbOutlinePtr outline;
@@ -86,13 +77,7 @@ XkbPointPtr pt;
}
Bool
-#if NeedFunctionPrototypes
XkbComputeShapeTop(XkbShapePtr shape,XkbBoundsPtr bounds)
-#else
-XkbComputeShapeTop(shape,bounds)
- XkbShapePtr shape;
- XkbBoundsPtr bounds;
-#endif
{
register int p;
XkbOutlinePtr outline;
@@ -117,14 +102,7 @@ XkbPointPtr pt;
}
Bool
-#if NeedFunctionPrototypes
XkbComputeRowBounds(XkbGeometryPtr geom,XkbSectionPtr section,XkbRowPtr row)
-#else
-XkbComputeRowBounds(geom,section,row)
- XkbGeometryPtr geom;
- XkbSectionPtr section;
- XkbRowPtr row;
-#endif
{
register int k,pos;
XkbKeyPtr key;
@@ -161,19 +139,13 @@ XkbBoundsPtr bounds,sbounds;
}
Bool
-#if NeedFunctionPrototypes
XkbComputeSectionBounds(XkbGeometryPtr geom,XkbSectionPtr section)
-#else
-XkbComputeSectionBounds(geom,section)
- XkbGeometryPtr geom;
- XkbSectionPtr section;
-#endif
{
register int i;
XkbShapePtr shape;
XkbRowPtr row;
XkbDoodadPtr doodad;
-XkbBoundsPtr bounds,rbounds;
+XkbBoundsPtr bounds,rbounds=NULL;
if ((!geom)||(!section))
return False;
@@ -223,14 +195,7 @@ XkbBoundsPtr bounds,rbounds;
/***====================================================================***/
char *
-#if NeedFunctionPrototypes
XkbFindOverlayForKey(XkbGeometryPtr geom,XkbSectionPtr wanted,char *under)
-#else
-XkbFindOverlayForKey(geom,wanted,under)
- XkbGeometryPtr geom;
- XkbSectionPtr wanted;
- char * under;
-#endif
{
int s;
XkbSectionPtr section;
@@ -270,16 +235,9 @@ XkbSectionPtr section;
/***====================================================================***/
static Status
-#if NeedFunctionPrototypes
_XkbReadGeomProperties( XkbReadBufferPtr buf,
XkbGeometryPtr geom,
xkbGetGeometryReply * rep)
-#else
-_XkbReadGeomProperties(buf,geom,rep)
- XkbReadBufferPtr buf;
- XkbGeometryPtr geom;
- xkbGetGeometryReply * rep;
-#endif
{
Status rtrn;
@@ -302,16 +260,9 @@ Status rtrn;
}
static Status
-#if NeedFunctionPrototypes
_XkbReadGeomKeyAliases( XkbReadBufferPtr buf,
XkbGeometryPtr geom,
xkbGetGeometryReply * rep)
-#else
-_XkbReadGeomKeyAliases(buf,geom,rep)
- XkbReadBufferPtr buf;
- XkbGeometryPtr geom;
- xkbGetGeometryReply * rep;
-#endif
{
Status rtrn;
@@ -331,16 +282,9 @@ Status rtrn;
}
static Status
-#if NeedFunctionPrototypes
_XkbReadGeomColors( XkbReadBufferPtr buf,
XkbGeometryPtr geom,
xkbGetGeometryReply * rep)
-#else
-_XkbReadGeomColors(buf,geom,rep)
- XkbReadBufferPtr buf;
- XkbGeometryPtr geom;
- xkbGetGeometryReply * rep;
-#endif
{
Status rtrn;
@@ -361,16 +305,9 @@ Status rtrn;
}
static Status
-#if NeedFunctionPrototypes
_XkbReadGeomShapes( XkbReadBufferPtr buf,
XkbGeometryPtr geom,
xkbGetGeometryReply * rep)
-#else
-_XkbReadGeomShapes(buf,geom,rep)
- XkbReadBufferPtr buf;
- XkbGeometryPtr geom;
- xkbGetGeometryReply * rep;
-#endif
{
register int i;
Status rtrn;
@@ -426,16 +363,9 @@ Status rtrn;
}
static Status
-#if NeedFunctionPrototypes
_XkbReadGeomDoodad( XkbReadBufferPtr buf,
XkbGeometryPtr geom,
XkbSectionPtr section)
-#else
-_XkbReadGeomDoodad(buf,geom,section)
- XkbReadBufferPtr buf;
- XkbGeometryPtr geom;
- XkbSectionPtr section;
-#endif
{
XkbDoodadPtr doodad;
xkbDoodadWireDesc * doodadWire;
@@ -485,16 +415,9 @@ xkbDoodadWireDesc * doodadWire;
}
static Status
-#if NeedFunctionPrototypes
_XkbReadGeomOverlay( XkbReadBufferPtr buf,
XkbGeometryPtr geom,
XkbSectionPtr section)
-#else
-_XkbReadGeomOverlay(buf,geom,section)
- XkbReadBufferPtr buf;
- XkbGeometryPtr geom;
- XkbSectionPtr section;
-#endif
{
XkbOverlayPtr ol;
xkbOverlayWireDesc * olWire;
@@ -538,16 +461,9 @@ register int r;
}
static Status
-#if NeedFunctionPrototypes
_XkbReadGeomSections( XkbReadBufferPtr buf,
XkbGeometryPtr geom,
xkbGetGeometryReply * rep)
-#else
-_XkbReadGeomSections(buf,geom,rep)
- XkbReadBufferPtr buf;
- XkbGeometryPtr geom;
- xkbGetGeometryReply * rep;
-#endif
{
register int s;
XkbSectionPtr section;
@@ -628,16 +544,9 @@ Status rtrn;
}
static Status
-#if NeedFunctionPrototypes
_XkbReadGeomDoodads( XkbReadBufferPtr buf,
XkbGeometryPtr geom,
xkbGetGeometryReply * rep)
-#else
-_XkbReadGeomDoodads(buf,geom,rep)
- XkbReadBufferPtr buf;
- XkbGeometryPtr geom;
- xkbGetGeometryReply * rep;
-#endif
{
register int d;
Status rtrn;
@@ -654,18 +563,10 @@ Status rtrn;
}
Status
-#if NeedFunctionPrototypes
_XkbReadGetGeometryReply( Display * dpy,
xkbGetGeometryReply * rep,
XkbDescPtr xkb,
int * nread_rtrn)
-#else
-_XkbReadGetGeometryReply(dpy,rep,xkb,nread_rtrn)
- Display * dpy;
- xkbGetGeometryReply * rep;
- XkbDescPtr xkb;
- int * nread_rtrn;
-#endif
{
XkbGeometryPtr geom;
@@ -721,13 +622,7 @@ XkbGeometryPtr geom;
}
Status
-#if NeedFunctionPrototypes
XkbGetGeometry(Display *dpy,XkbDescPtr xkb)
-#else
-XkbGetGeometry(dpy,xkb)
- Display * dpy;
- XkbDescPtr xkb;
-#endif
{
xkbGetGeometryReq *req;
xkbGetGeometryReply rep;
@@ -749,14 +644,7 @@ xkbGetGeometryReply rep;
}
Status
-#if NeedFunctionPrototypes
XkbGetNamedGeometry(Display *dpy,XkbDescPtr xkb,Atom name)
-#else
-XkbGetNamedGeometry(dpy,xkb,name)
- Display * dpy;
- XkbDescPtr xkb;
- Atom name;
-#endif
{
xkbGetGeometryReq *req;
xkbGetGeometryReply rep;
diff --git a/src/xkb/XKBGetByName.c b/src/xkb/XKBGetByName.c
index 411be961..70258ce0 100644
--- a/src/xkb/XKBGetByName.c
+++ b/src/xkb/XKBGetByName.c
@@ -24,6 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
+/* $XFree86$ */
#define NEED_REPLIES
#define NEED_EVENTS
@@ -35,22 +36,12 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
/***====================================================================***/
XkbDescPtr
-#if NeedFunctionPrototypes
XkbGetKeyboardByName( Display * dpy,
unsigned deviceSpec,
XkbComponentNamesPtr names,
unsigned want,
unsigned need,
Bool load)
-#else
-XkbGetKeyboardByName(dpy,deviceSpec,names,want,need,load)
- Display * dpy;
- unsigned deviceSpec;
- XkbComponentNamesPtr names;
- unsigned want;
- unsigned need;
- Bool load;
-#endif
{
register xkbGetKbdByNameReq * req;
xkbGetKbdByNameReply rep;
@@ -218,14 +209,7 @@ BAILOUT:
}
XkbDescPtr
-#if NeedFunctionPrototypes
XkbGetKeyboard(Display *dpy,unsigned which,unsigned deviceSpec)
-#else
-XkbGetKeyboard(dpy,which,deviceSpec)
- Display * dpy;
- unsigned which;
- unsigned deviceSpec;
-#endif
{
return XkbGetKeyboardByName(dpy,deviceSpec,NULL,which,which,False);
}
diff --git a/src/xkb/XKBGetMap.c b/src/xkb/XKBGetMap.c
index 8975ba39..71fc7f48 100644
--- a/src/xkb/XKBGetMap.c
+++ b/src/xkb/XKBGetMap.c
@@ -25,6 +25,8 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
+/* $XFree86: xc/lib/X11/XKBGetMap.c,v 1.9 2003/04/17 02:06:31 dawes Exp $ */
+
#define NEED_REPLIES
#define NEED_EVENTS
#define NEED_MAP_READERS
@@ -33,14 +35,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include "XKBlibint.h"
static Status
-#if NeedFunctionPrototypes
_XkbReadKeyTypes(XkbReadBufferPtr buf,XkbDescPtr xkb,xkbGetMapReply *rep)
-#else
-_XkbReadKeyTypes(buf,xkb,rep)
- XkbReadBufferPtr buf;
- XkbDescPtr xkb;
- xkbGetMapReply * rep;
-#endif
{
int i,n,lastMapCount;
XkbKeyTypePtr type;
@@ -150,14 +145,7 @@ XkbKeyTypePtr type;
}
static Status
-#if NeedFunctionPrototypes
_XkbReadKeySyms(XkbReadBufferPtr buf,XkbDescPtr xkb,xkbGetMapReply *rep)
-#else
-_XkbReadKeySyms(buf,xkb,rep)
- XkbReadBufferPtr buf;
- XkbDescPtr xkb;
- xkbGetMapReply * rep;
-#endif
{
register int i;
XkbClientMapPtr map;
@@ -252,14 +240,7 @@ XkbClientMapPtr map;
}
static Status
-#if NeedFunctionPrototypes
_XkbReadKeyActions(XkbReadBufferPtr buf,XkbDescPtr info,xkbGetMapReply *rep)
-#else
-_XkbReadKeyActions(buf,info,rep)
- XkbReadBufferPtr buf;
- XkbDescPtr info;
- xkbGetMapReply * rep;
-#endif
{
int i;
CARD8 numDescBuf[248];
@@ -311,14 +292,7 @@ done:
}
static Status
-#if NeedFunctionPrototypes
_XkbReadKeyBehaviors(XkbReadBufferPtr buf,XkbDescPtr xkb,xkbGetMapReply *rep)
-#else
-_XkbReadKeyBehaviors(buf,xkb,rep)
- XkbReadBufferPtr buf;
- XkbDescPtr xkb;
- xkbGetMapReply * rep;
-#endif
{
register int i;
xkbBehaviorWireDesc *wire;
@@ -347,14 +321,7 @@ xkbBehaviorWireDesc *wire;
}
static Status
-#if NeedFunctionPrototypes
_XkbReadVirtualMods(XkbReadBufferPtr buf,XkbDescPtr xkb,xkbGetMapReply *rep)
-#else
-_XkbReadVirtualMods(buf,xkb,rep)
- XkbReadBufferPtr buf;
- XkbDescPtr xkb;
- xkbGetMapReply * rep;
-#endif
{
if ( rep->virtualMods ) {
register int i,bit,nVMods;
@@ -378,16 +345,9 @@ _XkbReadVirtualMods(buf,xkb,rep)
}
static Status
-#if NeedFunctionPrototypes
_XkbReadExplicitComponents( XkbReadBufferPtr buf,
XkbDescPtr xkb,
xkbGetMapReply * rep)
-#else
-_XkbReadExplicitComponents(buf,xkb,rep)
- XkbReadBufferPtr buf;
- XkbDescPtr xkb;
- xkbGetMapReply * rep;
-#endif
{
register int i;
unsigned char *wire;
@@ -415,14 +375,7 @@ unsigned char *wire;
}
static Status
-#if NeedFunctionPrototypes
_XkbReadModifierMap(XkbReadBufferPtr buf,XkbDescPtr xkb,xkbGetMapReply *rep)
-#else
-_XkbReadModifierMap(buf,xkb,rep)
- XkbReadBufferPtr buf;
- XkbDescPtr xkb;
- xkbGetMapReply * rep;
-#endif
{
register int i;
unsigned char *wire;
@@ -447,14 +400,7 @@ unsigned char *wire;
}
static Status
-#if NeedFunctionPrototypes
_XkbReadVirtualModMap(XkbReadBufferPtr buf,XkbDescPtr xkb,xkbGetMapReply *rep)
-#else
-_XkbReadVirtualModMap(buf,xkb,rep)
- XkbReadBufferPtr buf;
- XkbDescPtr xkb;
- xkbGetMapReply * rep;
-#endif
{
register int i;
xkbVModMapWireDesc * wire;
@@ -467,8 +413,10 @@ XkbServerMapPtr srv;
}
else {
srv= xkb->server;
- bzero((char *)&srv->vmodmap[rep->firstVModMapKey],
- rep->nVModMapKeys*sizeof(unsigned short));
+ if (rep->nVModMapKeys > rep->firstVModMapKey)
+ bzero((char *)&srv->vmodmap[rep->firstVModMapKey],
+ (rep->nVModMapKeys - rep->firstVModMapKey) *
+ sizeof(unsigned short));
}
srv= xkb->server;
i= rep->totalVModMapKeys*SIZEOF(xkbVModMapWireDesc);
@@ -484,13 +432,7 @@ XkbServerMapPtr srv;
}
static xkbGetMapReq *
-#if NeedFunctionPrototypes
_XkbGetGetMapReq(Display *dpy,XkbDescPtr xkb)
-#else
-_XkbGetGetMapReq(dpy,xkb)
- Display * dpy;
- XkbDescPtr xkb;
-#endif
{
xkbGetMapReq *req;
@@ -511,18 +453,10 @@ xkbGetMapReq *req;
}
Status
-#if NeedFunctionPrototypes
_XkbReadGetMapReply( Display * dpy,
xkbGetMapReply *rep,
XkbDescPtr xkb,
int * nread_rtrn)
-#else
-_XkbReadGetMapReply(dpy,rep,xkb,nread_rtrn)
- Display * dpy;
- xkbGetMapReply * rep;
- XkbDescPtr xkb;
- int * nread_rtrn;
-#endif
{
int extraData;
unsigned mask;
@@ -577,13 +511,7 @@ unsigned mask;
}
static Status
-#if NeedFunctionPrototypes
_XkbHandleGetMapReply(Display *dpy,XkbDescPtr xkb)
-#else
-_XkbHandleGetMapReply(dpy,xkb)
- Display * dpy;
- XkbDescPtr xkb;
-#endif
{
xkbGetMapReply rep;
@@ -596,14 +524,7 @@ xkbGetMapReply rep;
}
Status
-#if NeedFunctionPrototypes
XkbGetUpdatedMap(Display *dpy,unsigned which,XkbDescPtr xkb)
-#else
-XkbGetUpdatedMap(dpy,which,xkb)
- Display * dpy;
- unsigned which;
- XkbDescPtr xkb;
-#endif
{
if ((dpy->flags & XlibDisplayNoXkb) ||
(!dpy->xkb_info && !XkbUseExtension(dpy,NULL,NULL)))
@@ -626,14 +547,7 @@ XkbGetUpdatedMap(dpy,which,xkb)
}
XkbDescPtr
-#if NeedFunctionPrototypes
XkbGetMap(Display *dpy,unsigned which,unsigned deviceSpec)
-#else
-XkbGetMap(dpy,which,deviceSpec)
- Display *dpy;
- unsigned which;
- unsigned deviceSpec;
-#endif
{
XkbDescPtr xkb;
@@ -656,15 +570,7 @@ XkbDescPtr xkb;
}
Status
-#if NeedFunctionPrototypes
XkbGetKeyTypes(Display *dpy,unsigned first,unsigned num,XkbDescPtr xkb)
-#else
-XkbGetKeyTypes(dpy,first,num,xkb)
- Display *dpy;
- unsigned first;
- unsigned num;
- XkbDescPtr xkb;
-#endif
{
register xkbGetMapReq *req;
Status status;
@@ -688,15 +594,7 @@ XkbGetKeyTypes(dpy,first,num,xkb)
}
Status
-#if NeedFunctionPrototypes
XkbGetKeyActions(Display *dpy,unsigned first,unsigned num,XkbDescPtr xkb)
-#else
-XkbGetKeyActions(dpy,first,num,xkb)
- Display *dpy;
- unsigned first;
- unsigned num;
- XkbDescPtr xkb;
-#endif
{
register xkbGetMapReq *req;
Status status;
@@ -721,15 +619,7 @@ XkbGetKeyActions(dpy,first,num,xkb)
}
Status
-#if NeedFunctionPrototypes
XkbGetKeySyms(Display *dpy,unsigned first,unsigned num,XkbDescPtr xkb)
-#else
-XkbGetKeySyms(dpy,first,num,xkb)
- Display *dpy;
- unsigned first;
- unsigned num;
- XkbDescPtr xkb;
-#endif
{
register xkbGetMapReq *req;
Status status;
@@ -755,15 +645,7 @@ XkbGetKeySyms(dpy,first,num,xkb)
}
Status
-#if NeedFunctionPrototypes
XkbGetKeyBehaviors(Display *dpy,unsigned first,unsigned num,XkbDescPtr xkb)
-#else
-XkbGetKeyBehaviors(dpy,first,num,xkb)
- Display * dpy;
- unsigned first;
- unsigned num;
- XkbDescPtr xkb;
-#endif
{
register xkbGetMapReq *req;
Status status;
@@ -788,14 +670,7 @@ XkbGetKeyBehaviors(dpy,first,num,xkb)
}
Status
-#if NeedFunctionPrototypes
XkbGetVirtualMods(Display *dpy,unsigned which,XkbDescPtr xkb)
-#else
-XkbGetVirtualMods(dpy,which,xkb)
- Display * dpy;
- unsigned which;
- XkbDescPtr xkb;
-#endif
{
register xkbGetMapReq *req;
Status status;
@@ -816,18 +691,10 @@ XkbGetVirtualMods(dpy,which,xkb)
}
Status
-#if NeedFunctionPrototypes
XkbGetKeyExplicitComponents( Display * dpy,
unsigned first,
unsigned num,
XkbDescPtr xkb)
-#else
-XkbGetKeyExplicitComponents(dpy,first,num,xkb)
- Display *dpy;
- unsigned first;
- unsigned num;
- XkbDescPtr xkb;
-#endif
{
register xkbGetMapReq *req;
Status status;
@@ -856,15 +723,7 @@ XkbGetKeyExplicitComponents(dpy,first,num,xkb)
}
Status
-#if NeedFunctionPrototypes
XkbGetKeyModifierMap(Display *dpy,unsigned first,unsigned num,XkbDescPtr xkb)
-#else
-XkbGetKeyModifierMap(dpy,first,num,xkb)
- Display * dpy;
- unsigned first;
- unsigned num;
- XkbDescPtr xkb;
-#endif
{
register xkbGetMapReq *req;
Status status;
@@ -893,15 +752,7 @@ XkbGetKeyModifierMap(dpy,first,num,xkb)
}
Status
-#if NeedFunctionPrototypes
XkbGetKeyVirtualModMap(Display *dpy,unsigned first,unsigned num,XkbDescPtr xkb)
-#else
-XkbGetKeyVirtualModMap(dpy,first,num,xkb)
- Display *dpy;
- unsigned first;
- unsigned num;
- XkbDescPtr xkb;
-#endif
{
register xkbGetMapReq *req;
Status status;
@@ -930,14 +781,7 @@ XkbGetKeyVirtualModMap(dpy,first,num,xkb)
}
Status
-#if NeedFunctionPrototypes
XkbGetMapChanges(Display *dpy,XkbDescPtr xkb,XkbMapChangesPtr changes)
-#else
-XkbGetMapChanges(dpy,xkb,changes)
- Display * dpy;
- XkbDescPtr xkb;
- XkbMapChangesPtr changes;
-#endif
{
xkbGetMapReq *req;
@@ -970,6 +814,7 @@ XkbGetMapChanges(dpy,xkb,changes)
UnlockDisplay(dpy);
return status;
}
+ UnlockDisplay(dpy);
return Success;
}
diff --git a/src/xkb/XKBList.c b/src/xkb/XKBList.c
index 9f521a60..e72ced96 100644
--- a/src/xkb/XKBList.c
+++ b/src/xkb/XKBList.c
@@ -24,6 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
+/* $XFree86$ */
#define NEED_REPLIES
#define NEED_EVENTS
@@ -35,13 +36,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
/***====================================================================***/
static void
-#if NeedFunctionPrototypes
_FreeComponentNames(int num,XkbComponentNamePtr names)
-#else
-_FreeComponentNames(num,names)
- int num;
- XkbComponentNamePtr names;
-#endif
{
int i;
XkbComponentNamePtr tmp;
@@ -61,14 +56,7 @@ XkbComponentNamePtr tmp;
/***====================================================================***/
static XkbComponentNamePtr
-#if NeedFunctionPrototypes
_ReadListing(XkbReadBufferPtr buf,int count,Status *status_rtrn)
-#else
-_ReadListing(buf,count,status_rtrn)
- XkbReadBufferPtr buf;
- int count;
- Status * status_rtrn;
-#endif
{
XkbComponentNamePtr first,this;
register int i;
@@ -104,18 +92,10 @@ BAILOUT:
/***====================================================================***/
XkbComponentListPtr
-#if NeedFunctionPrototypes
XkbListComponents( Display * dpy,
unsigned deviceSpec,
XkbComponentNamesPtr ptrns,
int * max_inout)
-#else
-XkbListComponents(dpy,deviceSpec,ptrns,max_inout)
- Display * dpy;
- unsigned deviceSpec;
- XkbComponentNamesPtr ptrns;
- int * max_inout;
-#endif
{
register xkbListComponentsReq* req;
xkbListComponentsReply rep;
@@ -246,12 +226,7 @@ BAILOUT:
}
void
-#if NeedFunctionPrototypes
XkbFreeComponentList(XkbComponentListPtr list)
-#else
-XkbFreeComponentList(list)
- XkbComponentListPtr list;
-#endif
{
if (list) {
if (list->keymaps)
diff --git a/src/xkb/XKBMAlloc.c b/src/xkb/XKBMAlloc.c
index ba2a7076..d1fd14f2 100644
--- a/src/xkb/XKBMAlloc.c
+++ b/src/xkb/XKBMAlloc.c
@@ -24,6 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
+/* $XFree86: xc/lib/X11/XKBMAlloc.c,v 3.11 2001/01/17 19:41:48 dawes Exp $ */
#ifndef XKB_IN_SERVER
@@ -53,14 +54,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
/***====================================================================***/
Status
-#if NeedFunctionPrototypes
XkbAllocClientMap(XkbDescPtr xkb,unsigned which,unsigned nTotalTypes)
-#else
-XkbAllocClientMap(xkb,which,nTotalTypes)
- XkbDescPtr xkb;
- unsigned which;
- unsigned nTotalTypes;
-#endif
{
register int i;
XkbClientMapPtr map;
@@ -143,14 +137,7 @@ fprintf(stderr,"bad keycode (%d,%d) in XkbAllocClientMap\n",
}
Status
-#if NeedFunctionPrototypes
XkbAllocServerMap(XkbDescPtr xkb,unsigned which,unsigned nNewActions)
-#else
-XkbAllocServerMap(xkb,which,nNewActions)
- XkbDescPtr xkb;
- unsigned which;
- unsigned nNewActions;
-#endif
{
register int i;
XkbServerMapPtr map;
@@ -244,13 +231,7 @@ XkbServerMapPtr map;
/***====================================================================***/
Status
-#if NeedFunctionPrototypes
XkbCopyKeyType(XkbKeyTypePtr from,XkbKeyTypePtr into)
-#else
-XkbCopyKeyType(from,into)
- XkbKeyTypePtr from;
- XkbKeyTypePtr into;
-#endif
{
if ((!from)||(!into))
return BadMatch;
@@ -291,14 +272,7 @@ XkbCopyKeyType(from,into)
}
Status
-#if NeedFunctionPrototypes
XkbCopyKeyTypes(XkbKeyTypePtr from,XkbKeyTypePtr into,int num_types)
-#else
-XkbCopyKeyTypes(from,into,num_types)
- XkbKeyTypePtr from;
- XkbKeyTypePtr into;
- int num_types;
-#endif
{
register int i,rtrn;
@@ -312,20 +286,11 @@ register int i,rtrn;
}
XkbKeyTypePtr
-#if NeedFunctionPrototypes
XkbAddKeyType( XkbDescPtr xkb,
Atom name,
int map_count,
Bool want_preserve,
int num_lvls)
-#else
-XkbAddKeyType(xkb,name,map_count,want_preserve,num_lvls)
- XkbDescPtr xkb;
- Atom name;
- int map_count;
- Bool want_preserve;
- int num_lvls;
-#endif
{
register int i;
unsigned tmp;
@@ -396,20 +361,11 @@ XkbClientMapPtr map;
}
Status
-#if NeedFunctionPrototypes
XkbResizeKeyType( XkbDescPtr xkb,
int type_ndx,
int map_count,
Bool want_preserve,
int new_num_lvls)
-#else
-XkbResizeKeyType(xkb,type_ndx,map_count,want_preserve,new_num_lvls)
- XkbDescPtr xkb;
- int type_ndx;
- int map_count;
- Bool want_preserve;
- int new_num_lvls;
-#endif
{
XkbKeyTypePtr type;
KeyCode matchingKeys[XkbMaxKeyCount],nMatchingKeys;
@@ -603,14 +559,7 @@ KeyCode matchingKeys[XkbMaxKeyCount],nMatchingKeys;
}
KeySym *
-#if NeedFunctionPrototypes
XkbResizeKeySyms(XkbDescPtr xkb,int key,int needed)
-#else
-XkbResizeKeySyms(xkb,key,needed)
- XkbDescPtr xkb;
- int key;
- int needed;
-#endif
{
register int i,nSyms,nKeySyms;
unsigned nOldSyms;
@@ -665,20 +614,11 @@ KeySym *newSyms;
}
static unsigned
-#if NeedFunctionPrototypes
_ExtendRange( unsigned int old_flags,
unsigned int flag,
KeyCode newKC,
KeyCode * old_min,
unsigned char * old_num)
-#else
-_ExtendRange(old_flags,flag,newKC,old_min,old_num)
- unsigned int old_flags;
- unsigned int flag;
- KeyCode newKC;
- KeyCode * old_min;
- unsigned char * old_num;
-#endif
{
if ((old_flags&flag)==0) {
old_flags|= flag;
@@ -699,18 +639,10 @@ _ExtendRange(old_flags,flag,newKC,old_min,old_num)
}
Status
-#if NeedFunctionPrototypes
XkbChangeKeycodeRange( XkbDescPtr xkb,
int minKC,
int maxKC,
XkbChangesPtr changes)
-#else
-XkbChangeKeycodeRange(xkb,minKC,maxKC,changes)
- XkbDescPtr xkb;
- int minKC;
- int maxKC;
- XkbChangesPtr changes;
-#endif
{
int tmp;
@@ -907,14 +839,7 @@ int tmp;
}
XkbAction *
-#if NeedFunctionPrototypes
XkbResizeKeyActions(XkbDescPtr xkb,int key,int needed)
-#else
-XkbResizeKeyActions(xkb,key,needed)
- XkbDescPtr xkb;
- int key;
- int needed;
-#endif
{
register int i,nActs;
XkbAction *newActs;
@@ -964,14 +889,7 @@ XkbAction *newActs;
}
void
-#if NeedFunctionPrototypes
XkbFreeClientMap(XkbDescPtr xkb,unsigned what,Bool freeMap)
-#else
-XkbFreeClientMap(xkb,what,freeMap)
- XkbDescPtr xkb;
- unsigned what;
- Bool freeMap;
-#endif
{
XkbClientMapPtr map;
@@ -1029,14 +947,7 @@ XkbClientMapPtr map;
}
void
-#if NeedFunctionPrototypes
XkbFreeServerMap(XkbDescPtr xkb,unsigned what,Bool freeMap)
-#else
-XkbFreeServerMap(xkb,what,freeMap)
- XkbDescPtr xkb;
- unsigned what;
- Bool freeMap;
-#endif
{
XkbServerMapPtr map;
diff --git a/src/xkb/XKBMisc.c b/src/xkb/XKBMisc.c
index 45c00692..afc0dbeb 100644
--- a/src/xkb/XKBMisc.c
+++ b/src/xkb/XKBMisc.c
@@ -24,6 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
+/* $XFree86: xc/lib/X11/XKBMisc.c,v 3.5 2001/10/28 03:32:33 tsi Exp $ */
#ifndef XKB_IN_SERVER
@@ -54,12 +55,12 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#define mapSize(m) (sizeof(m)/sizeof(XkbKTMapEntryRec))
static XkbKTMapEntryRec map2Level[]= {
- { True, ShiftMask, 1, ShiftMask, 0 }
+ { True, ShiftMask, {1, ShiftMask, 0} }
};
static XkbKTMapEntryRec mapAlpha[]= {
- { True, ShiftMask, 1, ShiftMask, 0 },
- { True, LockMask, 0, LockMask, 0 }
+ { True, ShiftMask, { 1, ShiftMask, 0 } },
+ { True, LockMask, { 0, LockMask, 0 } }
};
static XkbModsRec preAlpha[]= {
@@ -69,8 +70,8 @@ static XkbModsRec preAlpha[]= {
#define NL_VMOD_MASK 0
static XkbKTMapEntryRec mapKeypad[]= {
- { True, ShiftMask, 1, ShiftMask, 0 },
- { False, 0, 1, 0, NL_VMOD_MASK }
+ { True, ShiftMask, { 1, ShiftMask, 0 } },
+ { False, 0, { 1, 0, NL_VMOD_MASK } }
};
static XkbKeyTypeRec canonicalTypes[XkbNumRequiredTypes] = {
@@ -101,14 +102,7 @@ static XkbKeyTypeRec canonicalTypes[XkbNumRequiredTypes] = {
};
Status
-#if NeedFunctionPrototypes
XkbInitCanonicalKeyTypes(XkbDescPtr xkb,unsigned which,int keypadVMod)
-#else
-XkbInitCanonicalKeyTypes(xkb,which,keypadVMod)
- XkbDescPtr xkb;
- unsigned which;
- int keypadVMod;
-#endif
{
XkbClientMapPtr map;
XkbKeyTypePtr from,to;
@@ -158,23 +152,12 @@ Status rtrn;
#define XKB_OFFSET(g,l) (((g)*groupsWidth)+(l))
int
-#if NeedFunctionPrototypes
XkbKeyTypesForCoreSymbols( XkbDescPtr xkb,
int map_width,
KeySym * core_syms,
unsigned int protected,
int * types_inout,
KeySym * xkb_syms_rtrn)
-#else
-XkbKeyTypesForCoreSymbols(xkb,map_width,core_syms,protected,types_inout,
- xkb_syms_rtrn)
- XkbDescPtr xkb;
- int map_width;
- KeySym * core_syms;
- unsigned int protected;
- int * types_inout;
- KeySym * xkb_syms_rtrn;
-#endif
{
register int i;
unsigned int empty;
@@ -339,18 +322,10 @@ int nGroups,tmp,groupsWidth;
}
static XkbSymInterpretPtr
-#if NeedFunctionPrototypes
_XkbFindMatchingInterp( XkbDescPtr xkb,
KeySym sym,
unsigned int real_mods,
unsigned int level)
-#else
-_XkbFindMatchingInterp(xkb,sym,real_mods,level)
- XkbDescPtr xkb;
- KeySym sym;
- unsigned int real_mods;
- unsigned int level;
-#endif
{
register unsigned i;
XkbSymInterpretPtr interp,rtrn;
@@ -398,14 +373,7 @@ CARD8 mods;
}
static void
-#if NeedFunctionPrototypes
_XkbAddKeyChange(KeyCode *pFirst,unsigned char *pNum,KeyCode newKey)
-#else
-_XkbAddKeyChange(pFirst,pNum,newKey)
- KeyCode * pFirst;
- unsigned char * pNum;
- KeyCode newKey;
-#endif
{
KeyCode last;
@@ -421,14 +389,7 @@ KeyCode last;
}
static void
-#if NeedFunctionPrototypes
_XkbSetActionKeyMods(XkbDescPtr xkb,XkbAction *act,unsigned mods)
-#else
-_XkbSetActionKeyMods(xkb,act,mods)
- XkbDescPtr xkb;
- XkbAction * act;
- unsigned mods;
-#endif
{
unsigned tmp;
@@ -456,14 +417,7 @@ unsigned tmp;
#define IBUF_SIZE 8
Bool
-#if NeedFunctionPrototypes
XkbApplyCompatMapToKey(XkbDescPtr xkb,KeyCode key,XkbChangesPtr changes)
-#else
-XkbApplyCompatMapToKey(xkb,key,changes)
- XkbDescPtr xkb;
- KeyCode key;
- XkbChangesPtr changes;
-#endif
{
KeySym * syms;
unsigned char explicit,mods;
@@ -564,7 +518,7 @@ unsigned changed,tmp;
if (((explicit&XkbExplicitAutoRepeatMask)==0)&&(xkb->ctrls)) {
CARD8 old;
old= xkb->ctrls->per_key_repeat[key/8];
-#if RETURN_SHOULD_REPEAT
+#ifdef RETURN_SHOULD_REPEAT
if (*XkbKeySymsPtr(xkb,key) != XK_Return)
#endif
xkb->ctrls->per_key_repeat[key/8]|= (1<<(key%8));
@@ -612,22 +566,12 @@ unsigned changed,tmp;
}
Bool
-#if NeedFunctionPrototypes
XkbUpdateMapFromCore( XkbDescPtr xkb,
KeyCode first_key,
int num_keys,
int map_width,
KeySym * core_keysyms,
XkbChangesPtr changes)
-#else
-XkbUpdateMapFromCore(xkb,first_key,num_keys,map_width,core_keysyms,changes)
- XkbDescPtr xkb;
- KeyCode first_key;
- int num_keys;
- int map_width;
- KeySym * core_keysyms;
- XkbChangesPtr changes;
-#endif
{
register int key,last_key;
KeySym * syms;
@@ -704,22 +648,12 @@ KeySym * syms;
}
Status
-#if NeedFunctionPrototypes
XkbChangeTypesOfKey( XkbDescPtr xkb,
int key,
int nGroups,
unsigned groups,
int * newTypesIn,
XkbMapChangesPtr changes)
-#else
-XkbChangeTypesOfKey(xkb,key,nGroups,groups,newTypesIn,changes)
- XkbDescPtr xkb;
- int key;
- int nGroups;
- unsigned groups;
- int * newTypesIn;
- XkbMapChangesPtr changes;
-#endif
{
XkbKeyTypePtr pOldType,pNewType;
register int i;
@@ -838,14 +772,7 @@ int width,nOldGroups,oldWidth,newTypes[XkbNumKbdGroups];
/***====================================================================***/
Bool
-#if NeedFunctionPrototypes
XkbVirtualModsToReal(XkbDescPtr xkb,unsigned virtual_mask,unsigned *mask_rtrn)
-#else
-XkbVirtualModsToReal(xkb,virtual_mask,mask_rtrn)
- XkbDescPtr xkb;
- unsigned virtual_mask;
- unsigned * mask_rtrn;
-#endif
{
register int i,bit;
register unsigned mask;
@@ -869,14 +796,7 @@ register unsigned mask;
/***====================================================================***/
Bool
-#if NeedFunctionPrototypes
XkbUpdateActionVirtualMods(XkbDescPtr xkb,XkbAction *act,unsigned changed)
-#else
-XkbUpdateActionVirtualMods(xkb,act,changed)
- XkbDescPtr xkb;
- XkbAction * act;
- unsigned changed;
-#endif
{
unsigned int tmp;
@@ -902,18 +822,10 @@ unsigned int tmp;
}
void
-#if NeedFunctionPrototypes
XkbUpdateKeyTypeVirtualMods( XkbDescPtr xkb,
XkbKeyTypePtr type,
unsigned int changed,
XkbChangesPtr changes)
-#else
-XkbUpdateKeyTypeVirtualMods(xkb,type,changed,changes)
- XkbDescPtr xkb;
- XkbKeyTypePtr type;
- unsigned int changed;
- XkbChangesPtr changes;
-#endif
{
register unsigned int i;
unsigned int mask;
@@ -958,17 +870,10 @@ unsigned int mask;
}
Bool
-#if NeedFunctionPrototypes
XkbApplyVirtualModChanges(XkbDescPtr xkb,unsigned changed,XkbChangesPtr changes)
-#else
-XkbApplyVirtualModChanges(xkb,changed,changes)
- XkbDescPtr xkb;
- unsigned changed;
- XkbChangesPtr changes;
-#endif
{
register int i;
-unsigned checkState;
+unsigned int checkState = 0;
if ((!xkb) || (!xkb->map) || (changed==0))
return False;
@@ -1035,8 +940,7 @@ unsigned checkState;
}
}
if (xkb->map && xkb->server) {
- int highChange,lowChange;
- lowChange= -1;
+ int highChange = 0, lowChange = -1;
for (i=xkb->min_key_code;i<=xkb->max_key_code;i++) {
if (XkbKeyHasActions(xkb,i)) {
register XkbAction *pAct;
diff --git a/src/xkb/XKBNames.c b/src/xkb/XKBNames.c
index 22439d29..490deff2 100644
--- a/src/xkb/XKBNames.c
+++ b/src/xkb/XKBNames.c
@@ -24,27 +24,21 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
+/* $XFree86: xc/lib/X11/XKBNames.c,v 1.5 2003/04/13 19:22:18 dawes Exp $ */
#define NEED_REPLIES
#define NEED_EVENTS
+#define NEED_MAP_READERS
#include "Xlibint.h"
#include <X11/extensions/XKBproto.h>
#include "XKBlibint.h"
static Status
-#if NeedFunctionPrototypes
_XkbReadAtoms( XkbReadBufferPtr buf,
Atom * atoms,
int maxAtoms,
CARD32 present)
-#else
-_XkbReadAtoms(buf,atoms,maxAtoms,present)
- XkbReadBufferPtr buf;
- Atom *atoms;
- int maxAtoms;
- CARD32 present;
-#endif
{
register int i,bit;
@@ -59,18 +53,10 @@ register int i,bit;
}
Status
-#if NeedFunctionPrototypes
_XkbReadGetNamesReply( Display * dpy,
xkbGetNamesReply * rep,
XkbDescPtr xkb,
int * nread_rtrn)
-#else
-_XkbReadGetNamesReply(dpy,rep,xkb,nread_rtrn)
- Display * dpy;
- xkbGetNamesReply * rep;
- XkbDescPtr xkb;
- int * nread_rtrn;
-#endif
{
int i,len;
XkbReadBufferRec buf;
@@ -243,14 +229,7 @@ BAILOUT:
}
Status
-#if NeedFunctionPrototypes
XkbGetNames(Display *dpy,unsigned which,XkbDescPtr xkb)
-#else
-XkbGetNames(dpy,which,xkb)
- Display * dpy;
- unsigned which;
- XkbDescPtr xkb;
-#endif
{
register xkbGetNamesReq *req;
xkbGetNamesReply rep;
@@ -290,13 +269,7 @@ XkbGetNames(dpy,which,xkb)
/***====================================================================***/
static int
-#if NeedFunctionPrototypes
_XkbCountBits(int nBitsMax,unsigned long mask)
-#else
-_XkbCountBits(nBitsMax,mask)
- int nBitsMax;
- unsigned long mask;
-#endif
{
register unsigned long y, nBits;
@@ -309,14 +282,7 @@ register unsigned long y, nBits;
}
static CARD32
-#if NeedFunctionPrototypes
_XkbCountAtoms(Atom *atoms,int maxAtoms,int *count)
-#else
-_XkbCountAtoms(atoms,maxAtoms,count)
- Atom *atoms;
- int maxAtoms;
- int *count;
-#endif
{
register unsigned int i,bit,nAtoms;
register CARD32 atomsPresent;
@@ -333,15 +299,7 @@ register CARD32 atomsPresent;
}
static void
-#if NeedFunctionPrototypes
_XkbCopyAtoms(Display *dpy,Atom *atoms,CARD32 mask,int maxAtoms)
-#else
-_XkbCopyAtoms(dpy,atoms,mask,maxAtoms)
- Display * dpy;
- Atom * atoms;
- CARD32 mask;
- int maxAtoms;
-#endif
{
register unsigned int i,bit;
@@ -353,28 +311,19 @@ register unsigned int i,bit;
}
Bool
-#if NeedFunctionPrototypes
XkbSetNames( Display * dpy,
unsigned int which,
unsigned int firstType,
unsigned int nTypes,
XkbDescPtr xkb)
-#else
-XkbSetNames(dpy,which,firstType,nTypes,xkb)
- Display * dpy;
- unsigned int which;
- unsigned int firstType;
- unsigned int nTypes;
- XkbDescPtr xkb;
-#endif
{
register xkbSetNamesReq *req;
- int nLvlNames;
+ int nLvlNames = 0;
XkbInfoPtr xkbi;
XkbNamesPtr names;
unsigned firstLvlType,nLvlTypes;
int nVMods,nLEDs,nRG,nKA,nGroups;
- int nKeys,firstKey,nAtoms;
+ int nKeys=0,firstKey=0,nAtoms;
CARD32 leds,vmods,groups;
if ((dpy->flags & XlibDisplayNoXkb) ||
@@ -588,24 +537,17 @@ XkbSetNames(dpy,which,firstType,nTypes,xkb)
}
Bool
-#if NeedFunctionPrototypes
XkbChangeNames(Display *dpy,XkbDescPtr xkb,XkbNameChangesPtr changes)
-#else
-XkbChangeNames(dpy,xkb,changes)
- Display * dpy;
- XkbDescPtr xkb;
- XkbNameChangesPtr changes;
-#endif
{
register xkbSetNamesReq *req;
- int nLvlNames;
+ int nLvlNames = 0;
XkbInfoPtr xkbi;
XkbNamesPtr names;
unsigned which,firstType,nTypes;
unsigned firstLvlType,nLvlTypes;
int nVMods,nLEDs,nRG,nKA,nGroups;
- int nKeys,firstKey,nAtoms;
- CARD32 leds,vmods,groups;
+ int nKeys=0,firstKey=0,nAtoms;
+ CARD32 leds=0,vmods=0,groups=0;
if ((dpy->flags & XlibDisplayNoXkb) ||
(!dpy->xkb_info && !XkbUseExtension(dpy,NULL,NULL)))
@@ -851,16 +793,9 @@ XkbChangeNames(dpy,xkb,changes)
}
void
-#if NeedFunctionPrototypes
XkbNoteNameChanges( XkbNameChangesPtr old,
XkbNamesNotifyEvent * new,
unsigned int wanted)
-#else
-XkbNoteNameChanges(old,new,wanted)
- XkbNameChangesPtr old;
- XkbNamesNotifyEvent * new;
- unsigned int wanted;
-#endif
{
int first,last,old_last,new_last;
diff --git a/src/xkb/XKBRdBuf.c b/src/xkb/XKBRdBuf.c
index 11a9ba71..9b84424a 100644
--- a/src/xkb/XKBRdBuf.c
+++ b/src/xkb/XKBRdBuf.c
@@ -24,6 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
+/* $XFree86: xc/lib/X11/XKBRdBuf.c,v 1.2 2001/10/28 03:32:33 tsi Exp $ */
#include <stdio.h>
#define NEED_REPLIES
@@ -35,14 +36,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
/***====================================================================***/
int
-#if NeedFunctionPrototypes
_XkbInitReadBuffer(Display *dpy,XkbReadBufferPtr buf,int size)
-#else
-_XkbInitReadBuffer(dpy,buf,size)
- Display *dpy;
- XkbReadBufferPtr buf;
- int size;
-#endif
{
if ((dpy!=NULL) && (buf!=NULL) && (size>0)) {
buf->error= 0;
@@ -59,13 +53,7 @@ _XkbInitReadBuffer(dpy,buf,size)
#define _XkbReadBufferDataLeft(b) (((b)->size)-((b)->data-(b)->start))
int
-#if NeedFunctionPrototypes
_XkbSkipReadBufferData(XkbReadBufferPtr from,int size)
-#else
-_XkbSkipReadBufferData(from,size)
- XkbReadBufferPtr from;
- int size;
-#endif
{
if (size==0)
return 1;
@@ -77,14 +65,7 @@ _XkbSkipReadBufferData(from,size)
}
int
-#if NeedFunctionPrototypes
_XkbCopyFromReadBuffer(XkbReadBufferPtr from,char *to,int size)
-#else
-_XkbCopyFromReadBuffer(from,to,size)
- XkbReadBufferPtr from;
- char *to;
- int size;
-#endif
{
if (size==0)
return 1;
@@ -98,14 +79,7 @@ _XkbCopyFromReadBuffer(from,to,size)
#ifdef XKB_FORCE_INT_KEYSYM
int
-#if NeedFunctionPrototypes
_XkbReadCopyKeySyms(int *wire,KeySym *to,int num_words)
-#else
-_XkbReadCopyKeySyms(wire,to,num_words)
- int * wire;
- KeySym * to;
- int num_words;
-#endif
{
while (num_words-->0) {
*to++= *wire++;
@@ -114,14 +88,7 @@ _XkbReadCopyKeySyms(wire,to,num_words)
}
int
-#if NeedFunctionPrototypes
_XkbReadBufferCopyKeySyms(XkbReadBufferPtr from,KeySym *to,int num_words)
-#else
-_XkbReadBufferCopyKeySyms(from,to,num_words)
- XkbReadBufferPtr from;
- KeySym * to;
- int num_words;
-#endif
{
if ((unsigned)(num_words*4)>_XkbReadBufferDataLeft(from))
return 0;
@@ -131,14 +98,7 @@ _XkbReadBufferCopyKeySyms(from,to,num_words)
}
int
-#if NeedFunctionPrototypes
_XkbWriteCopyKeySyms (register KeySym *from,CARD32 *to,int len)
-#else
-_XkbWriteCopyKeySyms (from,to,len)
- register KeySym * from;
- CARD32 * to;
- int len;
-#endif
{
while (len-->0) {
@@ -150,14 +110,7 @@ _XkbWriteCopyKeySyms (from,to,len)
#ifdef LONG64
int
-#if NeedFunctionPrototypes
_XkbReadCopyData32(int *wire,long *to,int num_words)
-#else
-_XkbReadCopyData32(wire,to,num_words)
- int * wire;
- long * to;
- int num_words;
-#endif
{
while (num_words-->0) {
*to++= *wire++;
@@ -167,14 +120,7 @@ _XkbReadCopyData32(wire,to,num_words)
#endif
#ifdef WORD64
int
-#if NeedFunctionPrototypes
_XkbReadCopyData32(int *from,long *lp,int num_words)
-#else
-_XkbReadCopyData32(from,lp,num_words)
- int * from;
- long * lp;
- int num_words;
-#endif
{
long *lpack;
long mask32 = 0x00000000ffffffff;
@@ -196,14 +142,7 @@ long maskw, i, bits;
#if defined(LONG64) || defined(WORD64)
int
-#if NeedFunctionPrototypes
_XkbReadBufferCopy32(XkbReadBufferPtr from,long *to,int num_words)
-#else
-_XkbReadBufferCopy32(from,to,num_words)
- XkbReadBufferPtr from;
- long * to;
- int num_words;
-#endif
{
if ((unsigned)(num_words*4)>_XkbReadBufferDataLeft(from))
return 0;
@@ -215,14 +154,7 @@ _XkbReadBufferCopy32(from,to,num_words)
#ifdef LONG64
int
-#if NeedFunctionPrototypes
_XkbWriteCopyData32 (register unsigned long *from,CARD32 *to,int len)
-#else
-_XkbWriteCopyData32 (from,to,len)
- register unsigned long * from;
- CARD32 * to;
- int len;
-#endif
{
while (len-->0) {
@@ -237,13 +169,7 @@ _XkbWriteCopyData32 Not Implemented Yet for sizeof(int)==8
#endif
char *
-#if NeedFunctionPrototypes
_XkbPeekAtReadBuffer(XkbReadBufferPtr from,int size)
-#else
-_XkbPeekAtReadBuffer(from,size)
- XkbReadBufferPtr from;
- int size;
-#endif
{
if ((from==NULL)||(from->error)||(size<1)||
(_XkbReadBufferDataLeft(from)<size))
@@ -252,13 +178,7 @@ _XkbPeekAtReadBuffer(from,size)
}
char *
-#if NeedFunctionPrototypes
_XkbGetReadBufferPtr(XkbReadBufferPtr from,int size)
-#else
-_XkbGetReadBufferPtr(from,size)
- XkbReadBufferPtr from;
- int size;
-#endif
{
char *ptr;
if ((from==NULL)||(from->error)||(size<1)||
@@ -271,12 +191,7 @@ char *ptr;
int
-#if NeedFunctionPrototypes
_XkbFreeReadBuffer(XkbReadBufferPtr buf)
-#else
-_XkbFreeReadBuffer(buf)
- XkbReadBufferPtr buf;
-#endif
{
if ((buf!=NULL) && (buf->start!=NULL)) {
int left;
@@ -291,17 +206,11 @@ _XkbFreeReadBuffer(buf)
}
Bool
-#if NeedFunctionPrototypes
_XkbGetReadBufferCountedString(XkbReadBufferPtr buf,char **rtrn)
-#else
-_XkbGetReadBufferCountedString(buf,rtrn)
- XkbReadBufferPtr buf;
- char ** rtrn;
-#endif
{
CARD16 len,*pLen;
int left;
-char * str;
+char * str = NULL;
if ((buf==NULL)||(buf->error)||((left=(int)_XkbReadBufferDataLeft(buf))<4))
return False;
diff --git a/src/xkb/XKBSetGeom.c b/src/xkb/XKBSetGeom.c
index 72d7f3d7..460594fa 100644
--- a/src/xkb/XKBSetGeom.c
+++ b/src/xkb/XKBSetGeom.c
@@ -24,6 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
+/* $XFree86: xc/lib/X11/XKBSetGeom.c,v 3.5 2003/05/27 22:26:25 tsi Exp $ */
#ifdef DEBUG
#include <stdio.h>
@@ -48,13 +49,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#define _SizeCountedString(s) ((s)?XkbPaddedSize(2+strlen(s)):4)
static char *
-#if NeedFunctionPrototypes
_WriteCountedString(char *wire,char *str)
-#else
-_WriteCountedString(wire,str)
- char * wire;
- char * str;
-#endif
{
CARD16 len,*pLen;
@@ -68,12 +63,7 @@ CARD16 len,*pLen;
}
static int
-#if NeedFunctionPrototypes
_SizeGeomProperties(XkbGeometryPtr geom)
-#else
-_SizeGeomProperties(geom)
- XkbGeometryPtr geom;
-#endif
{
register int i,size;
XkbPropertyPtr prop;
@@ -86,12 +76,7 @@ XkbPropertyPtr prop;
}
static int
-#if NeedFunctionPrototypes
_SizeGeomColors(XkbGeometryPtr geom)
-#else
-_SizeGeomColors(geom)
- XkbGeometryPtr geom;
-#endif
{
register int i,size;
register XkbColorPtr color;
@@ -103,12 +88,7 @@ register XkbColorPtr color;
}
static int
-#if NeedFunctionPrototypes
_SizeGeomShapes(XkbGeometryPtr geom)
-#else
-_SizeGeomShapes(geom)
- XkbGeometryPtr geom;
-#endif
{
register int i,size;
register XkbShapePtr shape;
@@ -126,13 +106,7 @@ register XkbShapePtr shape;
}
static int
-#if NeedFunctionPrototypes
_SizeGeomDoodads(int num_doodads,XkbDoodadPtr doodad)
-#else
-_SizeGeomDoodads(num_doodads,doodad)
- int num_doodads;
- XkbDoodadPtr doodad;
-#endif
{
register int i,size;
@@ -150,12 +124,7 @@ register int i,size;
}
static int
-#if NeedFunctionPrototypes
_SizeGeomSections(XkbGeometryPtr geom)
-#else
-_SizeGeomSections(geom)
- XkbGeometryPtr geom;
-#endif
{
register int i,size;
XkbSectionPtr section;
@@ -190,12 +159,7 @@ XkbSectionPtr section;
}
static int
-#if NeedFunctionPrototypes
_SizeGeomKeyAliases(XkbGeometryPtr geom)
-#else
-_SizeGeomKeyAliases(geom)
- XkbGeometryPtr geom;
-#endif
{
return geom->num_key_aliases*(2*XkbKeyNameLength);
}
@@ -203,13 +167,7 @@ _SizeGeomKeyAliases(geom)
/***====================================================================***/
static char *
-#if NeedFunctionPrototypes
_WriteGeomProperties(char *wire,XkbGeometryPtr geom)
-#else
-_WriteGeomProperties(wire,geom)
- char * wire;
- XkbGeometryPtr geom;
-#endif
{
register int i;
register XkbPropertyPtr prop;
@@ -222,13 +180,7 @@ register XkbPropertyPtr prop;
}
static char *
-#if NeedFunctionPrototypes
_WriteGeomColors(char *wire,XkbGeometryPtr geom)
-#else
-_WriteGeomColors(wire,geom)
- char * wire;
- XkbGeometryPtr geom;
-#endif
{
register int i;
register XkbColorPtr color;
@@ -240,13 +192,7 @@ register XkbColorPtr color;
}
static char *
-#if NeedFunctionPrototypes
_WriteGeomShapes(char *wire,XkbGeometryPtr geom)
-#else
-_WriteGeomShapes(wire,geom)
- char * wire;
- XkbGeometryPtr geom;
-#endif
{
int i;
XkbShapePtr shape;
@@ -286,14 +232,7 @@ xkbShapeWireDesc * shapeWire;
}
static char *
-#if NeedFunctionPrototypes
_WriteGeomDoodads(char *wire,int num_doodads,XkbDoodadPtr doodad)
-#else
-_WriteGeomDoodads(wire,num_doodads,doodad)
- char * wire;
- int num_doodads;
- XkbDoodadPtr doodad;
-#endif
{
register int i;
xkbDoodadWireDesc * doodadWire;
@@ -340,13 +279,7 @@ xkbDoodadWireDesc * doodadWire;
}
static char *
-#if NeedFunctionPrototypes
_WriteGeomOverlay(char *wire,XkbOverlayPtr ol)
-#else
-_WriteGeomOverlay(wire,ol)
- char * wire;
- XkbOverlayPtr ol;
-#endif
{
register int r;
XkbOverlayRowPtr row;
@@ -376,13 +309,7 @@ xkbOverlayWireDesc * olWire;
}
static char *
-#if NeedFunctionPrototypes
_WriteGeomSections(char *wire,XkbGeometryPtr geom)
-#else
-_WriteGeomSections(wire,geom)
- char * wire;
- XkbGeometryPtr geom;
-#endif
{
register int i;
XkbSectionPtr section;
@@ -444,13 +371,7 @@ xkbSectionWireDesc * sectionWire;
}
static char *
-#if NeedFunctionPrototypes
_WriteGeomKeyAliases(char *wire,XkbGeometryPtr geom)
-#else
-_WriteGeomKeyAliases(wire,geom)
- char * wire;
- XkbGeometryPtr geom;
-#endif
{
register int sz;
@@ -465,16 +386,8 @@ register int sz;
/***====================================================================***/
static Status
-#if NeedFunctionPrototypes
_SendSetGeometry(Display *dpy,XkbGeometryPtr geom,xkbSetGeometryReq *req)
-#else
-_SendSetGeometry(dpy,geom,req)
- Display * dpy;
- XkbGeometryPtr geom;
- xkbSetGeometryReq * req;
-#endif
{
-xkbSetGeometryReq tmp;
int sz;
char * wire,*tbuf;
@@ -487,7 +400,6 @@ char * wire,*tbuf;
sz+= _SizeGeomDoodads(geom->num_doodads,geom->doodads);
sz+= _SizeGeomKeyAliases(geom);
req->length+= (sz/4);
- tmp= *req;
if (sz<BUFSIZE) {
BufAlloc(char *,wire,sz);
tbuf= NULL;
@@ -521,14 +433,7 @@ char * wire,*tbuf;
/***====================================================================***/
Status
-#if NeedFunctionPrototypes
XkbSetGeometry(Display *dpy,unsigned deviceSpec,XkbGeometryPtr geom)
-#else
-XkbSetGeometry(dpy,deviceSpec,geom)
- Display * dpy;
- unsigned deviceSpec;
- XkbGeometryPtr geom;
-#endif
{
xkbSetGeometryReq *req;
Status ret;
diff --git a/src/xkb/XKBSetMap.c b/src/xkb/XKBSetMap.c
index f7b99bde..3e56e98a 100644
--- a/src/xkb/XKBSetMap.c
+++ b/src/xkb/XKBSetMap.c
@@ -24,6 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
+/* $XFree86: xc/lib/X11/XKBSetMap.c,v 3.2 2001/01/17 19:41:49 dawes Exp $ */
#include <stdio.h>
#define NEED_REPLIES
@@ -33,13 +34,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include "XKBlibint.h"
static int
-#if NeedFunctionPrototypes
_XkbSizeKeyTypes(XkbDescPtr xkb,xkbSetMapReq *req)
-#else
-_XkbSizeKeyTypes(xkb,req)
- XkbDescPtr xkb;
- xkbSetMapReq * req;
-#endif
{
XkbKeyTypePtr map;
int i,len;
@@ -61,14 +56,7 @@ _XkbSizeKeyTypes(xkb,req)
}
static void
-#if NeedFunctionPrototypes
_XkbWriteKeyTypes(Display *dpy,XkbDescPtr xkb,xkbSetMapReq *req)
-#else
-_XkbWriteKeyTypes(dpy,xkb,req)
- Display * dpy;
- XkbDescPtr xkb;
- xkbSetMapReq * req;
-#endif
{
char * buf;
XkbKeyTypePtr type;
@@ -114,13 +102,7 @@ _XkbWriteKeyTypes(dpy,xkb,req)
}
static int
-#if NeedFunctionPrototypes
_XkbSizeKeySyms(XkbDescPtr xkb,xkbSetMapReq *req)
-#else
-_XkbSizeKeySyms(xkb,req)
- XkbDescPtr xkb;
- xkbSetMapReq * req;
-#endif
{
int i,len;
unsigned nSyms;
@@ -141,14 +123,7 @@ _XkbSizeKeySyms(xkb,req)
}
static void
-#if NeedFunctionPrototypes
_XkbWriteKeySyms(Display *dpy,XkbDescPtr xkb,xkbSetMapReq *req)
-#else
-_XkbWriteKeySyms(dpy,xkb,req)
- Display * dpy;
- XkbDescPtr xkb;
- xkbSetMapReq * req;
-#endif
{
register KeySym * pSym;
CARD32 * outSym;
@@ -180,13 +155,7 @@ register int i;
}
static int
-#if NeedFunctionPrototypes
_XkbSizeKeyActions(XkbDescPtr xkb,xkbSetMapReq *req)
-#else
-_XkbSizeKeyActions(xkb,req)
- XkbDescPtr xkb;
- xkbSetMapReq * req;
-#endif
{
int i,len,nActs;
@@ -206,14 +175,7 @@ _XkbSizeKeyActions(xkb,req)
}
static void
-#if NeedFunctionPrototypes
_XkbWriteKeyActions(Display *dpy,XkbDescPtr xkb,xkbSetMapReq *req)
-#else
-_XkbWriteKeyActions(dpy,xkb,req)
- Display * dpy;
- XkbDescPtr xkb;
- xkbSetMapReq * req;
-#endif
{
register int i;
int n;
@@ -244,13 +206,7 @@ _XkbWriteKeyActions(dpy,xkb,req)
}
static int
-#if NeedFunctionPrototypes
_XkbSizeKeyBehaviors(XkbDescPtr xkb,xkbSetMapReq *req)
-#else
-_XkbSizeKeyBehaviors(xkb,req)
- XkbDescPtr xkb;
- xkbSetMapReq * req;
-#endif
{
register int i,first,last,nFound;
@@ -271,14 +227,7 @@ register int i,first,last,nFound;
}
static void
-#if NeedFunctionPrototypes
_XkbWriteKeyBehaviors(Display *dpy,XkbDescPtr xkb,xkbSetMapReq *req)
-#else
-_XkbWriteKeyBehaviors(dpy,xkb,req)
- Display * dpy;
- XkbDescPtr xkb;
- xkbSetMapReq * req;
-#endif
{
register int i,first,last;
xkbBehaviorWireDesc * wire;
@@ -305,12 +254,7 @@ char * buf;
}
static unsigned
-#if NeedFunctionPrototypes
_XkbSizeVirtualMods(xkbSetMapReq *req)
-#else
-_XkbSizeVirtualMods(req)
- xkbSetMapReq * req;
-#endif
{
register int i,bit,nMods;
@@ -327,18 +271,10 @@ register int i,bit,nMods;
}
static void
-#if NeedFunctionPrototypes
_XkbWriteVirtualMods( Display * dpy,
XkbDescPtr xkb,
xkbSetMapReq * req,
unsigned size)
-#else
-_XkbWriteVirtualMods(dpy,xkb,req,size)
- Display * dpy;
- XkbDescPtr xkb;
- xkbSetMapReq * req;
- unsigned size;
-#endif
{
register int i,bit;
CARD8 *vmods;
@@ -355,13 +291,7 @@ _XkbWriteVirtualMods(dpy,xkb,req,size)
}
static int
-#if NeedFunctionPrototypes
_XkbSizeKeyExplicit(XkbDescPtr xkb,xkbSetMapReq *req)
-#else
-_XkbSizeKeyExplicit(xkb,req)
- XkbDescPtr xkb;
- xkbSetMapReq * req;
-#endif
{
register int i,first,last,nFound;
@@ -383,14 +313,7 @@ register int i,first,last,nFound;
}
static void
-#if NeedFunctionPrototypes
_XkbWriteKeyExplicit(Display *dpy,XkbDescPtr xkb,xkbSetMapReq *req)
-#else
-_XkbWriteKeyExplicit(dpy,xkb,req)
- Display * dpy;
- XkbDescPtr xkb;
- xkbSetMapReq * req;
-#endif
{
register int i,first,last;
CARD8 * wire;
@@ -412,13 +335,7 @@ CARD8 * wire;
}
static int
-#if NeedFunctionPrototypes
_XkbSizeModifierMap(XkbDescPtr xkb,xkbSetMapReq *req)
-#else
-_XkbSizeModifierMap(xkb,req)
- XkbDescPtr xkb;
- xkbSetMapReq * req;
-#endif
{
register int i,first,last,nFound;
@@ -440,14 +357,7 @@ register int i,first,last,nFound;
}
static void
-#if NeedFunctionPrototypes
_XkbWriteModifierMap(Display *dpy,XkbDescPtr xkb,xkbSetMapReq *req)
-#else
-_XkbWriteModifierMap(dpy,xkb,req)
- Display * dpy;
- XkbDescPtr xkb;
- xkbSetMapReq * req;
-#endif
{
register int i,first,last;
CARD8 * wire;
@@ -471,13 +381,7 @@ CARD8 * wire;
}
static int
-#if NeedFunctionPrototypes
_XkbSizeVirtualModMap(XkbDescPtr xkb,xkbSetMapReq *req)
-#else
-_XkbSizeVirtualModMap(xkb,req)
- XkbDescPtr xkb;
- xkbSetMapReq * req;
-#endif
{
register int i,first,last,nFound;
@@ -499,14 +403,7 @@ register int i,first,last,nFound;
}
static void
-#if NeedFunctionPrototypes
_XkbWriteVirtualModMap(Display *dpy,XkbDescPtr xkb,xkbSetMapReq *req)
-#else
-_XkbWriteVirtualModMap(dpy,xkb,req)
- Display * dpy;
- XkbDescPtr xkb;
- xkbSetMapReq * req;
-#endif
{
register int i,first,last;
xkbVModMapWireDesc * wire;
@@ -530,14 +427,7 @@ xkbVModMapWireDesc * wire;
}
static void
-#if NeedFunctionPrototypes
SendSetMap(Display *dpy,XkbDescPtr xkb,xkbSetMapReq *req)
-#else
-SendSetMap(dpy,xkb,req)
- Display * dpy;
- XkbDescPtr xkb;
- xkbSetMapReq * req;
-#endif
{
xkbSetMapReq tmp;
unsigned szMods;
@@ -573,14 +463,7 @@ unsigned szMods;
}
Bool
-#if NeedFunctionPrototypes
XkbSetMap(Display *dpy,unsigned which,XkbDescPtr xkb)
-#else
-XkbSetMap(dpy,which,xkb)
- Display * dpy;
- unsigned which;
- XkbDescPtr xkb;
-#endif
{
register xkbSetMapReq * req;
XkbInfoPtr xkbi;
@@ -650,14 +533,7 @@ XkbClientMapPtr map;
}
Bool
-#if NeedFunctionPrototypes
XkbChangeMap(Display *dpy,XkbDescPtr xkb,XkbMapChangesPtr changes)
-#else
-XkbChangeMap(dpy,xkb,changes)
- Display * dpy;
- XkbDescPtr xkb;
- XkbMapChangesPtr changes;
-#endif
{
register xkbSetMapReq * req;
XkbInfoPtr xkbi;
diff --git a/src/xkb/XKBUse.c b/src/xkb/XKBUse.c
index 1b564cc6..aea49cb6 100644
--- a/src/xkb/XKBUse.c
+++ b/src/xkb/XKBUse.c
@@ -24,6 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
+/* $XFree86: xc/lib/X11/XKBUse.c,v 3.7 2003/07/07 15:34:21 eich Exp $ */
#include <stdio.h>
#include <ctype.h>
@@ -33,21 +34,10 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include <X11/extensions/XKBproto.h>
#include "XKBlibint.h"
-#ifdef X_NOT_STDC_ENV
-extern char *getenv();
-#endif
-
static Bool _XkbIgnoreExtension = False;
void
-#if NeedFunctionPrototypes
XkbNoteMapChanges(XkbMapChangesPtr old,XkbMapNotifyEvent *new,unsigned wanted)
-#else
-XkbNoteMapChanges(old,new,wanted)
- XkbMapChangesPtr old;
- XkbMapNotifyEvent * new;
- unsigned int wanted;
-#endif
{
int first,oldLast,newLast;
wanted&= new->changed;
@@ -186,16 +176,9 @@ XkbNoteMapChanges(old,new,wanted)
}
void
-#if NeedFunctionPrototypes
_XkbNoteCoreMapChanges( XkbMapChangesPtr old,
XMappingEvent * new,
unsigned int wanted)
-#else
-_XkbNoteCoreMapChanges(old,new,wanted)
- XkbMapChangesPtr old;
- XMappingEvent * new;
- unsigned int wanted;
-#endif
{
int first,oldLast,newLast;
@@ -222,14 +205,7 @@ _XkbNoteCoreMapChanges(old,new,wanted)
}
static Bool
-#if NeedFunctionPrototypes
wire_to_event(Display *dpy,XEvent *re,xEvent *event)
-#else
-wire_to_event(dpy,re,event)
- Display *dpy;
- XEvent *re;
- xEvent *event;
-#endif
{
xkbEvent *xkbevent= (xkbEvent *)event;
XkbInfoPtr xkbi;
@@ -615,12 +591,7 @@ wire_to_event(dpy,re,event)
}
Bool
-#if NeedFunctionPrototypes
XkbIgnoreExtension(Bool ignore)
-#else
-XkbIgnoreExtension(ignore)
- Bool ignore;
-#endif
{
if (getenv("XKB_FORCE")!=NULL) {
#ifdef DEBUG
@@ -638,12 +609,7 @@ XkbIgnoreExtension(ignore)
}
static void
-#if NeedFunctionPrototypes
_XkbFreeInfo(Display *dpy)
-#else
-_XkbFreeInfo(dpy)
- Display *dpy;
-#endif
{
XkbInfoPtr xkbi = dpy->xkb_info;
if (xkbi) {
@@ -654,14 +620,7 @@ _XkbFreeInfo(dpy)
}
Bool
-#if NeedFunctionPrototypes
XkbUseExtension(Display *dpy,int *major_rtrn,int *minor_rtrn)
-#else
-XkbUseExtension(dpy,major_rtrn,minor_rtrn)
- Display * dpy;
- int * major_rtrn;
- int * minor_rtrn;
-#endif
{
xkbUseExtensionReply rep;
register xkbUseExtensionReq *req;
@@ -672,7 +631,7 @@ XkbUseExtension(dpy,major_rtrn,minor_rtrn)
static int debugMsg;
static int been_here= 0;
- if ( dpy->xkb_info ) {
+ if ( dpy->xkb_info && !(dpy->flags & XlibDisplayNoXkb)) {
if (major_rtrn) *major_rtrn= dpy->xkb_info->srv_major;
if (minor_rtrn) *minor_rtrn= dpy->xkb_info->srv_minor;
return True;
@@ -685,8 +644,78 @@ XkbUseExtension(dpy,major_rtrn,minor_rtrn)
if (major_rtrn) *major_rtrn= 0;
if (minor_rtrn) *minor_rtrn= 0;
+ if (!dpy->xkb_info) {
+ xkbi = _XkbTypedCalloc(1, XkbInfoRec);
+ if ( !xkbi )
+ return False;
+ dpy->xkb_info = xkbi;
+ dpy->free_funcs->xkb = _XkbFreeInfo;
+
+ xkbi->xlib_ctrls|= (XkbLC_ControlFallback|XkbLC_ConsumeLookupMods);
+ if ((str=getenv("_XKB_OPTIONS_ENABLE"))!=NULL) {
+ if ((str=getenv("_XKB_LATIN1_LOOKUP"))!=NULL) {
+ if ((strcmp(str,"off")==0)||(strcmp(str,"0")==0))
+ xkbi->xlib_ctrls&= ~XkbLC_ForceLatin1Lookup;
+ else xkbi->xlib_ctrls|= XkbLC_ForceLatin1Lookup;
+ }
+ if ((str=getenv("_XKB_CONSUME_LOOKUP_MODS"))!=NULL) {
+ if ((strcmp(str,"off")==0)||(strcmp(str,"0")==0))
+ xkbi->xlib_ctrls&= ~XkbLC_ConsumeLookupMods;
+ else xkbi->xlib_ctrls|= XkbLC_ConsumeLookupMods;
+ }
+ if ((str=getenv("_XKB_CONSUME_SHIFT_AND_LOCK"))!=NULL) {
+ if ((strcmp(str,"off")==0)||(strcmp(str,"0")==0))
+ xkbi->xlib_ctrls&= ~XkbLC_AlwaysConsumeShiftAndLock;
+ else xkbi->xlib_ctrls|= XkbLC_AlwaysConsumeShiftAndLock;
+ }
+ if ((str=getenv("_XKB_IGNORE_NEW_KEYBOARDS"))!=NULL) {
+ if ((strcmp(str,"off")==0)||(strcmp(str,"0")==0))
+ xkbi->xlib_ctrls&= ~XkbLC_IgnoreNewKeyboards;
+ else xkbi->xlib_ctrls|= XkbLC_IgnoreNewKeyboards;
+ }
+ if ((str=getenv("_XKB_CONTROL_FALLBACK"))!=NULL) {
+ if ((strcmp(str,"off")==0)||(strcmp(str,"0")==0))
+ xkbi->xlib_ctrls&= ~XkbLC_ControlFallback;
+ else xkbi->xlib_ctrls|= XkbLC_ControlFallback;
+ }
+ if ((str=getenv("_XKB_COMP_LED"))!=NULL) {
+ if ((strcmp(str,"off")==0)||(strcmp(str,"0")==0))
+ xkbi->xlib_ctrls&= ~XkbLC_ComposeLED;
+ else {
+ xkbi->xlib_ctrls|= XkbLC_ComposeLED;
+ if (strlen(str)>0)
+ xkbi->composeLED= XInternAtom(dpy,str,False);
+ }
+ }
+ if ((str=getenv("_XKB_COMP_FAIL_BEEP"))!=NULL) {
+ if ((strcmp(str,"off")==0)||(strcmp(str,"0")==0))
+ xkbi->xlib_ctrls&= ~XkbLC_BeepOnComposeFail;
+ else xkbi->xlib_ctrls|= XkbLC_BeepOnComposeFail;
+ }
+ }
+ if ((xkbi->composeLED==None)&&((xkbi->xlib_ctrls&XkbLC_ComposeLED)!=0))
+ xkbi->composeLED= XInternAtom(dpy,"Compose",False);
+#ifdef DEBUG
+ if (debugMsg) {
+ register unsigned c= xkbi->xlib_ctrls;
+ fprintf(stderr,"XKEYBOARD compose: beep on failure is %s, LED is %s\n",
+ ((c&XkbLC_BeepOnComposeFail)?"on":"off"),
+ ((c&XkbLC_ComposeLED)?"on":"off"));
+ fprintf(stderr,"XKEYBOARD XLookupString: %slatin-1, %s lookup modifiers\n",
+ ((c&XkbLC_ForceLatin1Lookup)?"allow non-":"force "),
+ ((c&XkbLC_ConsumeLookupMods)?"consume":"re-use"));
+ fprintf(stderr,
+ "XKEYBOARD XLookupString: %sconsume shift and lock, %scontrol fallback\n",
+ ((c&XkbLC_AlwaysConsumeShiftAndLock)?"always ":"don't "),
+ ((c&XkbLC_ControlFallback)?"":"no "));
+
+ }
+#endif
+ } else
+ xkbi = dpy->xkb_info;
+
forceIgnore= (dpy->flags&XlibDisplayNoXkb)||dpy->keysyms;
- forceIgnore= forceIgnore&(major_rtrn==NULL)&&(minor_rtrn==NULL);
+ forceIgnore= forceIgnore&&(major_rtrn==NULL)&&(minor_rtrn==NULL);
if ( forceIgnore || _XkbIgnoreExtension || getenv("XKB_DISABLE")) {
LockDisplay(dpy);
dpy->flags |= XlibDisplayNoXkb;
@@ -696,15 +725,10 @@ XkbUseExtension(dpy,major_rtrn,minor_rtrn)
return False;
}
- xkbi = _XkbTypedCalloc(1, XkbInfoRec);
- if ( !xkbi )
- return False;
-
if ( (codes=XInitExtension(dpy,XkbName))==NULL ) {
LockDisplay(dpy);
dpy->flags |= XlibDisplayNoXkb;
UnlockDisplay(dpy);
- Xfree(xkbi);
if (debugMsg)
fprintf(stderr,"XKEYBOARD extension not present\n");
return False;
@@ -746,8 +770,7 @@ XkbUseExtension(dpy,major_rtrn,minor_rtrn)
dpy->flags |= XlibDisplayNoXkb;
UnlockDisplay(dpy);
SyncHandle();
- Xfree(xkbi);
- if (major_rtrn) *major_rtrn= rep.serverMajor;
+ if (major_rtrn) *major_rtrn= rep.serverMajor;
if (minor_rtrn) *minor_rtrn= rep.serverMinor;
return False;
}
@@ -766,70 +789,8 @@ XkbUseExtension(dpy,major_rtrn,minor_rtrn)
fprintf(stderr,"XKEYBOARD (version %d.%02d/%d.%02d) OK!\n",
XkbMajorVersion,XkbMinorVersion,
rep.serverMajor,rep.serverMinor);
- dpy->xkb_info = xkbi;
- dpy->free_funcs->xkb = _XkbFreeInfo;
- ev_base = codes->first_event;
- xkbi->xlib_ctrls|=
- (XkbLC_BeepOnComposeFail|XkbLC_ComposeLED|XkbLC_ControlFallback);
- if ((str=getenv("_XKB_OPTIONS_ENABLE"))!=NULL) {
- if ((str=getenv("_XKB_LATIN1_LOOKUP"))!=NULL) {
- if ((strcmp(str,"off")==0)||(strcmp(str,"0")==0))
- xkbi->xlib_ctrls&= ~XkbLC_ForceLatin1Lookup;
- else xkbi->xlib_ctrls|= XkbLC_ForceLatin1Lookup;
- }
- if ((str=getenv("_XKB_CONSUME_LOOKUP_MODS"))!=NULL) {
- if ((strcmp(str,"off")==0)||(strcmp(str,"0")==0))
- xkbi->xlib_ctrls&= ~XkbLC_ConsumeLookupMods;
- else xkbi->xlib_ctrls|= XkbLC_ConsumeLookupMods;
- }
- if ((str=getenv("_XKB_CONSUME_SHIFT_AND_LOCK"))!=NULL) {
- if ((strcmp(str,"off")==0)||(strcmp(str,"0")==0))
- xkbi->xlib_ctrls&= ~XkbLC_AlwaysConsumeShiftAndLock;
- else xkbi->xlib_ctrls|= XkbLC_AlwaysConsumeShiftAndLock;
- }
- if ((str=getenv("_XKB_IGNORE_NEW_KEYBOARDS"))!=NULL) {
- if ((strcmp(str,"off")==0)||(strcmp(str,"0")==0))
- xkbi->xlib_ctrls&= ~XkbLC_IgnoreNewKeyboards;
- else xkbi->xlib_ctrls|= XkbLC_IgnoreNewKeyboards;
- }
- if ((str=getenv("_XKB_CONTROL_FALLBACK"))!=NULL) {
- if ((strcmp(str,"off")==0)||(strcmp(str,"0")==0))
- xkbi->xlib_ctrls&= ~XkbLC_ControlFallback;
- else xkbi->xlib_ctrls|= XkbLC_ControlFallback;
- }
- if ((str=getenv("_XKB_COMP_LED"))!=NULL) {
- if ((strcmp(str,"off")==0)||(strcmp(str,"0")==0))
- xkbi->xlib_ctrls&= ~XkbLC_ComposeLED;
- else {
- xkbi->xlib_ctrls|= XkbLC_ComposeLED;
- if (strlen(str)>0)
- xkbi->composeLED= XInternAtom(dpy,str,False);
- }
- }
- if ((str=getenv("_XKB_COMP_FAIL_BEEP"))!=NULL) {
- if ((strcmp(str,"off")==0)||(strcmp(str,"0")==0))
- xkbi->xlib_ctrls&= ~XkbLC_BeepOnComposeFail;
- else xkbi->xlib_ctrls|= XkbLC_BeepOnComposeFail;
- }
- }
- if ((xkbi->composeLED==None)&&((xkbi->xlib_ctrls&XkbLC_ComposeLED)!=0))
- xkbi->composeLED= XInternAtom(dpy,"Compose",False);
-#ifdef DEBUG
- if (debugMsg) {
- register unsigned c= xkbi->xlib_ctrls;
- fprintf(stderr,"XKEYBOARD compose: beep on failure is %s, LED is %s\n",
- ((c&XkbLC_BeepOnComposeFail)?"on":"off"),
- ((c&XkbLC_ComposeLED)?"on":"off"));
- fprintf(stderr,"XKEYBOARD XLookupString: %slatin-1, %s lookup modifiers\n",
- ((c&XkbLC_ForceLatin1Lookup)?"allow non-":"force "),
- ((c&XkbLC_ConsumeLookupMods)?"consume":"re-use"));
- fprintf(stderr,
- "XKEYBOARD XLookupString: %sconsume shift and lock, %scontrol fallback\n",
- ((c&XkbLC_AlwaysConsumeShiftAndLock)?"always ":"don't "),
- ((c&XkbLC_ControlFallback)?"":"no "));
- }
-#endif
+ ev_base = codes->first_event;
XESetWireToEvent(dpy,ev_base+XkbEventCode,wire_to_event);
SyncHandle();
return True;
diff --git a/src/xkb/XKBleds.c b/src/xkb/XKBleds.c
index a4636157..be6e6a1a 100644
--- a/src/xkb/XKBleds.c
+++ b/src/xkb/XKBleds.c
@@ -24,22 +24,17 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
+/* $XFree86: xc/lib/X11/XKBleds.c,v 1.4 2003/04/13 19:22:18 dawes Exp $ */
#define NEED_REPLIES
#define NEED_EVENTS
+#define NEED_MAP_READERS
#include "Xlibint.h"
#include <X11/extensions/XKBproto.h>
#include "XKBlibint.h"
Status
-#if NeedFunctionPrototypes
XkbGetIndicatorState(Display *dpy,unsigned deviceSpec,unsigned *pStateRtrn)
-#else
-XkbGetIndicatorState(dpy,deviceSpec,pStateRtrn)
- Display * dpy;
- unsigned int deviceSpec;
- unsigned int * pStateRtrn;
-#endif
{
register xkbGetIndicatorStateReq *req;
xkbGetIndicatorStateReply rep;
@@ -64,18 +59,10 @@ XkbGetIndicatorState(dpy,deviceSpec,pStateRtrn)
}
Status
-#if NeedFunctionPrototypes
_XkbReadGetIndicatorMapReply( Display * dpy,
xkbGetIndicatorMapReply * rep,
XkbDescPtr xkb,
int * nread_rtrn)
-#else
-_XkbReadGetIndicatorMapReply(dpy,rep,xkb,nread_rtrn)
- Display * dpy;
- xkbGetIndicatorMapReply * rep;
- XkbDescPtr xkb;
- int * nread_rtrn;
-#endif
{
XkbIndicatorPtr leds;
XkbReadBufferRec buf;
@@ -122,14 +109,7 @@ XkbReadBufferRec buf;
}
Bool
-#if NeedFunctionPrototypes
XkbGetIndicatorMap(Display *dpy,unsigned long which,XkbDescPtr xkb)
-#else
-XkbGetIndicatorMap(dpy,which,xkb)
- Display * dpy;
- unsigned long which;
- XkbDescPtr xkb;
-#endif
{
register xkbGetIndicatorMapReq * req;
xkbGetIndicatorMapReply rep;
@@ -169,14 +149,7 @@ XkbGetIndicatorMap(dpy,which,xkb)
}
Bool
-#if NeedFunctionPrototypes
XkbSetIndicatorMap(Display *dpy,unsigned long which,XkbDescPtr xkb)
-#else
-XkbSetIndicatorMap(dpy,which,xkb)
- Display * dpy;
- unsigned long which;
- XkbDescPtr xkb;
-#endif
{
register xkbSetIndicatorMapReq *req;
register int i,bit;
@@ -221,7 +194,6 @@ XkbSetIndicatorMap(dpy,which,xkb)
}
Bool
-#if NeedFunctionPrototypes
XkbGetNamedDeviceIndicator( Display * dpy,
unsigned device,
unsigned class,
@@ -231,19 +203,6 @@ XkbGetNamedDeviceIndicator( Display * dpy,
Bool * pStateRtrn,
XkbIndicatorMapPtr pMapRtrn,
Bool * pRealRtrn)
-#else
-XkbGetNamedDeviceIndicator(dpy,device,class,id,name,pNdxRtrn,pStateRtrn,
- pMapRtrn,pRealRtrn)
- Display * dpy;
- unsigned device;
- unsigned class;
- unsigned id;
- Atom name;
- int * pNdxRtrn;
- Bool * pStateRtrn;
- XkbIndicatorMapPtr pMapRtrn;
- Bool * pRealRtrn;
-#endif
{
register xkbGetNamedIndicatorReq *req;
xkbGetNamedIndicatorReply rep;
@@ -288,22 +247,12 @@ XkbGetNamedDeviceIndicator(dpy,device,class,id,name,pNdxRtrn,pStateRtrn,
}
Bool
-#if NeedFunctionPrototypes
XkbGetNamedIndicator( Display * dpy,
Atom name,
int * pNdxRtrn,
Bool * pStateRtrn,
XkbIndicatorMapPtr pMapRtrn,
Bool * pRealRtrn)
-#else
-XkbGetNamedIndicator(dpy,name,pNdxRtrn,pStateRtrn,pMapRtrn,pRealRtrn)
- Display * dpy;
- Atom name;
- int * pNdxRtrn;
- Bool * pStateRtrn;
- XkbIndicatorMapPtr pMapRtrn;
- Bool * pRealRtrn;
-#endif
{
return XkbGetNamedDeviceIndicator(dpy,XkbUseCoreKbd,
XkbDfltXIClass,XkbDfltXIId,
@@ -312,7 +261,6 @@ XkbGetNamedIndicator(dpy,name,pNdxRtrn,pStateRtrn,pMapRtrn,pRealRtrn)
}
Bool
-#if NeedFunctionPrototypes
XkbSetNamedDeviceIndicator( Display * dpy,
unsigned device,
unsigned class,
@@ -322,26 +270,12 @@ XkbSetNamedDeviceIndicator( Display * dpy,
Bool state,
Bool createNewMap,
XkbIndicatorMapPtr pMap)
-#else
-XkbSetNamedDeviceIndicator(dpy,device,class,id,name,changeState,
- state,createNewMap,pMap)
- Display * dpy;
- unsigned device;
- unsigned class;
- unsigned id;
- Atom name;
- Bool changeState;
- Bool state;
- Bool createNewMap;
- XkbIndicatorMapPtr pMap;
-#endif
{
register xkbSetNamedIndicatorReq *req;
XkbInfoPtr xkbi;
if ((dpy->flags & XlibDisplayNoXkb) || (name==None) ||
- (!dpy->xkb_info && !XkbUseExtension(dpy,NULL,NULL)) ||
- (pMap==NULL))
+ (!dpy->xkb_info && !XkbUseExtension(dpy,NULL,NULL)))
return False;
LockDisplay(dpy);
xkbi = dpy->xkb_info;
@@ -384,22 +318,12 @@ XkbSetNamedDeviceIndicator(dpy,device,class,id,name,changeState,
}
Bool
-#if NeedFunctionPrototypes
XkbSetNamedIndicator( Display * dpy,
Atom name,
Bool changeState,
Bool state,
Bool createNewMap,
XkbIndicatorMapPtr pMap)
-#else
-XkbSetNamedIndicator(dpy,name,changeState,state,createNewMap,pMap)
- Display * dpy;
- Atom name;
- Bool changeState;
- Bool state;
- Bool createNewMap;
- XkbIndicatorMapPtr pMap;
-#endif
{
return XkbSetNamedDeviceIndicator(dpy,XkbUseCoreKbd,
XkbDfltXIClass,XkbDfltXIId,
diff --git a/src/xkb/XKBlibint.h b/src/xkb/XKBlibint.h
index 5247cb7c..a154d1bc 100644
--- a/src/xkb/XKBlibint.h
+++ b/src/xkb/XKBlibint.h
@@ -24,6 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
+/* $XFree86: xc/lib/X11/XKBlibint.h,v 3.5 2003/04/18 18:21:45 torrey Exp $ */
#ifndef _XKBLIBINT_H_
#define _XKBLIBINT_H_
@@ -35,28 +36,22 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#define XkbXlibNewKeyboard (1<<1)
typedef int (*XkbKSToMBFunc)(
-#if NeedFunctionPrototypes
XPointer /* priv */,
KeySym /* sym */,
char * /* buf */,
int /* len */,
int * /* extra_rtrn */
-#endif
);
typedef KeySym (*XkbMBToKSFunc)(
-#if NeedFunctionPrototypes
XPointer /* priv */,
char * /* buf */,
int /* len */,
Status * /* status */
-#endif
);
typedef KeySym (*XkbToUpperFunc)(
-#if NeedFunctionPrototypes
KeySym /* sym */
-#endif
);
typedef struct _XkbConverters {
@@ -140,131 +135,103 @@ typedef struct _XkbReadBuffer {
_XFUNCPROTOBEGIN
extern void _XkbReloadDpy(
-#if NeedFunctionPrototypes
Display * /* dpy */
-#endif
);
extern KeySym _XKeycodeToKeysym(
-#if NeedFunctionPrototypes
Display* /* display */,
+#if NeedWidePrototypes
+ unsigned int /* keycode */,
+#else
KeyCode /* keycode */,
- int /* index */
#endif
+ int /* index */
);
extern KeyCode _XKeysymToKeycode(
-#if NeedFunctionPrototypes
Display* /* display */,
KeySym /* keysym */
-#endif
);
extern KeySym _XLookupKeysym(
-#if NeedFunctionPrototypes
XKeyEvent* /* key_event */,
int /* index */
-#endif
);
extern int _XRefreshKeyboardMapping(
-#if NeedFunctionPrototypes
XMappingEvent* /* event_map */
-#endif
);
extern unsigned _XKeysymToModifiers(
-#if NeedFunctionPrototypes
Display * /* dpy */,
KeySym /* ks */
-#endif
);
extern int _XTranslateKey(
-#if NeedFunctionPrototypes
register Display * /* dpy */,
KeyCode /* keycode */,
register unsigned int /* modifiers */,
unsigned int * /* modifiers_return */,
KeySym * /* keysym_return */
-#endif
);
extern int _XTranslateKeySym(
-#if NeedFunctionPrototypes
Display * /* dpy */,
register KeySym /* symbol */,
unsigned int /* modifiers */,
char * /* buffer */,
int /* nbytes */
-#endif
);
extern int _XLookupString(
-#if NeedFunctionPrototypes
register XKeyEvent * /* event */,
char * /* buffer */,
int /* nbytes */,
KeySym * /* keysym */,
XComposeStatus * /* status */
-#endif
);
extern void _XkbNoteCoreMapChanges(
-#if NeedFunctionPrototypes
XkbMapChangesRec * /* old */,
XMappingEvent * /* new */,
unsigned int /* wanted */
-#endif
);
extern int _XkbInitReadBuffer(
-#if NeedFunctionPrototypes
Display * /* dpy */,
XkbReadBufferPtr /* buf */,
int /* size */
-#endif
);
extern int _XkbSkipReadBufferData(
-#if NeedFunctionPrototypes
XkbReadBufferPtr /* from */,
int /* size */
-#endif
);
extern int _XkbCopyFromReadBuffer(
-#if NeedFunctionPrototypes
XkbReadBufferPtr /* from */,
char * /* to */,
int /* size */
-#endif
);
#if defined(WORD64) || defined(LONG64)
extern int _XkbReadCopyData32(
-#if NeedFunctionPrototypes
int * /* from */,
long * /* to */,
int /* num_words */
-#endif
);
extern int _XkbWriteCopyData32(
-#if NeedFunctionPrototypes
unsigned long * /* from */,
CARD32 * /* to */,
int /* num_words */
-#endif
);
extern int _XkbReadBufferCopy32(
-#if NeedFunctionPrototypes
XkbReadBufferPtr /* from */,
long * /* to */,
int /* size */
-#endif
);
#else
#define _XkbReadCopyData32(f,t,s) memcpy((char *)(t),(char *)(f),(s)*4)
@@ -278,23 +245,18 @@ extern int _XkbReadBufferCopy32(
#ifdef XKB_FORCE_INT_KEYSYM
extern int _XkbReadCopyKeySyms(
-#if NeedFunctionPrototypes
int * /* from */,
KeySym * /* to */,
int /* num_words */
-#endif
);
extern int _XkbWriteCopyKeySyms(
-#if NeedFunctionPrototypes
KeySym * /* from */,
CARD32 * /* to */,
int /* num_words */
-#endif
);
extern int _XkbReadBufferCopyKeySyms(
-#if NeedFunctionPrototypes
XkbReadBufferPtr /* from */,
#ifndef NO_DEC_BUG_FIX
KeySym * /* to */,
@@ -302,7 +264,6 @@ extern int _XkbReadBufferCopyKeySyms(
long * /* to */,
#endif
int /* size */
-#endif
);
#else
#define _XkbReadCopyKeySyms(f,t,n) _XkbReadCopyData32(f,t,n)
@@ -311,92 +272,70 @@ extern int _XkbReadBufferCopyKeySyms(
#endif
extern char *_XkbPeekAtReadBuffer(
-#if NeedFunctionPrototypes
XkbReadBufferPtr /* from */,
int /* size */
-#endif
);
extern char *_XkbGetReadBufferPtr(
-#if NeedFunctionPrototypes
XkbReadBufferPtr /* from */,
int /* size */
-#endif
);
#define _XkbGetTypedRdBufPtr(b,n,t) ((t *)_XkbGetReadBufferPtr(b,(n)*SIZEOF(t)))
extern int _XkbFreeReadBuffer(
-#if NeedFunctionPrototypes
XkbReadBufferPtr /* buf */
-#endif
);
extern Bool
_XkbGetReadBufferCountedString(
-#if NeedFunctionPrototypes
XkbReadBufferPtr /* buf */,
char ** /* rtrn */
-#endif
);
extern char *_XkbGetCharset(
-#if NeedFunctionPrototypes
void
-#endif
);
extern int _XkbGetConverters(
-#if NeedFunctionPrototypes
char * /* encoding_name */,
XkbConverters * /* cvt_rtrn */
-#endif
);
#ifdef NEED_MAP_READERS
extern Status _XkbReadGetMapReply(
-#if NeedFunctionPrototypes
Display * /* dpy */,
xkbGetMapReply * /* rep */,
XkbDescRec * /* xkb */,
int * /* nread_rtrn */
-#endif
);
extern Status _XkbReadGetCompatMapReply(
-#if NeedFunctionPrototypes
Display * /* dpy */,
xkbGetCompatMapReply * /* rep */,
XkbDescPtr /* xkb */,
int * /* nread_rtrn */
-#endif
);
extern Status _XkbReadGetIndicatorMapReply(
-#if NeedFunctionPrototypes
Display * /* dpy */,
xkbGetIndicatorMapReply * /* rep */,
XkbDescPtr /* xkb */,
int * /* nread_rtrn */
-#endif
);
extern Status _XkbReadGetNamesReply(
-#if NeedFunctionPrototypes
Display * /* dpy */,
xkbGetNamesReply * /* rep */,
XkbDescPtr /* xkb */,
int * /* nread_rtrn */
-#endif
);
extern Status _XkbReadGetGeometryReply(
-#if NeedFunctionPrototypes
Display * /* dpy */,
xkbGetGeometryReply * /* rep */,
XkbDescPtr /* xkb */,
int * /* nread_rtrn */
-#endif
);
#endif
diff --git a/src/xlibi18n/ICWrap.c b/src/xlibi18n/ICWrap.c
index be511f4a..73b16031 100644
--- a/src/xlibi18n/ICWrap.c
+++ b/src/xlibi18n/ICWrap.c
@@ -64,15 +64,16 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
+/* $XFree86: xc/lib/X11/ICWrap.c,v 1.10 2003/04/25 14:12:38 tsi Exp $ */
#define NEED_EVENTS
#include "Xlibint.h"
#include "Xlcint.h"
static int
-_XIMNestedListToNestedList(nlist, list)
- XIMArg *nlist; /* This is the new list */
- XIMArg *list; /* The original list */
+_XIMNestedListToNestedList(
+ XIMArg *nlist, /* This is the new list */
+ XIMArg *list) /* The original list */
{
register XIMArg *ptr = list;
@@ -90,9 +91,9 @@ _XIMNestedListToNestedList(nlist, list)
}
static void
-_XIMCountNestedList(args, total_count)
- XIMArg *args;
- int *total_count;
+_XIMCountNestedList(
+ XIMArg *args,
+ int *total_count)
{
for (; args->name; args++) {
if (!strcmp(args->name, XNVaNestedList))
@@ -102,15 +103,8 @@ _XIMCountNestedList(args, total_count)
}
}
-#if NeedVarargsPrototypes
static void
_XIMCountVaList(va_list var, int *total_count)
-#else
-static void
-_XIMCountVaList(var, total_count)
- va_list var;
- int *total_count;
-#endif
{
char *attr;
@@ -120,22 +114,14 @@ _XIMCountVaList(var, total_count)
if (!strcmp(attr, XNVaNestedList)) {
_XIMCountNestedList(va_arg(var, XIMArg*), total_count);
} else {
- va_arg(var, XIMArg*);
+ (void)va_arg(var, XIMArg*);
++(*total_count);
}
}
}
-#if NeedVarargsPrototypes
static void
_XIMVaToNestedList(va_list var, int max_count, XIMArg **args_return)
-#else
-static void
-_XIMVaToNestedList(var, max_count, args_return)
- va_list var;
- int max_count;
- XIMArg **args_return;
-#endif
{
XIMArg *args;
char *attr;
@@ -162,40 +148,26 @@ _XIMVaToNestedList(var, max_count, args_return)
}
/*ARGSUSED*/
-#if NeedVarargsPrototypes
XVaNestedList
XVaCreateNestedList(int dummy, ...)
-#else
-XVaNestedList
-XVaCreateNestedList(dummy, va_alist)
- int dummy;
- va_dcl
-#endif
{
va_list var;
XIMArg *args = NULL;
int total_count;
- Va_start(var, dummy);
+ va_start(var, dummy);
_XIMCountVaList(var, &total_count);
va_end(var);
- Va_start(var, dummy);
+ va_start(var, dummy);
_XIMVaToNestedList(var, total_count, &args);
va_end(var);
return (XVaNestedList)args;
}
-#if NeedVarargsPrototypes
char *
XSetIMValues(XIM im, ...)
-#else /* NeedVarargsPrototypes */
-char *
-XSetIMValues(im, va_alist)
- XIM im;
- va_dcl
-#endif /* NeedVarargsPrototypes */
{
va_list var;
int total_count;
@@ -205,14 +177,14 @@ XSetIMValues(im, va_alist)
/*
* so count the stuff dangling here
*/
- Va_start(var, im);
+ va_start(var, im);
_XIMCountVaList(var, &total_count);
va_end(var);
/*
* now package it up so we can send it along
*/
- Va_start(var, im);
+ va_start(var, im);
_XIMVaToNestedList(var, total_count, &args);
va_end(var);
@@ -221,15 +193,8 @@ XSetIMValues(im, va_alist)
return ret;
}
-#if NeedVarargsPrototypes
char *
XGetIMValues(XIM im, ...)
-#else /* NeedVarargsPrototypes */
-char *
-XGetIMValues(im, va_alist)
- XIM im;
- va_dcl
-#endif /* NeedVarargsPrototypes */
{
va_list var;
int total_count;
@@ -239,14 +204,14 @@ XGetIMValues(im, va_alist)
/*
* so count the stuff dangling here
*/
- Va_start(var, im);
+ va_start(var, im);
_XIMCountVaList(var, &total_count);
va_end(var);
/*
* now package it up so we can send it along
*/
- Va_start(var, im);
+ va_start(var, im);
_XIMVaToNestedList(var, total_count, &args);
va_end(var);
@@ -260,15 +225,8 @@ XGetIMValues(im, va_alist)
* and return a pointer to the input context.
*/
-#if NeedVarargsPrototypes
XIC
XCreateIC(XIM im, ...)
-#else
-XIC
-XCreateIC(im, va_alist)
- XIM im; /* specified the attached input method */
- va_dcl /* specified variable length argment list */
-#endif
{
va_list var;
int total_count;
@@ -278,14 +236,14 @@ XCreateIC(im, va_alist)
/*
* so count the stuff dangling here
*/
- Va_start(var, im);
+ va_start(var, im);
_XIMCountVaList(var, &total_count);
va_end(var);
/*
* now package it up so we can send it along
*/
- Va_start(var, im);
+ va_start(var, im);
_XIMVaToNestedList(var, total_count, &args);
va_end(var);
@@ -320,15 +278,8 @@ XDestroyIC(ic)
Xfree ((char *) ic);
}
-#if NeedVarargsPrototypes
char *
XGetICValues(XIC ic, ...)
-#else
-char *
-XGetICValues(ic, va_alist)
- XIC ic;
- va_dcl
-#endif
{
va_list var;
int total_count;
@@ -341,14 +292,14 @@ XGetICValues(ic, va_alist)
/*
* so count the stuff dangling here
*/
- Va_start(var, ic);
+ va_start(var, ic);
_XIMCountVaList(var, &total_count);
va_end(var);
/*
* now package it up so we can send it along
*/
- Va_start(var, ic);
+ va_start(var, ic);
_XIMVaToNestedList(var, total_count, &args);
va_end(var);
@@ -357,15 +308,8 @@ XGetICValues(ic, va_alist)
return ret;
}
-#if NeedVarargsPrototypes
char *
XSetICValues(XIC ic, ...)
-#else
-char *
-XSetICValues(ic, va_alist)
- XIC ic;
- va_dcl
-#endif
{
va_list var;
int total_count;
@@ -378,14 +322,14 @@ XSetICValues(ic, va_alist)
/*
* so count the stuff dangling here
*/
- Va_start(var, ic);
+ va_start(var, ic);
_XIMCountVaList(var, &total_count);
va_end(var);
/*
* now package it up so we can send it along
*/
- Va_start(var, ic);
+ va_start(var, ic);
_XIMVaToNestedList(var, total_count, &args);
va_end(var);
@@ -402,7 +346,7 @@ void
XSetICFocus(ic)
XIC ic;
{
- if (ic->core.im)
+ if (ic && ic->core.im)
(*ic->methods->set_focus) (ic);
}
@@ -428,7 +372,8 @@ XIMOfIC(ic)
return ic->core.im;
}
-char *XmbResetIC(ic)
+char *
+XmbResetIC(ic)
XIC ic;
{
if (ic->core.im)
@@ -436,7 +381,8 @@ char *XmbResetIC(ic)
return (char *)NULL;
}
-wchar_t *XwcResetIC(ic)
+wchar_t *
+XwcResetIC(ic)
XIC ic;
{
if (ic->core.im)
@@ -444,6 +390,19 @@ wchar_t *XwcResetIC(ic)
return (wchar_t *)NULL;
}
+char *
+Xutf8ResetIC(ic)
+ XIC ic;
+{
+ if (ic->core.im) {
+ if (ic->methods->utf8_reset)
+ return (*ic->methods->utf8_reset)(ic);
+ else if (ic->methods->mb_reset)
+ return (*ic->methods->mb_reset)(ic);
+ }
+ return (char *)NULL;
+}
+
int
XmbLookupString(ic, ev, buffer, nbytes, keysym, status)
XIC ic;
@@ -473,3 +432,23 @@ XwcLookupString(ic, ev, buffer, nchars, keysym, status)
keysym, status);
return XLookupNone;
}
+
+int
+Xutf8LookupString(ic, ev, buffer, nbytes, keysym, status)
+ XIC ic;
+ register XKeyEvent *ev;
+ char *buffer;
+ int nbytes;
+ KeySym *keysym;
+ Status *status;
+{
+ if (ic->core.im) {
+ if (ic->methods->utf8_lookup_string)
+ return (*ic->methods->utf8_lookup_string) (ic, ev, buffer, nbytes,
+ keysym, status);
+ else if (ic->methods->mb_lookup_string)
+ return (*ic->methods->mb_lookup_string) (ic, ev, buffer, nbytes,
+ keysym, status);
+ }
+ return XLookupNone;
+}
diff --git a/src/xlibi18n/IMWrap.c b/src/xlibi18n/IMWrap.c
index fc8e6426..8cfef782 100644
--- a/src/xlibi18n/IMWrap.c
+++ b/src/xlibi18n/IMWrap.c
@@ -1,5 +1,5 @@
/*
- * $Xorg: IMWrap.c,v 1.4 2001/02/09 02:03:33 xorgcvs Exp $
+ * $Xorg: IMWrap.c,v 1.3 2000/08/17 19:44:37 cpqbld Exp $
*/
/*
@@ -57,6 +57,8 @@ from The Open Group.
*/
+/* $XFree86: xc/lib/X11/IMWrap.c,v 3.8 2001/12/14 19:54:01 dawes Exp $ */
+
#include "Xlibint.h"
#include "Xlcint.h"
@@ -96,7 +98,7 @@ _XCopyToArg(src, dst, size)
memcpy((char *)&u, (char *)src, (int)size);
if (size == sizeof(long)) *dst = (XPointer)u.longval;
#ifdef LONG64
- else if (size == sizeof(int)) *dst = (XPointer)u.intval;
+ else if (size == sizeof(int)) *dst = (XPointer)(long)u.intval;
#endif
else if (size == sizeof(short)) *dst = (XPointer)(long)u.shortval;
else if (size == sizeof(char)) *dst = (XPointer)(long)u.charval;
@@ -174,14 +176,13 @@ XLocaleOfIM(im)
* on-demand input method instantiation.
*/
Bool
-XRegisterIMInstantiateCallback( display, rdb, res_name, res_class, callback,
- client_data)
- Display *display;
- XrmDatabase rdb;
- char *res_name;
- char *res_class;
- XIMProc callback;
- XPointer *client_data;
+XRegisterIMInstantiateCallback(
+ Display *display,
+ XrmDatabase rdb,
+ char *res_name,
+ char *res_class,
+ XIDProc callback,
+ XPointer client_data)
{
XLCd lcd = _XOpenLC( (char *)NULL );
@@ -196,14 +197,13 @@ XRegisterIMInstantiateCallback( display, rdb, res_name, res_class, callback,
* Unregister to a input method instantiation callback.
*/
Bool
-XUnregisterIMInstantiateCallback( display, rdb, res_name, res_class, callback,
- client_data )
- Display *display;
- XrmDatabase rdb;
- char *res_name;
- char *res_class;
- XIMProc callback;
- XPointer *client_data;
+XUnregisterIMInstantiateCallback(
+ Display *display,
+ XrmDatabase rdb,
+ char *res_name,
+ char *res_class,
+ XIDProc callback,
+ XPointer client_data)
{
XLCd lcd = _XlcCurrentLC();
diff --git a/src/xlibi18n/XDefaultIMIF.c b/src/xlibi18n/XDefaultIMIF.c
index e31c207b..6ab3ac6b 100644
--- a/src/xlibi18n/XDefaultIMIF.c
+++ b/src/xlibi18n/XDefaultIMIF.c
@@ -41,6 +41,7 @@ interest in or to any trademark, service mark, logo or trade name of
Sun Microsystems, Inc. or its licensors is granted.
*/
+/* $XFree86: xc/lib/X11/XDefaultIMIF.c,v 1.3 2003/04/13 19:22:18 dawes Exp $ */
#include <stdio.h>
#define NEED_EVENTS
@@ -73,27 +74,19 @@ typedef struct _StaticXIM {
} StaticXIMRec;
static Status _CloseIM(
-#if NeedFunctionPrototypes
XIM
-#endif
);
static char *_SetIMValues(
-#if NeedFunctionPrototypes
XIM, XIMArg *
-#endif
);
static char *_GetIMValues(
-#if NeedFunctionPrototypes
XIM, XIMArg*
-#endif
);
static XIC _CreateIC(
-#if NeedFunctionPrototypes
XIM, XIMArg*
-#endif
);
static _Xconst XIMMethodsRec local_im_methods = {
@@ -106,49 +99,31 @@ static _Xconst XIMMethodsRec local_im_methods = {
};
static void _DestroyIC(
-#if NeedFunctionPrototypes
XIC
-#endif
);
static void _SetFocus(
-#if NeedFunctionPrototypes
XIC
-#endif
);
static void _UnsetFocus(
-#if NeedFunctionPrototypes
XIC
-#endif
);
static char* _SetICValues(
-#if NeedFunctionPrototypes
XIC, XIMArg *
-#endif
);
static char* _GetICValues(
-#if NeedFunctionPrototypes
XIC, XIMArg *
-#endif
);
static char *_MbReset(
-#if NeedFunctionPrototypes
XIC
-#endif
);
static wchar_t *_WcReset(
-#if NeedFunctionPrototypes
XIC
-#endif
);
static int _MbLookupString(
-#if NeedFunctionPrototypes
XIC, XKeyEvent *, char *, int, KeySym *, Status *
-#endif
);
static int _WcLookupString(
-#if NeedFunctionPrototypes
XIC, XKeyEvent *, wchar_t *, int, KeySym *, Status *
-#endif
);
static _Xconst XICMethodsRec local_ic_methods = {
@@ -159,19 +134,20 @@ static _Xconst XICMethodsRec local_ic_methods = {
_GetICValues, /* get_values */
_MbReset, /* mb_reset */
_WcReset, /* wc_reset */
+ NULL, /* utf8_reset */ /* ??? */
_MbLookupString, /* mb_lookup_string */
_WcLookupString, /* wc_lookup_string */
+ NULL /* utf8_lookup_string */ /* ??? */
};
XIM
-_XDefaultOpenIM(lcd, dpy, rdb, res_name, res_class)
-XLCd lcd;
-Display *dpy;
-XrmDatabase rdb;
-char *res_name, *res_class;
+_XDefaultOpenIM(
+ XLCd lcd,
+ Display *dpy,
+ XrmDatabase rdb,
+ char *res_name,
+ char *res_class)
{
- FILE *fp;
- char *name;
StaticXIM im;
XIMStaticXIMRec *local_impart;
XlcConv ctom_conv, ctow_conv;
@@ -240,9 +216,6 @@ char *res_name, *res_class;
}
return (XIM)im;
-Error1 :
- if(im->core.im_name)
- Xfree(im->core.im_name);
Error2 :
Xfree(im->private);
Xfree(im->core.im_name);
@@ -253,8 +226,7 @@ Error2 :
}
static Status
-_CloseIM(xim)
-XIM xim;
+_CloseIM(XIM xim)
{
StaticXIM im = (StaticXIM)xim;
_XlcCloseConverter(im->private->ctom_conv);
@@ -280,10 +252,7 @@ XIM xim;
XIMArg *values;
{
XIMArg *p;
- XIMStyles **value;
XIMStyles *styles;
- int i;
- XIMStyles *p_style;
for (p = values; p->name != NULL; p++) {
if (strcmp(p->name, XNQueryInputStyle) == 0) {
@@ -301,13 +270,9 @@ XIMArg *values;
}
static char*
-_SetICValueData(ic, values, mode)
-XIC ic;
-XIMArg *values;
-XICOp_t mode;
+_SetICValueData(XIC ic, XIMArg *values, XICOp_t mode)
{
XIMArg *p;
- int i;
char *return_name = NULL;
for (p = values; p != NULL && p->name != NULL; p++) {
@@ -331,10 +296,7 @@ XICOp_t mode;
}
static char*
-_GetICValueData(ic, values, mode)
-XIC ic;
-XIMArg *values;
-XICOp_t mode;
+_GetICValueData(XIC ic, XIMArg *values, XICOp_t mode)
{
XIMArg *p;
char *return_name = NULL;
@@ -361,9 +323,7 @@ XICOp_t mode;
}
static XIC
-_CreateIC(im, arg)
-XIM im;
-XIMArg *arg;
+_CreateIC(XIM im, XIMArg *arg)
{
XIC ic;
@@ -387,9 +347,8 @@ err_return:
return ((XIC)NULL);
}
-static void
-_DestroyIC(ic)
-XIC ic;
+static void
+_DestroyIC(XIC ic)
{
/*BugId4255571. This Xfree() should be removed because XDestroyIC() still need ic after invoking _DestroyIC() and there is a XFree(ic) at the end of XDestroyIC() already.
if(ic)
@@ -403,15 +362,12 @@ XIC ic;
}
static void
-_UnsetFocus(ic)
-XIC ic;
+_UnsetFocus(XIC ic)
{
}
static char*
-_SetICValues(ic, args)
-XIC ic;
-XIMArg *args;
+_SetICValues(XIC ic, XIMArg *args)
{
char *ret = NULL;
if (!ic) {
@@ -422,9 +378,7 @@ XIMArg *args;
}
static char*
-_GetICValues(ic, args)
-XIC ic;
-XIMArg *args;
+_GetICValues(XIC ic, XIMArg *args)
{
char *ret = NULL;
if (!ic) {
@@ -435,27 +389,25 @@ XIMArg *args;
}
static char *
-_MbReset(xic)
-XIC xic;
+_MbReset(XIC xic)
{
return(NULL);
}
static wchar_t *
-_WcReset(xic)
-XIC xic;
+_WcReset(XIC xic)
{
return(NULL);
}
static int
-_MbLookupString(xic, ev, buffer, bytes, keysym, status)
-XIC xic;
-XKeyEvent *ev;
-char * buffer;
-int bytes;
-KeySym *keysym;
-Status *status;
+_MbLookupString(
+ XIC xic,
+ XKeyEvent *ev,
+ char * buffer,
+ int bytes,
+ KeySym *keysym,
+ Status *status)
{
XComposeStatus NotSupportedYet ;
int length;
@@ -473,13 +425,13 @@ Status *status;
}
static int
-_WcLookupString(xic, ev, buffer, wlen, keysym, status)
-XIC xic;
-XKeyEvent *ev;
-wchar_t * buffer;
-int wlen;
-KeySym *keysym;
-Status *status;
+_WcLookupString(
+ XIC xic,
+ XKeyEvent *ev,
+ wchar_t * buffer,
+ int wlen,
+ KeySym *keysym,
+ Status *status)
{
XComposeStatus NotSupportedYet ;
int length;
diff --git a/src/xlibi18n/XDefaultOMIF.c b/src/xlibi18n/XDefaultOMIF.c
index 1bb09dac..9182d6de 100644
--- a/src/xlibi18n/XDefaultOMIF.c
+++ b/src/xlibi18n/XDefaultOMIF.c
@@ -41,6 +41,8 @@ interest in or to any trademark, service mark, logo or trade name of
Sun Microsystems, Inc. or its licensors is granted.
*/
+/* $XFree86: xc/lib/X11/XDefaultOMIF.c,v 1.5 2003/04/17 02:39:56 dawes Exp $ */
+
#include "Xlibint.h"
#include "Xlcint.h"
#include "XlcPublic.h"
@@ -97,8 +99,8 @@ typedef struct _XOCGenericRec {
} XOCGenericRec, *XOCGeneric;
static Bool
-init_fontset(oc)
- XOC oc;
+init_fontset(
+ XOC oc)
{
XOCGenericPart *gen;
FontSet font_set;
@@ -121,9 +123,9 @@ init_fontset(oc)
}
static char *
-get_prop_name(dpy, fs)
- Display *dpy;
- XFontStruct *fs;
+get_prop_name(
+ Display *dpy,
+ XFontStruct *fs)
{
unsigned long fp;
@@ -134,9 +136,9 @@ get_prop_name(dpy, fs)
}
static FontData
-check_charset(font_set, font_name)
- FontSet font_set;
- char *font_name;
+check_charset(
+ FontSet font_set,
+ char *font_name)
{
FontData font_data;
char *last;
@@ -161,10 +163,11 @@ check_charset(font_set, font_name)
return (FontData) NULL;
}
+#if 0 /* Unused */
static int
-check_fontname(oc, name)
-XOC oc;
-char *name;
+check_fontname(
+ XOC oc,
+ char *name)
{
Display *dpy = oc->core.om->core.display;
XOCGenericPart *gen = XOC_GENERIC(oc);
@@ -214,10 +217,11 @@ char *name;
XFreeFontNames(fn_list);
return found_num;
}
+#endif
static Bool
-load_font(oc)
- XOC oc;
+load_font(
+ XOC oc)
{
Display *dpy = oc->core.om->core.display;
XOCGenericPart *gen = XOC_GENERIC(oc);
@@ -234,9 +238,10 @@ load_font(oc)
return True;
}
+#if 0
static Bool
-load_font_info(oc)
- XOC oc;
+load_font_info(
+ XOC oc)
{
Display *dpy = oc->core.om->core.display;
XOCGenericPart *gen = XOC_GENERIC(oc);
@@ -259,10 +264,11 @@ load_font_info(oc)
}
return True;
}
+#endif
static void
-set_fontset_extents(oc)
- XOC oc;
+set_fontset_extents(
+ XOC oc)
{
XRectangle *ink = &oc->core.font_set_extents.max_ink_extent;
XRectangle *logical = &oc->core.font_set_extents.max_logical_extent;
@@ -289,8 +295,8 @@ set_fontset_extents(oc)
}
static Bool
-init_core_part(oc)
- XOC oc;
+init_core_part(
+ XOC oc)
{
XOCGenericPart *gen = XOC_GENERIC(oc);
FontSet font_set;
@@ -351,9 +357,9 @@ err:
}
static char *
-get_font_name(oc, pattern)
- XOC oc;
- char *pattern;
+get_font_name(
+ XOC oc,
+ char *pattern)
{
char **list, *name, *prop_name;
int count;
@@ -384,8 +390,8 @@ get_font_name(oc, pattern)
}
static int
-parse_fontname(oc)
- XOC oc;
+parse_fontname(
+ XOC oc)
{
XOCGenericPart *gen = XOC_GENERIC(oc);
FontSet font_set;
@@ -395,7 +401,7 @@ parse_fontname(oc)
ssize_t length;
int count, num_fields;
char *base_name, *font_name, **name_list, **cur_name_list;
- char *charset_p;
+ char *charset_p = NULL;
Bool append_charset;
/*
append_charset flag should be set to True when the XLFD fontname
@@ -546,8 +552,8 @@ err:
}
static Bool
-set_missing_list(oc)
- XOC oc;
+set_missing_list(
+ XOC oc)
{
XOCGenericPart *gen = XOC_GENERIC(oc);
FontSet font_set;
@@ -588,10 +594,9 @@ set_missing_list(oc)
}
static Bool
-create_fontset(oc)
- XOC oc;
+create_fontset(
+ XOC oc)
{
- XOMGenericPart *gen = XOM_GENERIC(oc->core.om);
int found_num;
if (init_fontset(oc) == False)
@@ -617,8 +622,8 @@ create_fontset(oc)
}
static void
-destroy_oc(oc)
- XOC oc;
+destroy_oc(
+ XOC oc)
{
Display *dpy = oc->core.om->core.display;
XOCGenericPart *gen = XOC_GENERIC(oc);
@@ -633,8 +638,8 @@ destroy_oc(oc)
if (oc->core.font_info.font_name_list)
XFreeStringList(oc->core.font_info.font_name_list);
- if (font_list = oc->core.font_info.font_struct_list) {
- if (font = *font_list) {
+ if ((font_list = oc->core.font_info.font_struct_list)) {
+ if ((font = *font_list)) {
if (font->fid)
XFreeFont(dpy, font);
else
@@ -657,10 +662,10 @@ destroy_oc(oc)
}
static char *
-set_oc_values(oc, args, num_args)
- XOC oc;
- XlcArgList args;
- int num_args;
+set_oc_values(
+ XOC oc,
+ XlcArgList args,
+ int num_args)
{
if (oc->core.resources == NULL)
return NULL;
@@ -670,10 +675,10 @@ set_oc_values(oc, args, num_args)
}
static char *
-get_oc_values(oc, args, num_args)
- XOC oc;
- XlcArgList args;
- int num_args;
+get_oc_values(
+ XOC oc,
+ XlcArgList args,
+ int num_args)
{
if (oc->core.resources == NULL)
return NULL;
@@ -683,11 +688,11 @@ get_oc_values(oc, args, num_args)
}
static Bool
-wcs_to_mbs(oc, to, from, length)
- XOC oc;
- char *to;
- wchar_t *from;
- int length;
+wcs_to_mbs(
+ XOC oc,
+ char *to,
+ _Xconst wchar_t *from,
+ int length)
{
XlcConv conv = XOC_GENERIC(oc)->wcs_to_cs;
XLCd lcd;
@@ -711,31 +716,17 @@ wcs_to_mbs(oc, to, from, length)
}
static int
-#if NeedFunctionPrototypes
_XmbDefaultTextEscapement(XOC oc, _Xconst char *text, int length)
-#else
-_XmbDefaultTextEscapement(oc, text, length)
- XOC oc;
- char *text;
- int length;
-#endif
{
return XTextWidth(*oc->core.font_info.font_struct_list, text, length);
}
static int
-#if NeedFunctionPrototypes
_XwcDefaultTextEscapement(XOC oc, _Xconst wchar_t *text, int length)
-#else
-_XwcDefaultTextEscapement(oc, text, length)
- XOC oc;
- wchar_t *text;
- int length;
-#endif
{
DefineLocalBuf;
char *buf = AllocLocalBuf(length);
- int ret;
+ int ret = 0;
if (buf == NULL)
return 0;
@@ -752,17 +743,8 @@ err:
}
static int
-#if NeedFunctionPrototypes
_XmbDefaultTextExtents(XOC oc, _Xconst char *text, int length,
XRectangle *overall_ink, XRectangle *overall_logical)
-#else
-_XmbDefaultTextExtents(oc, text, length, overall_ink, overall_logical)
- XOC oc;
- char *text;
- int length;
- XRectangle *overall_ink;
- XRectangle *overall_logical;
-#endif
{
int direction, logical_ascent, logical_descent;
XCharStruct overall;
@@ -788,21 +770,12 @@ _XmbDefaultTextExtents(oc, text, length, overall_ink, overall_logical)
}
static int
-#if NeedFunctionPrototypes
_XwcDefaultTextExtents(XOC oc, _Xconst wchar_t *text, int length,
XRectangle *overall_ink, XRectangle *overall_logical)
-#else
-_XwcDefaultTextExtents(oc, text, length, overall_ink, overall_logical)
- XOC oc;
- wchar_t *text;
- int length;
- XRectangle *overall_ink;
- XRectangle *overall_logical;
-#endif
{
DefineLocalBuf;
char *buf = AllocLocalBuf(length);
- int ret;
+ int ret = 0;
if (buf == NULL)
return 0;
@@ -819,25 +792,11 @@ err:
}
static Status
-#if NeedFunctionPrototypes
_XmbDefaultTextPerCharExtents(XOC oc, _Xconst char *text, int length,
XRectangle *ink_buf, XRectangle *logical_buf,
int buf_size, int *num_chars,
XRectangle *overall_ink,
XRectangle *overall_logical)
-#else
-_XmbDefaultTextPerCharExtents(oc, text, length, ink_buf, logical_buf, buf_size,
- num_chars, overall_ink, overall_logical)
- XOC oc;
- char *text;
- int length;
- XRectangle *ink_buf;
- XRectangle *logical_buf;
- int buf_size;
- int *num_chars;
- XRectangle *overall_ink;
- XRectangle *overall_logical;
-#endif
{
XFontStruct *font = *oc->core.font_info.font_struct_list;
XCharStruct *def, *cs, overall;
@@ -902,29 +861,15 @@ _XmbDefaultTextPerCharExtents(oc, text, length, ink_buf, logical_buf, buf_size,
}
static Status
-#if NeedFunctionPrototypes
_XwcDefaultTextPerCharExtents(XOC oc, _Xconst wchar_t *text, int length,
XRectangle *ink_buf, XRectangle *logical_buf,
int buf_size, int *num_chars,
XRectangle *overall_ink,
XRectangle *overall_logical)
-#else
-_XwcDefaultTextPerCharExtents(oc, text, length, ink_buf, logical_buf, buf_size,
- num_chars, overall_ink, overall_logical)
- XOC oc;
- wchar_t *text;
- int length;
- XRectangle *ink_buf;
- XRectangle *logical_buf;
- int buf_size;
- int *num_chars;
- XRectangle *overall_ink;
- XRectangle *overall_logical;
-#endif
{
DefineLocalBuf;
char *buf = AllocLocalBuf(length);
- Status ret;
+ Status ret = 0;
if (buf == NULL)
return 0;
@@ -943,19 +888,8 @@ err:
}
static int
-#if NeedFunctionPrototypes
_XmbDefaultDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
_Xconst char *text, int length)
-#else
-_XmbDefaultDrawString(dpy, d, oc, gc, x, y, text, length)
- Display *dpy;
- Drawable d;
- XOC oc;
- GC gc;
- int x, y;
- char *text;
- int length;
-#endif
{
XFontStruct *font = *oc->core.font_info.font_struct_list;
@@ -966,23 +900,12 @@ _XmbDefaultDrawString(dpy, d, oc, gc, x, y, text, length)
}
static int
-#if NeedFunctionPrototypes
_XwcDefaultDrawString(Display *dpy, Drawable d, XOC oc, GC gc, int x, int y,
_Xconst wchar_t *text, int length)
-#else
-_XwcDefaultDrawString(dpy, d, oc, gc, x, y, text, length)
- Display *dpy;
- Drawable d;
- XOC oc;
- GC gc;
- int x, y;
- wchar_t *text;
- int length;
-#endif
{
DefineLocalBuf;
char *buf = AllocLocalBuf(length);
- int ret;
+ int ret = 0;
if (buf == NULL)
return 0;
@@ -999,38 +922,16 @@ err:
}
static void
-#if NeedFunctionPrototypes
_XmbDefaultDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
int y, _Xconst char *text, int length)
-#else
-_XmbDefaultDrawImageString(dpy, d, oc, gc, x, y, text, length)
- Display *dpy;
- Drawable d;
- XOC oc;
- GC gc;
- int x, y;
- char *text;
- int length;
-#endif
{
XSetFont(dpy, gc, (*oc->core.font_info.font_struct_list)->fid);
XDrawImageString(dpy, d, gc, x, y, text, length);
}
static void
-#if NeedFunctionPrototypes
_XwcDefaultDrawImageString(Display *dpy, Drawable d, XOC oc, GC gc, int x,
int y, _Xconst wchar_t *text, int length)
-#else
-_XwcDefaultDrawImageString(dpy, d, oc, gc, x, y, text, length)
- Display *dpy;
- Drawable d;
- XOC oc;
- GC gc;
- int x, y;
- wchar_t *text;
- int length;
-#endif
{
DefineLocalBuf;
char *buf = AllocLocalBuf(length);
@@ -1083,13 +984,12 @@ static XlcResource oc_resources[] = {
};
static XOC
-create_oc(om, args, num_args)
- XOM om;
- XlcArgList args;
- int num_args;
+create_oc(
+ XOM om,
+ XlcArgList args,
+ int num_args)
{
XOC oc;
- XOMGenericPart *gen = XOM_GENERIC(om);
oc = (XOC) Xmalloc(sizeof(XOCGenericRec));
if (oc == NULL)
@@ -1125,15 +1025,15 @@ err:
}
static Status
-close_om(om)
- XOM om;
+close_om(
+ XOM om)
{
XOMGenericPart *gen = XOM_GENERIC(om);
OMData data;
FontData font_data;
int count;
- if (data = gen->data) {
+ if ((data = gen->data)) {
if (data->font_data) {
for (font_data = data->font_data, count = data->font_data_count;
count-- > 0 ; font_data++) {
@@ -1162,10 +1062,10 @@ close_om(om)
}
static char *
-set_om_values(om, args, num_args)
- XOM om;
- XlcArgList args;
- int num_args;
+set_om_values(
+ XOM om,
+ XlcArgList args,
+ int num_args)
{
if (om->core.resources == NULL)
return NULL;
@@ -1175,10 +1075,10 @@ set_om_values(om, args, num_args)
}
static char *
-get_om_values(om, args, num_args)
- XOM om;
- XlcArgList args;
- int num_args;
+get_om_values(
+ XOM om,
+ XlcArgList args,
+ int num_args)
{
if (om->core.resources == NULL)
return NULL;
@@ -1206,8 +1106,8 @@ static XlcResource om_resources[] = {
};
static OMData
-add_data(om)
- XOM om;
+add_data(
+ XOM om)
{
XOMGenericPart *gen = XOM_GENERIC(om);
OMData new;
@@ -1236,10 +1136,9 @@ static _Xconst char *supported_charset_list[] = {
};
static Bool
-init_om(om)
- XOM om;
+init_om(
+ XOM om)
{
- XLCd lcd = om->core.lcd;
XOMGenericPart *gen = XOM_GENERIC(om);
OMData data;
FontData font_data;
@@ -1319,17 +1218,8 @@ supported_charset_list[].
}
XOM
-#if NeedFunctionPrototypes
_XDefaultOpenOM(XLCd lcd, Display *dpy, XrmDatabase rdb,
_Xconst char *res_name, _Xconst char *res_class)
-#else
-_XDefaultOpenOM(lcd, dpy, rdb, res_name, res_class)
-XLCd lcd;
-Display *dpy;
-XrmDatabase rdb;
-char *res_name;
-char *res_class;
-#endif
{
XOM om;
diff --git a/src/xlibi18n/XimImSw.h b/src/xlibi18n/XimImSw.h
index eac27843..8ad5d287 100644
--- a/src/xlibi18n/XimImSw.h
+++ b/src/xlibi18n/XimImSw.h
@@ -26,25 +26,20 @@ PERFORMANCE OF THIS SOFTWARE.
fujiwara@a80.tech.yk.fujitsu.co.jp
******************************************************************/
+/* $XFree86$ */
#ifndef _XIMIMSW_H
#define _XIMIMSW_H
typedef struct {
Bool (*checkprocessing)(
-#if NeedNestedPrototypes
Xim im
-#endif
);
Bool (*im_open)(
-#if NeedNestedPrototypes
Xim im
-#endif
);
void (*im_free)(
-#if NeedNestedPrototypes
Xim im
-#endif
);
} XimImsportSW;
diff --git a/src/xlibi18n/XimThai.h b/src/xlibi18n/XimThai.h
index b883a6ef..5b2666eb 100644
--- a/src/xlibi18n/XimThai.h
+++ b/src/xlibi18n/XimThai.h
@@ -45,6 +45,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.
******************************************************************/
+/* $XFree86: xc/lib/X11/XimThai.h,v 1.5 2001/12/14 19:54:08 dawes Exp $ */
/*
**++
@@ -65,7 +66,7 @@ SOFTWARE.
#include <X11/Xlib.h>
-/* Classification of characters in TACTIS according to WTT */
+/* Classification of characters in TIS620 according to WTT */
#define CTRL 0 /* control chars */
#define NON 1 /* non composibles */
@@ -108,94 +109,4 @@ SOFTWARE.
#define NOISC 255 /* No ISC */
-/* Function prototypes (thaisub.c) */
-
-Private
-int THAI_chtype ( /* returns classification of a char */
-#if NeedFunctionPrototypes
- unsigned char ch
-#endif
-);
-
-Private
-int THAI_chlevel ( /* returns the display level */
-#if NeedFunctionPrototypes
- unsigned char ch
-#endif
-);
-
-Private
-Bool THAI_isdead ( /* return True if char is non-spacing */
-#if NeedFunctionPrototypes
- unsigned char ch
-#endif
-);
-
-Private
-Bool THAI_iscons ( /* return True if char is consonant */
-#if NeedFunctionPrototypes
- unsigned char ch
-#endif
-);
-
-Private
-Bool THAI_isvowel ( /* return True if char is vowel */
-#if NeedFunctionPrototypes
- unsigned char ch
-#endif
-);
-
-Private
-Bool THAI_istone ( /* return True if char is tonemark */
-#if NeedFunctionPrototypes
- unsigned char ch
-#endif
-);
-
-Private
-Bool THAI_iscomposible (
-#if NeedFunctionPrototypes
- unsigned char follow_ch,
- unsigned char lead_ch
-#endif
-);
-
-Private
-Bool THAI_isaccepted (
-#if NeedFunctionPrototypes
- unsigned char follow_ch,
- unsigned char lead_ch,
- unsigned char isc_mode
-#endif
-);
-
-Private
-void THAI_apply_write_rules (
-#if NeedFunctionPrototypes
- unsigned char *instr,
- unsigned char *outstr,
- unsigned char insert_ch,
- int *num_insert_ch
-#endif
-);
-
-Private
-int THAI_find_chtype (
-#if NeedFunctionPrototypes
- unsigned char *instr,
- int chtype
-#endif
-);
-
-Private
-int THAI_apply_scm (
-#if NeedFunctionPrototypes
- unsigned char *instr,
- unsigned char *outstr,
- unsigned char spec_ch,
- int num_sp,
- unsigned char insert_ch
-#endif
-);
-
#endif /* _XIMTHAI_H_ */
diff --git a/src/xlibi18n/XimTrInt.h b/src/xlibi18n/XimTrInt.h
index b10898b3..cc1cabfa 100644
--- a/src/xlibi18n/XimTrInt.h
+++ b/src/xlibi18n/XimTrInt.h
@@ -28,21 +28,18 @@ OR PERFORMANCE OF THIS SOFTWARE.
fujiwara@a80.tech.yk.fujitsu.co.jp
******************************************************************/
+/* $XFree86$ */
#ifndef _XIMTRINT_H
#define _XIMTRINT_H
-#if NeedFunctionPrototypes
#include "Ximint.h"
-#endif
typedef struct {
char *transportname;
Bool (*config)(
-#if NeedFunctionPrototypes
Xim,
char *
-#endif
);
} TransportSW;
@@ -53,19 +50,15 @@ extern TransportSW _XimTransportRec[];
*/
extern Bool _XimXConf(
-#if NeedFunctionPrototypes
Xim im,
char *address
-#endif
);
#if defined(TCPCONN) || defined(UNIXCONN) || defined(DNETCONN) || defined(STREAMSCONN)
extern Bool _XimTransConf(
-#if NeedFunctionPrototypes
Xim im,
char *address
-#endif
);
#endif
diff --git a/src/xlibi18n/XimTrX.h b/src/xlibi18n/XimTrX.h
index 489a0e3c..a4378439 100644
--- a/src/xlibi18n/XimTrX.h
+++ b/src/xlibi18n/XimTrX.h
@@ -28,6 +28,7 @@ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
fujiwara@a80.tech.yk.fujitsu.co.jp
******************************************************************/
+/* $XFree86$ */
#ifndef _XIMTRX_H
#define _XIMTRX_H
@@ -36,9 +37,7 @@ typedef struct _XIntrCallbackRec *XIntrCallbackPtr;
typedef struct _XIntrCallbackRec {
Bool (*func)(
-#if NeedNestedPrototypes
Xim, INT16, XPointer, XPointer
-#endif
);
XPointer call_data;
XIntrCallbackPtr next;
diff --git a/src/xlibi18n/XimTrans.h b/src/xlibi18n/XimTrans.h
index 6914190e..f75270b2 100644
--- a/src/xlibi18n/XimTrans.h
+++ b/src/xlibi18n/XimTrans.h
@@ -28,6 +28,7 @@ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
fujiwara@a80.tech.yk.fujitsu.co.jp
******************************************************************/
+/* $XFree86: xc/lib/X11/XimTrans.h,v 1.3 2003/10/24 15:34:00 tsi Exp $ */
#ifndef _XIMTRANS_H
#define _XIMTRANS_H
@@ -36,9 +37,7 @@ typedef struct _TransIntrCallbackRec *TransIntrCallbackPtr;
typedef struct _TransIntrCallbackRec {
Bool (*func)(
-#if NeedNestedPrototypes
Xim, INT16, XPointer, XPointer
-#endif
);
XPointer call_data;
TransIntrCallbackPtr next;
@@ -58,70 +57,67 @@ typedef struct {
* Prototypes
*/
+extern Bool _XimTransRegisterDispatcher(
+ Xim im,
+ Bool (*callback)(
+ Xim, INT16, XPointer, XPointer
+ ),
+ XPointer call_data
+);
+
+
extern Bool _XimTransIntrCallback(
-#if NeedFunctionPrototypes
Xim im,
Bool (*callback)(
-#if NeedNestedPrototypes
Xim, INT16, XPointer, XPointer
-#endif
),
XPointer call_data
-#endif
+);
+
+extern Bool _XimTransCallDispatcher(
+ Xim im,
+ INT16 len,
+ XPointer data
);
extern void _XimFreeTransIntrCallback(
-#if NeedFunctionPrototypes
Xim im
-#endif
);
extern Bool _XimTransIntrCallbackCheck(
-#if NeedFunctionPrototypes
Xim im,
INT16 len,
XPointer data
-#endif
);
extern Bool _XimTransFilterWaitEvent(
-#if NeedFunctionPrototypes
Display *d,
Window w,
XEvent *ev,
XPointer arg
-#endif
);
extern void _XimTransInternalConnection(
-#if NeedFunctionPrototypes
Display *d,
int fd,
XPointer arg
-#endif
);
extern Bool _XimTransWrite(
-#if NeedFunctionPrototypes
Xim im,
INT16 len,
XPointer data
-#endif
);
extern Bool _XimTransRead(
-#if NeedFunctionPrototypes
Xim im,
XPointer recv_buf,
int buf_len,
int *ret_len
-#endif
);
extern void _XimTransFlush(
-#if NeedFunctionPrototypes
Xim im
-#endif
);
#endif /* _XIMTRANS__H */
diff --git a/src/xlibi18n/Ximint.h b/src/xlibi18n/Ximint.h
index 17ca94a0..e9bdda24 100644
--- a/src/xlibi18n/Ximint.h
+++ b/src/xlibi18n/Ximint.h
@@ -30,6 +30,7 @@ PERFORMANCE OF THIS SOFTWARE.
makoto@sm.sony.co.jp
******************************************************************/
+/* $XFree86: xc/lib/X11/Ximint.h,v 3.13 2003/09/06 14:06:32 pascal Exp $ */
#ifndef _XIMINT_H
#define _XIMINT_H
@@ -52,7 +53,21 @@ typedef struct _Xic *Xic;
/*
* XIM dependent data
*/
+
+typedef struct _XimCommonPrivateRec {
+ /* This struct is also inlined in XimLocalPrivateRec, XimProtoPrivateRec. */
+ XlcConv ctom_conv;
+ XlcConv ctow_conv;
+ XlcConv ctoutf8_conv;
+ XlcConv cstomb_conv;
+ XlcConv cstowc_conv;
+ XlcConv cstoutf8_conv;
+ XlcConv ucstoc_conv;
+ XlcConv ucstoutf8_conv;
+} XimCommonPrivateRec;
+
typedef union _XIMPrivateRec {
+ XimCommonPrivateRec common;
XimLocalPrivateRec local;
XimProtoPrivateRec proto;
} XIMPrivateRec;
@@ -98,12 +113,12 @@ typedef struct _XimDefICValues {
Window client_window;
Window focus_window;
unsigned long filter_events;
- XIMCallback geometry_callback;
+ XICCallback geometry_callback;
char *res_name;
char *res_class;
- XIMCallback destroy_callback;
- XIMCallback preedit_state_notify_callback;
- XIMCallback string_conversion_callback;
+ XICCallback destroy_callback;
+ XICCallback preedit_state_notify_callback;
+ XICCallback string_conversion_callback;
XIMStringConversionText string_conversion;
XIMResetState reset_state;
XIMHotKeyTriggers *hotkey;
@@ -169,254 +184,202 @@ typedef struct _XimDefICValues {
* Global symbols
*/
+XPointer _XimGetLocaleCode (
+ const char *encoding_name
+);
+
+int _XimGetCharCode (
+ XPointer conv,
+ KeySym keysym,
+ unsigned char *buf,
+ int nbytes
+);
+
+unsigned int KeySymToUcs4 (
+ KeySym keysym
+);
+
extern Bool _XimSetIMResourceList(
-#if NeedFunctionPrototypes
XIMResourceList *res_list,
unsigned int *list_num
-#endif
);
extern Bool _XimSetICResourceList(
-#if NeedFunctionPrototypes
XIMResourceList *res_list,
unsigned int *list_num
-#endif
);
extern Bool _XimSetInnerIMResourceList(
-#if NeedFunctionPrototypes
XIMResourceList *res_list,
unsigned int *list_num
-#endif
);
extern Bool _XimSetInnerICResourceList(
-#if NeedFunctionPrototypes
XIMResourceList *res_list,
unsigned int *list_num
-#endif
);
-extern Bool cw_XimCheckCreateICValues(
-#if NeedFunctionPrototypes
+extern Bool _XimCheckCreateICValues(
XIMResourceList res_list,
unsigned int list_num
-#endif
);
extern XIMResourceList _XimGetResourceListRec(
-#if NeedFunctionPrototypes
XIMResourceList res_list,
unsigned int list_num,
char *name
-#endif
);
extern void _XimSetIMMode(
-#if NeedFunctionPrototypes
XIMResourceList res_list,
unsigned int list_num
-#endif
);
extern void _XimSetICMode(
-#if NeedFunctionPrototypes
XIMResourceList res_list,
unsigned int list_num,
XIMStyle style
-#endif
);
extern int _XimCheckIMMode(
-#if NeedFunctionPrototypes
XIMResourceList res_list,
unsigned long mode
-#endif
);
extern int _XimCheckICMode(
-#if NeedFunctionPrototypes
XIMResourceList res_list,
unsigned long mode
-#endif
);
extern Bool _XimSetLocalIMDefaults(
-#if NeedFunctionPrototypes
Xim im,
XPointer top,
XIMResourceList res_list,
unsigned int list_num
-#endif
);
extern Bool _XimSetICDefaults(
-#if NeedFunctionPrototypes
Xic ic,
XPointer top,
unsigned long mode,
XIMResourceList res_list,
unsigned int list_num
-#endif
);
extern Bool _XimEncodeLocalIMAttr(
-#if NeedFunctionPrototypes
XIMResourceList res,
XPointer top,
XPointer val
-#endif
);
extern Bool _XimEncodeLocalICAttr(
-#if NeedFunctionPrototypes
Xic ic,
XIMResourceList res,
XPointer top,
XIMArg *arg,
unsigned long mode
-#endif
);
extern Bool _XimCheckLocalInputStyle(
-#if NeedFunctionPrototypes
Xic ic,
XPointer top,
XIMArg *values,
XIMStyles *styles,
XIMResourceList res_list,
unsigned int list_num
-#endif
);
extern Bool _XimDecodeLocalIMAttr(
-#if NeedFunctionPrototypes
XIMResourceList res,
XPointer top,
XPointer val
-#endif
);
extern Bool _XimDecodeLocalICAttr(
-#if NeedFunctionPrototypes
XIMResourceList res,
XPointer top,
XPointer val,
unsigned long mode
-#endif
);
extern void _XimGetCurrentIMValues(
-#if NeedFunctionPrototypes
Xim im,
XimDefIMValues *im_values
-#endif
);
extern void _XimSetCurrentIMValues(
-#if NeedFunctionPrototypes
Xim im,
XimDefIMValues *im_values
-#endif
);
extern void _XimGetCurrentICValues(
-#if NeedFunctionPrototypes
Xic ic,
XimDefICValues *ic_values
-#endif
);
extern void _XimSetCurrentICValues(
-#if NeedFunctionPrototypes
Xic ic,
XimDefICValues *ic_values
-#endif
);
extern void _XimInitialResourceInfo(
-#if NeedFunctionPrototypes
void
-#endif
);
extern void _XimParseStringFile(
-#if NeedFunctionPrototypes
FILE *fp,
- DefTree **ptop
-#endif
+ Xim im
);
extern Bool _XimCheckIfLocalProcessing(
-#if NeedFunctionPrototypes
Xim im
-#endif
);
extern Bool _XimCheckIfThaiProcessing(
-#if NeedFunctionPrototypes
Xim im
-#endif
);
extern Bool _XimLocalOpenIM(
-#if NeedFunctionPrototypes
Xim im
-#endif
);
extern Bool _XimThaiOpenIM(
-#if NeedFunctionPrototypes
Xim im
-#endif
);
extern Bool _XimProtoOpenIM(
-#if NeedFunctionPrototypes
Xim im
-#endif
);
extern void _XimLocalIMFree(
-#if NeedFunctionPrototypes
Xim im
-#endif
);
extern void _XimThaiIMFree(
-#if NeedFunctionPrototypes
Xim im
-#endif
);
extern void _XimProtoIMFree(
-#if NeedFunctionPrototypes
Xim im
-#endif
);
extern char * _XimSetIMValueData(
-#if NeedFunctionPrototypes
Xim im,
XPointer top,
XIMArg *arg,
XIMResourceList res_list,
unsigned int list_num
-#endif
);
extern char * _XimGetIMValueData(
-#if NeedFunctionPrototypes
Xim im,
XPointer top,
XIMArg *arg,
XIMResourceList res_list,
unsigned int list_num
-#endif
);
extern char * _XimSetICValueData(
-#if NeedFunctionPrototypes
Xic ic,
XPointer top,
XIMResourceList res_list,
@@ -424,68 +387,50 @@ extern char * _XimSetICValueData(
XIMArg *arg,
unsigned long mode,
Bool flag
-#endif
);
extern char * _XimGetICValueData(
-#if NeedFunctionPrototypes
Xic ic,
XPointer top,
XIMResourceList res_list,
unsigned int list_num,
XIMArg *arg,
unsigned long mode
-#endif
);
extern char * _XimLocalSetIMValues(
-#if NeedFunctionPrototypes
XIM im,
XIMArg *arg
-#endif
);
extern char * _XimLocalGetIMValues(
-#if NeedFunctionPrototypes
XIM im,
XIMArg *arg
-#endif
);
extern XIC _XimLocalCreateIC(
-#if NeedFunctionPrototypes
XIM im,
XIMArg *arg
-#endif
);
extern Bool _XimDispatchInit(
-#if NeedFunctionPrototypes
Xim im
-#endif
);
extern Bool _XimGetAttributeID(
-#if NeedFunctionPrototypes
Xim im,
CARD16 *buf
-#endif
);
extern Bool _XimExtension(
-#if NeedFunctionPrototypes
Xim im
-#endif
);
extern void _XimDestroyIMStructureList(
-#if NeedFunctionPrototypes
Xim im
-#endif
);
extern char * _XimMakeIMAttrIDList(
-#if NeedFunctionPrototypes
Xim im,
XIMResourceList res_list,
unsigned int res_num,
@@ -493,11 +438,9 @@ extern char * _XimMakeIMAttrIDList(
CARD16 *buf,
INT16 *len,
unsigned long mode
-#endif
);
extern char * _XimMakeICAttrIDList(
-#if NeedFunctionPrototypes
Xic ic,
XIMResourceList res_list,
unsigned int res_num,
@@ -505,11 +448,9 @@ extern char * _XimMakeICAttrIDList(
CARD16 *idList,
INT16 *num,
unsigned long mode
-#endif
);
extern char * _XimDecodeIMATTRIBUTE(
-#if NeedFunctionPrototypes
Xim im,
XIMResourceList res_list,
unsigned int res_num,
@@ -517,11 +458,9 @@ extern char * _XimDecodeIMATTRIBUTE(
INT16 buf_len,
XIMArg *arg,
BITMASK32 mode
-#endif
);
extern char * _XimDecodeICATTRIBUTE(
-#if NeedFunctionPrototypes
Xic ic,
XIMResourceList res_list,
unsigned int res_num,
@@ -529,147 +468,118 @@ extern char * _XimDecodeICATTRIBUTE(
INT16 buf_len,
XIMArg *arg,
BITMASK32 mode
-#endif
);
extern Bool _XimRegProtoIntrCallback(
-#if NeedFunctionPrototypes
Xim im,
CARD16 major_code,
CARD16 minor_code,
Bool (*proc)(
-#if NeedNestedPrototypes
Xim, INT16, XPointer, XPointer
-#endif
),
XPointer call_data
-#endif
);
extern Bool _XimErrorCallback(
-#if NeedFunctionPrototypes
Xim im,
INT16 len,
XPointer data,
XPointer call_data
-#endif
+);
+
+extern Bool _XimError(
+ Xim im,
+ Xic ic,
+ CARD16 error_code,
+ INT16 detail_length,
+ CARD16 type,
+ char *detail
);
extern Bool _XimRegisterTriggerKeysCallback(
-#if NeedFunctionPrototypes
Xim im,
INT16 len,
XPointer data,
XPointer call_data
-#endif
);
extern Bool _XimSetEventMaskCallback(
-#if NeedFunctionPrototypes
Xim im,
INT16 len,
XPointer data,
XPointer call_data
-#endif
);
extern Bool _XimForwardEventCallback(
-#if NeedFunctionPrototypes
Xim im,
INT16 len,
XPointer data,
XPointer call_data
-#endif
);
extern Bool _XimCommitCallback(
-#if NeedFunctionPrototypes
Xim im,
INT16 len,
XPointer data,
XPointer call_data
-#endif
);
extern Bool _XimSyncCallback(
-#if NeedFunctionPrototypes
Xim im,
INT16 len,
XPointer data,
XPointer call_data
-#endif
);
extern void _XimFreeProtoIntrCallback(
-#if NeedFunctionPrototypes
Xim im
-#endif
);
extern XIC _XimProtoCreateIC(
-#if NeedFunctionPrototypes
XIM im,
XIMArg *arg
-#endif
);
extern void _XimRegisterServerFilter(
-#if NeedFunctionPrototypes
Xim im
-#endif
);
extern void _XimUnregisterServerFilter(
-#if NeedFunctionPrototypes
Xim im
-#endif
);
extern Bool _XimTriggerNotify(
-#if NeedFunctionPrototypes
Xim im,
Xic ic,
int mode,
CARD32 idx
-#endif
);
extern Bool _XimProcSyncReply(
-#if NeedFunctionPrototypes
Xim im,
Xic ic
-#endif
);
extern void _XimSendSetFocus(
-#if NeedFunctionPrototypes
Xim im,
Xic ic
-#endif
);
extern Bool _XimForwardEvent(
-#if NeedFunctionPrototypes
Xic ic,
XEvent *ev,
Bool sync
-#endif
);
extern void _XimFreeRemakeArg(
-#if NeedFunctionPrototypes
XIMArg *arg
-#endif
);
extern void _XimServerDestroy(
-#if NeedFunctionPrototypes
Xim im
-#endif
);
extern char * _XimEncodeIMATTRIBUTE(
-#if NeedFunctionPrototypes
Xim im,
XIMResourceList res_list,
unsigned int res_num,
@@ -680,11 +590,9 @@ extern char * _XimEncodeIMATTRIBUTE(
int *ret_len,
XPointer top,
unsigned long mode
-#endif
);
extern char * _XimEncodeICATTRIBUTE(
-#if NeedFunctionPrototypes
Xic ic,
XIMResourceList res_list,
unsigned int res_num,
@@ -696,424 +604,364 @@ extern char * _XimEncodeICATTRIBUTE(
XPointer top,
BITMASK32 *flag,
unsigned long mode
-#endif
);
#ifdef EXT_MOVE
extern Bool _XimExtenMove(
-#if NeedFunctionPrototypes
Xim im,
Xic ic,
CARD32 flag,
CARD16 *buf,
INT16 length
-#endif
);
#endif
extern int _Ximctstombs(
-#if NeedFunctionPrototypes
XIM im,
char *from,
- int from_len,
+ int from_len,
char *to,
- int to_len,
+ int to_len,
Status *state
-#endif
);
extern int _Ximctstowcs(
-#if NeedFunctionPrototypes
XIM im,
char *from,
int from_len,
wchar_t *to,
int to_len,
Status *state
-#endif
+);
+
+extern int _Ximctstoutf8(
+ XIM im,
+ char *from,
+ int from_len,
+ char *to,
+ int to_len,
+ Status *state
);
extern int _XimLcctstombs(
-#if NeedFunctionPrototypes
XIM im,
char *from,
- int from_len,
+ int from_len,
char *to,
- int to_len,
+ int to_len,
Status *state
-#endif
);
extern int _XimLcctstowcs(
-#if NeedFunctionPrototypes
XIM im,
char *from,
int from_len,
wchar_t *to,
int to_len,
Status *state
-#endif
+);
+
+extern int _XimLcctstoutf8(
+ XIM im,
+ char *from,
+ int from_len,
+ char *to,
+ int to_len,
+ Status *state
+);
+
+extern int _XimCheckDataSize(
+ XPointer buf,
+ int len
);
extern void _XimSetHeader(
-#if NeedFunctionPrototypes
XPointer buf,
CARD8 major_opcode,
CARD8 minor_opcode,
INT16 *len
-#endif
);
extern Bool _XimSync(
-#if NeedFunctionPrototypes
Xim im,
Xic ic
-#endif
);
extern int _XimProtoMbLookupString(
-#if NeedFunctionPrototypes
XIC xic,
XKeyEvent *ev,
char *buffer,
int bytes,
KeySym *keysym,
Status *state
-#endif
);
extern int _XimProtoWcLookupString(
-#if NeedFunctionPrototypes
XIC xic,
XKeyEvent *ev,
wchar_t *buffer,
int bytes,
KeySym *keysym,
Status *state
-#endif
+);
+
+extern int _XimProtoUtf8LookupString(
+ XIC xic,
+ XKeyEvent *ev,
+ char *buffer,
+ int bytes,
+ KeySym *keysym,
+ Status *state
);
extern void _XimRegisterFilter(
-#if NeedFunctionPrototypes
Xic ic
-#endif
);
extern void _XimUnregisterFilter(
-#if NeedFunctionPrototypes
Xic ic
-#endif
);
extern void _XimReregisterFilter(
-#if NeedFunctionPrototypes
Xic ic
-#endif
);
extern Status _XimProtoEventToWire(
-#if NeedFunctionPrototypes
XEvent *re,
xEvent *event,
Bool sw
-#endif
);
extern Bool _XimProtoWireToEvent(
-#if NeedFunctionPrototypes
XEvent *re,
xEvent *event,
Bool sw
-#endif
);
#ifdef EXT_FORWARD
extern Bool _XimExtForwardKeyEvent(
-#if NeedFunctionPrototypes
Xic ic,
XKeyEvent *ev,
Bool sync
-#endif
);
#endif
extern int _XimLookupMBText(
-#if NeedFunctionPrototypes
Xic ic,
XKeyEvent *event,
char *buffer,
int nbytes,
KeySym *keysym,
XComposeStatus *status
-#endif
);
extern int _XimLookupWCText(
-#if NeedFunctionPrototypes
Xic ic,
XKeyEvent *event,
wchar_t *buffer,
int nbytes,
KeySym *keysym,
XComposeStatus *status
-#endif
+);
+
+extern int _XimLookupUTF8Text(
+ Xic ic,
+ XKeyEvent *event,
+ char *buffer,
+ int nbytes,
+ KeySym *keysym,
+ XComposeStatus *status
);
extern EVENTMASK _XimGetWindowEventmask(
-#if NeedFunctionPrototypes
Xic ic
-#endif
);
extern Xic _XimICOfXICID(
-#if NeedFunctionPrototypes
Xim im,
XICID icid
-#endif
);
extern void _XimResetIMInstantiateCallback(
-#if NeedFunctionPrototypes
Xim xim
-#endif
);
extern Bool _XimRegisterIMInstantiateCallback(
-#if NeedFunctionPrototypes
XLCd lcd,
Display *display,
XrmDatabase rdb,
char *res_name,
char *res_class,
- XIMProc callback,
- XPointer *client_data
-#endif
+ XIDProc callback,
+ XPointer client_data
);
extern Bool _XimUnRegisterIMInstantiateCallback(
-#if NeedFunctionPrototypes
XLCd lcd,
Display *display,
XrmDatabase rdb,
char *res_name,
char *res_class,
- XIMProc callback,
- XPointer *client_data
-#endif
+ XIDProc callback,
+ XPointer client_data
);
extern void _XimFreeCommitInfo(
-#if NeedFunctionPrototypes
Xic ic
-#endif
);
extern Bool _XimConnect(
-#if NeedFunctionPrototypes
Xim im
-#endif
);
extern Bool _XimShutdown(
-#if NeedFunctionPrototypes
Xim im
-#endif
);
extern Bool _XimWrite(
-#if NeedFunctionPrototypes
Xim im,
INT16 len,
XPointer data
-#endif
);
extern Bool _XimRead(
-#if NeedFunctionPrototypes
Xim im,
INT16 *len,
XPointer data,
int data_len,
Bool (*predicate)(
-#if NeedNestedPrototypes
Xim, INT16, XPointer, XPointer
-#endif
),
XPointer arg
-#endif
);
extern Bool _XimIntrCallback(
-#if NeedFunctionPrototypes
Xim im,
Bool (*callback)(
-#if NeedNestedPrototypes
Xim, INT16, XPointer, XPointer
-#endif
),
XPointer call_data
-#endif
);
extern void _XimFlush(
-#if NeedFunctionPrototypes
Xim im
-#endif
);
extern Bool _XimFilterWaitEvent(
-#if NeedFunctionPrototypes
Xim im
-#endif
);
extern void _XimProcError(
-#if NeedFunctionPrototypes
Xim im,
Xic ic,
XPointer data
-#endif
);
#ifdef EXT_MOVE
extern CARD32 _XimExtenArgCheck(
-#if NeedFunctionProtoTypes
XIMArg *arg
-#endif
);
#endif
extern Bool _XimCbDispatch(
-#if NeedFunctionPrototypes
Xim im,
INT16 len,
XPointer data,
XPointer call_data
-#endif
-);
-
-extern void _XimGetResourceName(
-#if NeedFunctionPrototypes
- Xim im,
- char *res_name,
- char *res_class
-#endif
);
extern Bool _XimLocalFilter(
-#if NeedFunctionPrototypes
Display *d,
Window w,
XEvent *ev,
XPointer client_data
-#endif
);
extern XIMResourceList _XimGetResourceListRecByQuark(
-#if NeedFunctionPrototypes
XIMResourceList res_list,
unsigned int list_num,
XrmQuark quark
-#endif
);
extern Bool _XimReconnectModeCreateIC(
-#if NeedFunctionPrototypes
Xic ic
-#endif
);
extern char *_XimLocalSetICValues(
-#if NeedFunctionPrototypes
XIC ic,
XIMArg *values
-#endif
);
extern char * _XimLocalGetICValues(
-#if NeedFunctionPrototypes
XIC ic,
XIMArg *values
-#endif
);
extern int _XimLocalMbLookupString(
-#if NeedFunctionPrototypes
XIC ic,
XKeyEvent *ev,
char *buffer,
int bytes,
KeySym *keysym,
Status *status
-#endif
);
extern int _XimLocalWcLookupString(
-#if NeedFunctionPrototypes
XIC ic,
XKeyEvent *ev,
wchar_t *buffer,
int bytes,
KeySym *keysym,
Status *status
-#endif
+);
+
+extern int _XimLocalUtf8LookupString(
+ XIC ic,
+ XKeyEvent *ev,
+ char *buffer,
+ int bytes,
+ KeySym *keysym,
+ Status *status
);
extern Bool _XimThaiFilter(
-#if NeedFunctionPrototypes
Display *d,
Window w,
XEvent *ev,
XPointer client_data
-#endif
);
extern XIC _XimThaiCreateIC(
-#if NeedFunctionPrototypes
XIM im,
XIMArg *values
-#endif
);
extern Status _XimThaiCloseIM(
-#if NeedFunctionPrototypes
XIM xim
-#endif
);
#ifdef XIM_CONNECTABLE
extern void _XimSetProtoResource(
-#if NeedFunctionPrototypes
Xim im
-#endif
);
extern Bool _XimConnectServer(
-#if NeedFunctionPrototypes
Xim im
-#endif
);
extern Bool _XimDelayModeSetAttr(
-#if NeedFunctionPrototypes
Xim im
-#endif
);
extern void _XimServerReconectableDestroy(
-#if NeedFunctionPrototypes
void
-#endif
);
extern Bool _XimReCreateIC(
-#if NeedFunctionPrototypes
Xic ic
-#endif
);
extern Bool _XimEncodeSavedIMATTRIBUTE(
-#if NeedFunctionPrototypes
Xim im,
XIMResourceList res_list,
unsigned int res_num,
@@ -1123,11 +971,9 @@ extern Bool _XimEncodeSavedIMATTRIBUTE(
int *ret_len,
XPointer top,
unsigned long mode
-#endif
);
extern Bool _XimEncodeSavedICATTRIBUTE(
-#if NeedFunctionPrototypes
Xic ic,
XIMResourceList res_list,
unsigned int res_num,
@@ -1137,8 +983,20 @@ extern Bool _XimEncodeSavedICATTRIBUTE(
int *ret_len,
XPointer top,
unsigned long mode
-#endif
);
#endif
+extern Public Bool
+_XimRegisterDispatcher(
+ Xim im,
+ Bool (*callback)(
+ Xim, INT16, XPointer, XPointer
+ ),
+ XPointer call_data);
+
+extern Public Bool
+_XimRespSyncReply(
+ Xic ic,
+ BITMASK16 mode);
+
#endif /* _XIMINT_H */
diff --git a/src/xlibi18n/XimintL.h b/src/xlibi18n/XimintL.h
index 720a78bd..2d4f6a9e 100644
--- a/src/xlibi18n/XimintL.h
+++ b/src/xlibi18n/XimintL.h
@@ -32,6 +32,7 @@ THIS SOFTWARE.
frankyling@hgrd01.enet.dec.com
******************************************************************/
+/* $XFree86: xc/lib/X11/XimintL.h,v 1.6 2000/12/04 18:49:19 dawes Exp $ */
#ifndef _XIMINTL_H
#define _XIMINTL_H
@@ -50,14 +51,23 @@ typedef struct _DefTree {
KeySym keysym; /* leaf only */
char *mb;
wchar_t *wc; /* make from mb */
+ char *utf8; /* make from mb */
KeySym ks;
} DefTree;
typedef struct _XimLocalPrivateRec {
- XIC current_ic;
- DefTree *top;
- XlcConv ctom_conv;
- XlcConv ctow_conv;
+ /* The first fields are identical with XimCommonPrivateRec. */
+ XlcConv ctom_conv;
+ XlcConv ctow_conv;
+ XlcConv ctoutf8_conv;
+ XlcConv cstomb_conv;
+ XlcConv cstowc_conv;
+ XlcConv cstoutf8_conv;
+ XlcConv ucstoc_conv;
+ XlcConv ucstoutf8_conv;
+
+ XIC current_ic;
+ DefTree *top;
} XimLocalPrivateRec;
typedef struct _XicThaiPart {
diff --git a/src/xlibi18n/XimintP.h b/src/xlibi18n/XimintP.h
index 28e09e04..f10d9baa 100644
--- a/src/xlibi18n/XimintP.h
+++ b/src/xlibi18n/XimintP.h
@@ -35,6 +35,7 @@ PERFORMANCE OF THIS SOFTWARE.
miyamoto@jrd.dec.com
******************************************************************/
+/* $XFree86: xc/lib/X11/XimintP.h,v 1.7 2001/01/17 19:41:49 dawes Exp $ */
#ifndef _XIMINTP_H
#define _XIMINTP_H
@@ -46,9 +47,7 @@ PERFORMANCE OF THIS SOFTWARE.
* for protocol layer callback function
*/
typedef Bool (*XimProtoIntrProc)(
-#if NeedFunctionPrototypes
Xim, INT16, XPointer, XPointer
-#endif
);
typedef struct _XimProtoIntrRec {
XimProtoIntrProc func;
@@ -62,45 +61,41 @@ typedef struct _XimProtoIntrRec {
* for transport layer methods
*/
typedef Bool (*XimTransConnectProc)(
-#if NeedFunctionPrototypes
Xim
-#endif
);
typedef Bool (*XimTransShutdownProc)(
-#if NeedFunctionPrototypes
Xim
-#endif
);
typedef Bool (*XimTransWriteProc)(
-#if NeedFunctionPrototypes
Xim, INT16, XPointer
-#endif
);
typedef Bool (*XimTransReadProc)(
-#if NeedFunctionPrototypes
Xim, XPointer, int, int *
-#endif
);
typedef void (*XimTransFlushProc)(
-#if NeedFunctionPrototypes
Xim
-#endif
);
typedef Bool (*XimTransRegDispatcher)(
-#if NeedNestedPrototypes
Xim, Bool (*)(Xim, INT16, XPointer, XPointer), XPointer
-#endif
);
typedef Bool (*XimTransCallDispatcher)(
-#if NeedFunctionPrototypes
Xim, INT16, XPointer
-#endif
);
/*
* private part of IM
*/
typedef struct _XimProtoPrivateRec {
+ /* The first fields are identical with XimCommonPrivateRec. */
+ XlcConv ctom_conv;
+ XlcConv ctow_conv;
+ XlcConv ctoutf8_conv;
+ XlcConv cstomb_conv;
+ XlcConv cstowc_conv;
+ XlcConv cstoutf8_conv;
+ XlcConv ucstoc_conv;
+ XlcConv ucstoutf8_conv;
+
Window im_window;
XIMID imid;
CARD16 unused;
@@ -126,9 +121,6 @@ typedef struct _XimProtoPrivateRec {
XrmQuark *saved_imvalues;
int num_saved_imvalues;
- XlcConv ctom_conv;
- XlcConv ctow_conv;
-
/*
* transport specific
*/
diff --git a/src/xlibi18n/XlcDL.c b/src/xlibi18n/XlcDL.c
index 210bd731..2c7529f8 100644
--- a/src/xlibi18n/XlcDL.c
+++ b/src/xlibi18n/XlcDL.c
@@ -41,6 +41,8 @@ interest in or to any trademark, service mark, logo or trade name of
Sun Microsystems, Inc. or its licensors is granted.
*/
+/* $XFree86: xc/lib/X11/XlcDL.c,v 1.12 2003/04/13 19:22:19 dawes Exp $ */
+/* $XdotOrg: lib/X11/src/xlibi18n/XlcDL.c,v 1.2 2004-04-23 18:43:24 eich Exp $ */
#include <stdio.h>
#if defined(hpux)
@@ -54,14 +56,15 @@ Sun Microsystems, Inc. or its licensors is granted.
#include "XlcPublic.h"
#include "XlcPubI.h"
-#ifdef _LP64
-#if defined(__sparcv9)
-#define _MACH64_NAME "sparcv9"
-#define _MACH64_NAME_LEN (sizeof (_MACH64_NAME) - 1)
-#else /* !defined(__sparcv9) */
-#error "Unknown architecture"
-#endif /* defined(__sparcv9) */
-#endif /* _LP64 */
+#if defined(_LP64) && defined(__sparcv9)
+# define _MACH64_NAME "sparcv9"
+#else
+# undef _MACH64_NAME
+#endif /* defined(_LP64) && defined(__sparcv9) */
+
+#ifdef _MACH64_NAME
+# define _MACH64_NAME_LEN (sizeof (_MACH64_NAME) - 1)
+#endif
#define XI18N_DLREL 2
@@ -82,6 +85,7 @@ typedef struct {
char *im_register;
char *im_unregister;
int dl_release;
+ unsigned int refcount;
#if defined(hpux)
shl_t dl_module;
#else
@@ -96,10 +100,7 @@ static XI18NObjectsListRec *xi18n_objects_list = NULL;
static int lc_count = 0;
static int
-parse_line(line, argv, argsize)
-char *line;
-char **argv;
-int argsize;
+parse_line(char *line, char **argv, int argsize)
{
int argc = 0;
char *p = line;
@@ -123,10 +124,40 @@ int argsize;
return argc;
}
+static char *
+strdup_with_underscore(const char *symbol)
+{
+ char *result;
+
+ if ((result = malloc(strlen(symbol) + 2)) == NULL)
+ return NULL;
+ result[0] = '_';
+ strcpy(result + 1, symbol);
+ return result;
+}
+
+#ifndef hpux
+static void *
+try_both_dlsym (void *handle, char *name)
+{
+ void *ret;
+
+ ret = dlsym (handle, name);
+ if (!ret)
+ {
+ name = strdup_with_underscore (name);
+ if (name)
+ {
+ ret = dlsym (handle, name);
+ free (name);
+ }
+ }
+ return ret;
+}
+#endif
+
static void
-resolve_object(path, lc_name)
-char *path;
-char *lc_name;
+resolve_object(char *path, const char *lc_name)
{
char filename[BUFSIZ];
FILE *fp;
@@ -181,6 +212,7 @@ Limit the length of path to prevent stack buffer corruption.
xi18n_objects_list[lc_count].open = strdup(args[2]);
xi18n_objects_list[lc_count].dl_release = XI18N_DLREL;
xi18n_objects_list[lc_count].locale_name = strdup(lc_name);
+ xi18n_objects_list[lc_count].refcount = 0;
xi18n_objects_list[lc_count].dl_module = (void*)NULL;
if (n == 5) {
xi18n_objects_list[lc_count].im_register = strdup(args[3]);
@@ -196,14 +228,18 @@ Limit the length of path to prevent stack buffer corruption.
}
static char*
-__lc_path(dl_name, lc_dir)
-const char *dl_name;
-const char *lc_dir;
+__lc_path(const char *dl_name, const char *lc_dir)
{
char *path;
size_t len;
-#ifdef _LP64
+ /*
+ * reject this for possible security issue
+ */
+ if (strstr (dl_name, "../"))
+ return NULL;
+
+#if defined (_LP64) && defined (_MACH64_NAME)
len = (lc_dir ? strlen(lc_dir) : 0 ) +
(dl_name ? strlen(dl_name) : 0) + _MACH64_NAME_LEN + 10;
path = Xmalloc(len + 1);
@@ -234,6 +270,9 @@ const char *lc_dir;
#else
len = (lc_dir ? strlen(lc_dir) : 0 ) +
(dl_name ? strlen(dl_name) : 0) + 10;
+#if defined POSTLOCALELIBDIR
+ len += (strlen(POSTLOCALELIBDIR) + 1);
+#endif
path = Xmalloc(len + 1);
if (strchr(dl_name, '/') != NULL) {
@@ -241,34 +280,121 @@ const char *lc_dir;
slash_p = strrchr(lc_dir, '/');
*slash_p = '\0';
strcpy(path, lc_dir); strcat(path, "/");
+#if defined POSTLOCALELIBDIR
+ strcat(path, POSTLOCALELIBDIR); strcat(path, "/");
+#endif
strcat(path, dl_name); strcat(path, ".so.2");
*slash_p = '/';
} else {
strcpy(path, lc_dir); strcat(path, "/");
+#if defined POSTLOCALELIBDIR
+ strcat(path, POSTLOCALELIBDIR); strcat(path, "/");
+#endif
strcat(path, dl_name); strcat(path, ".so.2");
}
#endif
return path;
}
+/* We reference count dlopen() and dlclose() of modules; unfortunately,
+ * since XCloseIM, XCloseOM, XlcClose aren't wrapped, but directly
+ * call the close method of the object, we leak a reference count every
+ * time we open then close a module. Fixing this would require
+ * either creating proxy objects or hooks for close_im/close_om
+ * in XLCd
+ */
+static Bool
+open_object(
+ XI18NObjectsList object,
+ char *lc_dir)
+{
+ char *path;
+
+ if (object->refcount == 0) {
+ path = __lc_path(object->dl_name, lc_dir);
+ if (!path)
+ return False;
+#if defined(hpux)
+ object->dl_module = shl_load(path, BIND_DEFERRED, 0L);
+#else
+ object->dl_module = dlopen(path, RTLD_LAZY);
+#endif
+ Xfree(path);
+
+ if (!object->dl_module)
+ return False;
+ }
+
+ object->refcount++;
+ return True;
+}
+
+static void *
+fetch_symbol(
+ XI18NObjectsList object,
+ char *symbol)
+{
+ void *result = NULL;
+#if defined(hpux)
+ int getsyms_cnt, i;
+ struct shl_symbol *symbols;
+#endif
+
+ if (symbol == NULL)
+ return NULL;
+
+#if defined(hpux)
+ getsyms_cnt = shl_getsymbols(object->dl_module, TYPE_PROCEDURE,
+ EXPORT_SYMBOLS, malloc, &symbols);
+
+ for(i=0; i<getsyms_cnt; i++) {
+ if(!strcmp(symbols[i].name, symbol)) {
+ result = symbols[i].value;
+ break;
+ }
+ }
+
+ if(getsyms_cnt > 0) {
+ free(symbols);
+ }
+#else
+ result = try_both_dlsym(object->dl_module, symbol);
+#endif
+
+ return result;
+}
+
+static void
+close_object(XI18NObjectsList object)
+{
+ object->refcount--;
+ if (object->refcount == 0)
+ {
+#if defined(hpux)
+ shl_unload(object->dl_module);
+#else
+ dlclose(object->dl_module);
+#endif
+ object->dl_module = NULL;
+ }
+}
+
+
+typedef XLCd (*dynamicLoadProc)(const char *);
+
XLCd
-_XlcDynamicLoad(lc_name)
- char *lc_name;
+_XlcDynamicLoad(const char *lc_name)
{
XLCd lcd = (XLCd)NULL;
- XLCd (*lc_loader)() = (XLCd(*)())NULL;
- char *path;
+ dynamicLoadProc lc_loader = (dynamicLoadProc)NULL;
int count;
XI18NObjectsList objects_list;
char lc_dir[BUFSIZE];
-#if defined(hpux)
- int getsyms_cnt, i;
- struct shl_symbol *symbols;
-#endif
if (lc_name == NULL) return (XLCd)NULL;
- if (_XlcLocaleDirName(lc_dir, lc_name) == (char*)NULL) return (XLCd)NULL;
+ if (_XlcLocaleDirName(lc_dir, BUFSIZE, (char *)lc_name) == (char*)NULL)
+ return (XLCd)NULL;
resolve_object(lc_dir, lc_name);
@@ -277,140 +403,75 @@ _XlcDynamicLoad(lc_name)
for (; count-- > 0; objects_list++) {
if (objects_list->type != XLC_OBJECT ||
strcmp(objects_list->locale_name, lc_name)) continue;
- if (!objects_list->dl_module) {
- path = __lc_path(objects_list->dl_name, lc_dir);
-#if defined(hpux)
- objects_list->dl_module = shl_load(path, BIND_DEFERRED, 0L);
-#else
- objects_list->dl_module = dlopen(path, RTLD_LAZY);
-#endif
- Xfree(path);
- if (!objects_list->dl_module) continue;
- }
-#if defined(hpux)
- getsyms_cnt = shl_getsymbols(objects_list->dl_module, TYPE_PROCEDURE,
- EXPORT_SYMBOLS, malloc, &symbols);
-
- for(i=0; i<getsyms_cnt; i++) {
- if(!strcmp(symbols[i].name, objects_list->open)) {
- lc_loader = symbols[i].value;
- break;
- }
- }
+ if (!open_object (objects_list, lc_dir))
+ continue;
- if(getsyms_cnt > 0) {
- free(symbols);
- }
-#else
- lc_loader = (XLCd(*)())dlsym(objects_list->dl_module,
- objects_list->open);
-#endif
+ lc_loader = (dynamicLoadProc)fetch_symbol (objects_list, objects_list->open);
if (!lc_loader) continue;
lcd = (*lc_loader)(lc_name);
if (lcd != (XLCd)NULL) {
break;
}
-#if defined(hpux)
- shl_unload(objects_list->dl_module);
-#else
- dlclose(objects_list->dl_module);
-#endif
- objects_list->dl_module = NULL;
+
+ close_object (objects_list);
}
return (XLCd)lcd;
}
+
+typedef XIM (*dynamicOpenProcp)(XLCd, Display *, XrmDatabase, char *, char *);
+
static XIM
-#if NeedFunctionPrototypes
_XDynamicOpenIM(XLCd lcd, Display *display, XrmDatabase rdb,
char *res_name, char *res_class)
-#else
-_XDynamicOpenIM(lcd, display, rdb, res_name, res_class)
-XLCd lcd;
-Display *display;
-XrmDatabase rdb;
-char *res_name, *res_class;
-#endif
{
XIM im = (XIM)NULL;
- char *path;
char lc_dir[BUFSIZE];
char *lc_name;
- XIM (*im_openIM)() = (XIM(*)())NULL;
+ dynamicOpenProcp im_openIM = (dynamicOpenProcp)NULL;
int count;
XI18NObjectsList objects_list = xi18n_objects_list;
-#if defined(hpux)
- int getsyms_cnt, i;
- struct shl_symbol *symbols;
-#endif
lc_name = lcd->core->name;
- if (_XlcLocaleDirName(lc_dir, lc_name) == NULL) return (XIM)0;
+ if (_XlcLocaleDirName(lc_dir, BUFSIZE, lc_name) == NULL) return (XIM)0;
count = lc_count;
for (; count-- > 0; objects_list++) {
if (objects_list->type != XIM_OBJECT ||
strcmp(objects_list->locale_name, lc_name)) continue;
- if (!objects_list->dl_module) {
- path = __lc_path(objects_list->dl_name, lc_dir);
-#if defined(hpux)
- objects_list->dl_module = shl_load(path, BIND_DEFERRED, 0L);
-#else
- objects_list->dl_module = dlopen(path, RTLD_LAZY);
-#endif
- Xfree(path);
- if (!objects_list->dl_module) continue;
- }
-#if defined(hpux)
- getsyms_cnt = shl_getsymbols(objects_list->dl_module, TYPE_PROCEDURE,
- EXPORT_SYMBOLS, malloc, &symbols);
- for(i=0; i<getsyms_cnt; i++) {
- if(!strcmp(symbols[i].name, objects_list->open)) {
- im_openIM = symbols[i].value;
- break;
- }
- }
+ if (!open_object (objects_list, lc_dir))
+ continue;
- if(getsyms_cnt > 0) {
- free(symbols);
- }
-#else
- im_openIM = (XIM(*)())dlsym(objects_list->dl_module,
- objects_list->open);
+ im_openIM = (dynamicOpenProcp)fetch_symbol(objects_list, objects_list->open);
if (!im_openIM) continue;
-#endif
im = (*im_openIM)(lcd, display, rdb, res_name, res_class);
if (im != (XIM)NULL) {
- break;
+ break;
}
- im_openIM = 0;
-#if defined(hpux)
- shl_unload(objects_list->dl_module);
-#else
- dlclose(objects_list->dl_module);
-#endif
- objects_list->dl_module = NULL;
+
+ close_object (objects_list);
}
return (XIM)im;
}
+typedef Bool (*dynamicRegisterCBProcp)(
+ XLCd, Display *, XrmDatabase, char *, char *, XIDProc, XPointer);
+
static Bool
-_XDynamicRegisterIMInstantiateCallback(lcd, display, rdb,
- res_name, res_class,
- callback, client_data)
-XLCd lcd;
-Display *display;
-XrmDatabase rdb;
-char *res_name, *res_class;
-XIMProc callback;
-XPointer *client_data;
+_XDynamicRegisterIMInstantiateCallback(
+ XLCd lcd,
+ Display *display,
+ XrmDatabase rdb,
+ char *res_name,
+ char *res_class,
+ XIDProc callback,
+ XPointer client_data)
{
- char *path;
char lc_dir[BUFSIZE];
char *lc_name;
- Bool (*im_registerIM)() = (Bool(*)())NULL;
+ dynamicRegisterCBProcp im_registerIM = (dynamicRegisterCBProcp)NULL;
Bool ret_flag = False;
int count;
XI18NObjectsList objects_list = xi18n_objects_list;
@@ -421,72 +482,44 @@ XPointer *client_data;
lc_name = lcd->core->name;
- if (_XlcLocaleDirName(lc_dir, lc_name) == NULL) return False;
+ if (_XlcLocaleDirName(lc_dir, BUFSIZE, lc_name) == NULL) return False;
count = lc_count;
for (; count-- > 0; objects_list++) {
if (objects_list->type != XIM_OBJECT ||
strcmp(objects_list->locale_name, lc_name)) continue;
- if (!objects_list->dl_module) {
- path = __lc_path(objects_list->dl_name, lc_dir);
-#if defined(hpux)
- objects_list->dl_module = shl_load(path, BIND_DEFERRED, 0L);
-#else
- objects_list->dl_module = dlopen(path, RTLD_LAZY);
-#endif
- Xfree(path);
- if (!objects_list->dl_module) continue;
- }
-#if defined(hpux)
- getsyms_cnt = shl_getsymbols(objects_list->dl_module, TYPE_PROCEDURE,
- EXPORT_SYMBOLS, malloc, &symbols);
-
- for(i=0; i<getsyms_cnt; i++) {
- if(!strcmp(symbols[i].name, objects_list->open)) {
- im_registerIM = symbols[i].value;
- break;
- }
- }
- if(getsyms_cnt > 0) {
- free(symbols);
- }
-#else
- im_registerIM = (Bool(*)())dlsym(objects_list->dl_module,
- objects_list->im_register);
+ if (!open_object (objects_list, lc_dir))
+ continue;
+ im_registerIM = (dynamicRegisterCBProcp)fetch_symbol(objects_list,
+ objects_list->im_register);
if (!im_registerIM) continue;
-#endif
ret_flag = (*im_registerIM)(lcd, display, rdb,
res_name, res_class,
callback, client_data);
if (ret_flag) break;
- im_registerIM = 0;
-#if defined(hpux)
- shl_unload(objects_list->dl_module);
-#else
- dlclose(objects_list->dl_module);
-#endif
- objects_list->dl_module = NULL;
+ close_object (objects_list);
}
return (Bool)ret_flag;
}
+typedef Bool (*dynamicUnregisterProcp)(
+ XLCd, Display *, XrmDatabase, char *, char *, XIDProc, XPointer);
+
static Bool
-_XDynamicUnRegisterIMInstantiateCallback(lcd, display, rdb,
- res_name, res_class,
- callback, client_data)
-XLCd lcd;
-Display *display;
-XrmDatabase rdb;
-char *res_name, *res_class;
-XIMProc callback;
-XPointer *client_data;
+_XDynamicUnRegisterIMInstantiateCallback(
+ XLCd lcd,
+ Display *display,
+ XrmDatabase rdb,
+ char *res_name,
+ char *res_class,
+ XIDProc callback,
+ XPointer client_data)
{
- char *path;
char lc_dir[BUFSIZE];
char *lc_name;
- Bool (*im_unregisterIM)() = (Bool(*)())NULL;
+ dynamicUnregisterProcp im_unregisterIM = (dynamicUnregisterProcp)NULL;
Bool ret_flag = False;
int count;
XI18NObjectsList objects_list = xi18n_objects_list;
@@ -496,61 +529,33 @@ XPointer *client_data;
#endif
lc_name = lcd->core->name;
- if (_XlcLocaleDirName(lc_dir, lc_name) == NULL) return False;
+ if (_XlcLocaleDirName(lc_dir, BUFSIZE, lc_name) == NULL) return False;
count = lc_count;
for (; count-- > 0; objects_list++) {
if (objects_list->type != XIM_OBJECT ||
strcmp(objects_list->locale_name, lc_name)) continue;
- if (!objects_list->dl_module) {
- path = __lc_path(objects_list->dl_name, lc_dir);
-#if defined(hpux)
- objects_list->dl_module = shl_load(path, BIND_DEFERRED, 0L);
-#else
- objects_list->dl_module = dlopen(path, RTLD_LAZY);
-#endif
- Xfree(path);
- if (!objects_list->dl_module) continue;
- }
-#if defined(hpux)
- getsyms_cnt = shl_getsymbols(objects_list->dl_module, TYPE_PROCEDURE,
- EXPORT_SYMBOLS, malloc, &symbols);
- for(i=0; i<getsyms_cnt; i++) {
- if(!strcmp(symbols[i].name, objects_list->open)) {
- im_unregisterIM = symbols[i].value;
- break;
- }
- }
+ if (!objects_list->refcount) /* Must already be opened */
+ continue;
- if(getsyms_cnt > 0) {
- free(symbols);
- }
-#else
- im_unregisterIM = (Bool(*)())dlsym(objects_list->dl_module,
- objects_list->im_unregister);
+ im_unregisterIM = (dynamicUnregisterProcp)fetch_symbol(objects_list,
+ objects_list->im_unregister);
if (!im_unregisterIM) continue;
-#endif
ret_flag = (*im_unregisterIM)(lcd, display, rdb,
res_name, res_class,
callback, client_data);
- if (ret_flag) break;
-
- im_unregisterIM = 0;
-#if defined(hpux)
- shl_unload(objects_list->dl_module);
-#else
- dlclose(objects_list->dl_module);
-#endif
- objects_list->dl_module = NULL;
+ if (ret_flag) {
+ close_object (objects_list); /* opened in RegisterIMInstantiateCallback */
+ break;
+ }
}
return (Bool)ret_flag;
}
Bool
-_XInitDynamicIM(lcd)
-XLCd lcd;
+_XInitDynamicIM(XLCd lcd)
{
if(lcd == (XLCd)NULL)
return False;
@@ -560,25 +565,19 @@ XLCd lcd;
return True;
}
+
+typedef XOM (*dynamicIOpenProcp)(
+ XLCd, Display *, XrmDatabase, _Xconst char *, _Xconst char *);
+
static XOM
-#if NeedFunctionPrototypes
_XDynamicOpenOM(XLCd lcd, Display *display, XrmDatabase rdb,
_Xconst char *res_name, _Xconst char *res_class)
-#else
-_XDynamicOpenOM(lcd, display, rdb, res_name, res_class)
-XLCd lcd;
-Display *display;
-XrmDatabase rdb;
-char *res_name;
-char *res_class;
-#endif
{
XOM om = (XOM)NULL;
int count;
- char *path;
char lc_dir[BUFSIZE];
char *lc_name;
- XOM (*om_openOM)() = (XOM(*)())NULL;
+ dynamicIOpenProcp om_openOM = (dynamicIOpenProcp)NULL;
XI18NObjectsList objects_list = xi18n_objects_list;
#if defined(hpux)
int getsyms_cnt, i;
@@ -587,59 +586,28 @@ char *res_class;
lc_name = lcd->core->name;
- if (_XlcLocaleDirName(lc_dir, lc_name) == NULL) return (XOM)0;
+ if (_XlcLocaleDirName(lc_dir, BUFSIZE, lc_name) == NULL) return (XOM)0;
count = lc_count;
for (; count-- > 0; objects_list++) {
if (objects_list->type != XOM_OBJECT ||
strcmp(objects_list->locale_name, lc_name)) continue;
- if (!objects_list->dl_module) {
- path = __lc_path(objects_list->dl_name, lc_dir);
-#if defined(hpux)
- objects_list->dl_module = shl_load(path, BIND_DEFERRED, 0L);
-#else
- objects_list->dl_module = dlopen(path, RTLD_LAZY);
-#endif
- Xfree(path);
- if (!objects_list->dl_module) continue;
- }
-#if defined(hpux)
- getsyms_cnt = shl_getsymbols(objects_list->dl_module, TYPE_PROCEDURE,
- EXPORT_SYMBOLS, malloc, &symbols);
-
- for(i=0; i<getsyms_cnt; i++) {
- if(!strcmp(symbols[i].name, objects_list->open)) {
- om_openOM = symbols[i].value;
- break;
- }
- }
-
- if(getsyms_cnt > 0) {
- free(symbols);
- }
-#else
- om_openOM = (XOM(*)())dlsym(objects_list->dl_module,
- objects_list->open);
+ if (!open_object (objects_list, lc_dir))
+ continue;
+
+ om_openOM = (dynamicIOpenProcp)fetch_symbol(objects_list, objects_list->open);
if (!om_openOM) continue;
-#endif
om = (*om_openOM)(lcd, display, rdb, res_name, res_class);
if (om != (XOM)NULL) {
- break;
+ break;
}
- om_openOM = 0;
-#if defined(hpux)
- shl_unload(objects_list->dl_module);
-#else
- dlclose(objects_list->dl_module);
-#endif
- objects_list->dl_module = NULL;
+ close_object(objects_list);
}
return (XOM)om;
}
Bool
-_XInitDynamicOM(lcd)
- XLCd lcd;
+_XInitDynamicOM(XLCd lcd)
{
if(lcd == (XLCd)NULL)
return False;
diff --git a/src/xlibi18n/XlcGeneric.h b/src/xlibi18n/XlcGeneric.h
index 96f49fe8..f1d14e71 100644
--- a/src/xlibi18n/XlcGeneric.h
+++ b/src/xlibi18n/XlcGeneric.h
@@ -31,6 +31,7 @@
* Modifier: Takanori Tateno FUJITSU LIMITED
*
*/
+/* $XFree86: xc/lib/X11/XlcGeneric.h,v 1.4 2001/07/25 15:04:44 dawes Exp $ */
#ifndef _XLCGENERIC_H_
#define _XLCGENERIC_H_
@@ -93,6 +94,7 @@ typedef struct _CodeSetRec {
ExtdSegment ctextseg;
ParseInfo parse_info;
unsigned long wc_encoding;
+ Bool string_encoding;
} CodeSetRec, *CodeSet;
typedef enum {
@@ -129,10 +131,8 @@ typedef struct _XLCdGenericPart {
CodeSet initial_state_GR;
int segment_conv_num; /* UDC */
SegConv segment_conv; /* UDC */
-#ifndef X_NOT_STDC_ENV
Bool use_stdc_env;
Bool force_convert_to_mb;
-#endif
} XLCdGenericPart;
typedef struct _XLCdGenericRec {
@@ -143,4 +143,22 @@ typedef struct _XLCdGenericRec {
extern XLCdMethods _XlcGenericMethods;
+extern FontScope
+_XlcParse_scopemaps(
+ const char *str,
+ int *size);
+extern void
+_XlcDbg_printValue(
+ const char *str,
+ char **value,
+ int num);
+
+extern XIM
+_XDefaultOpenIM(
+ XLCd lcd,
+ Display *dpy,
+ XrmDatabase rdb,
+ char *res_name,
+ char *res_class);
+
#endif /* _XLCGENERIC_H_ */
diff --git a/src/xlibi18n/XlcPubI.h b/src/xlibi18n/XlcPubI.h
index 0234f0f4..8441d7f6 100644
--- a/src/xlibi18n/XlcPubI.h
+++ b/src/xlibi18n/XlcPubI.h
@@ -23,6 +23,7 @@
* Author: Katsuhisa Yano TOSHIBA Corp.
* mopi@osa.ilab.toshiba.co.jp
*/
+/* $XFree86: xc/lib/X11/XlcPubI.h,v 3.14 2003/11/17 22:20:10 dawes Exp $ */
#ifndef _XLCPUBLICI_H_
#define _XLCPUBLICI_H_
@@ -40,40 +41,30 @@
typedef struct _XLCdPublicMethodsRec *XLCdPublicMethods;
typedef XLCd (*XlcPubCreateProc)(
-#if NeedFunctionPrototypes
- char* /* name */,
- XLCdMethods /* methods */
-#endif
+ const char* name,
+ XLCdMethods methods
);
typedef Bool (*XlcPubInitializeProc)(
-#if NeedFunctionPrototypes
- XLCd /* lcd */
-#endif
+ XLCd lcd
);
typedef void (*XlcPubDestroyProc)(
-#if NeedFunctionPrototypes
- XLCd /* lcd */
-#endif
+ XLCd lcd
);
typedef char* (*XlcPubGetValuesProc)(
-#if NeedFunctionPrototypes
- XLCd /* lcd */,
- XlcArgList /* args */,
- int /* num_args */
-#endif
+ XLCd lcd,
+ XlcArgList args,
+ int num_args
);
typedef void (*XlcPubGetResourceProc)(
-#if NeedFunctionPrototypes
- XLCd /* lcd */,
- char* /* category */,
- char* /* class */,
- char*** /* value */,
- int* /* count */
-#endif
+ XLCd lcd,
+ const char* category,
+ const char* _class,
+ char*** value,
+ int* count
);
typedef struct _XLCdPublicMethodsPart {
@@ -102,7 +93,7 @@ typedef struct _XLCdPublicPart {
char *encoding_name; /* encoding name */
int mb_cur_max; /* ANSI C MB_CUR_MAX */
Bool is_state_depend; /* state-depend encoding */
- char *default_string; /* for XDefaultString() */
+ const char *default_string; /* for XDefaultString() */
XPointer xlocale_db;
} XLCdPublicPart;
@@ -116,137 +107,195 @@ extern XLCdMethods _XlcPublicMethods;
_XFUNCPROTOBEGIN
extern XLCd _XlcCreateLC(
-#if NeedFunctionPrototypes
- char* /* name */,
- XLCdMethods /* methods */
-#endif
+ const char* name,
+ XLCdMethods methods
);
extern void _XlcDestroyLC(
-#if NeedFunctionPrototypes
- XLCd /* lcd */
-#endif
+ XLCd lcd
);
+/* Fills into a freshly created XlcCharSet the fields that can be inferred
+ from the ESC sequence. These are side, char_size, set_size. */
extern Bool _XlcParseCharSet(
-#if NeedFunctionPrototypes
- XlcCharSet /* charset */
-#endif
+ XlcCharSet charset
);
+/* Creates a new XlcCharSet, given its name (including side suffix) and
+ Compound Text ESC sequence (normally at most 4 bytes). */
extern XlcCharSet _XlcCreateDefaultCharSet(
-#if NeedFunctionPrototypes
- char* /* name */,
- char* /* control_sequence */
-#endif
+ const char* name,
+ const char* ct_sequence
);
extern XlcCharSet _XlcAddCT(
-#if NeedFunctionPrototypes
- char* /* name */,
- char* /* control_sequence */
-#endif
+ const char* name,
+ const char* ct_sequence
);
+extern Bool _XlcInitCTInfo (void);
+
extern XrmMethods _XrmDefaultInitParseInfo(
-#if NeedFunctionPrototypes
- XLCd /* lcd */,
- XPointer* /* state */
-#endif
+ XLCd lcd,
+ XPointer* state
);
extern int _XmbTextPropertyToTextList(
-#if NeedFunctionPrototypes
- XLCd /* lcd */,
- Display* /* dpy */,
- XTextProperty* /* text_prop */,
- char*** /* list_ret */,
- int* /* count_ret */
-#endif
+ XLCd lcd,
+ Display* dpy,
+ const XTextProperty* text_prop,
+ char*** list_ret,
+ int* count_ret
);
extern int _XwcTextPropertyToTextList(
-#if NeedFunctionPrototypes
- XLCd /* lcd */,
- Display* /* dpy */,
- XTextProperty* /* text_prop */,
- wchar_t*** /* list_ret */,
- int* /* count_ret */
-#endif
+ XLCd lcd,
+ Display* dpy,
+ const XTextProperty* text_prop,
+ wchar_t*** list_ret,
+ int* count_ret
+);
+
+extern int _Xutf8TextPropertyToTextList(
+ XLCd lcd,
+ Display* dpy,
+ const XTextProperty* text_prop,
+ char*** list_ret,
+ int* count_ret
);
extern int _XmbTextListToTextProperty(
-#if NeedFunctionPrototypes
XLCd /* lcd */,
Display* /* dpy */,
char** /* list */,
int /* count */,
XICCEncodingStyle /* style */,
XTextProperty* /* text_prop */
-#endif
);
extern int _XwcTextListToTextProperty(
-#if NeedFunctionPrototypes
XLCd /* lcd */,
Display* /* dpy */,
wchar_t** /* list */,
int /* count */,
XICCEncodingStyle /* style */,
XTextProperty* /* text_prop */
-#endif
+);
+
+extern int _Xutf8TextListToTextProperty(
+ XLCd /* lcd */,
+ Display* /* dpy */,
+ char** /* list */,
+ int /* count */,
+ XICCEncodingStyle /* style */,
+ XTextProperty* /* text_prop */
);
extern void _XwcFreeStringList(
-#if NeedFunctionPrototypes
XLCd /* lcd */,
wchar_t** /* list */
-#endif
);
extern int _XlcResolveLocaleName(
-#if NeedFunctionPrototypes
- char* /* lc_name */,
- XLCdPublicPart* /* pub */
-#endif
+ const char* lc_name,
+ XLCdPublicPart* pub
);
extern int _XlcResolveI18NPath(
-#if NeedFunctionPrototypes
- char* /* buf */,
- int /* buf_len */
-#endif
+ char* buf,
+ int buf_len
);
extern char *_XlcLocaleDirName(
-#if NeedFunctionPrototypes
- char* /* dir_name */,
- char* /* lc_name */
-#endif
+ char* /* dir_name */,
+ size_t, /* dir_len */
+ char* /* lc_name */
);
extern XPointer _XlcCreateLocaleDataBase(
-#if NeedFunctionPrototypes
- XLCd /* lcd */
-#endif
+ XLCd lcd
);
extern void _XlcDestroyLocaleDataBase(
-#if NeedFunctionPrototypes
- XLCd /* lcd */
-#endif
+ XLCd lcd
);
extern void _XlcGetLocaleDataBase(
-#if NeedFunctionPrototypes
XLCd /* lcd */,
- char* /* category */,
- char* /* name */,
+ const char* /* category */,
+ const char* /* name */,
char*** /* value */,
int* /* count */
-#endif
);
+#ifdef X_LOCALE
+extern char *
+_Xsetlocale(
+ int category,
+ _Xconst char *name);
+#else
+#ifdef __DARWIN__
+extern char *
+_Xsetlocale(
+ int category,
+ _Xconst char *name);
+#endif
+extern char *_XlcMapOSLocaleName(
+ char *osname,
+ char *siname);
+#endif
+
+extern int
+_Xmbstoutf8(
+ char *ustr,
+ const char *str,
+ int len);
+extern int
+_Xlcmbstoutf8(
+ XLCd lcd,
+ char *ustr,
+ const char *str,
+ int len);
+extern int
+_Xmbstowcs(
+ wchar_t *wstr,
+ char *str,
+ int len);
+extern int
+_Xlcwcstombs(
+ XLCd lcd,
+ char *str,
+ wchar_t *wstr,
+ int len);
+extern int
+_Xlcmbstowcs(
+ XLCd lcd,
+ wchar_t *wstr,
+ char *str,
+ int len);
+extern int
+_Xwcstombs(
+ char *str,
+ wchar_t *wstr,
+ int len);
+extern int
+_Xlcmbtowc(
+ XLCd lcd,
+ wchar_t *wstr,
+ char *str,
+ int len);
+extern int
+_Xlcwctomb(
+ XLCd lcd,
+ char *str,
+ wchar_t wc);
+
+
+
+extern XPointer
+_Utf8GetConvByName(
+ const char *name);
+
_XFUNCPROTOEND
#endif /* _XLCPUBLICI_H_ */
diff --git a/src/xlibi18n/XlcPublic.h b/src/xlibi18n/XlcPublic.h
index 0deb44c1..27595d8a 100644
--- a/src/xlibi18n/XlcPublic.h
+++ b/src/xlibi18n/XlcPublic.h
@@ -31,65 +31,135 @@
* Modifier: Takanori Tateno FUJITSU LIMITED
*
*/
+/* $XFree86: xc/lib/X11/XlcPublic.h,v 1.11 2003/04/17 02:06:31 dawes Exp $ */
+/*
+ * Most of this API is documented in i18n/Framework.PS
+ */
#ifndef _XLCPUBLIC_H_
#define _XLCPUBLIC_H_
#include "Xlcint.h"
-#define XlcNCharSize "charSize"
-#define XlcNCodeset "codeset"
-#define XlcNControlSequence "controlSequence"
-#define XlcNDefaultString "defaultString"
-#define XlcNEncodingName "encodingName"
-#define XlcNLanguage "language"
-#define XlcNMbCurMax "mbCurMax"
-#define XlcNName "name"
-#define XlcNSetSize "setSize"
-#define XlcNSide "side"
-#define XlcNStateDependentEncoding "stateDependentEncoding"
-#define XlcNTerritory "territory"
+/*
+ * Character sets.
+ */
+
+/* Every character set has a "side". It denotes the range of byte values for
+ which the character set is responsible. This means that the character
+ set's encoded characters will only assumes bytes within the range, and
+ that the character set can be used simultaneously with another character
+ set responsible for a disjoint range. */
typedef enum {
- XlcUnknown, XlcC0, XlcGL, XlcC1, XlcGR, XlcGLGR, XlcOther, XlcNONE
+ XlcUnknown,
+ XlcC0, /* responsible for values 0x00..0x1F */
+ XlcGL, /* responsible for values 0x00..0x7F or 0x20..0x7F */
+ XlcC1, /* responsible for values 0x80..0x9F */
+ XlcGR, /* responsible for values 0x80..0xFF or 0xA0..0xFF */
+ XlcGLGR, /* responsible for values 0x00..0xFF */
+ XlcOther, /* unused */
+ XlcNONE
} XlcSide;
-typedef struct _FontScope {
- unsigned long start;
- unsigned long end;
- unsigned long shift;
- unsigned long shift_direction;
-} FontScopeRec, *FontScope;
-
+/* Data read from XLC_LOCALE files.
+ XXX Apparently superseded by _XUDCGlyphRegion. */
typedef struct _UDCArea {
- unsigned long start,end;
+ unsigned long start;
+ unsigned long end;
} UDCAreaRec, *UDCArea;
-typedef struct _XlcCharSetRec *XlcCharSet;
+/* Where the character set comes from. */
+typedef enum {
+ CSsrcUndef, /* unused */
+ CSsrcStd, /* defined in libX11 */
+ CSsrcXLC /* defined in an XLC_LOCALE file */
+} CSSrc;
-typedef char* (*XlcGetCSValuesProc)(
-#if NeedFunctionPrototypes
- XlcCharSet /* charset */,
- XlcArgList /* args */,
- int /* num_args */
-#endif
-);
+/* These are the supported properties of XlcCharSet. */
+#define XlcNCharSize "charSize"
+#define XlcNControlSequence "controlSequence"
+#define XlcNEncodingName "encodingName"
+#define XlcNName "name"
+#define XlcNSetSize "setSize"
+#define XlcNSide "side"
+/* This is the structure of an XlcCharSet.
+ Once allocated, they are never freed. */
typedef struct _XlcCharSetRec {
- char *name; /* character set name */
+ /* Character set name, including side suffix */
+ const char *name;
XrmQuark xrm_name;
- char *encoding_name; /* XLFD encoding name */
+
+ /* XLFD encoding name, no side suffix */
+ const char *encoding_name;
XrmQuark xrm_encoding_name;
- XlcSide side; /* GL, GR or others */
- int char_size; /* number of bytes per character */
- int set_size; /* graphic character sets */
- char *ct_sequence; /* control sequence of CT */
- XlcGetCSValuesProc get_values;
- /* UDC */
+
+ /* Range for which the charset is responsible: XlcGL, XlcGR or XlcGLGR */
+ XlcSide side;
+
+ /* Number of bytes per character. 0 means a varying number (e.g. UTF-8) */
+ int char_size;
+ /* Classification of the character set according to ISO-2022 */
+ int set_size; /* e.g. 94 or 96 */
+ const char *ct_sequence; /* control sequence of CT */
+ /* (normally at most 4 bytes) */
+
+ /* for UDC */
Bool string_encoding;
UDCArea udc_area;
int udc_area_num;
-} XlcCharSetRec;
+
+ /* Description source */
+ CSSrc source;
+} XlcCharSetRec, *XlcCharSet;
+
+_XFUNCPROTOBEGIN
+
+/* Returns the charset with the given name (including side suffix).
+ Returns NULL if not found. */
+extern XlcCharSet _XlcGetCharSet(
+ const char* name
+);
+
+/* Returns the charset with the given encoding (no side suffix) and
+ responsible for at least the given side (XlcGL or XlcGR).
+ Returns NULL if not found. */
+extern XlcCharSet _XlcGetCharSetWithSide(
+ const char* encoding_name,
+ XlcSide side
+);
+
+/* Registers an XlcCharSet in the list of character sets.
+ Returns True if successful. */
+extern Bool _XlcAddCharSet(
+ XlcCharSet charset
+);
+
+/* Retrieves a number of attributes of an XlcCharSet.
+ Return NULL if successful, otherwise the name of the first argument
+ specifiying a nonexistent attribute. */
+extern char *_XlcGetCSValues(
+ XlcCharSet charset,
+ ...
+);
+
+_XFUNCPROTOEND
+
+
+#define XlcNCodeset "codeset"
+#define XlcNDefaultString "defaultString"
+#define XlcNLanguage "language"
+#define XlcNMbCurMax "mbCurMax"
+#define XlcNStateDependentEncoding "stateDependentEncoding"
+#define XlcNTerritory "territory"
+
+typedef struct _FontScope {
+ unsigned long start;
+ unsigned long end;
+ unsigned long shift;
+ unsigned long shift_direction;
+} FontScopeRec, *FontScope;
/*
* conversion methods
@@ -98,22 +168,17 @@ typedef struct _XlcCharSetRec {
typedef struct _XlcConvRec *XlcConv;
typedef XlcConv (*XlcOpenConverterProc)(
-#if NeedFunctionPrototypes
- XLCd /* from_lcd */,
- char* /* from_type */,
- XLCd /* to_lcd */,
- char* /* to_type */
-#endif
+ XLCd from_lcd,
+ const char* from_type,
+ XLCd to_lcd,
+ const char* to_type
);
typedef void (*XlcCloseConverterProc)(
-#if NeedFunctionPrototypes
XlcConv /* conv */
-#endif
);
typedef int (*XlcConvertProc)(
-#if NeedFunctionPrototypes
XlcConv /* conv */,
XPointer* /* from */,
int* /* from_left */,
@@ -121,13 +186,10 @@ typedef int (*XlcConvertProc)(
int* /* to_left */,
XPointer* /* args */,
int /* num_args */
-#endif
);
typedef void (*XlcResetConverterProc)(
-#if NeedFunctionPrototypes
XlcConv /* conv */
-#endif
);
typedef struct _XlcConvMethodsRec{
@@ -144,9 +206,12 @@ typedef struct _XlcConvMethodsRec{
#define XlcNWideChar "wideChar"
#define XlcNCompoundText "compoundText"
#define XlcNString "string"
+#define XlcNUtf8String "utf8String"
#define XlcNCharSet "charSet"
#define XlcNCTCharSet "CTcharSet"
+#define XlcNFontCharSet "FontCharSet"
#define XlcNChar "char"
+#define XlcNUcsChar "UCSchar"
typedef struct _XlcConvRec {
XlcConvMethods methods;
@@ -157,131 +222,105 @@ typedef struct _XlcConvRec {
_XFUNCPROTOBEGIN
extern Bool _XInitOM(
-#if NeedFunctionPrototypes
XLCd /* lcd */
-#endif
);
extern Bool _XInitIM(
-#if NeedFunctionPrototypes
XLCd /* lcd */
-#endif
);
-extern char *_XGetLCValues(
-#if NeedVarargsPrototypes
+extern XIM _XimOpenIM(
XLCd /* lcd */,
- ...
-#endif
-);
-
-extern XlcCharSet _XlcGetCharSet(
-#if NeedFunctionPrototypes
- char* /* name */
-#endif
-);
-
-extern Bool _XlcAddCharSet(
-#if NeedFunctionPrototypes
- XlcCharSet /* charset */
-#endif
+ Display * /* dpy */,
+ XrmDatabase /* rdb */,
+ char * /* res_name */,
+ char * /* res_class */
);
-extern char *_XlcGetCSValues(
-#if NeedVarargsPrototypes
- XlcCharSet /* charset */,
+extern char *_XGetLCValues(
+ XLCd /* lcd */,
...
-#endif
);
extern XlcConv _XlcOpenConverter(
-#if NeedFunctionPrototypes
- XLCd /* from_lcd */,
- char* /* from_type */,
- XLCd /* to_lcd */,
- char* /* to_type */
-#endif
+ XLCd from_lcd,
+ const char* from_type,
+ XLCd to_lcd,
+ const char* to_type
);
extern void _XlcCloseConverter(
-#if NeedFunctionPrototypes
- XlcConv /* conv */
-#endif
+ XlcConv conv
);
extern int _XlcConvert(
-#if NeedFunctionPrototypes
- XlcConv /* conv */,
- XPointer* /* from */,
- int* /* from_left */,
- XPointer* /* to */,
- int* /* to_left */,
- XPointer* /* args */,
- int /* num_args */
-#endif
+ XlcConv conv,
+ XPointer* from,
+ int* from_left,
+ XPointer* to,
+ int* to_left,
+ XPointer* args,
+ int num_args
);
extern void _XlcResetConverter(
-#if NeedFunctionPrototypes
- XlcConv /* conv */
-#endif
+ XlcConv conv
);
extern Bool _XlcSetConverter(
-#if NeedFunctionPrototypes
- XLCd /* from_lcd */,
- char* /* from_type */,
- XLCd /* to_lcd */,
- char* /* to_type */,
- XlcOpenConverterProc /* open_converter */
-#endif
+ XLCd from_lcd,
+ const char* from_type,
+ XLCd to_lcd,
+ const char* to_type,
+ XlcOpenConverterProc open_converter
);
extern void _XlcGetResource(
-#if NeedFunctionPrototypes
- XLCd /* lcd */,
- char* /* category */,
- char* /* class */,
- char*** /* value */,
- int* /* count */
-#endif
+ XLCd lcd,
+ const char* category,
+ const char* _class,
+ char*** value,
+ int* count
);
extern char *_XlcFileName(
-#if NeedFunctionPrototypes
- XLCd /* lcd */,
- char* /* category */
-#endif
+ XLCd lcd,
+ const char* category
);
extern int _Xwcslen(
-#if NeedFunctionPrototypes
wchar_t* /* wstr */
-#endif
);
extern wchar_t *_Xwcscpy(
-#if NeedFunctionPrototypes
wchar_t* /* wstr1 */,
wchar_t* /* wstr2 */
-#endif
);
+extern wchar_t *_Xwcsncpy(wchar_t *wstr1, wchar_t *wstr2, int len);
+extern int _Xwcscmp(wchar_t *wstr1, wchar_t *wstr2);
+extern int _Xwcsncmp(wchar_t *wstr1, wchar_t *wstr2, int len);
+
+/* Compares two ISO 8859-1 strings, ignoring case of ASCII letters.
+ Like strcasecmp in an ASCII locale. */
extern int _XlcCompareISOLatin1(
-#if NeedFunctionPrototypes
- char* /* str1 */,
- char* /* str2 */
-#endif
+ const char* str1,
+ const char* str2
);
+/* Compares two ISO 8859-1 strings, at most len bytes of each, ignoring
+ case of ASCII letters. Like strncasecmp in an ASCII locale. */
extern int _XlcNCompareISOLatin1(
-#if NeedFunctionPrototypes
- char* /* str1 */,
- char* /* str2 */,
- int /* len */
-#endif
+ const char* str1,
+ const char* str2,
+ int len
);
+extern XOM
+_XDefaultOpenOM(
+ XLCd lcd, Display *dpy, XrmDatabase rdb,
+ _Xconst char *res_name, _Xconst char *res_class);
+
_XFUNCPROTOEND
#endif /* _XLCPUBLIC_H_ */
diff --git a/src/xlibi18n/XlcSL.c b/src/xlibi18n/XlcSL.c
index 12391b1d..bcf0a001 100644
--- a/src/xlibi18n/XlcSL.c
+++ b/src/xlibi18n/XlcSL.c
@@ -41,14 +41,13 @@ interest in or to any trademark, service mark, logo or trade name of
Sun Microsystems, Inc. or its licensors is granted.
*/
+/* $XFree86$ */
#include "Xlibint.h"
#include "Xlcint.h"
extern XIM _XDefaultOpenIM(
-#if NeedNestedPrototypes
XLCd, Display *, XrmDatabase, char *, char *
-#endif
);
Bool
@@ -65,9 +64,7 @@ XLCd lcd;
}
extern XOM _XDefaultOpenOM(
-#if NeedFunctionPrototypes
XLCd, Display*, XrmDatabase, _Xconst char*, _Xconst char*
-#endif
);
Bool
diff --git a/src/xlibi18n/Xlcint.h b/src/xlibi18n/Xlcint.h
index 60041e7e..fcc3a65f 100644
--- a/src/xlibi18n/Xlcint.h
+++ b/src/xlibi18n/Xlcint.h
@@ -26,6 +26,7 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
+/* $XFree86: xc/lib/X11/Xlcint.h,v 3.16 2003/04/17 02:06:31 dawes Exp $ */
/*
* Copyright 1990, 1991 by OMRON Corporation, NTT Software Corporation,
@@ -71,17 +72,17 @@ from The Open Group.
#ifndef _XLCINT_H_
#define _XLCINT_H_
+#ifndef _XP_PRINT_SERVER_
+
#include <X11/Xresource.h>
#include <X11/Xutil.h>
-#include "Xvarargs.h"
+#include <stdarg.h>
typedef Bool (*XFilterEventProc)(
-#if NeedFunctionPrototypes
Display* /* display */,
Window /* window */,
XEvent* /* event */,
XPointer /* client_data */
-#endif
);
typedef struct _XIMFilter {
@@ -135,12 +136,12 @@ typedef struct {
XFontSet fontset;
int line_spacing;
Cursor cursor;
- XIMCallback start_callback;
- XIMCallback done_callback;
- XIMCallback draw_callback;
- XIMCallback caret_callback;
+ XICCallback start_callback;
+ XICCallback done_callback;
+ XICCallback draw_callback;
+ XICCallback caret_callback;
XIMPreeditState preedit_state;
- XIMCallback state_notify_callback;
+ XICCallback state_notify_callback;
} ICPreeditAttributes, *ICPreeditAttributesPtr;
typedef struct {
@@ -154,54 +155,62 @@ typedef struct {
XFontSet fontset;
int line_spacing;
Cursor cursor;
- XIMCallback start_callback;
- XIMCallback done_callback;
- XIMCallback draw_callback;
+ XICCallback start_callback;
+ XICCallback done_callback;
+ XICCallback draw_callback;
} ICStatusAttributes, *ICStatusAttributesPtr;
+#endif /* !_XP_PRINT_SERVER_ */
+
/*
* Methods for Xrm parsing
*/
+/* The state is a pointer to an object created by the locale's
+ init_parse_info function (default: _XrmDefaultInitParseInfo). */
+
+/* Sets the state to the initial state.
+ Initiates a sequence of calls to the XmbCharProc. */
typedef void (*XmbInitProc)(
-#if NeedFunctionPrototypes
- XPointer /* state */
-#endif
+ XPointer state
);
+/* Transforms one multibyte character, starting at str, and return a 'char'
+ in the same parsing class (not a wide character!). Returns the number of
+ consumed bytes in *lenp. */
typedef char (*XmbCharProc)(
-#if NeedFunctionPrototypes
- XPointer /* state */,
- char* /* str */,
- int* /* lenp */
-#endif
+ XPointer state,
+ const char * str,
+ int* lenp
);
+/* Terminates a sequence of calls to the XmbCharProc. */
typedef void (*XmbFinishProc)(
-#if NeedFunctionPrototypes
- XPointer /* state */
-#endif
+ XPointer state
);
-typedef char* (*XlcNameProc)(
-#if NeedFunctionPrototypes
- XPointer /* state */
-#endif
+/* Returns the name of the state's locale, as a static string. */
+typedef const char* (*XlcNameProc)(
+ XPointer state
);
+/* Frees the state, which was allocated by the locale's init_parse_info
+ function. */
typedef void (*XrmDestroyProc)(
-#if NeedFunctionPrototypes
- XPointer /* state */
-#endif
+ XPointer state
);
+/* Set of methods for Xrm parsing. */
typedef struct {
XmbInitProc mbinit;
XmbCharProc mbchar;
XmbFinishProc mbfinish;
XlcNameProc lcname;
XrmDestroyProc destroy;
-} XrmMethodsRec, *XrmMethods;
+} XrmMethodsRec;
+typedef const XrmMethodsRec *XrmMethods;
+
+#ifndef _XP_PRINT_SERVER_
typedef struct _XLCd *XLCd; /* need forward reference */
@@ -210,123 +219,97 @@ typedef struct _XLCd *XLCd; /* need forward reference */
*/
typedef void (*XCloseLCProc)(
-#if NeedFunctionPrototypes
XLCd /* lcd */
-#endif
);
typedef char* (*XlcMapModifiersProc)(
-#if NeedFunctionPrototypes
XLCd /* lcd */,
- char* /* user_mods */,
- char* /* prog_mods */
-#endif
+ _Xconst char* /* user_mods */,
+ _Xconst char* /* prog_mods */
);
typedef XOM (*XOpenOMProc)(
-#if NeedFunctionPrototypes
XLCd /* lcd */,
Display* /* display */,
XrmDatabase /* rdb */,
_Xconst char* /* res_name */,
_Xconst char* /* res_class */
-#endif
);
typedef XIM (*XOpenIMProc)(
-#if NeedFunctionPrototypes
XLCd /* lcd */,
Display* /* display */,
XrmDatabase /* rdb */,
char* /* res_name */,
char* /* res_class */
-#endif
);
typedef Bool (*XRegisterIMInstantiateCBProc)(
-#if NeedFunctionPrototypes
XLCd /* lcd */,
Display* /* display */,
XrmDatabase /* rdb */,
char* /* res_name */,
char* /* res_class */,
- XIMProc /* callback */,
- XPointer* /* client_data */
-#endif
+ XIDProc /* callback */,
+ XPointer /* client_data */
);
typedef Bool (*XUnregisterIMInstantiateCBProc)(
-#if NeedFunctionPrototypes
XLCd /* lcd */,
Display* /* display */,
XrmDatabase /* rdb */,
char* /* res_name */,
char* /* res_class */,
- XIMProc /* callback */,
- XPointer* /* client_data */
-#endif
+ XIDProc /* callback */,
+ XPointer /* client_data */
);
typedef XrmMethods (*XrmInitParseInfoProc)(
-#if NeedFunctionPrototypes
XLCd /* lcd */,
XPointer* /* state */
-#endif
);
typedef int (*XmbTextPropertyToTextListProc)(
-#if NeedFunctionPrototypes
- XLCd /* lcd */,
- Display* /* display */,
- XTextProperty* /* text_prop */,
- char*** /* list_return */,
- int* /* count_return */
-#endif
+ XLCd lcd,
+ Display* display,
+ const XTextProperty* text_prop,
+ char*** list_return,
+ int* count_return
);
typedef int (*XwcTextPropertyToTextListProc)(
-#if NeedFunctionPrototypes
- XLCd /* lcd */,
- Display* /* display */,
- XTextProperty* /* text_prop */,
- wchar_t*** /* list_return */,
- int* /* count_return */
-#endif
+ XLCd lcd,
+ Display* display,
+ const XTextProperty* text_prop,
+ wchar_t*** list_return,
+ int* count_return
);
typedef int (*XmbTextListToTextPropertyProc)(
-#if NeedFunctionPrototypes
- XLCd /* lcd */,
- Display* /* display */,
- char** /* list */,
- int /* count */,
- XICCEncodingStyle /* style */,
- XTextProperty* /* text_prop_return */
-#endif
+ XLCd lcd,
+ Display* display,
+ char** list,
+ int count,
+ XICCEncodingStyle style,
+ XTextProperty* text_prop_return
);
typedef int (*XwcTextListToTextPropertyProc)(
-#if NeedFunctionPrototypes
- XLCd /* lcd */,
- Display* /* display */,
- wchar_t** /* list */,
- int /* count */,
- XICCEncodingStyle /* style */,
- XTextProperty* /* text_prop_return */
-#endif
+ XLCd lcd,
+ Display* display,
+ wchar_t** list,
+ int count,
+ XICCEncodingStyle style,
+ XTextProperty* text_prop_return
);
typedef void (*XwcFreeStringListProc)(
-#if NeedFunctionPrototypes
- XLCd /* lcd */,
- wchar_t** /* list */
-#endif
+ XLCd lcd,
+ wchar_t** list
);
-typedef char* (*XDefaultStringProc)(
-#if NeedFunctionPrototypes
- XLCd /* lcd */
-#endif
+typedef const char* (*XDefaultStringProc)(
+ XLCd lcd
);
typedef struct {
@@ -337,8 +320,10 @@ typedef struct {
XrmInitParseInfoProc init_parse_info;
XmbTextPropertyToTextListProc mb_text_prop_to_list;
XwcTextPropertyToTextListProc wc_text_prop_to_list;
+ XmbTextPropertyToTextListProc utf8_text_prop_to_list;
XmbTextListToTextPropertyProc mb_text_list_to_prop;
XwcTextListToTextPropertyProc wc_text_list_to_prop;
+ XmbTextListToTextPropertyProc utf8_text_list_to_prop;
XwcFreeStringListProc wc_free_string_list;
XDefaultStringProc default_string;
XRegisterIMInstantiateCBProc register_callback;
@@ -385,33 +370,25 @@ typedef struct _XlcResource {
#define XlcNumber(arr) (sizeof(arr) / sizeof(arr[0]))
typedef Status (*XCloseOMProc)(
-#if NeedFunctionPrototypes
XOM /* om */
-#endif
);
typedef char* (*XSetOMValuesProc)(
-#if NeedFunctionPrototypes
XOM /* om */,
XlcArgList /* args */,
int /* num_args */
-#endif
);
typedef char* (*XGetOMValuesProc)(
-#if NeedFunctionPrototypes
XOM /* om */,
XlcArgList /* args */,
int /* num_args */
-#endif
);
typedef XOC (*XCreateOCProc)(
-#if NeedFunctionPrototypes
XOM /* om */,
XlcArgList /* args */,
int /* num_args */
-#endif
);
typedef struct _XOMMethodsRec {
@@ -443,25 +420,19 @@ typedef struct _XOM {
} XOMRec;
typedef void (*XDestroyOCProc)(
-#if NeedFunctionPrototypes
XOC /* oc */
-#endif
);
typedef char* (*XSetOCValuesProc)(
-#if NeedFunctionPrototypes
XOC /* oc */,
XlcArgList /* args */,
int /* num_args */
-#endif
);
typedef char* (*XGetOCValuesProc)(
-#if NeedFunctionPrototypes
XOC /* oc */,
XlcArgList /* args */,
int /* num_args */
-#endif
);
/*
@@ -474,25 +445,20 @@ typedef char* (*XGetOCValuesProc)(
*/
typedef int (*XmbTextEscapementProc)(
-#if NeedFunctionPrototypes
XFontSet /* font_set */,
_Xconst char* /* text */,
int /* text_len */
-#endif
);
typedef int (*XmbTextExtentsProc)(
-#if NeedFunctionPrototypes
XFontSet /* font_set */,
_Xconst char* /* text */,
int /* text_len */,
XRectangle* /* overall_ink_extents */,
XRectangle* /* overall_logical_extents */
-#endif
);
typedef Status (*XmbTextPerCharExtentsProc)(
-#if NeedFunctionPrototypes
XFontSet /* font_set */,
_Xconst char* /* text */,
int /* text_len */,
@@ -502,11 +468,9 @@ typedef Status (*XmbTextPerCharExtentsProc)(
int* /* num_chars */,
XRectangle* /* max_ink_extents */,
XRectangle* /* max_logical_extents */
-#endif
);
typedef int (*XmbDrawStringProc)(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* drawable */,
XFontSet /* font_set */,
@@ -515,11 +479,9 @@ typedef int (*XmbDrawStringProc)(
int /* y */,
_Xconst char* /* text */,
int /* text_len */
-#endif
);
typedef void (*XmbDrawImageStringProc)(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* drawable */,
XFontSet /* font_set */,
@@ -528,29 +490,23 @@ typedef void (*XmbDrawImageStringProc)(
int /* y */,
_Xconst char* /* text */,
int /* text_len */
-#endif
);
typedef int (*XwcTextEscapementProc)(
-#if NeedFunctionPrototypes
XFontSet /* font_set */,
_Xconst wchar_t* /* text */,
int /* text_len */
-#endif
);
typedef int (*XwcTextExtentsProc)(
-#if NeedFunctionPrototypes
XFontSet /* font_set */,
_Xconst wchar_t* /* text */,
int /* text_len */,
XRectangle* /* overall_ink_extents */,
XRectangle* /* overall_logical_extents */
-#endif
);
typedef Status (*XwcTextPerCharExtentsProc)(
-#if NeedFunctionPrototypes
XFontSet /* font_set */,
_Xconst wchar_t* /* text */,
int /* text_len */,
@@ -560,11 +516,9 @@ typedef Status (*XwcTextPerCharExtentsProc)(
int* /* num_chars */,
XRectangle* /* max_ink_extents */,
XRectangle* /* max_logical_extents */
-#endif
);
typedef int (*XwcDrawStringProc)(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* drawable */,
XFontSet /* font_set */,
@@ -573,11 +527,9 @@ typedef int (*XwcDrawStringProc)(
int /* y */,
_Xconst wchar_t* /* text */,
int /* text_len */
-#endif
);
typedef void (*XwcDrawImageStringProc)(
-#if NeedFunctionPrototypes
Display* /* display */,
Drawable /* drawable */,
XFontSet /* font_set */,
@@ -586,7 +538,6 @@ typedef void (*XwcDrawImageStringProc)(
int /* y */,
_Xconst wchar_t* /* text */,
int /* text_len */
-#endif
);
typedef struct {
@@ -609,6 +560,14 @@ typedef struct {
XwcTextPerCharExtentsProc wc_extents_per_char;
XwcDrawStringProc wc_draw_string;
XwcDrawImageStringProc wc_draw_image_string;
+
+ /* UTF-8 text drawing methods */
+
+ XmbTextEscapementProc utf8_escapement;
+ XmbTextExtentsProc utf8_extents;
+ XmbTextPerCharExtentsProc utf8_extents_per_char;
+ XmbDrawStringProc utf8_draw_string;
+ XmbDrawImageStringProc utf8_draw_image_string;
} XOCMethodsRec, *XOCMethods;
@@ -638,12 +597,6 @@ typedef struct _XOC {
} XOCRec;
-/* current Ultrix compiler gets horribly confused */
-#if defined(FUNCPROTO) && defined(ultrix)
-#undef NeedFunctionPrototypes
-#endif
-
-
/*
* X Input Managers are an instantiable object, so we define it, the
* object itself, a method list and data.
@@ -654,34 +607,25 @@ typedef struct _XOC {
*/
typedef struct {
Status (*close)(
-#if NeedFunctionPrototypes
XIM
-#endif
);
char* (*set_values)(
-#if NeedFunctionPrototypes
XIM, XIMArg*
-#endif
);
char* (*get_values)(
-#if NeedFunctionPrototypes
XIM, XIMArg*
-#endif
);
XIC (*create_ic)(
-#if NeedFunctionPrototypes
XIM, XIMArg*
-#endif
);
int (*ctstombs)(
-#if NeedFunctionPrototypes
XIM, char*, int, char*, int, Status *
-#endif
);
int (*ctstowcs)(
-#if NeedFunctionPrototypes
XIM, char*, int, wchar_t*, int, Status *
-#endif
+ );
+ int (*ctstoutf8)(
+ XIM, char*, int, char*, int, Status *
);
} XIMMethodsRec, *XIMMethods;
@@ -732,49 +676,37 @@ typedef struct _XIM {
*/
typedef struct {
void (*destroy)(
-#if NeedFunctionPrototypes
XIC
-#endif
);
void (*set_focus)(
-#if NeedFunctionPrototypes
XIC
-#endif
);
void (*unset_focus)(
-#if NeedFunctionPrototypes
XIC
-#endif
);
char* (*set_values)(
-#if NeedFunctionPrototypes
XIC, XIMArg*
-#endif
);
char* (*get_values)(
-#if NeedFunctionPrototypes
XIC, XIMArg*
-#endif
);
char* (*mb_reset)(
-#if NeedFunctionPrototypes
XIC
-#endif
);
wchar_t* (*wc_reset)(
-#if NeedFunctionPrototypes
XIC
-#endif
+ );
+ char* (*utf8_reset)(
+ XIC
);
int (*mb_lookup_string)(
-#if NeedFunctionPrototypes
XIC, XKeyEvent*, char*, int, KeySym*, Status*
-#endif
);
int (*wc_lookup_string)(
-#if NeedFunctionPrototypes
XIC, XKeyEvent*, wchar_t*, int, KeySym*, Status*
-#endif
+ );
+ int (*utf8_lookup_string)(
+ XIC, XKeyEvent*, char*, int, KeySym*, Status*
);
} XICMethodsRec, *XICMethods;
@@ -791,12 +723,12 @@ typedef struct {
XIMStyle input_style; /* IM's input style */
Window focus_window; /* where key events go */
unsigned long filter_events; /* event mask from IM */
- XIMCallback geometry_callback; /* client callback */
+ XICCallback geometry_callback; /* client callback */
char * res_name;
char * res_class;
- XIMCallback destroy_callback;
- XIMCallback string_conversion_callback;
+ XICCallback destroy_callback;
+ XICCallback string_conversion_callback;
XIMStringConversionText string_conversion;
XIMResetState reset_state;
XIMHotKeyTriggers *hotkey;
@@ -816,188 +748,229 @@ typedef struct _XIC {
XICCoreRec core; /* data of this IC */
} XICRec;
-/* current Ultrix compiler gets horribly confused */
-#if !defined(NeedFunctionPrototypes) && defined(FUNCPROTO)
-#define NeedFunctionPrototypes 1
-#endif
+/* If the argument 'name' is appropriate for this loader, it instantiates an
+ XLCd object with appropriate locale methods and returns it. May return
+ NULL; in this case, the remaining loaders are tried. */
typedef XLCd (*XLCdLoadProc)(
-#if NeedFunctionPrototypes
- char*
-#endif
+ const char* name
);
_XFUNCPROTOBEGIN
extern XLCd _XOpenLC(
-#if NeedFunctionPrototypes
- char* /* name */
-#endif
+ char* name
);
extern void _XCloseLC(
-#if NeedFunctionPrototypes
- XLCd /* lcd */
-#endif
+ XLCd lcd
);
-extern XLCd _XlcCurrentLC(
-#if NeedFunctionPrototypes
- void
-#endif
-);
+extern XLCd _XlcCurrentLC (void);
extern Bool _XlcValidModSyntax(
-#if NeedFunctionPrototypes
- char* /* mods */,
- char** /* valid */
-#endif
+ const char* mods,
+ const char* const * valid
);
extern char *_XlcDefaultMapModifiers(
-#if NeedFunctionPrototypes
- XLCd /* lcd */,
- char* /* user_mods */,
- char* /* prog_mods */
-#endif
+ XLCd lcd,
+ _Xconst char* user_mods,
+ _Xconst char* prog_mods
);
extern void _XIMCompileResourceList(
-#if NeedFunctionPrototypes
XIMResourceList /* res */,
unsigned int /* num_res */
-#endif
);
extern void _XCopyToArg(
-#if NeedFunctionPrototypes
XPointer /* src */,
XPointer* /* dst */,
unsigned int /* size */
-#endif
);
extern char ** _XParseBaseFontNameList(
-#if NeedFunctionPrototypes
char* /* str */,
int* /* num */
-#endif
);
extern XrmMethods _XrmInitParseInfo(
-#if NeedFunctionPrototypes
- XPointer* /* statep */
-#endif
+ XPointer* statep
);
extern void _XRegisterFilterByMask(
-#if NeedFunctionPrototypes
Display* /* dpy */,
Window /* window */,
unsigned long /* event_mask */,
Bool (*)(
-#if NeedNestedPrototypes
Display* /* display */,
Window /* window */,
XEvent* /* event */,
XPointer /* client_data */
-#endif
) /* filter */,
XPointer /* client_data */
-#endif
);
extern void _XRegisterFilterByType(
-#if NeedFunctionPrototypes
Display* /* dpy */,
Window /* window */,
int /* start_type */,
int /* end_type */,
Bool (*)(
-#if NeedNestedPrototypes
Display* /* display */,
Window /* window */,
XEvent* /* event */,
XPointer /* client_data */
-#endif
) /* filter */,
XPointer /* client_data */
-#endif
);
extern void _XUnregisterFilter(
-#if NeedFunctionPrototypes
Display* /* dpy */,
Window /* window */,
Bool (*)(
-#if NeedNestedPrototypes
Display* /* display */,
Window /* window */,
XEvent* /* event */,
XPointer /* client_data */
-#endif
) /* filter */,
XPointer /* client_data */
-#endif
);
extern void _XlcCountVaList(
-#if NeedFunctionPrototypes
- va_list /* var */,
- int* /* count_return */
-#endif
+ va_list var,
+ int* count_return
);
extern void _XlcVaToArgList(
-#if NeedFunctionPrototypes
- va_list /* var */,
- int /* count */,
- XlcArgList* /* args_return */
-#endif
+ va_list var,
+ int count,
+ XlcArgList* args_return
+);
+
+
+extern void _XlcCopyFromArg(
+ char * src,
+ char * dst,
+ int size
+);
+
+extern void _XlcCopyToArg(
+ char * src,
+ char ** dst,
+ int size
);
extern void _XlcCompileResourceList(
-#if NeedFunctionPrototypes
- XlcResourceList /* resources */,
- int /* num_resources */
-#endif
+ XlcResourceList resources,
+ int num_resources
);
extern char *_XlcGetValues(
-#if NeedFunctionPrototypes
- XPointer /* base */,
- XlcResourceList /* resources */,
- int /* num_resources */,
- XlcArgList /* args */,
- int /* num_args */,
- unsigned long /* mask */
-#endif
+ XPointer base,
+ XlcResourceList resources,
+ int num_resources,
+ XlcArgList args,
+ int num_args,
+ unsigned long mask
);
extern char *_XlcSetValues(
-#if NeedFunctionPrototypes
- XPointer /* base */,
- XlcResourceList /* resources */,
- int /* num_resources */,
- XlcArgList /* args */,
- int /* num_args */,
- unsigned long /* mask */
-#endif
+ XPointer base,
+ XlcResourceList resources,
+ int num_resources,
+ XlcArgList args,
+ int num_args,
+ unsigned long mask
);
+/* documented in i18n/Framework.PS */
+extern void _XlcInitLoader (void);
+
+extern void _XlcDeInitLoader (void);
+
+/* documented in i18n/Framework.PS */
+/* Returns True on success, False on failure. */
extern Bool _XlcAddLoader(
-#if NeedFunctionPrototypes
- XLCdLoadProc /* proc */,
- XlcPosition /* position */
-#endif
+ XLCdLoadProc proc,
+ XlcPosition position
);
+/* documented in i18n/Framework.PS */
extern void _XlcRemoveLoader(
-#if NeedFunctionPrototypes
- XLCdLoadProc /* proc */
-#endif
+ XLCdLoadProc proc
+);
+
+/* Registers UTF-8 converters for a non-UTF-8 locale. */
+extern void _XlcAddUtf8Converters(
+ XLCd lcd
+);
+
+/* Registers UTF-8 converters for a UTF-8 locale. */
+extern void _XlcAddUtf8LocaleConverters(
+ XLCd lcd
+);
+
+/* The default locale loader. Assumes an ASCII encoding. */
+extern XLCd _XlcDefaultLoader(
+ const char* name
+);
+
+/* The generic locale loader. Suitable for all encodings except UTF-8.
+ Uses an XLC_LOCALE configuration file. */
+extern XLCd _XlcGenericLoader(
+ const char* name
+);
+
+/* The UTF-8 locale loader. Suitable for UTF-8 encoding.
+ Uses an XLC_LOCALE configuration file. */
+extern XLCd _XlcUtf8Loader(
+ const char* name
+);
+
+/* The old EUC locale loader. */
+extern XLCd _XlcEucLoader(
+ const char* name
+);
+
+/* The old SJIS locale loader. */
+extern XLCd _XlcSjisLoader(
+ const char* name
+);
+
+/* The old ISO-2022-JP locale loader. */
+extern XLCd _XlcJisLoader(
+ const char* name
+);
+
+extern XLCd _XlcDynamicLoad(
+ const char* name
+);
+
+/* The old dynamic loader. */
+extern XLCd _XlcDynamicLoader(
+ const char* name
+);
+
+extern Bool _XInitDefaultIM(
+ XLCd lcd
+);
+
+extern Bool _XInitDefaultOM(
+ XLCd lcd
+);
+
+extern Bool _XInitDynamicIM(
+ XLCd lcd
+);
+
+extern Bool _XInitDynamicOM(
+ XLCd lcd
);
_XFUNCPROTOEND
+#endif /* !_XP_PRINT_SERVER_ */
+
#endif /* _XLCINT_H_ */
diff --git a/src/xlibi18n/imKStoUCS.c b/src/xlibi18n/imKStoUCS.c
index 693db4a9..3504a74e 100644
--- a/src/xlibi18n/imKStoUCS.c
+++ b/src/xlibi18n/imKStoUCS.c
@@ -1,6 +1,7 @@
-/* $XFree86: xc/lib/X11/imKStoUCS.c,v 1.2 2001/07/25 15:04:45 dawes Exp $ */
+/* $XFree86: xc/lib/X11/imKStoUCS.c,v 1.4 2003/04/29 11:29:18 pascal Exp $ */
#include "Xlibint.h"
+#include "Ximint.h"
static unsigned short const keysym_to_unicode_1a1_1ff[] = {
0x0104, 0x02d8, 0x0141, 0x0000, 0x013d, 0x015a, 0x0000, /* 0x01a0-0x01a7 */
@@ -233,8 +234,8 @@ static unsigned short keysym_to_unicode_15d0_15f6[] = {
static unsigned short keysym_to_unicode_16a0_16f6[] = {
0x0000, 0x0000, 0xf0a2, 0x1e8a, 0x0000, 0xf0a5, 0x012c, 0xf0a7, /* 0x16a0-0x16a7 */
0xf0a8, 0x01b5, 0x01e6, 0x0000, 0x0000, 0x0000, 0x0000, 0x019f, /* 0x16a8-0x16af */
- 0x0000, 0x017e, 0xf0b2, 0x1e8b, 0x01d1, 0xf0b5, 0x012d, 0xf0b7, /* 0x16b0-0x16b7 */
- 0xf0b8, 0x01b6, 0x01e7, 0x01d2, 0x0000, 0x0000, 0x0000, 0x0275, /* 0x16b8-0x16bf */
+ 0x0000, 0x0000, 0xf0b2, 0x1e8b, 0x01d1, 0xf0b5, 0x012d, 0xf0b7, /* 0x16b0-0x16b7 */
+ 0xf0b8, 0x01b6, 0x01e7, 0x0000, 0x0000, 0x01d2, 0x0000, 0x0275, /* 0x16b8-0x16bf */
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x018f, 0x0000, /* 0x16c0-0x16c7 */
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x16c8-0x16cf */
0x0000, 0x1e36, 0xf0d2, 0xf0d3, 0x0000, 0x0000, 0x0000, 0x0000, /* 0x16d0-0x16d7 */
@@ -266,12 +267,7 @@ static unsigned short const keysym_to_unicode_20a0_20ac[] = {
};
unsigned int
-#if NeedFunctionPrototypes
KeySymToUcs4(KeySym keysym)
-#else
-KeySymToUcs4(keysym)
- KeySym keysym;
-#endif
{
/* 'Unicode keysym' */
if ((keysym & 0xff000000) == 0x01000000)
@@ -316,7 +312,7 @@ KeySymToUcs4(keysym)
else if (keysym > 0x169f && keysym < 0x16f7)
return keysym_to_unicode_16a0_16f6[keysym - 0x16a0];
else if (keysym > 0x1e9e && keysym < 0x1f00)
- return keysym_to_unicode_1e9f_1eff[keysym - 0x1ea0];
+ return keysym_to_unicode_1e9f_1eff[keysym - 0x1e9f];
else if (keysym > 0x209f && keysym < 0x20ad)
return keysym_to_unicode_20a0_20ac[keysym - 0x20a0];
else
diff --git a/src/xlibi18n/lcCT.c b/src/xlibi18n/lcCT.c
index 5dd2ddcc..2afca02a 100644
--- a/src/xlibi18n/lcCT.c
+++ b/src/xlibi18n/lcCT.c
@@ -31,70 +31,109 @@
* Modifier: Takanori Tateno FUJITSU LIMITED
*
*/
+/*
+ * 2000
+ * Modifier: Ivan Pascal The XFree86 Project
+ * Modifier: Bruno Haible The XFree86 Project
+ */
+/* $XFree86: xc/lib/X11/lcCT.c,v 3.26 2001/10/28 03:32:34 tsi Exp $ */
#include "Xlibint.h"
#include "XlcPubI.h"
#include <X11/Xos.h>
#include <stdio.h>
-typedef struct _StateRec {
- XlcCharSet charset;
- XlcCharSet GL_charset;
- XlcCharSet GR_charset;
- XlcCharSet ext_seg_charset;
- int ext_seg_left;
-} StateRec, *State;
+/* ====================== Built-in Character Sets ====================== */
+
+/*
+ * Static representation of a character set that can be used in Compound Text.
+ */
typedef struct _CTDataRec {
- char *name;
- char *encoding; /* Compound Text encoding */
+ const char *name;
+ const char *ct_sequence; /* Compound Text encoding, ESC sequence */
} CTDataRec, *CTData;
-typedef struct _CTInfoRec {
- XlcCharSet charset;
- int encoding_len;
- char *encoding; /* Compound Text encoding */
- int ext_segment_len;
- char *ext_segment; /* extended segment */
- struct _CTInfoRec *next;
-} CTInfoRec, *CTInfo;
-
static CTDataRec default_ct_data[] =
{
- { "ISO8859-1:GL", "\033(B" },
- { "ISO8859-1:GR", "\033-A" },
- { "ISO8859-2:GR", "\033-B" },
- { "ISO8859-3:GR", "\033-C" },
- { "ISO8859-4:GR", "\033-D" },
- { "ISO8859-7:GR", "\033-F" },
- { "ISO8859-6:GR", "\033-G" },
- { "ISO8859-8:GR", "\033-H" },
- { "ISO8859-5:GR", "\033-L" },
- { "ISO8859-9:GR", "\033-M" },
- { "ISO8859-10:GR", "\033-V" },
- { "JISX0201.1976-0:GL", "\033(J" },
- { "JISX0201.1976-0:GR", "\033)I" },
-
- { "GB2312.1980-0:GL", "\033$(A" },
- { "GB2312.1980-0:GR", "\033$)A" },
- { "JISX0208.1983-0:GL", "\033$(B" },
- { "JISX0208.1983-0:GR", "\033$)B" },
- { "KSC5601.1987-0:GL", "\033$(C" },
- { "KSC5601.1987-0:GR", "\033$)C" },
-#ifdef notdef
- { "JISX0212.1990-0:GL", "\033$(D" },
- { "JISX0212.1990-0:GR", "\033$)D" },
- { "CNS11643.1986-1:GL", "\033$(G" },
- { "CNS11643.1986-1:GR", "\033$)G" },
- { "CNS11643.1986-2:GL", "\033$(H" },
- { "CNS11643.1986-2:GR", "\033$)H" },
+ /* */
+ /* X11 registry name MIME name ISO-IR ESC sequence */
+ /* */
+
+ /* Registered character sets with one byte per character */
+ { "ISO8859-1:GL", /* US-ASCII 6 */ "\033(B" },
+ { "ISO8859-1:GR", /* ISO-8859-1 100 */ "\033-A" },
+ { "ISO8859-2:GR", /* ISO-8859-2 101 */ "\033-B" },
+ { "ISO8859-3:GR", /* ISO-8859-3 109 */ "\033-C" },
+ { "ISO8859-4:GR", /* ISO-8859-4 110 */ "\033-D" },
+ { "ISO8859-5:GR", /* ISO-8859-5 144 */ "\033-L" },
+ { "ISO8859-6:GR", /* ISO-8859-6 127 */ "\033-G" },
+ { "ISO8859-7:GR", /* ISO-8859-7 126 */ "\033-F" },
+ { "ISO8859-8:GR", /* ISO-8859-8 138 */ "\033-H" },
+ { "ISO8859-9:GR", /* ISO-8859-9 148 */ "\033-M" },
+ { "ISO8859-10:GR", /* ISO-8859-10 157 */ "\033-V" },
+ { "ISO8859-11:GR", /* ISO-8859-11 166 */ "\033-T" },
+ { "ISO8859-13:GR", /* ISO-8859-13 179 */ "\033-Y" },
+ { "ISO8859-14:GR", /* ISO-8859-14 199 */ "\033-_" },
+ { "ISO8859-15:GR", /* ISO-8859-15 203 */ "\033-b" },
+ { "ISO8859-16:GR", /* ISO-8859-16 226 */ "\033-f" },
+ { "JISX0201.1976-0:GL", /* ISO-646-JP 14 */ "\033(J" },
+ { "JISX0201.1976-0:GR", "\033)I" },
+#if 0
+ { "TIS620-0:GR", /* TIS-620 166 */ "\033-T" },
+#endif
+
+ /* Registered character sets with two byte per character */
+ { "GB2312.1980-0:GL", /* GB_2312-80 58 */ "\033$(A" },
+ { "GB2312.1980-0:GR", /* GB_2312-80 58 */ "\033$)A" },
+ { "JISX0208.1983-0:GL", /* JIS_X0208-1983 87 */ "\033$(B" },
+ { "JISX0208.1983-0:GR", /* JIS_X0208-1983 87 */ "\033$)B" },
+ { "JISX0208.1990-0:GL", /* JIS_X0208-1990 168 */ "\033$(B" },
+ { "JISX0208.1990-0:GR", /* JIS_X0208-1990 168 */ "\033$)B" },
+ { "JISX0212.1990-0:GL", /* JIS_X0212-1990 159 */ "\033$(D" },
+ { "JISX0212.1990-0:GR", /* JIS_X0212-1990 159 */ "\033$)D" },
+ { "KSC5601.1987-0:GL", /* KS_C_5601-1987 149 */ "\033$(C" },
+ { "KSC5601.1987-0:GR", /* KS_C_5601-1987 149 */ "\033$)C" },
+ { "CNS11643.1986-1:GL", /* CNS 11643-1992 pl.1 171 */ "\033$(G" },
+ { "CNS11643.1986-1:GR", /* CNS 11643-1992 pl.1 171 */ "\033$)G" },
+ { "CNS11643.1986-2:GL", /* CNS 11643-1992 pl.2 172 */ "\033$(H" },
+ { "CNS11643.1986-2:GR", /* CNS 11643-1992 pl.2 172 */ "\033$)H" },
+ { "CNS11643.1992-3:GL", /* CNS 11643-1992 pl.3 183 */ "\033$(I" },
+ { "CNS11643.1992-3:GR", /* CNS 11643-1992 pl.3 183 */ "\033$)I" },
+ { "CNS11643.1992-4:GL", /* CNS 11643-1992 pl.4 184 */ "\033$(J" },
+ { "CNS11643.1992-4:GR", /* CNS 11643-1992 pl.4 184 */ "\033$)J" },
+ { "CNS11643.1992-5:GL", /* CNS 11643-1992 pl.5 185 */ "\033$(K" },
+ { "CNS11643.1992-5:GR", /* CNS 11643-1992 pl.5 185 */ "\033$)K" },
+ { "CNS11643.1992-6:GL", /* CNS 11643-1992 pl.6 186 */ "\033$(L" },
+ { "CNS11643.1992-6:GR", /* CNS 11643-1992 pl.6 186 */ "\033$)L" },
+ { "CNS11643.1992-7:GL", /* CNS 11643-1992 pl.7 187 */ "\033$(M" },
+ { "CNS11643.1992-7:GR", /* CNS 11643-1992 pl.7 187 */ "\033$)M" },
+
+ /* Registered encodings with a varying number of bytes per character */
+ { "ISO10646-1", /* UTF-8 196 */ "\033%G" },
+
+ /* Encodings without ISO-IR assigned escape sequence must be
+ defined in XLC_LOCALE files, using "\033%/1" or "\033%/2". */
+
+ /* Backward compatibility with XFree86 3.x */
+#if 1
+ { "ISO8859-14:GR", "\033%/1" },
+ { "ISO8859-15:GR", "\033%/1" },
#endif
- { "TIS620.2533-1:GR", "\033-T"},
- { "ISO10646-1", "\033%B"},
- /* Non-Standard Character Set Encodings */
- { "KOI8-R:GR", "\033%/1\200\210koi8-r\002"},
- { "FCD8859-15:GR", "\033%/1\200\213fcd8859-15\002"},
-} ;
+ /* For use by utf8 -> ctext */
+ { "BIG5-0:GLGR", "\033%/2"},
+ /* used by Emacs, but not backed by ISO-IR */
+ { "BIG5-E0:GL", "\033$(0" },
+ { "BIG5-E0:GR", "\033$)0" },
+ { "BIG5-E1:GL", "\033$(1" },
+ { "BIG5-E1:GR", "\033$)1" },
+
+};
+
+/* We represent UTF-8 as an XlcGLGR charset, not in extended segments. */
+#define UTF8_IN_EXTSEQ 0
+
+/* ======================= Parsing ESC Sequences ======================= */
#define XctC0 0x0000
#define XctHT 0x0009
@@ -104,6 +143,7 @@ static CTDataRec default_ct_data[] =
#define XctC1 0x0080
#define XctCSI 0x009b
#define XctGR 0x00a0
+#define XctSTX 0x0002
#define XctCntrlFunc 0x0023
#define XctMB 0x0024
@@ -122,268 +162,282 @@ static CTDataRec default_ct_data[] =
#define XctGL94MB 0x2428
#define XctGR94MB 0x2429
#define XctExtSeg 0x252f
-#define XctOtherSeg 0x2f00
-
-#define XctESCSeq 0x1b00
-#define XctCSISeq 0x9b00
-
-#define SKIP_I(str) while (*(str) >= 0x20 && *(str) <= 0x2f) (str)++;
-#define SKIP_P(str) while (*(str) >= 0x30 && *(str) <= 0x3f) (str)++;
-
-typedef struct {
- XlcSide side;
- int char_size;
- int set_size;
- int ext_seg_length;
- int version;
- CTInfo ct_info;
-} CTParseRec, *CTParse;
-
-CTDataRec *default_ct_data_list()
-{
- return(default_ct_data);
-}
-
-size_t default_ct_data_list_num()
-{
- size_t num = sizeof(default_ct_data) / sizeof(CTDataRec);
- return(num);
-}
-
-static CTInfo ct_list = NULL;
-
-static CTInfo
-_XlcGetCTInfoFromEncoding(encoding, length)
- register char *encoding;
- register int length;
-{
- register CTInfo ct_info;
-
- for (ct_info = ct_list; ct_info; ct_info = ct_info->next) {
- if (length >= ct_info->encoding_len) {
- if (ct_info->ext_segment) {
- if (!strncmp(ct_info->encoding, encoding, 4) &&
- !strncmp(ct_info->ext_segment, encoding + 6,
- ct_info->ext_segment_len))
- return ct_info;
- } else if (!strncmp(ct_info->encoding, encoding,
- ct_info->encoding_len)) {
- return ct_info;
- }
- }
- }
-
- return (CTInfo) NULL;
-}
+#define XctReturn 0x2540
+/*
+ * Parses the header of a Compound Text segment, i.e. the charset designator.
+ * The string starts at *text and has *length bytes.
+ * Return value is one of:
+ * 0 (no valid charset designator),
+ * XctGL94, XctGR94, XctGR96, XctGL94MB, XctGR94MB,
+ * XctLeftToRight, XctRightToLeft, XctDirectionEnd,
+ * XctExtSeg, XctOtherCoding, XctReturn, XctIgnoreExt, XctNotIgnoreExt.
+ * If the return value is not 0, *text is incremented and *length decremented,
+ * to point past the charset designator. If the return value is one of
+ * XctGL94, XctGR94, XctGR96, XctGL94MB, XctGR94MB,
+ * XctExtSeg, XctOtherCoding, XctIgnoreExt, XctNotIgnoreExt,
+ * *final_byte is set to the "final byte" of the charset designator.
+ */
static unsigned int
-_XlcParseCT(parse, text, length)
- register CTParse parse;
- char **text;
- int *length;
+_XlcParseCT(
+ const char **text,
+ int *length,
+ unsigned char *final_byte)
{
unsigned int ret = 0;
unsigned char ch;
- register unsigned char *str = (unsigned char *) *text;
+ const unsigned char *str = (const unsigned char *) *text;
- bzero((char *) parse, sizeof(CTParseRec));
+ *final_byte = 0;
+ if (*length < 1)
+ return 0;
switch (ch = *str++) {
- case XctESC:
- if (*str == XctOtherCoding && *(str + 1) == XctNonStandard
- && *(str + 2) >= 0x30 && *(str + 2) <= 0x3f && *length >= 6) {
-
- /* non-standard encodings */
- parse->side = XlcGLGR;
- parse->set_size = 0;
- str += 2;
- if (*str <= 0x34) {
- parse->char_size = *str - 0x30;
- if (parse->char_size == 0) parse->char_size = 1;
- ret = XctExtSeg;
- parse->ct_info = _XlcGetCTInfoFromEncoding(*text, *length);
- } else
- ret = XctOtherSeg;
- str++;
- parse->ext_seg_length = (*str - 128) * 128 + *(str + 1) - 128;
- str += 2;
-
- goto done;
- } else if (*str == XctCntrlFunc && *length >= 4 &&
- *(str + 1) >= 0x20 && *(str + 1) <= 0x2f &&
- (*(str + 2) == XctIgnoreExt ||
- *(str + 2) == XctNotIgnoreExt)) {
-
- /* ignore extension or not */
- str++;
- parse->version = *str++ - 0x20;
- ret = *str++;
-
- goto done;
- }
-
- if (*str == XctMB) { /* multiple-byte sets */
- parse->char_size = 2;
- str++;
- } else
- parse->char_size = 1;
-
- switch (*str) {
- case XctGL94:
- parse->side = XlcGL;
- parse->set_size = 94;
- ret = (parse->char_size == 1) ? XctGL94 : XctGL94MB;
- break;
- case XctGR94:
- parse->side = XlcGR;
- parse->set_size = 94;
- ret = (parse->char_size == 1) ? XctGR94 : XctGR94MB;
- break;
- case XctGR96:
- if (parse->char_size == 1) {
- parse->side = XlcGR;
- parse->set_size = 96;
- ret = XctGR96;
- }
- break;
- }
- if (ret) {
- str++;
- if (*str >= 0x24 && *str <= 0x2f) { /* non-standard */
- ret = 0;
- str++;
- }
- }
-
- SKIP_I(str)
-
- if (ret && *str < 0x40) /* non-standard */
- ret = 0;
-
- if (*str < 0x30 || *str > 0x7e || (char *) str - *text >= *length)
- break;
-
- if (ret == 0)
- ret = XctESCSeq;
- else {
- if (parse->char_size == 2) {
- if (*str >= 0x70)
- parse->char_size = 4;
- else if (*str >= 0x60)
- parse->char_size = 3;
- }
- parse->ct_info = _XlcGetCTInfoFromEncoding(*text, *length);
- }
- str++;
- goto done;
- case XctCSI:
+ case XctESC:
+ if (*length < 2)
+ return 0;
+ switch (ch = *str++) {
+ case XctOtherCoding: /* % */
+ if (*length < 3)
+ return 0;
+ ch = *str++;
+ if (ch == XctNonStandard) { /* / */
+ if (*length < 4)
+ return 0;
+ ret = XctExtSeg;
+ ch = *str++;
+ } else if (ch == '@') {
+ ret = XctReturn;
+ } else {
+ ret = XctOtherCoding;
+ }
+ *final_byte = ch;
+ break;
+
+ case XctCntrlFunc: /* # */
+ if (*length < 4)
+ return 0;
+ *final_byte = *str++;
+ switch (*str++) {
+ case XctIgnoreExt: /* 0 */
+ ret = XctIgnoreExt;
+ break;
+ case XctNotIgnoreExt: /* 1 */
+ ret = XctNotIgnoreExt;
+ break;
+ default:
+ ret = 0;
+ break;
+ }
+ break;
+
+ case XctMB: /* $ */
+ if (*length < 4)
+ return 0;
+ ch = *str++;
+ switch (ch) {
+ case XctGL94: /* ( */
+ ret = XctGL94MB;
+ break;
+ case XctGR94: /* ) */
+ ret = XctGR94MB;
+ break;
+ default:
+ ret = 0;
+ break;
+ }
+ *final_byte = *str++;
+ break;
+
+ case XctGL94: /* ( */
+ if (*length < 3)
+ return 0;
+ ret = XctGL94;
+ *final_byte = *str++;
+ break;
+ case XctGR94: /* ) */
+ if (*length < 3)
+ return 0;
+ ret = XctGR94;
+ *final_byte = *str++;
+ break;
+ case XctGR96: /* - */
+ if (*length < 3)
+ return 0;
+ ret = XctGR96;
+ *final_byte = *str++;
+ break;
+ }
+ break;
+ case XctCSI:
/* direction */
- if (*str == XctLeftToRight && *(str + 1) == XctDirection) {
- ret = XctLeftToRight;
- str += 2;
- goto done;
- } else if (*str == XctRightToLeft && *(str + 1) == XctDirection) {
- ret = XctRightToLeft;
- str += 2;
- goto done;
- } else if (*str == XctDirectionEnd) {
- ret = XctDirectionEnd;
- str++;
- goto done;
- }
+ if (*length < 2)
+ return 0;
+ switch (*str++) {
+ case XctLeftToRight:
+ if (*length < 3)
+ return 0;
+ if (*str++ == XctDirection)
+ ret = XctLeftToRight;
+ break;
+ case XctRightToLeft:
+ if (*length < 3)
+ return 0;
+ if (*str++ == XctDirection)
+ ret = XctRightToLeft;
+ break;
+ case XctDirectionEnd:
+ ret = XctDirectionEnd;
+ break;
+ }
+ break;
+ }
+
+ if (ret) {
+ *length -= (const char *) str - *text;
+ *text = (const char *) str;
+ }
+ return ret;
+}
- SKIP_P(str)
- SKIP_I(str)
+/*
+ * Fills into a freshly created XlcCharSet the fields that can be inferred
+ * from the ESC sequence. These are side, char_size, set_size.
+ * Returns True if the charset can be used with Compound Text.
+ *
+ * Used by _XlcCreateDefaultCharSet.
+ */
+Bool
+_XlcParseCharSet(
+ XlcCharSet charset)
+{
+ unsigned int type;
+ unsigned char final_byte;
+ const char *ptr = charset->ct_sequence;
+ int length;
+ int char_size;
+
+ if (*ptr == '\0')
+ return False;
- if (*str < 0x40 && *str > 0x7e)
- break;
+ length = strlen(ptr);
- ret = XctCSISeq;
- str++;
- goto done;
+ type = _XlcParseCT(&ptr, &length, &final_byte);
+
+ /* Check for validity and determine char_size.
+ char_size = 0 means varying number of bytes per character. */
+ switch (type) {
+ case XctGL94:
+ case XctGR94:
+ case XctGR96:
+ char_size = 1;
+ break;
+ case XctGL94MB:
+ case XctGR94MB:
+ char_size = (final_byte < 0x60 ? 2 : final_byte < 0x70 ? 3 : 4);
+ break;
+ case XctExtSeg:
+ char_size = final_byte - '0';
+ if (!(char_size >= 0 && char_size <= 4))
+ return False;
+ break;
+ case XctOtherCoding:
+ char_size = 0;
+ break;
+ default:
+ return False;
}
- if (ch & 0x80) {
- if (ch < 0xa0)
- ret = XctC1;
- else
- ret = XctGR;
- } else {
- if (ch == XctHT || ch == XctNL)
- ret = ch;
- else if (ch < 0x20)
- ret = XctC0;
- else
- ret = XctGL;
+ charset->char_size = char_size;
+
+ /* Fill in other values. */
+ switch (type) {
+ case XctGL94:
+ case XctGL94MB:
+ charset->side = XlcGL;
+ charset->set_size = 94;
+ break;
+ case XctGR94:
+ case XctGR94MB:
+ charset->side = XlcGR;
+ charset->set_size = 94;
+ break;
+ case XctGR96:
+ charset->side = XlcGR;
+ charset->set_size = 96;
+ break;
+ case XctExtSeg:
+ case XctOtherCoding:
+ charset->side = XlcGLGR;
+ charset->set_size = 0;
+ break;
}
+ return True;
+}
- return ret;
-
-done:
- *length -= (char *) str - *text;
- *text = (char *) str;
- return ret;
-}
+/* =============== Management of the List of Character Sets =============== */
-XlcCharSet
-_XlcAddCT(name, encoding)
- char *name;
- char *encoding;
-{
- CTInfo ct_info;
+/*
+ * Representation of a character set that can be used for Compound Text,
+ * at run time.
+ * Note: This information is not contained in the XlcCharSet, because
+ * multiple ESC sequences may be used for the same XlcCharSet.
+ */
+typedef struct _CTInfoRec {
XlcCharSet charset;
- CTParseRec parse;
- char *ct_ptr = encoding;
- int length;
+ const char *ct_sequence; /* Compound Text ESC sequence */
unsigned int type;
+ unsigned char final_byte;
+ /* If type == XctExtSeg: */
+ const char *ext_segment; /* extended segment name, then '\002' */
+ int ext_segment_len; /* length of above, including final '\002' */
- length = strlen(encoding);
+ struct _CTInfoRec *next;
+} CTInfoRec, *CTInfo;
- switch (type = _XlcParseCT(&parse, &ct_ptr, &length)) {
- case XctExtSeg:
- case XctGL94:
- case XctGL94MB:
- case XctGR94:
- case XctGR94MB:
- case XctGR96:
- if (parse.ct_info) /* existed */
- return parse.ct_info->charset;
- break;
- default:
- return (XlcCharSet) NULL;
- }
+/*
+ * List of character sets that can be used for Compound Text,
+ * Includes all that are listed in default_ct_data, but more can be added
+ * at runtime through _XlcAddCT.
+ */
+static CTInfo ct_list = NULL;
+static CTInfo ct_list_end = NULL;
- charset = _XlcCreateDefaultCharSet(name, encoding);
- if (charset == NULL)
- return (XlcCharSet) NULL;
- _XlcAddCharSet(charset);
+/*
+ * Returns a Compound Text info record for an ESC sequence.
+ * The first part of the ESC sequence has already been parsed into 'type'
+ * and 'final_byte'. The remainder starts at 'text', at least 'text_len'
+ * bytes (only used if type == XctExtSeg).
+ */
+static CTInfo
+_XlcGetCTInfo(
+ unsigned int type,
+ unsigned char final_byte,
+ const char *text,
+ int text_len)
+{
+ CTInfo ct_info;
- ct_info = (CTInfo) Xmalloc(sizeof(CTInfoRec));
- if (ct_info == NULL)
- return (XlcCharSet) NULL;
-
- ct_info->charset = charset;
- ct_info->encoding = charset->ct_sequence;
- ct_info->encoding_len = strlen(ct_info->encoding);
- if (type == XctExtSeg) {
- ct_info->ext_segment = ct_info->encoding + 6;
- ct_info->ext_segment_len = strlen(ct_info->ext_segment);
- } else {
- ct_info->ext_segment = NULL;
- ct_info->ext_segment_len = 0;
- }
- ct_info->next = ct_list;
- ct_list = ct_info;
+ for (ct_info = ct_list; ct_info; ct_info = ct_info->next)
+ if (ct_info->type == type
+ && ct_info->final_byte == final_byte
+ && (type != XctExtSeg
+ || (text_len >= ct_info->ext_segment_len
+ && memcmp(text, ct_info->ext_segment,
+ ct_info->ext_segment_len) == 0)))
+ return ct_info;
- return charset;
+ return (CTInfo) NULL;
}
+/* Returns the Compound Text info for a given XlcCharSet.
+ Returns NULL if none is found. */
static CTInfo
-_XlcGetCTInfoFromCharSet(charset)
- register XlcCharSet charset;
+_XlcGetCTInfoFromCharSet(
+ XlcCharSet charset)
{
- register CTInfo ct_info;
+ CTInfo ct_info;
for (ct_info = ct_list; ct_info; ct_info = ct_info->next)
if (ct_info->charset == charset)
@@ -392,244 +446,449 @@ _XlcGetCTInfoFromCharSet(charset)
return (CTInfo) NULL;
}
-Bool
-_XlcParseCharSet(charset)
- XlcCharSet charset;
+/* Creates a new XlcCharSet, given its name (including side suffix) and
+ Compound Text ESC sequence (normally at most 4 bytes), and makes it
+ eligible for Compound Text processing. */
+XlcCharSet
+_XlcAddCT(
+ const char *name,
+ const char *ct_sequence)
{
- CTParseRec parse;
- char *ptr, *bufp, buf[BUFSIZ];
+ CTInfo ct_info, existing_info;
+ XlcCharSet charset;
+ const char *ct_ptr;
int length;
+ unsigned int type;
+ unsigned char final_byte;
- if (charset->ct_sequence == NULL)
- return False;
-
- ptr = charset->ct_sequence;
- length = strlen(ptr);
-
- (void) _XlcParseCT(&parse, &ptr, &length);
-
- if (charset->name) {
- charset->xrm_name = XrmStringToQuark(charset->name);
-
- if ((length = strlen (charset->name)) < sizeof buf) bufp = buf;
- else bufp = Xmalloc (length + 1);
-
- if (bufp == NULL) return False;
- strcpy(bufp, charset->name);
- if ((ptr = strchr(bufp, ':')))
- *ptr = '\0';
- charset->xrm_encoding_name = XrmStringToQuark(bufp);
- if (bufp != buf) Xfree (bufp);
- charset->encoding_name = XrmQuarkToString(charset->xrm_encoding_name);
+ charset = _XlcGetCharSet(name);
+ if (charset != NULL) {
+ /* Even if the charset already exists, it is OK to register a second
+ Compound Text sequence for it. */
} else {
- charset->xrm_name = 0;
- charset->encoding_name = NULL;
- charset->xrm_encoding_name = 0;
+ /* Attempt to create the charset. */
+ charset = _XlcCreateDefaultCharSet(name, ct_sequence);
+ if (charset == NULL)
+ return (XlcCharSet) NULL;
+ _XlcAddCharSet(charset);
}
- charset->side = parse.side;
- charset->char_size = parse.char_size;
- charset->set_size = parse.set_size;
+ /* Allocate a CTinfo record. */
+ length = strlen(ct_sequence);
+ ct_info = (CTInfo) Xmalloc(sizeof(CTInfoRec) + length+1);
+ if (ct_info == NULL)
+ return charset;
- return True;
-}
+ ct_info->charset = charset;
+ ct_info->ct_sequence = strcpy((char *) (ct_info + 1), ct_sequence);
-static void init_converter();
+ /* Parse the Compound Text sequence. */
+ ct_ptr = ct_sequence;
+ type = _XlcParseCT(&ct_ptr, &length, &final_byte);
-Bool
-_XlcInitCTInfo()
-{
- register XlcCharSet charset;
- register CTData ct_data;
- register int num;
+ ct_info->type = type;
+ ct_info->final_byte = final_byte;
- if (ct_list == NULL) {
- num = sizeof(default_ct_data) / sizeof(CTDataRec);
- for (ct_data = default_ct_data; num-- > 0; ct_data++) {
- charset = _XlcAddCT(ct_data->name, ct_data->encoding);
- if (charset == NULL)
- continue;
- }
- init_converter();
+ switch (type) {
+ case XctGL94:
+ case XctGR94:
+ case XctGR96:
+ case XctGL94MB:
+ case XctGR94MB:
+ case XctOtherCoding:
+ ct_info->ext_segment = NULL;
+ ct_info->ext_segment_len = 0;
+ break;
+ case XctExtSeg: {
+ /* By convention, the extended segment name is the encoding_name
+ in lowercase. */
+ const char *q = charset->encoding_name;
+ int n = strlen(q);
+ char *p;
+
+ /* Ensure ct_info->ext_segment_len <= 0x3fff - 6. */
+ if (n > 0x3fff - 6 - 1) {
+ Xfree(ct_info);
+ return charset;
+ }
+ p = (char *) Xmalloc(n+1);
+ if (p == NULL) {
+ Xfree(ct_info);
+ return charset;
+ }
+ ct_info->ext_segment = p;
+ ct_info->ext_segment_len = n+1;
+ for ( ; n > 0; p++, q++, n--)
+ *p = (*q >= 'A' && *q <= 'Z' ? *q - 'A' + 'a' : *q);
+ *p = XctSTX;
+ break;
+ }
+ default:
+ Xfree(ct_info);
+ return (XlcCharSet) NULL;
}
- return True;
+ /* Insert it into the list, if not already present. */
+ existing_info =
+ _XlcGetCTInfo(type, ct_info->final_byte,
+ ct_info->ext_segment, ct_info->ext_segment_len);
+ if (existing_info == NULL) {
+ /* Insert it at the end. If there are duplicates CTinfo entries
+ for the same XlcCharSet, we want the first (standard) one to
+ override the second (user defined) one. */
+ ct_info->next = NULL;
+ if (ct_list_end)
+ ct_list_end->next = ct_info;
+ else
+ ct_list = ct_info;
+ ct_list_end = ct_info;
+ } else {
+ if (existing_info->charset != charset
+ /* We have a conflict, with one exception: JISX0208.1983-0 and
+ JISX0208.1990-0 are the same for all practical purposes. */
+ && !(strncmp(existing_info->charset->name, "JISX0208", 8) == 0
+ && strncmp(charset->name, "JISX0208", 8) == 0)) {
+ fprintf(stderr,
+ "Xlib: charsets %s and %s have the same CT sequence\n",
+ charset->name, existing_info->charset->name);
+ if (strcmp(charset->ct_sequence, ct_sequence) == 0)
+ charset->ct_sequence = "";
+ }
+ Xfree(ct_info);
+ }
+
+ return charset;
}
-static int
-_XlcCheckCTSequence(state, ctext, ctext_len)
- State state;
- char **ctext;
- int *ctext_len;
+/* ========== Converters String <--> CharSet <--> Compound Text ========== */
+
+/*
+ * Structure representing the parse state of a Compound Text string.
+ */
+typedef struct _StateRec {
+ XlcCharSet charset; /* The charset of the current segment */
+ XlcCharSet GL_charset; /* The charset responsible for 0x00..0x7F */
+ XlcCharSet GR_charset; /* The charset responsible for 0x80..0xFF */
+ XlcCharSet Other_charset; /* != NULL if currently in an other segment */
+ int ext_seg_left; /* > 0 if currently in an extended segment */
+} StateRec, *State;
+
+
+/* Subroutine for parsing an ESC sequence. */
+
+typedef enum {
+ resOK, /* Charset saved in 'state', sequence skipped */
+ resNotInList, /* Charset not found, sequence skipped */
+ resNotCTSeq /* EscSeq not recognized, pointers not changed */
+} CheckResult;
+
+static CheckResult
+_XlcCheckCTSequence(
+ State state,
+ const char **ctext,
+ int *ctext_len)
{
XlcCharSet charset;
- CTParseRec parse;
CTInfo ct_info;
- int length;
+ const char *tmp_ctext = *ctext;
+ int tmp_ctext_len = *ctext_len;
+ unsigned int type;
+ unsigned char final_byte;
+ int ext_seg_left = 0;
- _XlcParseCT(&parse, ctext, ctext_len);
-
- ct_info = parse.ct_info;
- if (parse.ext_seg_length > 0) { /* XctExtSeg or XctOtherSeg */
- if (ct_info) {
- length = ct_info->ext_segment_len;
- *ctext += length;
- *ctext_len -= length;
- state->ext_seg_left = parse.ext_seg_length - length;
- state->ext_seg_charset = ct_info->charset;
- } else {
- state->ext_seg_left = parse.ext_seg_length;
- state->ext_seg_charset = NULL;
- }
- } else if (ct_info) {
- if ((charset = ct_info->charset)) {
- if (charset->side == XlcGL)
- state->GL_charset = charset;
- else if (charset->side == XlcGR)
- state->GR_charset = charset;
- }
+ /* Check for validity. */
+ type = _XlcParseCT(&tmp_ctext, &tmp_ctext_len, &final_byte);
+
+ switch (type) {
+ case XctGL94:
+ case XctGR94:
+ case XctGR96:
+ case XctGL94MB:
+ case XctGR94MB:
+ case XctOtherCoding:
+ *ctext = tmp_ctext;
+ *ctext_len = tmp_ctext_len;
+ break;
+ case XctReturn:
+ *ctext = tmp_ctext;
+ *ctext_len = tmp_ctext_len;
+ state->Other_charset = NULL;
+ return resOK;
+ case XctExtSeg:
+ if (tmp_ctext_len > 2
+ && (tmp_ctext[0] & 0x80) && (tmp_ctext[0] & 0x80)) {
+ unsigned int msb = tmp_ctext[0] & 0x7f;
+ unsigned int lsb = tmp_ctext[1] & 0x7f;
+ ext_seg_left = (msb << 7) + lsb;
+ if (ext_seg_left <= tmp_ctext_len - 2) {
+ *ctext = tmp_ctext + 2;
+ *ctext_len = tmp_ctext_len - 2;
+ break;
+ }
+ }
+ return resNotCTSeq;
+ default:
+ return resNotCTSeq;
}
- return 0;
+ ct_info = _XlcGetCTInfo(type, final_byte, *ctext, ext_seg_left);
+
+ if (ct_info) {
+ charset = ct_info->charset;
+ state->ext_seg_left = ext_seg_left;
+ if (type == XctExtSeg) {
+ state->charset = charset;
+ /* Skip past the extended segment name and the separator. */
+ *ctext += ct_info->ext_segment_len;
+ *ctext_len -= ct_info->ext_segment_len;
+ state->ext_seg_left -= ct_info->ext_segment_len;
+ } else if (type == XctOtherCoding) {
+ state->Other_charset = charset;
+ } else {
+ if (charset->side == XlcGL) {
+ state->GL_charset = charset;
+ } else if (charset->side == XlcGR) {
+ state->GR_charset = charset;
+ } else {
+ state->GL_charset = charset;
+ state->GR_charset = charset;
+ }
+ }
+ return resOK;
+ } else {
+ state->ext_seg_left = 0;
+ if (type == XctExtSeg) {
+ /* Skip the entire extended segment. */
+ *ctext += ext_seg_left;
+ *ctext_len -= ext_seg_left;
+ }
+ return resNotInList;
+ }
}
-
static void
-init_state(conv)
- XlcConv conv;
+init_state(
+ XlcConv conv)
{
State state = (State) conv->state;
- static XlcCharSet GL_charset = NULL;
- static XlcCharSet GR_charset = NULL;
+ static XlcCharSet default_GL_charset = NULL;
+ static XlcCharSet default_GR_charset = NULL;
- if (GL_charset == NULL) {
- GL_charset = _XlcGetCharSet("ISO8859-1:GL");
- GR_charset = _XlcGetCharSet("ISO8859-1:GR");
+ if (default_GL_charset == NULL) {
+ default_GL_charset = _XlcGetCharSet("ISO8859-1:GL");
+ default_GR_charset = _XlcGetCharSet("ISO8859-1:GR");
}
- state->GL_charset = state->charset = GL_charset;
- state->GR_charset = GR_charset;
- state->ext_seg_charset = NULL;
+ /* The initial state is ISO-8859-1 on both sides. */
+ state->GL_charset = state->charset = default_GL_charset;
+ state->GR_charset = default_GR_charset;
+
+ state->Other_charset = NULL;
+
state->ext_seg_left = 0;
}
+/* from XlcNCompoundText to XlcNCharSet */
+
static int
-cttocs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+cttocs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
- register State state = (State) conv->state;
- register unsigned char ch;
- int length;
+ State state = (State) conv->state;
XlcCharSet charset = NULL;
- char *ctptr, *bufptr;
+ const char *ctptr;
+ char *bufptr;
int ctext_len, buf_len;
+ int unconv_num = 0;
- ctptr = *((char **) from);
- bufptr = *((char **) to);
+ ctptr = (const char *) *from;
+ bufptr = (char *) *to;
ctext_len = *from_left;
buf_len = *to_left;
while (ctext_len > 0 && buf_len > 0) {
- if (state->ext_seg_left > 0) {
- length = min(state->ext_seg_left, ctext_len);
- length = min(length, buf_len);
-
- ctext_len -= length;
- state->ext_seg_left -= length;
-
- if (state->ext_seg_charset) {
- charset = state->ext_seg_charset;
- buf_len -= length;
- if (charset->side == XlcGL) {
- while (length-- > 0)
- *bufptr++ = *ctptr++ & 0x7f;
- } else if (charset->side == XlcGR) {
- while (length-- > 0)
- *bufptr++ = *ctptr++ | 0x80;
- } else {
- while (length-- > 0)
- *bufptr++ = *ctptr++;
- }
-
- if (state->ext_seg_left < 1)
- state->ext_seg_charset = NULL;
- }
- break;
- }
- ch = *((unsigned char *) ctptr);
- if (ch == 0x1b || ch == 0x9b) {
- length = _XlcCheckCTSequence(state, &ctptr, &ctext_len);
- if (length < 0)
- return -1;
- if (state->ext_seg_left > 0 && charset)
- break;
- } else {
- if (charset) {
- if (charset != (ch & 0x80 ? state->GR_charset :
- state->GL_charset))
- break;
- } else
- charset = ch & 0x80 ? state->GR_charset : state->GL_charset;
-
- if ((ch < 0x20 && ch != '\0' && ch != '\n' && ch != '\t') ||
- (ch >= 0x80 && ch < 0xa0))
- return -1;
-
- *bufptr++ = *ctptr++;
- ctext_len--;
- buf_len--;
- }
+ if (state->ext_seg_left == 0) {
+ /* Not in the middle of an extended segment; look at next byte. */
+ unsigned char ch = *ctptr;
+ XlcCharSet ch_charset;
+
+ if (ch == XctESC) {
+ CheckResult ret =
+ _XlcCheckCTSequence(state, &ctptr, &ctext_len);
+ if (ret == resOK)
+ /* state has been modified. */
+ continue;
+ if (ret == resNotInList) {
+ /* XXX Just continue with previous charset. */
+ unconv_num++;
+ continue;
+ }
+ } else if (ch == XctCSI) {
+ /* XXX Simply ignore the XctLeftToRight, XctRightToLeft,
+ XctDirectionEnd sequences for the moment. */
+ unsigned char dummy;
+ if (_XlcParseCT(&ctptr, &ctext_len, &dummy)) {
+ unconv_num++;
+ continue;
+ }
+ }
+
+ /* Find the charset which is responsible for this byte. */
+ ch_charset = (state->Other_charset != NULL ? state->Other_charset :
+ (ch & 0x80 ? state->GR_charset : state->GL_charset));
+
+ /* Set the charset of this run, or continue the current run,
+ or stop the current run. */
+ if (charset) {
+ if (charset != ch_charset)
+ break;
+ } else {
+ state->charset = charset = ch_charset;
+ }
+
+ /* We don't want to split a character into multiple pieces. */
+ if (buf_len < 6) {
+ if (charset->char_size > 0) {
+ if (buf_len < charset->char_size)
+ break;
+ } else {
+ /* char_size == 0 is tricky. The code here is good only
+ for valid UTF-8 input. */
+ if (charset->ct_sequence[0] == XctESC
+ && charset->ct_sequence[1] == XctOtherCoding
+ && charset->ct_sequence[2] == 'G') {
+ int char_size = (ch < 0xc0 ? 1 :
+ ch < 0xe0 ? 2 :
+ ch < 0xf0 ? 3 :
+ ch < 0xf8 ? 4 :
+ ch < 0xfc ? 5 :
+ 6);
+ if (buf_len < char_size)
+ break;
+ }
+ }
+ }
+
+ *bufptr++ = *ctptr++;
+ ctext_len--;
+ buf_len--;
+ } else {
+ /* Copy as much as possible from the current extended segment
+ to the buffer. */
+ int char_size;
+
+ /* Set the charset of this run, or continue the current run,
+ or stop the current run. */
+ if (charset) {
+ if (charset != state->charset)
+ break;
+ } else {
+ charset = state->charset;
+ }
+
+ char_size = charset->char_size;
+
+ if (state->ext_seg_left <= buf_len || char_size > 0) {
+ int n = (state->ext_seg_left <= buf_len
+ ? state->ext_seg_left
+ : (buf_len / char_size) * char_size);
+ memcpy(bufptr, ctptr, n);
+ ctptr += n; ctext_len -= n;
+ bufptr += n; buf_len -= n;
+ state->ext_seg_left -= n;
+ } else {
+#if UTF8_IN_EXTSEQ
+ /* char_size == 0 is tricky. The code here is good only
+ for valid UTF-8 input. */
+ if (strcmp(charset->name, "ISO10646-1") == 0) {
+ unsigned char ch = *ctptr;
+ int char_size = (ch < 0xc0 ? 1 :
+ ch < 0xe0 ? 2 :
+ ch < 0xf0 ? 3 :
+ ch < 0xf8 ? 4 :
+ ch < 0xfc ? 5 :
+ 6);
+ int i;
+ if (buf_len < char_size)
+ break;
+ /* A small loop is faster than calling memcpy. */
+ for (i = char_size; i > 0; i--)
+ *bufptr++ = *ctptr++;
+ ctext_len -= char_size;
+ buf_len -= char_size;
+ state->ext_seg_left -= char_size;
+ } else
+#endif
+ {
+ /* Here ctext_len >= state->ext_seg_left > buf_len.
+ We may be splitting a character into multiple pieces.
+ Oh well. */
+ int n = buf_len;
+ memcpy(bufptr, ctptr, n);
+ ctptr += n; ctext_len -= n;
+ bufptr += n; buf_len -= n;
+ state->ext_seg_left -= n;
+ }
+ }
+ }
}
- if (charset)
- state->charset = charset;
+ /* 'charset' is the charset for the current run. In some cases,
+ 'state->charset' contains the charset for the next run. Therefore,
+ return 'charset'.
+ 'charset' may still be NULL only if no output was produced. */
if (num_args > 0)
- *((XlcCharSet *) args[0]) = state->charset;
+ *((XlcCharSet *) args[0]) = charset;
- *from_left -= ctptr - *((char **) from);
+ *from_left -= ctptr - *((const char **) from);
*from = (XPointer) ctptr;
*to_left -= bufptr - *((char **) to);
*to = (XPointer) bufptr;
- return 0;
+ return unconv_num;
}
+/* from XlcNCharSet to XlcNCompoundText */
+
static int
-cstoct(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+cstoct(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
State state = (State) conv->state;
XlcSide side;
- unsigned char min_ch, max_ch;
- register unsigned char ch;
- int length;
+ unsigned char min_ch = 0, max_ch = 0;
+ int length, unconv_num;
CTInfo ct_info;
XlcCharSet charset;
- char *csptr, *ctptr;
+ const char *csptr;
+ char *ctptr;
int csstr_len, ct_len;
+ char *ext_segment_start;
+ int char_size;
+ /* One argument is required, of type XlcCharSet. */
if (num_args < 1)
return -1;
-
- csptr = *((char **) from);
+
+ csptr = *((const char **) from);
ctptr = *((char **) to);
csstr_len = *from_left;
ct_len = *to_left;
-
+
charset = (XlcCharSet) args[0];
ct_info = _XlcGetCTInfoFromCharSet(charset);
@@ -637,74 +896,170 @@ cstoct(conv, from, from_left, to, to_left, args, num_args)
return -1;
side = charset->side;
+ length = strlen(ct_info->ct_sequence);
+
+ ext_segment_start = NULL;
+
+ if (ct_info->type == XctOtherCoding) {
+ /* Output the Escape sequence for switching to the charset, and
+ reserve room now for the XctReturn sequence at the end. */
+ if (ct_len < length + 3)
+ return -1;
+
+ memcpy(ctptr, ct_info->ct_sequence, length);
+ ctptr += length;
+ ct_len -= length + 3;
+ } else
+ /* Test whether the charset is already active. */
+ if (((side == XlcGR || side == XlcGLGR)
+ && charset != state->GR_charset)
+ || ((side == XlcGL || side == XlcGLGR)
+ && charset != state->GL_charset)) {
+
+ /* Output the Escape sequence for switching to the charset. */
+ if (ct_info->type == XctExtSeg) {
+ if (ct_len < length + 2 + ct_info->ext_segment_len)
+ return -1;
+
+ memcpy(ctptr, ct_info->ct_sequence, length);
+ ctptr += length;
+ ct_len -= length;
+
+ ctptr += 2;
+ ct_len -= 2;
+ ext_segment_start = ctptr;
+
+ /* The size of an extended segment must fit in 14 bits. */
+ if (ct_len > 0x3fff)
+ ct_len = 0x3fff;
+
+ memcpy(ctptr, ct_info->ext_segment, ct_info->ext_segment_len);
+ ctptr += ct_info->ext_segment_len;
+ ct_len -= ct_info->ext_segment_len;
+ } else {
+ if (ct_len < length)
+ return -1;
+
+ memcpy(ctptr, ct_info->ct_sequence, length);
+ ctptr += length;
+ ct_len -= length;
+ }
+ }
- if (ct_info->ext_segment) {
- if (charset != state->ext_seg_charset && state->ext_seg_left < 1) {
- length = ct_info->encoding_len;
- if (ct_len < length)
- return -1;
- strcpy(ctptr, ct_info->encoding);
- ctptr[4] = ((ct_info->ext_segment_len + csstr_len) / 128) | 0x80;
- ctptr[5] = ((ct_info->ext_segment_len + csstr_len) % 128) | 0x80;
- ctptr += length;
- ct_len -= length;
- state->ext_seg_left = csstr_len;
- }
- length = min(state->ext_seg_left, csstr_len);
- state->ext_seg_left -= length;
-
- if (side == XlcGL) {
- while (length-- > 0)
- *ctptr++ = *csptr++ & 0x7f;
- } else if (side == XlcGR) {
- while (length-- > 0)
- *ctptr++ = *csptr++ | 0x80;
- } else {
- while (length-- > 0)
- *ctptr++ = *csptr++;
- }
- state->ext_seg_charset = (state->ext_seg_left > 0) ? charset : NULL;
- } else {
- if ((side == XlcGR && charset != state->GR_charset) ||
- (side == XlcGL && charset != state->GL_charset)) {
-
- ct_len -= ct_info->encoding_len;
- if (ct_len < 0)
- return -1;
- strcpy(ctptr, ct_info->encoding);
- ctptr += ct_info->encoding_len;
- }
-
- min_ch = 0x20;
- max_ch = 0x7f;
-
- if (charset->set_size == 94) {
- max_ch--;
+ /* If the charset has side GL or GR, prepare remapping the characters
+ to the correct side. */
+ if (charset->set_size) {
+ min_ch = 0x20;
+ max_ch = 0x7f;
+ if (charset->set_size == 94) {
+ max_ch--;
if (charset->char_size > 1 || side == XlcGR)
min_ch++;
- }
+ }
+ }
+ /* Actually copy the contents. */
+ unconv_num = 0;
+ char_size = charset->char_size;
+ if (char_size == 1) {
while (csstr_len > 0 && ct_len > 0) {
- ch = *((unsigned char *) csptr++) & 0x7f;
- if (ch < min_ch || ch > max_ch)
- if (ch != 0x00 && ch != 0x09 && ch != 0x0a && ch != 0x1b)
- continue; /* XXX */
+ if (charset->set_size) {
+ /* The CompoundText specification says that the only
+ control characters allowed are 0x09, 0x0a, 0x1b, 0x9b.
+ Therefore here we eliminate other control characters. */
+ unsigned char ch = *((unsigned char *) csptr) & 0x7f;
+ if (!((ch >= min_ch && ch <= max_ch)
+ || (side == XlcGL
+ && (ch == 0x00 || ch == 0x09 || ch == 0x0a))
+ || ((side == XlcGL || side == XlcGR)
+ && (ch == 0x1b)))) {
+ csptr++;
+ csstr_len--;
+ unconv_num++;
+ continue;
+ }
+ }
+
if (side == XlcGL)
- *ctptr++ = ch & 0x7f;
+ *ctptr++ = *csptr++ & 0x7f;
else if (side == XlcGR)
- *ctptr++ = ch | 0x80;
+ *ctptr++ = *csptr++ | 0x80;
else
- *ctptr++ = ch;
+ *ctptr++ = *csptr++;
csstr_len--;
ct_len--;
}
- if (side == XlcGR)
- state->GR_charset = charset;
- else if (side == XlcGL)
- state->GL_charset = charset;
+ } else if (char_size > 1) {
+ while (csstr_len >= char_size && ct_len >= char_size) {
+ if (side == XlcGL) {
+ int i;
+ for (i = char_size; i > 0; i--)
+ *ctptr++ = *csptr++ & 0x7f;
+ } else if (side == XlcGR) {
+ int i;
+ for (i = char_size; i > 0; i--)
+ *ctptr++ = *csptr++ | 0x80;
+ } else {
+ int i;
+ for (i = char_size; i > 0; i--)
+ *ctptr++ = *csptr++;
+ }
+ csstr_len -= char_size;
+ ct_len -= char_size;
+ }
+ } else {
+ /* char_size = 0. The code here is good only for valid UTF-8 input. */
+ if ((charset->ct_sequence[0] == XctESC
+ && charset->ct_sequence[1] == XctOtherCoding
+ && charset->ct_sequence[2] == 'G')
+#if UTF8_IN_EXTSEQ
+ || strcmp(charset->name, "ISO10646-1") == 0
+#endif
+ ) {
+ while (csstr_len > 0 && ct_len > 0) {
+ unsigned char ch = * (unsigned char *) csptr;
+ int char_size = (ch < 0xc0 ? 1 :
+ ch < 0xe0 ? 2 :
+ ch < 0xf0 ? 3 :
+ ch < 0xf8 ? 4 :
+ ch < 0xfc ? 5 :
+ 6);
+ int i;
+ if (!(csstr_len >= char_size && ct_len >= char_size))
+ break;
+ for (i = char_size; i > 0; i--)
+ *ctptr++ = *csptr++;
+ csstr_len -= char_size;
+ ct_len -= char_size;
+ }
+ } else {
+ while (csstr_len > 0 && ct_len > 0) {
+ *ctptr++ = *csptr++;
+ csstr_len--;
+ ct_len--;
+ }
+ }
}
- *from_left -= csptr - *((char **) from);
+ if (ct_info->type == XctOtherCoding) {
+ /* Terminate with an XctReturn sequence. */
+ ctptr[0] = XctESC;
+ ctptr[1] = XctOtherCoding;
+ ctptr[2] = '@';
+ ctptr += 3;
+ } else if (ext_segment_start != NULL) {
+ /* Backpatch the extended segment's length. */
+ int ext_segment_length = ctptr - ext_segment_start;
+ *(ext_segment_start - 2) = (ext_segment_length >> 7) | 0x80;
+ *(ext_segment_start - 1) = (ext_segment_length & 0x7f) | 0x80;
+ } else {
+ if (side == XlcGR || side == XlcGLGR)
+ state->GR_charset = charset;
+ if (side == XlcGL || side == XlcGLGR)
+ state->GL_charset = charset;
+ }
+
+ *from_left -= csptr - *((const char **) from);
*from = (XPointer) csptr;
*to_left -= ctptr - *((char **) to);
@@ -713,22 +1068,25 @@ cstoct(conv, from, from_left, to, to_left, args, num_args)
return 0;
}
+/* from XlcNString to XlcNCharSet */
+
static int
-strtocs(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+strtocs(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
State state = (State) conv->state;
- register char *src, *dst;
+ const char *src;
+ char *dst;
unsigned char side;
- register int length;
+ int length;
- src = (char *) *from;
+ src = (const char *) *from;
dst = (char *) *to;
length = min(*from_left, *to_left);
@@ -737,46 +1095,54 @@ strtocs(conv, from, from_left, to, to_left, args, num_args)
while (side == (*((unsigned char *) src) & 0x80) && length-- > 0)
*dst++ = *src++;
- *from_left -= src - (char *) *from;
+ *from_left -= src - (const char *) *from;
*from = (XPointer) src;
*to_left -= dst - (char *) *to;
*to = (XPointer) dst;
if (num_args > 0)
- *((XlcCharSet *)args[0]) = side ? state->GR_charset : state->GL_charset;
+ *((XlcCharSet *)args[0]) = (side ? state->GR_charset : state->GL_charset);
return 0;
}
+/* from XlcNCharSet to XlcNString */
+
static int
-cstostr(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+cstostr(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
State state = (State) conv->state;
- char *csptr, *string_ptr;
+ const char *csptr;
+ char *string_ptr;
int csstr_len, str_len;
unsigned char ch;
int unconv_num = 0;
- if (num_args < 1 || (state->GL_charset != (XlcCharSet) args[0] &&
- state->GR_charset != (XlcCharSet) args[0]))
+ /* This converter can only convert from ISO8859-1:GL and ISO8859-1:GR. */
+ if (num_args < 1
+ || !((XlcCharSet) args[0] == state->GL_charset
+ || (XlcCharSet) args[0] == state->GR_charset))
return -1;
- csptr = *((char **) from);
+ csptr = *((const char **) from);
string_ptr = *((char **) to);
csstr_len = *from_left;
str_len = *to_left;
- while (csstr_len-- > 0 && str_len > 0) {
+ while (csstr_len > 0 && str_len > 0) {
ch = *((unsigned char *) csptr++);
- if ((ch < 0x20 && ch != 0x00 && ch != 0x09 && ch != 0x0a) ||
- ch == 0x7f || ((ch & 0x80) && ch < 0xa0)) {
+ csstr_len--;
+ /* Citing ICCCM: "STRING as a type specifies the ISO Latin-1 character
+ set plus the control characters TAB and NEWLINE." */
+ if ((ch < 0x20 && ch != 0x00 && ch != 0x09 && ch != 0x0a)
+ || (ch >= 0x7f && ch < 0xa0)) {
unconv_num++;
continue;
}
@@ -784,7 +1150,7 @@ cstostr(conv, from, from_left, to, to_left, args, num_args)
str_len--;
}
- *from_left -= csptr - *((char **) from);
+ *from_left -= csptr - *((const char **) from);
*from = (XPointer) csptr;
*to_left -= string_ptr - *((char **) to);
@@ -794,116 +1160,141 @@ cstostr(conv, from, from_left, to, to_left, args, num_args)
}
-static void
-close_converter(conv)
- XlcConv conv;
-{
- if (conv->state)
- Xfree((char *) conv->state);
-
- Xfree((char *) conv);
-}
-
static XlcConv
-create_conv(methods)
- XlcConvMethods methods;
+create_conv(
+ XlcConvMethods methods)
{
- register XlcConv conv;
+ XlcConv conv;
- conv = (XlcConv) Xmalloc(sizeof(XlcConvRec));
+ conv = (XlcConv) Xmalloc(sizeof(XlcConvRec) + sizeof(StateRec));
if (conv == NULL)
return (XlcConv) NULL;
- conv->state = (XPointer) Xmalloc(sizeof(StateRec));
- if (conv->state == NULL)
- goto err;
-
+ conv->state = (XPointer) &conv[1];
+
conv->methods = methods;
init_state(conv);
return conv;
+}
-err:
- close_converter(conv);
-
- return (XlcConv) NULL;
+static void
+close_converter(
+ XlcConv conv)
+{
+ /* conv->state is allocated together with conv, free both at once. */
+ Xfree((char *) conv);
}
+
static XlcConvMethodsRec cttocs_methods = {
close_converter,
cttocs,
init_state
-} ;
+};
static XlcConv
-open_cttocs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_cttocs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(&cttocs_methods);
}
+
static XlcConvMethodsRec cstoct_methods = {
close_converter,
cstoct,
init_state
-} ;
+};
static XlcConv
-open_cstoct(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_cstoct(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(&cstoct_methods);
}
+
static XlcConvMethodsRec strtocs_methods = {
close_converter,
strtocs,
init_state
-} ;
+};
static XlcConv
-open_strtocs(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_strtocs(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(&strtocs_methods);
}
+
static XlcConvMethodsRec cstostr_methods = {
close_converter,
cstostr,
init_state
-} ;
+};
static XlcConv
-open_cstostr(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- char *from_type;
- XLCd to_lcd;
- char *to_type;
+open_cstostr(
+ XLCd from_lcd,
+ const char *from_type,
+ XLCd to_lcd,
+ const char *to_type)
{
return create_conv(&cstostr_methods);
}
-static void
-init_converter()
+
+/* =========================== Initialization =========================== */
+
+Bool
+_XlcInitCTInfo()
{
- _XlcSetConverter((XLCd) NULL, XlcNCompoundText, (XLCd) NULL, XlcNCharSet,
- open_cttocs);
- _XlcSetConverter((XLCd) NULL, XlcNString, (XLCd) NULL, XlcNCharSet,
- open_strtocs);
-
- _XlcSetConverter((XLCd) NULL, XlcNCharSet, (XLCd) NULL, XlcNCompoundText,
- open_cstoct);
- _XlcSetConverter((XLCd) NULL, XlcNCharSet, (XLCd) NULL, XlcNString,
- open_cstostr);
+ if (ct_list == NULL) {
+ CTData ct_data;
+ int num;
+ XlcCharSet charset;
+
+ /* Initialize ct_list. */
+
+ num = sizeof(default_ct_data) / sizeof(CTDataRec);
+ for (ct_data = default_ct_data; num > 0; ct_data++, num--) {
+ charset = _XlcAddCT(ct_data->name, ct_data->ct_sequence);
+ if (charset == NULL)
+ continue;
+ if (strncmp(charset->ct_sequence, "\x1b\x25\x2f", 3) != 0)
+ charset->source = CSsrcStd;
+ else
+ charset->source = CSsrcXLC;
+ }
+
+ /* Register CompoundText and CharSet converters. */
+
+ _XlcSetConverter((XLCd) NULL, XlcNCompoundText,
+ (XLCd) NULL, XlcNCharSet,
+ open_cttocs);
+ _XlcSetConverter((XLCd) NULL, XlcNString,
+ (XLCd) NULL, XlcNCharSet,
+ open_strtocs);
+
+ _XlcSetConverter((XLCd) NULL, XlcNCharSet,
+ (XLCd) NULL, XlcNCompoundText,
+ open_cstoct);
+ _XlcSetConverter((XLCd) NULL, XlcNCharSet,
+ (XLCd) NULL, XlcNString,
+ open_cstostr);
+ }
+
+ return True;
}
diff --git a/src/xlibi18n/lcCharSet.c b/src/xlibi18n/lcCharSet.c
index e9a376b0..3877495e 100644
--- a/src/xlibi18n/lcCharSet.c
+++ b/src/xlibi18n/lcCharSet.c
@@ -23,46 +23,14 @@
* Author: Katsuhisa Yano TOSHIBA Corp.
* mopi@osa.ilab.toshiba.co.jp
*/
+/* $XFree86: xc/lib/X11/lcCharSet.c,v 3.8 2001/01/17 19:41:53 dawes Exp $ */
#include <stdio.h>
#include "Xlibint.h"
#include "XlcPublic.h"
+#include "XlcPubI.h"
-#if NeedVarargsPrototypes
-char *
-_XlcGetCSValues(XlcCharSet charset, ...)
-#else
-char *
-_XlcGetCSValues(charset, va_alist)
- XlcCharSet charset;
- va_dcl
-#endif
-{
- va_list var;
- XlcArgList args;
- char *ret;
- int num_args;
-
- Va_start(var, charset);
- _XlcCountVaList(var, &num_args);
- va_end(var);
-
- Va_start(var, charset);
- _XlcVaToArgList(var, num_args, &args);
- va_end(var);
-
- if (args == (XlcArgList) NULL)
- return (char *) NULL;
-
- if (charset->get_values)
- ret = (*charset->get_values)(charset, args, num_args);
- else
- ret = args->name;
-
- Xfree(args);
-
- return ret;
-}
+/* The list of all known XlcCharSets. They are identified by their name. */
typedef struct _XlcCharSetListRec {
XlcCharSet charset;
@@ -71,9 +39,11 @@ typedef struct _XlcCharSetListRec {
static XlcCharSetList charset_list = NULL;
+/* Returns the charset with the given name (including side suffix).
+ Returns NULL if not found. */
XlcCharSet
-_XlcGetCharSet(name)
- char *name;
+_XlcGetCharSet(
+ const char *name)
{
XlcCharSetList list;
XrmQuark xrm_name;
@@ -88,9 +58,33 @@ _XlcGetCharSet(name)
return (XlcCharSet) NULL;
}
+/* Returns the charset with the given encoding (no side suffix) and
+ responsible for at least the given side (XlcGL or XlcGR).
+ Returns NULL if not found. */
+XlcCharSet
+_XlcGetCharSetWithSide(
+ const char *encoding_name,
+ XlcSide side)
+{
+ XlcCharSetList list;
+ XrmQuark xrm_encoding_name;
+
+ xrm_encoding_name = XrmStringToQuark(encoding_name);
+
+ for (list = charset_list; list; list = list->next) {
+ if (list->charset->xrm_encoding_name == xrm_encoding_name
+ && (list->charset->side == XlcGLGR || list->charset->side == side))
+ return (XlcCharSet) list->charset;
+ }
+
+ return (XlcCharSet) NULL;
+}
+
+/* Registers an XlcCharSet in the list of character sets.
+ Returns True if successful. */
Bool
-_XlcAddCharSet(charset)
- XlcCharSet charset;
+_XlcAddCharSet(
+ XlcCharSet charset)
{
XlcCharSetList list;
@@ -108,6 +102,7 @@ _XlcAddCharSet(charset)
return True;
}
+/* List of resources for XlcCharSet. */
static XlcResource resources[] = {
{ XlcNName, NULLQUARK, sizeof(char *),
XOffsetOf(XlcCharSetRec, name), XlcGetMask },
@@ -123,11 +118,14 @@ static XlcResource resources[] = {
XOffsetOf(XlcCharSetRec, ct_sequence), XlcGetMask }
};
+/* Retrieves a number of attributes of an XlcCharSet.
+ Return NULL if successful, otherwise the name of the first argument
+ specifiying a nonexistent attribute. */
static char *
-get_values(charset, args, num_args)
- register XlcCharSet charset;
- register XlcArgList args;
- register int num_args;
+get_values(
+ XlcCharSet charset,
+ XlcArgList args,
+ int num_args)
{
if (resources[0].xrm_name == NULLQUARK)
_XlcCompileResourceList(resources, XlcNumber(resources));
@@ -136,29 +134,92 @@ get_values(charset, args, num_args)
args, num_args, XlcGetMask);
}
+/* Retrieves a number of attributes of an XlcCharSet.
+ Return NULL if successful, otherwise the name of the first argument
+ specifiying a nonexistent attribute. */
+char *
+_XlcGetCSValues(XlcCharSet charset, ...)
+{
+ va_list var;
+ XlcArgList args;
+ char *ret;
+ int num_args;
+
+ va_start(var, charset);
+ _XlcCountVaList(var, &num_args);
+ va_end(var);
+
+ va_start(var, charset);
+ _XlcVaToArgList(var, num_args, &args);
+ va_end(var);
+
+ if (args == (XlcArgList) NULL)
+ return (char *) NULL;
+
+ ret = get_values(charset, args, num_args);
+
+ Xfree(args);
+
+ return ret;
+}
+
+/* Creates a new XlcCharSet, given its name (including side suffix) and
+ Compound Text ESC sequence (normally at most 4 bytes). */
XlcCharSet
-_XlcCreateDefaultCharSet(name, ct_sequence)
- char *name;
- char *ct_sequence;
+_XlcCreateDefaultCharSet(
+ const char *name,
+ const char *ct_sequence)
{
XlcCharSet charset;
+ int name_len, ct_sequence_len;
+ const char *colon;
+ char *tmp;
charset = (XlcCharSet) Xmalloc(sizeof(XlcCharSetRec));
if (charset == NULL)
return (XlcCharSet) NULL;
bzero((char *) charset, sizeof(XlcCharSetRec));
-
- charset->name = (char *) Xmalloc(strlen(name) + strlen(ct_sequence) + 2);
- if (charset->name == NULL) {
+
+ name_len = strlen(name);
+ ct_sequence_len = strlen(ct_sequence);
+
+ /* Fill in name and xrm_name. */
+ tmp = (char *) Xmalloc(name_len + 1 + ct_sequence_len + 1);
+ if (tmp == NULL) {
Xfree((char *) charset);
return (XlcCharSet) NULL;
}
- strcpy(charset->name, name);
- charset->ct_sequence = charset->name + strlen(name) + 1;
- strcpy(charset->ct_sequence, ct_sequence);
- charset->get_values = get_values;
+ memcpy(tmp, name, name_len+1);
+ charset->name = tmp;
+ charset->xrm_name = XrmStringToQuark(charset->name);
+
+ /* Fill in encoding_name and xrm_encoding_name. */
+ if ((colon = strchr(charset->name, ':')) != NULL) {
+ unsigned int length = colon - charset->name;
+ char *encoding_tmp = (char *) Xmalloc(length + 1);
+ if (encoding_tmp == NULL) {
+ Xfree((char *) charset->name);
+ Xfree((char *) charset);
+ return (XlcCharSet) NULL;
+ }
+ memcpy(encoding_tmp, charset->name, length);
+ encoding_tmp[length] = '\0';
+ charset->encoding_name = encoding_tmp;
+ charset->xrm_encoding_name = XrmStringToQuark(charset->encoding_name);
+ } else {
+ charset->encoding_name = charset->name;
+ charset->xrm_encoding_name = charset->xrm_name;
+ }
+
+ /* Fill in ct_sequence. */
+ tmp += name_len + 1;
+ memcpy(tmp, ct_sequence, ct_sequence_len+1);
+ charset->ct_sequence = tmp;
- _XlcParseCharSet(charset);
+ /* Fill in side, char_size, set_size. */
+ if (!_XlcParseCharSet(charset))
+ /* If ct_sequence is not usable in Compound Text, remove it. */
+ charset->ct_sequence = "";
return (XlcCharSet) charset;
}
diff --git a/src/xlibi18n/lcConv.c b/src/xlibi18n/lcConv.c
index f03adcc6..88ae52f4 100644
--- a/src/xlibi18n/lcConv.c
+++ b/src/xlibi18n/lcConv.c
@@ -23,41 +23,40 @@
* Author: Katsuhisa Yano TOSHIBA Corp.
* mopi@osa.ilab.toshiba.co.jp
*/
+/* $XFree86: xc/lib/X11/lcConv.c,v 1.5 2000/12/04 18:49:26 dawes Exp $ */
#include "Xlibint.h"
#include "XlcPubI.h"
#include <stdio.h>
-typedef XlcConv (*XlcConverter)();
-
typedef struct _XlcConverterListRec {
XLCd from_lcd;
- char *from;
+ const char *from;
XrmQuark from_type;
XLCd to_lcd;
- char *to;
+ const char *to;
XrmQuark to_type;
- XlcConverter converter;
+ XlcOpenConverterProc converter;
struct _XlcConverterListRec *next;
} XlcConverterListRec, *XlcConverterList;
static XlcConverterList conv_list = NULL;
static void
-close_converter(conv)
- XlcConv conv;
+close_converter(
+ XlcConv conv)
{
(*conv->methods->close)(conv);
}
static XlcConv
-get_converter(from_lcd, from_type, to_lcd, to_type)
- XLCd from_lcd;
- XrmQuark from_type;
- XLCd to_lcd;
- XrmQuark to_type;
+get_converter(
+ XLCd from_lcd,
+ XrmQuark from_type,
+ XLCd to_lcd,
+ XrmQuark to_type)
{
- register XlcConverterList list, prev = NULL;
+ XlcConverterList list, prev = NULL;
for (list = conv_list; list; list = list->next) {
if (list->from_lcd == from_lcd && list->to_lcd == to_lcd
@@ -74,20 +73,20 @@ get_converter(from_lcd, from_type, to_lcd, to_type)
prev = list;
}
-
+
return (XlcConv) NULL;
}
Bool
-_XlcSetConverter(from_lcd, from, to_lcd, to, converter)
- XLCd from_lcd;
- char *from;
- XLCd to_lcd;
- char *to;
- XlcOpenConverterProc converter;
+_XlcSetConverter(
+ XLCd from_lcd,
+ const char *from,
+ XLCd to_lcd,
+ const char *to,
+ XlcOpenConverterProc converter)
{
- register XlcConverterList list;
- register XrmQuark from_type, to_type;
+ XlcConverterList list;
+ XrmQuark from_type, to_type;
from_type = XrmStringToQuark(from);
to_type = XrmStringToQuark(to);
@@ -104,7 +103,7 @@ _XlcSetConverter(from_lcd, from, to_lcd, to, converter)
list = (XlcConverterList) Xmalloc(sizeof(XlcConverterListRec));
if (list == NULL)
return False;
-
+
list->from_lcd = from_lcd;
list->from = from;
list->from_type = from_type;
@@ -124,14 +123,14 @@ typedef struct _ConvRec {
} ConvRec, *Conv;
static int
-indirect_convert(lc_conv, from, from_left, to, to_left, args, num_args)
- XlcConv lc_conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+indirect_convert(
+ XlcConv lc_conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
Conv conv = (Conv) lc_conv->state;
XlcConv from_conv = conv->from_conv;
@@ -161,28 +160,35 @@ indirect_convert(lc_conv, from, from_left, to, to_left, args, num_args)
if (ret < 0)
break;
- length = cs_left = cs - buf;
- cs = buf;
+ unconv_num += ret;
+
+ length = cs - buf;
+ if (length > 0) {
+ cs_left = length;
+ cs = buf;
- tmp_args[0] = (XPointer) charset;
+ tmp_args[0] = (XPointer) charset;
- ret = (*to_conv->methods->convert)(to_conv, &cs, &cs_left, to, to_left,
- tmp_args, 1);
- if (ret < 0) {
- unconv_num += length / charset->char_size;
- continue;
+ ret = (*to_conv->methods->convert)(to_conv, &cs, &cs_left, to, to_left,
+ tmp_args, 1);
+ if (ret < 0) {
+ unconv_num += length / (charset->char_size > 0 ? charset->char_size : 1);
+ continue;
+ }
+
+ unconv_num += ret;
+
+ if (*to_left < 1)
+ break;
}
-
- if (*to_left < 1)
- break;
}
return unconv_num;
}
static void
-close_indirect_converter(lc_conv)
- XlcConv lc_conv;
+close_indirect_converter(
+ XlcConv lc_conv)
{
Conv conv = (Conv) lc_conv->state;
@@ -199,8 +205,8 @@ close_indirect_converter(lc_conv)
}
static void
-reset_indirect_converter(lc_conv)
- XlcConv lc_conv;
+reset_indirect_converter(
+ XlcConv lc_conv)
{
Conv conv = (Conv) lc_conv->state;
@@ -219,11 +225,11 @@ static XlcConvMethodsRec conv_methods = {
} ;
static XlcConv
-open_indirect_converter(from_lcd, from, to_lcd, to)
- XLCd from_lcd;
- char *from;
- XLCd to_lcd;
- char *to;
+open_indirect_converter(
+ XLCd from_lcd,
+ const char *from,
+ XLCd to_lcd,
+ const char *to)
{
XlcConv lc_conv, from_conv, to_conv;
Conv conv;
@@ -246,13 +252,13 @@ open_indirect_converter(from_lcd, from, to_lcd, to)
lc_conv = (XlcConv) Xmalloc(sizeof(XlcConvRec));
if (lc_conv == NULL)
return (XlcConv) NULL;
-
+
lc_conv->methods = &conv_methods;
lc_conv->state = (XPointer) Xcalloc(1, sizeof(ConvRec));
if (lc_conv->state == NULL)
goto err;
-
+
conv = (Conv) lc_conv->state;
from_conv = get_converter(from_lcd, from_type, from_lcd, QCTCharSet);
@@ -284,11 +290,11 @@ err:
}
XlcConv
-_XlcOpenConverter(from_lcd, from, to_lcd, to)
- XLCd from_lcd;
- char *from;
- XLCd to_lcd;
- char *to;
+_XlcOpenConverter(
+ XLCd from_lcd,
+ const char *from,
+ XLCd to_lcd,
+ const char *to)
{
XlcConv conv;
XrmQuark from_type, to_type;
@@ -298,34 +304,34 @@ _XlcOpenConverter(from_lcd, from, to_lcd, to)
if ((conv = get_converter(from_lcd, from_type, to_lcd, to_type)))
return conv;
-
+
return open_indirect_converter(from_lcd, from, to_lcd, to);
}
void
-_XlcCloseConverter(conv)
- XlcConv conv;
+_XlcCloseConverter(
+ XlcConv conv)
{
close_converter(conv);
}
int
-_XlcConvert(conv, from, from_left, to, to_left, args, num_args)
- XlcConv conv;
- XPointer *from;
- int *from_left;
- XPointer *to;
- int *to_left;
- XPointer *args;
- int num_args;
+_XlcConvert(
+ XlcConv conv,
+ XPointer *from,
+ int *from_left,
+ XPointer *to,
+ int *to_left,
+ XPointer *args,
+ int num_args)
{
return (*conv->methods->convert)(conv, from, from_left, to, to_left, args,
num_args);
}
void
-_XlcResetConverter(conv)
- XlcConv conv;
+_XlcResetConverter(
+ XlcConv conv)
{
if (conv->methods->reset)
(*conv->methods->reset)(conv);
diff --git a/src/xlibi18n/lcDB.c b/src/xlibi18n/lcDB.c
index a6d8648b..2ed5f13a 100644
--- a/src/xlibi18n/lcDB.c
+++ b/src/xlibi18n/lcDB.c
@@ -28,6 +28,10 @@
* This is source code modified by FUJITSU LIMITED under the Joint
* Development Agreement for the CDE/Motif PST.
*/
+/* $XFree86: xc/lib/X11/lcDB.c,v 3.15tsi Exp $ */
+
+
+
#ifndef NOT_X_ENV
#include <X11/Xlib.h>
@@ -92,21 +96,22 @@ typedef enum {
typedef struct {
Token token; /* token id */
- char *name; /* token sequence */
+ const char *name; /* token sequence */
int len; /* length of token sequence */
- int (*parse_proc)(); /* parsing procedure */
+ int (*parse_proc)(const char *str, Token token, Database *db);
+ /* parsing procedure */
} TokenTable;
-static int f_newline();
-static int f_comment();
-static int f_semicolon();
-static int f_double_quote();
-static int f_left_brace();
-static int f_right_brace();
-static int f_white();
-static int f_backslash();
-static int f_numeric();
-static int f_default();
+static int f_newline (const char *str, Token token, Database *db);
+static int f_comment (const char *str, Token token, Database *db);
+static int f_semicolon (const char *str, Token token, Database *db);
+static int f_double_quote (const char *str, Token token, Database *db);
+static int f_left_brace (const char *str, Token token, Database *db);
+static int f_right_brace (const char *str, Token token, Database *db);
+static int f_white (const char *str, Token token, Database *db);
+static int f_backslash (const char *str, Token token, Database *db);
+static int f_numeric (const char *str, Token token, Database *db);
+static int f_default (const char *str, Token token, Database *db);
static TokenTable token_tbl[] = {
{ T_NEWLINE, "\n", 1, f_newline },
@@ -121,10 +126,10 @@ static TokenTable token_tbl[] = {
{ T_NUMERIC_HEX, "\\x", 2, f_numeric },
{ T_NUMERIC_DEC, "\\d", 2, f_numeric },
{ T_NUMERIC_OCT, "\\o", 2, f_numeric },
- { T_DEFAULT, " ", 1, f_default }, /* any character */
- 0
+ { T_DEFAULT, " ", 1, f_default } /* any character */
};
+#define SYM_CR '\r'
#define SYM_NEWLINE '\n'
#define SYM_COMMENT '#'
#define SYM_SEMICOLON ';'
@@ -154,17 +159,18 @@ typedef struct {
static DBParseInfo parse_info;
-static void init_parse_info()
+static void
+init_parse_info (void)
{
- static int first = 1;
+ static int allocated /* = 0 */;
char *ptr;
- int size;
- if(first == 1){
+ int size;
+ if (!allocated) {
bzero(&parse_info, sizeof(DBParseInfo));
parse_info.buf = (char *)Xmalloc(BUFSIZE);
parse_info.bufMaxSize = BUFSIZE;
- first = 0;
- return ;
+ allocated = 1;
+ return;
}
ptr = parse_info.buf;
size = parse_info.bufMaxSize;
@@ -174,22 +180,22 @@ static void init_parse_info()
}
static void
-clear_parse_info()
+clear_parse_info (void)
{
int i;
char *ptr;
int size;
parse_info.pre_state = S_NULL;
- if(parse_info.category != NULL){
+ if (parse_info.category != NULL) {
Xfree(parse_info.category);
}
- for(i = 0; i <= parse_info.nest_depth; ++i){
- if(parse_info.name[i]){
+ for (i = 0; i <= parse_info.nest_depth; ++i) {
+ if (parse_info.name[i]) {
Xfree(parse_info.name[i]);
}
}
- if(parse_info.value){
- if(*parse_info.value){
+ if (parse_info.value) {
+ if (*parse_info.value) {
Xfree(*parse_info.value);
}
Xfree((char *)parse_info.value);
@@ -202,23 +208,22 @@ clear_parse_info()
}
static Bool
-realloc_parse_info(len)
-int len;
+realloc_parse_info(
+ int len)
{
char *p;
-
- parse_info.bufMaxSize = BUFSIZE *
- ((parse_info.bufsize + len)/BUFSIZE + 1);
+ parse_info.bufMaxSize = BUFSIZE * ((parse_info.bufsize + len)/BUFSIZE + 1);
p = (char *)Xrealloc(parse_info.buf, parse_info.bufMaxSize);
- if(p == NULL){
- return(False);
- }
+ if (p == NULL)
+ return False;
parse_info.buf = p;
- return(True);
+ return True;
}
+
/************************************************************************/
+
typedef struct _Line {
char *str;
int cursize;
@@ -227,28 +232,28 @@ typedef struct _Line {
} Line;
static void
-free_line(line)
- Line *line;
+free_line(
+ Line *line)
{
- if(line->str != NULL){
+ if (line->str != NULL) {
Xfree(line->str);
}
bzero(line, sizeof(Line));
}
static int
-realloc_line(line, size)
- Line *line;
- int size;
+realloc_line(
+ Line *line,
+ int size)
{
char *str = line->str;
- if(str != NULL){
+ if (str != NULL) {
str = (char *)Xrealloc(str, size);
- }else{
+ } else {
str = (char *)Xmalloc(size);
}
- if(str == NULL){
+ if (str == NULL) {
/* malloc error */
if (line->str != NULL) {
Xfree(line->str);
@@ -264,34 +269,34 @@ realloc_line(line, size)
#define iswhite(ch) ((ch) == SYM_SPACE || (ch) == SYM_TAB)
static void
-zap_comment(str, quoted)
- char *str;
- int *quoted;
+zap_comment(
+ char *str,
+ int *quoted)
{
char *p = str;
#ifdef never
*quoted = 0;
- if(*p == SYM_COMMENT){
+ if (*p == SYM_COMMENT) {
int len = strlen(str);
- if(p[len - 1] == SYM_NEWLINE){
+ if (p[len - 1] == SYM_NEWLINE || p[len - 1] == SYM_CR) {
*p++ = SYM_NEWLINE;
}
*p = '\0';
}
#else
- while(*p){
- if(*p == SYM_DOUBLE_QUOTE){
- if(p == str || p[-1] != SYM_BACKSLASH){
+ while (*p) {
+ if (*p == SYM_DOUBLE_QUOTE) {
+ if (p == str || p[-1] != SYM_BACKSLASH) {
/* unescaped double quote changes quoted state. */
*quoted = *quoted ? 0 : 1;
}
}
- if(*p == SYM_COMMENT && !*quoted){
+ if (*p == SYM_COMMENT && !*quoted) {
int pos = p - str;
- if(pos == 0 ||
- iswhite(p[-1]) && (pos == 1 || p[-2] != SYM_BACKSLASH)){
+ if (pos == 0 ||
+ (iswhite(p[-1]) && (pos == 1 || p[-2] != SYM_BACKSLASH))) {
int len = strlen(p);
- if(len > 0 && p[len - 1] == SYM_NEWLINE){
+ if (len > 0 && (p[len - 1] == SYM_NEWLINE || p[len-1] == SYM_CR)) {
/* newline is the identifier for finding end of value.
therefore, it should not be removed. */
*p++ = SYM_NEWLINE;
@@ -306,9 +311,9 @@ zap_comment(str, quoted)
}
static int
-read_line(fd, line)
- FILE *fd;
- Line *line;
+read_line(
+ FILE *fd,
+ Line *line)
{
char buf[BUFSIZE], *p;
int len;
@@ -319,19 +324,19 @@ read_line(fd, line)
str = line->str;
cur = line->cursize = 0;
- while((p = fgets(buf, BUFSIZE, fd)) != NULL){
+ while ((p = fgets(buf, BUFSIZE, fd)) != NULL) {
++line->seq;
zap_comment(p, &quoted); /* remove comment line */
len = strlen(p);
- if(len == 0){
- if(cur > 0){
+ if (len == 0) {
+ if (cur > 0) {
break;
}
continue;
}
- if(cur + len + 1 > line->maxsize){
+ if (cur + len + 1 > line->maxsize) {
/* need to reallocate buffer. */
- if(! realloc_line(line, line->maxsize + BUFSIZE)){
+ if (! realloc_line(line, line->maxsize + BUFSIZE)) {
return -1; /* realloc error. */
}
str = line->str;
@@ -340,19 +345,28 @@ read_line(fd, line)
cur += len;
str[cur] = '\0';
- if(!quoted){
- if(cur > 1 && str[cur - 2] == SYM_BACKSLASH &&
- str[cur - 1] == SYM_NEWLINE){
- /* the line is ended backslash followed by newline.
- need to concatinate the next line. */
- cur -= 2;
- str[cur] = '\0';
- }else{
- break;
- }
+#ifdef __UNIXOS2__ /* Take out carriage returns under OS/2 */
+ if (cur>1) {
+ if (str[cur-2] == '\r' && str[cur-1] == '\n') {
+ str[cur-2] = '\n';
+ str[cur-1] = '\0';
+ cur--;
+ }
+ }
+#endif
+ if (!quoted && cur > 1 && str[cur - 2] == SYM_BACKSLASH &&
+ (str[cur - 1] == SYM_NEWLINE || str[cur-1] == SYM_CR)) {
+ /* the line is ended backslash followed by newline.
+ need to concatinate the next line. */
+ cur -= 2;
+ str[cur] = '\0';
+ } else if (len < BUFSIZE - 1 || buf[len - 1] == SYM_NEWLINE ||
+ buf[len - 1] == SYM_CR) {
+ /* the line is shorter than BUFSIZE. */
+ break;
}
}
- if(quoted){
+ if (quoted) {
/* error. still in quoted state. */
return -1;
}
@@ -362,20 +376,21 @@ read_line(fd, line)
/************************************************************************/
static Token
-get_token(str)
- char *str;
+get_token(
+ const char *str)
{
- switch(*str){
- case SYM_NEWLINE: return T_NEWLINE;
- case SYM_COMMENT: return T_COMMENT;
- case SYM_SEMICOLON: return T_SEMICOLON;
+ switch (*str) {
+ case SYM_NEWLINE:
+ case SYM_CR: return T_NEWLINE;
+ case SYM_COMMENT: return T_COMMENT;
+ case SYM_SEMICOLON: return T_SEMICOLON;
case SYM_DOUBLE_QUOTE: return T_DOUBLE_QUOTE;
case SYM_LEFT_BRACE: return T_LEFT_BRACE;
case SYM_RIGHT_BRACE: return T_RIGHT_BRACE;
- case SYM_SPACE: return T_SPACE;
- case SYM_TAB: return T_TAB;
+ case SYM_SPACE: return T_SPACE;
+ case SYM_TAB: return T_TAB;
case SYM_BACKSLASH:
- switch(str[1]){
+ switch (str[1]) {
case 'x': return T_NUMERIC_HEX;
case 'd': return T_NUMERIC_DEC;
case 'o': return T_NUMERIC_OCT;
@@ -387,26 +402,25 @@ get_token(str)
}
static int
-get_word(str, word)
- char *str;
- char *word;
+get_word(
+ const char *str,
+ char *word)
{
- char *p = str, *w = word;
+ const char *p = str;
+ char *w = word;
Token token;
int token_len;
- while(*p != '\0'){
+ while (*p != '\0') {
token = get_token(p);
token_len = token_tbl[token].len;
- if(token == T_BACKSLASH){
+ if (token == T_BACKSLASH) {
p += token_len;
- if(*p == '\0'){
+ if (*p == '\0')
break;
- }
token = get_token(p);
token_len = token_tbl[token].len;
- }else if(token != T_COMMENT &&
- token != T_DEFAULT){
+ } else if (token != T_COMMENT && token != T_DEFAULT) {
break;
}
strncpy(w, p, token_len);
@@ -417,27 +431,28 @@ get_word(str, word)
}
static int
-get_quoted_word(str, word)
- char *str;
- char *word;
+get_quoted_word(
+ const char *str,
+ char *word)
{
- char *p = str, *w = word;
+ const char *p = str;
+ char *w = word;
Token token;
int token_len;
- if(*p == SYM_DOUBLE_QUOTE){
+ if (*p == SYM_DOUBLE_QUOTE) {
++p;
}
- while(*p != '\0'){
+ while (*p != '\0') {
token = get_token(p);
token_len = token_tbl[token].len;
- if(token == T_DOUBLE_QUOTE){
+ if (token == T_DOUBLE_QUOTE) {
p += token_len;
goto found;
}
- if(token == T_BACKSLASH){
+ if (token == T_BACKSLASH) {
p += token_len;
- if(*p == '\0'){
+ if (*p == '\0') {
break;
}
token = get_token(p);
@@ -457,7 +472,7 @@ get_quoted_word(str, word)
/************************************************************************/
static int
-append_value_list()
+append_value_list (void)
{
char **value_list = parse_info.value;
char *value;
@@ -467,45 +482,44 @@ append_value_list()
int len = parse_info.bufsize;
char *p;
- if(len < 1){
+ if (len < 1) {
return 1; /* return with no error */
}
- if(value_list == (char **)NULL){
+ if (value_list == (char **)NULL) {
value_list = (char **)Xmalloc(sizeof(char *) * 2);
*value_list = NULL;
- }else{
+ } else {
char **prev_list = value_list;
value_list = (char **)
Xrealloc(value_list, sizeof(char *) * (value_num + 2));
- if (value_list == NULL){
+ if (value_list == NULL) {
Xfree(prev_list);
}
}
- if(value_list == (char **)NULL){
- goto err;
- }
+ if (value_list == (char **)NULL)
+ goto err2;
value = *value_list;
- if(value == NULL){
+ if (value == NULL) {
value = (char *)Xmalloc(value_len + len + 1);
- }else{
+ } else {
char *prev_value = value;
value = (char *)Xrealloc(value, value_len + len + 1);
- if (value == NULL){
+ if (value == NULL) {
Xfree(prev_value);
}
}
- if(value == NULL){
- goto err;
+ if (value == NULL) {
+ goto err1;
}
- if(value != *value_list){
+ if (value != *value_list) {
int delta, i;
delta = value - *value_list;
*value_list = value;
- for(i = 1; i < value_num; ++i){
+ for (i = 1; i < value_num; ++i) {
value_list[i] += delta;
}
}
@@ -521,13 +535,14 @@ append_value_list()
parse_info.bufsize = 0;
return 1;
- err:
- if(value_list){
+ err1:
+ if (value_list) {
Xfree((char **)value_list);
}
- if(value){
+ if (value) {
Xfree(value);
}
+ err2:
parse_info.value = (char **)NULL;
parse_info.value_num = 0;
parse_info.value_len = 0;
@@ -536,14 +551,15 @@ append_value_list()
}
static int
-construct_name(name, size)
- char *name;
- int size;
+construct_name(
+ char *name,
+ int size)
{
- register int i, len = 0;
+ int i;
+ int len = 0;
char *p = name;
- for(i = 0; i <= parse_info.nest_depth; ++i){
+ for (i = 0; i <= parse_info.nest_depth; ++i) {
len += strlen(parse_info.name[i]) + 1;
}
if (len >= size)
@@ -551,7 +567,7 @@ construct_name(name, size)
strcpy(p, parse_info.name[0]);
p += strlen(parse_info.name[0]);
- for(i = 1; i <= parse_info.nest_depth; ++i){
+ for (i = 1; i <= parse_info.nest_depth; ++i) {
*p++ = '.';
strcpy(p, parse_info.name[i]);
p += strlen(parse_info.name[i]);
@@ -560,39 +576,39 @@ construct_name(name, size)
}
static int
-store_to_database(db)
- Database *db;
+store_to_database(
+ Database *db)
{
Database new = (Database)NULL;
char name[BUFSIZE];
- if(parse_info.pre_state == S_VALUE){
- if(! append_value_list()){
+ if (parse_info.pre_state == S_VALUE) {
+ if (! append_value_list()) {
goto err;
}
}
- if(parse_info.name[parse_info.nest_depth] == NULL){
+ if (parse_info.name[parse_info.nest_depth] == NULL) {
goto err;
}
new = (Database)Xmalloc(sizeof(DatabaseRec));
- if(new == (Database)NULL){
+ if (new == (Database)NULL) {
goto err;
}
bzero(new, sizeof(DatabaseRec));
new->category = (char *)Xmalloc(strlen(parse_info.category) + 1);
- if(new->category == NULL){
+ if (new->category == NULL) {
goto err;
}
strcpy(new->category, parse_info.category);
- if(! construct_name(name, sizeof(name))){
+ if (! construct_name(name, sizeof(name))) {
goto err;
}
new->name = (char *)Xmalloc(strlen(name) + 1);
- if(new->name == NULL){
+ if (new->name == NULL) {
goto err;
}
strcpy(new->name, name);
@@ -611,16 +627,16 @@ store_to_database(db)
return 1;
err:
- if(new){
- if(new->category){
+ if (new) {
+ if (new->category) {
Xfree(new->category);
}
- if(new->name){
+ if (new->name) {
Xfree(new->name);
}
}
- if(parse_info.value){
- if(*parse_info.value){
+ if (parse_info.value) {
+ if (*parse_info.value) {
Xfree(*parse_info.value);
}
Xfree((char **)parse_info.value);
@@ -635,23 +651,23 @@ store_to_database(db)
#define END_MARK_LEN 3 /*strlen(END_MARK)*/
static int
-check_category_end(str)
- char *str;
+check_category_end(
+ const char *str)
{
- char *p;
+ const char *p;
int len;
p = str;
- if(strncmp(p, END_MARK, END_MARK_LEN)){
+ if (strncmp(p, END_MARK, END_MARK_LEN)) {
return 0;
}
p += END_MARK_LEN;
- while(iswhite(*p)){
+ while (iswhite(*p)) {
++p;
}
len = strlen(parse_info.category);
- if(strncmp(p, parse_info.category, len)){
+ if (strncmp(p, parse_info.category, len)) {
return 0;
}
p += len;
@@ -661,19 +677,19 @@ check_category_end(str)
/************************************************************************/
static int
-f_newline(str, token, db)
- char *str;
- Token token;
- Database *db;
+f_newline(
+ const char *str,
+ Token token,
+ Database *db)
{
- switch(parse_info.pre_state){
+ switch (parse_info.pre_state) {
case S_NULL:
case S_CATEGORY:
break;
case S_NAME:
return 0; /* no value */
case S_VALUE:
- if(!store_to_database(db))
+ if (!store_to_database(db))
return 0;
parse_info.pre_state = S_CATEGORY;
break;
@@ -684,49 +700,49 @@ f_newline(str, token, db)
}
static int
-f_comment(str, token, db)
- char *str;
- Token token;
- Database *db;
+f_comment(
+ const char *str,
+ Token token,
+ Database *db)
{
/* NOTE: comment is already handled in read_line(),
so this function is not necessary. */
- char *p = str;
+ const char *p = str;
- while(*p != SYM_NEWLINE && *p != '\0'){
+ while (*p != SYM_NEWLINE && *p != SYM_CR && *p != '\0') {
++p; /* zap to the end of line */
}
return p - str;
}
static int
-f_white(str, token, db)
- char *str;
- Token token;
- Database *db;
+f_white(
+ const char *str,
+ Token token,
+ Database *db)
{
- char *p = str;
+ const char *p = str;
- while(iswhite(*p)){
+ while (iswhite(*p)) {
++p;
}
return p - str;
}
static int
-f_semicolon(str, token, db)
- char *str;
- Token token;
- Database *db;
+f_semicolon(
+ const char *str,
+ Token token,
+ Database *db)
{
- switch(parse_info.pre_state){
+ switch (parse_info.pre_state) {
case S_NULL:
case S_CATEGORY:
case S_NAME:
return 0;
case S_VALUE:
- if(! append_value_list())
+ if (! append_value_list())
return 0;
parse_info.pre_state = S_VALUE;
break;
@@ -737,19 +753,19 @@ f_semicolon(str, token, db)
}
static int
-f_left_brace(str, token, db)
- char *str;
- Token token;
- Database *db;
+f_left_brace(
+ const char *str,
+ Token token,
+ Database *db)
{
- switch(parse_info.pre_state){
+ switch (parse_info.pre_state) {
case S_NULL:
case S_CATEGORY:
case S_VALUE:
return 0;
case S_NAME:
- if(parse_info.name[parse_info.nest_depth] == NULL ||
- parse_info.nest_depth + 1 > MAX_NAME_NEST)
+ if (parse_info.name[parse_info.nest_depth] == NULL
+ || parse_info.nest_depth + 1 > MAX_NAME_NEST)
return 0;
++parse_info.nest_depth;
parse_info.pre_state = S_CATEGORY;
@@ -761,24 +777,24 @@ f_left_brace(str, token, db)
}
static int
-f_right_brace(str, token, db)
- char *str;
- Token token;
- Database *db;
+f_right_brace(
+ const char *str,
+ Token token,
+ Database *db)
{
- if(parse_info.nest_depth < 1)
+ if (parse_info.nest_depth < 1)
return 0;
- switch(parse_info.pre_state){
+ switch (parse_info.pre_state) {
case S_NULL:
case S_NAME:
return 0;
case S_VALUE:
- if(! store_to_database(db))
+ if (! store_to_database(db))
return 0;
/* fall into next case */
case S_CATEGORY:
- if(parse_info.name[parse_info.nest_depth] != NULL){
+ if (parse_info.name[parse_info.nest_depth] != NULL) {
Xfree(parse_info.name[parse_info.nest_depth]);
parse_info.name[parse_info.nest_depth] = NULL;
}
@@ -792,10 +808,10 @@ f_right_brace(str, token, db)
}
static int
-f_double_quote(str, token, db)
- char *str;
- Token token;
- Database *db;
+f_double_quote(
+ const char *str,
+ Token token,
+ Database *db)
{
char word[BUFSIZE];
char* wordp;
@@ -809,18 +825,18 @@ f_double_quote(str, token, db)
return 0;
len = 0;
- switch(parse_info.pre_state){
+ switch (parse_info.pre_state) {
case S_NULL:
case S_CATEGORY:
goto err;
case S_NAME:
case S_VALUE:
len = get_quoted_word(str, wordp);
- if(len < 1)
+ if (len < 1)
goto err;
- if( (parse_info.bufsize + (int)strlen(wordp) +1)
- >= parse_info.bufMaxSize){
- if(realloc_parse_info(strlen(wordp) +1) == False){
+ if ((parse_info.bufsize + (int)strlen(wordp) + 1)
+ >= parse_info.bufMaxSize) {
+ if (realloc_parse_info(strlen(wordp)+1) == False) {
goto err;
}
}
@@ -831,30 +847,33 @@ f_double_quote(str, token, db)
default:
goto err;
}
- if (wordp != word) Xfree (wordp);
+ if (wordp != word)
+ Xfree (wordp);
return len; /* including length of token */
err:
- if (wordp != word) Xfree (wordp);
+ if (wordp != word)
+ Xfree (wordp);
return 0;
}
static int
-f_backslash(str, token, db)
- char *str;
- Token token;
- Database *db;
+f_backslash(
+ const char *str,
+ Token token,
+ Database *db)
{
return f_default(str, token, db);
}
static int
-f_numeric(str, token, db)
- char *str;
- Token token;
- Database *db;
+f_numeric(
+ const char *str,
+ Token token,
+ Database *db)
{
- char word[BUFSIZE], *p;
+ char word[BUFSIZE];
+ const char *p;
char* wordp;
int len;
int token_len;
@@ -866,7 +885,7 @@ f_numeric(str, token, db)
if (wordp == NULL)
return 0;
- switch(parse_info.pre_state){
+ switch (parse_info.pre_state) {
case S_NULL:
case S_CATEGORY:
goto err;
@@ -875,11 +894,11 @@ f_numeric(str, token, db)
token_len = token_tbl[token].len;
p = str + token_len;
len = get_word(p, wordp);
- if(len < 1)
+ if (len < 1)
goto err;
- if( (parse_info.bufsize + token_len + (int)strlen(wordp) +1)
- >= parse_info.bufMaxSize){
- if(realloc_parse_info(token_len + strlen(wordp) +1) == False)
+ if ((parse_info.bufsize + token_len + (int)strlen(wordp) + 1)
+ >= parse_info.bufMaxSize) {
+ if (realloc_parse_info(token_len + strlen(wordp) + 1) == False)
goto err;
}
strncpy(&parse_info.buf[parse_info.bufsize], str, token_len);
@@ -890,19 +909,21 @@ f_numeric(str, token, db)
default:
goto err;
}
- if (wordp != word) Xfree (wordp);
+ if (wordp != word)
+ Xfree (wordp);
return len + token_len;
err:
- if (wordp != word) Xfree (wordp);
+ if (wordp != word)
+ Xfree (wordp);
return 0;
}
static int
-f_default(str, token, db)
- char *str;
- Token token;
- Database *db;
+f_default(
+ const char *str,
+ Token token,
+ Database *db)
{
char word[BUFSIZE], *p;
char* wordp;
@@ -916,23 +937,23 @@ f_default(str, token, db)
return 0;
len = get_word(str, wordp);
- if(len < 1)
+ if (len < 1)
goto err;
- switch(parse_info.pre_state){
+ switch (parse_info.pre_state) {
case S_NULL:
- if(parse_info.category != NULL)
+ if (parse_info.category != NULL)
goto err;
p = (char *)Xmalloc(strlen(wordp) + 1);
- if(p == NULL)
+ if (p == NULL)
goto err;
strcpy(p, wordp);
parse_info.category = p;
parse_info.pre_state = S_CATEGORY;
break;
case S_CATEGORY:
- if(parse_info.nest_depth == 0){
- if(check_category_end(str)){
+ if (parse_info.nest_depth == 0) {
+ if (check_category_end(str)) {
/* end of category is detected.
clear context and zap to end of this line */
clear_parse_info();
@@ -941,10 +962,10 @@ f_default(str, token, db)
}
}
p = (char *)Xmalloc(strlen(wordp) + 1);
- if(p == NULL)
+ if (p == NULL)
goto err;
strcpy(p, wordp);
- if(parse_info.name[parse_info.nest_depth] != NULL){
+ if (parse_info.name[parse_info.nest_depth] != NULL) {
Xfree(parse_info.name[parse_info.nest_depth]);
}
parse_info.name[parse_info.nest_depth] = p;
@@ -952,9 +973,9 @@ f_default(str, token, db)
break;
case S_NAME:
case S_VALUE:
- if( (parse_info.bufsize + (int)strlen(wordp) +1 )
- >= parse_info.bufMaxSize){
- if(realloc_parse_info(strlen(wordp) +1) == False)
+ if ((parse_info.bufsize + (int)strlen(wordp) + 1)
+ >= parse_info.bufMaxSize) {
+ if (realloc_parse_info(strlen(wordp) + 1) == False)
goto err;
}
strcpy(&parse_info.buf[parse_info.bufsize], wordp);
@@ -964,30 +985,32 @@ f_default(str, token, db)
default:
goto err;
}
- if (wordp != word) Xfree (wordp);
+ if (wordp != word)
+ Xfree (wordp);
return len;
err:
- if (wordp != word) Xfree (wordp);
+ if (wordp != word)
+ Xfree (wordp);
return 0;
}
/************************************************************************/
-#ifdef DEBUG
+#ifdef DEBUG
static void
-PrintDatabase(db)
- Database db;
+PrintDatabase(
+ Database db)
{
Database p = db;
int i = 0, j;
printf("***\n*** BEGIN Database\n***\n");
- while(p){
+ while (p) {
printf("%3d: ", i++);
printf("%s, %s, ", p->category, p->name);
printf("\t[%d: ", p->value_num);
- for(j = 0; j < p->value_num; ++j){
+ for (j = 0; j < p->value_num; ++j) {
printf("%s, ", p->value[j]);
}
printf("]\n");
@@ -998,20 +1021,20 @@ PrintDatabase(db)
#endif
static void
-DestroyDatabase(db)
- Database db;
+DestroyDatabase(
+ Database db)
{
Database p = db;
- while(p){
- if(p->category != NULL){
+ while (p) {
+ if (p->category != NULL) {
Xfree(p->category);
}
- if(p->name != NULL){
+ if (p->name != NULL) {
Xfree(p->name);
}
- if(p->value != (char **)NULL){
- if(*p->value != NULL){
+ if (p->value != (char **)NULL) {
+ if (*p->value != NULL) {
Xfree(*p->value);
}
Xfree((char *)p->value);
@@ -1023,13 +1046,13 @@ DestroyDatabase(db)
}
static int
-CountDatabase(db)
- Database db;
+CountDatabase(
+ Database db)
{
Database p = db;
int cnt = 0;
- while(p){
+ while (p) {
++cnt;
p = p->next;
}
@@ -1037,8 +1060,8 @@ CountDatabase(db)
}
static Database
-CreateDatabase(dbfile)
- char *dbfile;
+CreateDatabase(
+ char *dbfile)
{
Database db = (Database)NULL;
FILE *fd;
@@ -1049,26 +1072,25 @@ CreateDatabase(dbfile)
int error = 0;
fd = _XFopenFile(dbfile, "r");
- if(fd == (FILE *)NULL){
+ if (fd == (FILE *)NULL)
return NULL;
- }
bzero(&line, sizeof(Line));
init_parse_info();
do {
int rc = read_line(fd, &line);
- if(rc < 0){
+ if (rc < 0) {
error = 1;
break;
- }else if(rc == 0){
+ } else if (rc == 0) {
break;
}
p = line.str;
- while(*p){
+ while (*p) {
token = get_token(p);
len = (*token_tbl[token].parse_proc)(p, token, &db);
- if(len < 1){
+ if (len < 1) {
error = 1;
break;
}
@@ -1076,11 +1098,11 @@ CreateDatabase(dbfile)
}
} while (!error);
- if(parse_info.pre_state != S_NULL){
+ if (parse_info.pre_state != S_NULL) {
clear_parse_info();
error = 1;
}
- if(error){
+ if (error) {
#ifdef DEBUG
fprintf(stderr, "database format error at line %d.\n", line.seq);
#endif
@@ -1128,12 +1150,12 @@ static XlcDatabaseList _db_list = (XlcDatabaseList)NULL;
/* This function retrieves XLocale database information. */
/************************************************************************/
void
-_XlcGetResource(lcd, category, class, value, count)
- XLCd lcd;
- char *category;
- char *class;
- char ***value;
- int *count;
+_XlcGetResource(
+ XLCd lcd,
+ const char *category,
+ const char *class,
+ char ***value,
+ int *count)
{
XLCdPublicMethodsPart *methods = XLC_PUBLIC_METHODS(lcd);
@@ -1147,20 +1169,20 @@ _XlcGetResource(lcd, category, class, value, count)
/* This function retrieves XLocale database information. */
/************************************************************************/
void
-_XlcGetLocaleDataBase(lcd, category, name, value, count)
- XLCd lcd;
- char *category;
- char *name;
- char ***value;
- int *count;
+_XlcGetLocaleDataBase(
+ XLCd lcd,
+ const char *category,
+ const char *name,
+ char ***value,
+ int *count)
{
XlcDatabase lc_db = (XlcDatabase)XLC_PUBLIC(lcd, xlocale_db);
XrmQuark category_q, name_q;
category_q = XrmStringToQuark(category);
name_q = XrmStringToQuark(name);
- for(; lc_db->db; ++lc_db){
- if(category_q == lc_db->category_q && name_q == lc_db->name_q){
+ for (; lc_db->db; ++lc_db) {
+ if (category_q == lc_db->category_q && name_q == lc_db->name_q) {
*value = lc_db->db->value;
*count = lc_db->db->value_num;
return;
@@ -1180,23 +1202,23 @@ _XlcGetLocaleDataBase(lcd, category, name, value, count)
/* remove it from the cache list and free work area. */
/************************************************************************/
void
-_XlcDestroyLocaleDataBase(lcd)
- XLCd lcd;
+_XlcDestroyLocaleDataBase(
+ XLCd lcd)
{
XlcDatabase lc_db = (XlcDatabase)XLC_PUBLIC(lcd, xlocale_db);
XlcDatabaseList p, prev;
- for(p = _db_list, prev = (XlcDatabaseList)NULL; p;
- prev = p, p = p->next){
- if(p->lc_db == lc_db){
- if((-- p->ref_count) < 1){
- if(p->lc_db != (XlcDatabase)NULL){
+ for (p = _db_list, prev = (XlcDatabaseList)NULL; p;
+ prev = p, p = p->next) {
+ if (p->lc_db == lc_db) {
+ if ((-- p->ref_count) < 1) {
+ if (p->lc_db != (XlcDatabase)NULL) {
Xfree((char *)p->lc_db);
}
DestroyDatabase(p->database);
- if(prev == (XlcDatabaseList)NULL){
+ if (prev == (XlcDatabaseList)NULL) {
_db_list = p->next;
- }else{
+ } else {
prev->next = p->next;
}
Xfree((char*)p);
@@ -1214,8 +1236,8 @@ _XlcDestroyLocaleDataBase(lcd)
/* the specified XLCd. */
/************************************************************************/
XPointer
-_XlcCreateLocaleDataBase(lcd)
- XLCd lcd;
+_XlcCreateLocaleDataBase(
+ XLCd lcd)
{
XlcDatabaseList list, new;
Database p, database = (Database)NULL;
@@ -1225,13 +1247,16 @@ _XlcCreateLocaleDataBase(lcd)
int i, n;
name = _XlcFileName(lcd, "locale");
- if(name == NULL){
+ if (name == NULL)
return (XPointer)NULL;
- }
+#ifndef __UNIXOS2__
name_q = XrmStringToQuark(name);
- for(list = _db_list; list; list = list->next){
- if(name_q == list->name_q){
+#else
+ name_q = XrmStringToQuark((char*)__XOS2RedirRoot(name));
+#endif
+ for (list = _db_list; list; list = list->next) {
+ if (name_q == list->name_q) {
list->ref_count++;
Xfree (name);
return XLC_PUBLIC(lcd, xlocale_db) = (XPointer)list->lc_db;
@@ -1239,24 +1264,23 @@ _XlcCreateLocaleDataBase(lcd)
}
database = CreateDatabase(name);
- if(database == (Database)NULL){
+ if (database == (Database)NULL) {
Xfree (name);
return (XPointer)NULL;
}
n = CountDatabase(database);
lc_db = (XlcDatabase)Xmalloc(sizeof(XlcDatabaseRec) * (n + 1));
- if(lc_db == (XlcDatabase)NULL){
+ if (lc_db == (XlcDatabase)NULL)
goto err;
- }
bzero(lc_db, sizeof(XlcDatabaseRec) * (n + 1));
- for(p = database, i = 0; p && i < n; p = p->next, ++i){
+ for (p = database, i = 0; p && i < n; p = p->next, ++i) {
lc_db[i].category_q = XrmStringToQuark(p->category);
lc_db[i].name_q = XrmStringToQuark(p->name);
lc_db[i].db = p;
}
new = (XlcDatabaseList)Xmalloc(sizeof(XlcDatabaseListRec));
- if(new == (XlcDatabaseList)NULL){
+ if (new == (XlcDatabaseList)NULL) {
goto err;
}
new->name_q = name_q;
@@ -1271,7 +1295,7 @@ _XlcCreateLocaleDataBase(lcd)
err:
DestroyDatabase(database);
- if(lc_db != (XlcDatabase)NULL){
+ if (lc_db != (XlcDatabase)NULL) {
Xfree((char *)lc_db);
}
Xfree (name);
diff --git a/src/xlibi18n/lcDynamic.c b/src/xlibi18n/lcDynamic.c
index 64484382..e443a056 100644
--- a/src/xlibi18n/lcDynamic.c
+++ b/src/xlibi18n/lcDynamic.c
@@ -32,10 +32,22 @@ from The Open Group.
* Modifier: Takanori Tateno FUJITSU LIMITED
*
*/
+/* $XFree86: xc/lib/X11/lcDynamic.c,v 1.4 2001/01/17 19:41:53 dawes Exp $ */
+
+/*
+ * A dynamically loaded locale.
+ * Supports: All locale names.
+ * How: Loads $(XLOCALEDIR)/xi18n.so and forwards the request to that library.
+ * Platforms: Only those defining USE_DYNAMIC_LOADER (none known).
+ */
+
#ifdef USE_DYNAMIC_LOADER
#include <stdio.h>
#include <string.h>
+#include <dlfcn.h>
+
#include "Xlibint.h"
+#include "Xlcint.h"
#ifndef XLOCALEDIR
#define XLOCALEDIR "/usr/lib/X11/locale"
@@ -43,18 +55,9 @@ from The Open Group.
#define LCLIBNAME "xi18n.so"
-extern void *dlopen();
-extern void *dlsym();
-extern int dlclose();
-extern char *dlerror();
-
-#define LAZY 1
-#define NOW 2
-#define GLOBAL 0x100
-
XLCd
-_XlcDynamicLoader(name)
- char *name;
+_XlcDynamicLoader(
+ const char *name)
{
char libpath[1024];
XLCdMethods _XlcGenericMethods;
@@ -64,11 +67,11 @@ _XlcDynamicLoader(name)
sprintf(libpath,"%s/%s/%s",
XLOCALEDIR,name,LCLIBNAME);
nlshandler = dlopen(libpath,LAZY);
- _XlcGenericMethods = (XLCdMethods)dlsym(nlshandler,
- "genericMethods");
+ _XlcGenericMethods = (XLCdMethods)dlsym(nlshandler,"genericMethods");
lcd = _XlcCreateLC(name,_XlcGenericMethods);
-
return lcd;
}
+#else
+typedef int dummy;
#endif /* USE_DYNAMIC_LOADER */
diff --git a/src/xlibi18n/lcFile.c b/src/xlibi18n/lcFile.c
index 164674fc..66df63f5 100644
--- a/src/xlibi18n/lcFile.c
+++ b/src/xlibi18n/lcFile.c
@@ -23,24 +23,38 @@
* SOFTWARE.
*
*/
+/* $XFree86: xc/lib/X11/lcFile.c,v 3.32 2003/03/25 04:18:09 dawes Exp $ */
+
+#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include "Xlibint.h"
#include "XlcPubI.h"
#include <X11/Xos.h>
-#ifdef X_NOT_STDC_ENV
-extern char *getenv();
+#if 0
+#include <unistd.h> /* in theory delivers getresuid/gid prototypes,
+ * in practice only the Linux syscall wrapper is there. */
#endif
+
/************************************************************************/
+#ifdef __UNIXOS2__
+# define seteuid setuid
+#endif
#define iscomment(ch) ((ch) == '#' || (ch) == '\0')
-#if defined(WIN32) || defined(__EMX__) /* || defined(OS2) */
+#if defined(WIN32)
#define isreadable(f) (_XAccessFile(f))
#else
#define isreadable(f) ((access((f), R_OK) != -1) ? 1 : 0)
#endif
+#ifndef __UNIXOS2__
+#define LC_PATHDELIM ':'
+#else
+#define LC_PATHDELIM ';'
+#endif
+
#define XLC_BUFSIZE 256
#ifndef X_NOT_POSIX
@@ -69,27 +83,32 @@ extern char *getenv();
#define NUM_LOCALEDIR 64
+/* Splits a NUL terminated line into constituents, at colons and newline
+ characters. Leading whitespace is removed from constituents. The
+ constituents are stored at argv[0..argsize-1]. The number of stored
+ constituents (<= argsize) is returned. The line is destructively
+ modified. */
static int
-parse_line(line, argv, argsize)
- char *line;
- char **argv;
- int argsize;
+parse_line(
+ char *line,
+ char **argv,
+ int argsize)
{
int argc = 0;
char *p = line;
- while(argc < argsize){
- while(isspace(*p)){
+ while (argc < argsize) {
+ while (isspace(*p)) {
++p;
}
- if(*p == '\0'){
+ if (*p == '\0') {
break;
}
argv[argc++] = p;
- while(*p != ':' && *p != '\n' && *p != '\0'){
+ while (*p != ':' && *p != '\n' && *p != '\0') {
++p;
}
- if(*p == '\0'){
+ if (*p == '\0') {
break;
}
*p++ = '\0';
@@ -98,31 +117,64 @@ parse_line(line, argv, argsize)
return argc;
}
-/* parse the colon separated list in path into argv */
-int
-_XlcParsePath(path, argv, argsize)
- char *path;
- char **argv;
- int argsize;
+#ifdef __UNIXOS2__
+
+/* fg021216: entries in locale files are separated by colons while under
+ OS/2, path entries are separated by semicolon, so we need two functions */
+
+static int
+parse_line1(
+ char *line,
+ char **argv,
+ int argsize)
{
- char *p = path;
- int i, n;
+ int argc = 0;
+ char *p = line;
-#if 0
- while((p = strchr(p, ':')) != NULL){
- *p = ' '; /* place space on delimter */
+ while (argc < argsize) {
+ while (isspace(*p)) {
+ ++p;
+ }
+ if (*p == '\0') {
+ break;
+ }
+ argv[argc++] = p;
+ while (*p != ';' && *p != '\n' && *p != '\0') {
+ ++p;
+ }
+ if (*p == '\0') {
+ break;
+ }
+ *p++ = '\0';
}
-#endif
+
+ return argc;
+}
+#endif /* __UNIXOS2__ */
+
+/* Splits a colon separated list of directories, and returns the constituent
+ paths (without trailing slash). At most argsize constituents are stored
+ at argv[0..argsize-1]. The number of stored constituents is returned. */
+static int
+_XlcParsePath(
+ char *path,
+ char **argv,
+ int argsize)
+{
+ char *p = path;
+ int n, i;
+
+#ifndef __UNIXOS2__
n = parse_line(path, argv, argsize);
- if(n == 0){
- return 0;
- }
- for(i = 0; i < n; ++i){
+#else
+ n = parse_line1(path, argv, argsize);
+#endif
+ for (i = 0; i < n; ++i) {
int len;
p = argv[i];
len = strlen(p);
- if(p[len - 1] == '/'){
- /* eliminate slash */
+ if (len > 0 && p[len - 1] == '/') {
+ /* eliminate trailing slash */
p[len - 1] = '\0';
}
}
@@ -134,99 +186,157 @@ _XlcParsePath(path, argv, argsize)
#endif
static void
-xlocaledir(buf, buf_len)
- char *buf;
- int buf_len;
+xlocaledir(
+ char *buf,
+ int buf_len)
{
- char *dir, *p = buf;
+ char *p = buf;
int len = 0;
+#ifndef NO_XLOCALEDIR
+ char *dir;
+ int priv = 1;
+
dir = getenv("XLOCALEDIR");
- if(dir != NULL){
- len = strlen(dir);
- strncpy(p, dir, buf_len);
- if (len < buf_len) {
- p[len++] = ':';
- p += len;
+
+ if (dir) {
+ /*
+ * Only use the user-supplied path if the process isn't priviledged.
+ */
+ if (getuid() == geteuid() && getgid() == getegid()) {
+#if defined(HASSETUGID)
+ priv = issetugid();
+#elif defined(HASGETRESUID)
+ {
+ uid_t ruid, euid, suid;
+ gid_t rgid, egid, sgid;
+ if ((getresuid(&ruid, &euid, &suid) == 0) &&
+ (getresgid(&rgid, &egid, &sgid) == 0))
+ priv = (euid != suid) || (egid != sgid);
+ }
+#else
+ /*
+ * If there are saved ID's the process might still be priviledged
+ * even though the above test succeeded. If issetugid() and
+ * getresgid() aren't available, test this by trying to set
+ * euid to 0.
+ *
+ * Note: this only protects setuid-root clients. It doesn't
+ * protect other setuid or any setgid clients. If this tradeoff
+ * isn't acceptable, set DisableXLocaleDirEnv to YES in host.def.
+ */
+ unsigned int oldeuid;
+ oldeuid = geteuid();
+ if (seteuid(0) != 0) {
+ priv = 0;
+ } else {
+ seteuid(oldeuid);
+ priv = 1;
+ }
+#endif
+ }
+ if (!priv) {
+ len = strlen(dir);
+ strncpy(p, dir, buf_len);
+ if (len < buf_len) {
+ p[len++] = LC_PATHDELIM;
+ p += len;
+ }
}
}
+#endif /* NO_XLOCALEDIR */
+
if (len < buf_len)
- strncpy(p, XLOCALEDIR, buf_len-len);
+#ifndef __UNIXOS2__
+ strncpy(p, XLOCALEDIR, buf_len - len);
+#else
+ strncpy(p,__XOS2RedirRoot(XLOCALEDIR), buf_len - len);
+#endif
buf[buf_len-1] = '\0';
}
-enum { LtoR, RtoL };
+/* Mapping direction */
+typedef enum {
+ LtoR, /* Map first field to second field */
+ RtoL /* Map second field to first field */
+} MapDirection;
static char *
-resolve_name(lc_name, file_name, direction)
- char *lc_name;
- char *file_name;
- int direction; /* mapping direction */
+resolve_name(
+ const char *lc_name,
+ char *file_name,
+ MapDirection direction)
{
FILE *fp;
char buf[XLC_BUFSIZE], *name = NULL;
fp = _XFopenFile (file_name, "r");
- if(fp == (FILE *)NULL){
+ if (fp == NULL)
return NULL;
- }
- while(fgets(buf, XLC_BUFSIZE, fp) != NULL){
+ while (fgets(buf, XLC_BUFSIZE, fp) != NULL) {
char *p = buf;
int n;
char *args[2], *from, *to;
- while(isspace(*p)){
+#ifdef __UNIXOS2__ /* Take out CR under OS/2 */
+ int len;
+
+ len = strlen(p);
+ if (len > 1) {
+ if (*(p+len-2) == '\r' && *(p+len-1) == '\n') {
+ *(p+len-2) = '\n';
+ *(p+len-1) = '\0';
+ }
+ }
+#endif
+ while (isspace(*p)) {
++p;
}
- if(iscomment(*p)){
+ if (iscomment(*p)) {
continue;
}
n = parse_line(p, args, 2); /* get first 2 fields */
- if(n != 2){
+ if (n != 2) {
continue;
}
- if(direction == LtoR){
+ if (direction == LtoR) {
from = args[0], to = args[1]; /* left to right */
- }else{
+ } else {
from = args[1], to = args[0]; /* right to left */
}
- if(! strcmp(from, lc_name)){
+ if (! strcmp(from, lc_name)) {
name = Xmalloc(strlen(to) + 1);
- if(name != NULL){
+ if (name != NULL) {
strcpy(name, to);
}
break;
}
}
- if(fp != (FILE *)NULL){
- fclose(fp);
- }
+ fclose(fp);
return name;
}
-/*
-#define isupper(ch) ('A' <= (ch) && (ch) <= 'Z')
-#define tolower(ch) ((ch) - 'A' + 'a')
-*/
+#define c_tolower(ch) ((ch) >= 'A' && (ch) <= 'Z' ? (ch) - 'A' + 'a' : (ch))
+
static char *
-lowercase(dst, src)
- char *dst;
- char *src;
+lowercase(
+ char *dst,
+ const char *src)
{
- char *s, *t;
+ const char *s;
+ char *t;
- for(s = src, t = dst; *s; ++s, ++t){
- *t = isupper(*s) ? tolower(*s) : *s;
- }
+ for (s = src, t = dst; *s; ++s, ++t)
+ *t = c_tolower(*s);
*t = '\0';
return dst;
}
/************************************************************************/
char *
-_XlcFileName(lcd, category)
- XLCd lcd;
- char *category;
+_XlcFileName(
+ XLCd lcd,
+ const char *category)
{
char *siname;
char cat[XLC_BUFSIZE], dir[XLC_BUFSIZE];
@@ -234,16 +344,15 @@ _XlcFileName(lcd, category)
char *args[NUM_LOCALEDIR];
char *file_name = NULL;
- if(lcd == (XLCd)NULL){
+ if (lcd == (XLCd)NULL)
return NULL;
- }
siname = XLC_PUBLIC(lcd, siname);
lowercase(cat, category);
xlocaledir(dir,XLC_BUFSIZE);
n = _XlcParsePath(dir, args, NUM_LOCALEDIR);
- for(i = 0; i < n; ++i){
+ for (i = 0; i < n; ++i) {
char buf[PATH_MAX], *name;
name = NULL;
@@ -252,20 +361,20 @@ _XlcFileName(lcd, category)
sprintf(buf, "%s/%s.dir", args[i], cat);
name = resolve_name(siname, buf, RtoL);
}
- if(name == NULL){
+ if (name == NULL) {
continue;
}
- if(*name == '/'){
+ if (*name == '/') {
/* supposed to be absolute path name */
file_name = name;
- }else{
+ } else {
file_name = Xmalloc(2 + (args[i] ? strlen (args[i]) : 0) +
(name ? strlen (name) : 0));
if (file_name != NULL)
sprintf(file_name, "%s/%s", args[i], name);
Xfree(name);
}
- if(isreadable(file_name)){
+ if (isreadable(file_name)) {
break;
}
Xfree(file_name);
@@ -281,25 +390,26 @@ _XlcFileName(lcd, category)
#endif
int
-_XlcResolveLocaleName(lc_name, pub)
- char* lc_name;
- XLCdPublicPart* pub;
+_XlcResolveLocaleName(
+ const char* lc_name,
+ XLCdPublicPart* pub)
{
char dir[PATH_MAX], buf[PATH_MAX], *name = NULL;
char *dst;
int i, n, sinamelen;
char *args[NUM_LOCALEDIR];
- static char locale_alias[] = LOCALE_ALIAS;
+ static const char locale_alias[] = LOCALE_ALIAS;
+ char *tmp_siname;
xlocaledir (dir, PATH_MAX);
n = _XlcParsePath(dir, args, NUM_LOCALEDIR);
- for(i = 0; i < n; ++i){
+ for (i = 0; i < n; ++i) {
if ((2 + (args[i] ? strlen (args[i]) : 0) +
strlen (locale_alias)) < PATH_MAX) {
sprintf (buf, "%s/%s", args[i], locale_alias);
name = resolve_name (lc_name, buf, LtoR);
}
- if(name != NULL){
+ if (name != NULL) {
break;
}
}
@@ -324,7 +434,11 @@ _XlcResolveLocaleName(lc_name, pub)
* be "en_US.ISO8859-1", "en_US.utf8", "ru_RU.KOI-8", or ja_JP.SJIS,
* although it could be ja.SJIS too.
*/
- pub->siname = Xrealloc (pub->siname, 2 * (sinamelen + 1));
+ tmp_siname = Xrealloc (pub->siname, 2 * (sinamelen + 1));
+ if (tmp_siname == NULL) {
+ return 0;
+ }
+ pub->siname = tmp_siname;
/* language */
dst = &pub->siname[sinamelen + 1];
@@ -355,63 +469,82 @@ _XlcResolveI18NPath(buf, buf_len)
char *buf;
int buf_len;
{
- if(buf != NULL){
+ if (buf != NULL) {
xlocaledir(buf, buf_len);
}
return 1;
}
char *
-_XlcLocaleDirName(dir_name, lc_name)
+_XlcLocaleDirName(dir_name, dir_len, lc_name)
char *dir_name;
+ size_t dir_len;
char *lc_name;
{
- char dir[PATH_MAX], buf[PATH_MAX], *name = NULL;
- char *dst;
- int i, n, sinamelen;
- char *args[NUM_LOCALEDIR];
- static char locale_alias[] = LOCALE_ALIAS;
- char *target_name = (char*)0;
- char *target_dir = (char*)0;
-
- xlocaledir (dir, PATH_MAX);
- n = _XlcParsePath(dir, args, 256);
- for (i = 0; i < n; ++i){
- if ((2 + (args[i] ? strlen(args[i]) : 0) +
- strlen(locale_alias)) < PATH_MAX) {
- sprintf (buf, "%s/%s", args[i], locale_alias);
- name = resolve_name(lc_name, buf, LtoR);
+ char dir[PATH_MAX], buf[PATH_MAX], *name = NULL;
+ int i, n;
+ char *args[NUM_LOCALEDIR];
+ static char locale_alias[] = LOCALE_ALIAS;
+ char *target_name = (char*)0;
+ char *target_dir = (char*)0;
+
+ xlocaledir (dir, PATH_MAX);
+ n = _XlcParsePath(dir, args, 256);
+ for (i = 0; i < n; ++i) {
+
+ if ((2 + (args[i] ? strlen(args[i]) : 0) +
+ strlen(locale_alias)) < PATH_MAX) {
+ sprintf (buf, "%s/%s", args[i], locale_alias);
+ name = resolve_name(lc_name, buf, LtoR);
+ }
+
+ /* If name is not an alias, use lc_name for locale.dir search */
+ if (name == NULL)
+ name = lc_name;
+
+ /* look at locale.dir */
+
+ target_dir = args[i];
+ if (!target_dir) {
+ /* something wrong */
+ if (name != lc_name)
+ Xfree(name);
+ continue;
+ }
+ if ((1 + (target_dir ? strlen (target_dir) : 0) +
+ strlen("locale.dir")) < PATH_MAX) {
+ sprintf(buf, "%s/locale.dir", target_dir);
+ target_name = resolve_name(name, buf, RtoL);
+ }
+ if (name != lc_name)
+ Xfree(name);
+ if (target_name != NULL) {
+ char *p = 0;
+ if ((p = strstr(target_name, "/XLC_LOCALE"))) {
+ *p = '\0';
+ break;
+ }
+ Xfree(target_name);
+ target_name = NULL;
+ }
+ name = NULL;
}
- if (name != NULL){
- /* look at locale.dir */
- const char *cat = "locale";
-
- target_dir = args[i];
- if (!target_dir) {
- /* something wrong */
- continue;
- }
- if ((5 + (target_dir ? strlen (target_dir) : 0) +
- (cat ? strlen(cat) : 0)) < PATH_MAX) {
- sprintf(buf, "%s/%s.dir", target_dir, cat);
- target_name = resolve_name(name, buf, RtoL);
- }
- if (target_name != NULL) {
- char *p = 0;
- if (p = strstr(target_name, "/XLC_LOCALE")) {
- *p = '\0';
- break;
- }
- }
+ if (target_name == NULL) {
+ /* vendor locale name == Xlocale name, no expansion of alias */
+ target_dir = args[0];
+ target_name = lc_name;
+ }
+ /* snprintf(dir_name, dir_len, "%s/%", target_dir, target_name); */
+ strncpy(dir_name, target_dir, dir_len - 1);
+ if (strlen(target_dir) >= dir_len - 1) {
+ dir_name[dir_len - 1] = '\0';
+ } else {
+ strcat(dir_name, "/");
+ strncat(dir_name, target_name, dir_len - strlen(dir_name) - 1);
+ if (strlen(target_name) >= dir_len - strlen(dir_name) - 1)
+ dir_name[dir_len - 1] = '\0';
}
- }
- if (target_name == NULL) {
- /* vendor locale name == Xlocale name, no expansion of alias */
- target_dir = args[0];
- target_name = lc_name;
- }
- strcpy(dir_name, target_dir);
- strcat(dir_name, "/");
- strcat(dir_name, target_name);
- return dir_name;
+ if (target_name != lc_name)
+ Xfree(target_name);
+ return dir_name;
}
diff --git a/src/xlibi18n/lcGeneric.c b/src/xlibi18n/lcGeneric.c
index 48261139..7922928e 100644
--- a/src/xlibi18n/lcGeneric.c
+++ b/src/xlibi18n/lcGeneric.c
@@ -28,14 +28,15 @@
* This is source code modified by FUJITSU LIMITED under the Joint
* Development Agreement for the CDE/Motif PST.
*/
+/* $XFree86: xc/lib/X11/lcGeneric.c,v 3.19 2003/05/27 16:55:27 tsi Exp $ */
#include <stdio.h>
#include "Xlibint.h"
#include "XlcGeneric.h"
-static XLCd create();
-static Bool initialize();
-static void destroy();
+static XLCd create (const char *name, XLCdMethods methods);
+static Bool initialize (XLCd lcd);
+static void destroy (XLCd lcd);
static XLCdPublicMethodsRec genericMethods = {
{ NULL }, /* use default methods */
@@ -51,9 +52,9 @@ static XLCdPublicMethodsRec genericMethods = {
XLCdMethods _XlcGenericMethods = (XLCdMethods) &genericMethods;
static XLCd
-create(name, methods)
- char *name;
- XLCdMethods methods;
+create(
+ const char *name,
+ XLCdMethods methods)
{
XLCd lcd;
XLCdPublicMethods new;
@@ -71,7 +72,7 @@ create(name, methods)
new = (XLCdPublicMethods) Xmalloc(sizeof(XLCdPublicMethodsRec));
if (new == NULL)
goto err;
- *new = *((XLCdPublicMethods) methods);
+ memcpy(new,methods,sizeof(XLCdPublicMethodsRec));
lcd->methods = (XLCdMethods) new;
return lcd;
@@ -82,9 +83,9 @@ err:
}
static Bool
-string_to_encoding(str, encoding)
- char *str;
- char *encoding;
+string_to_encoding(
+ const char *str,
+ char *encoding)
{
char *next;
long value;
@@ -117,18 +118,18 @@ string_to_encoding(str, encoding)
}
static Bool
-string_to_ulong(str, value)
-char *str;
-unsigned long *value;
+string_to_ulong(
+ const char *str,
+ unsigned long *value)
{
- char *tmp1 = str;
- int base;
+ const char *tmp1 = str;
+ int base;
- if(*tmp1++ != '\\'){
+ if (*tmp1++ != '\\') {
tmp1--;
base = 10;
- }else{
- switch(*tmp1++){
+ } else {
+ switch (*tmp1++) {
case 'x':
base = 16;
break;
@@ -142,15 +143,15 @@ unsigned long *value;
return(False);
}
}
- *value = (unsigned) strtol(tmp1, NULL, base);
+ *value = (unsigned long) strtol(tmp1, NULL, base);
return(True);
}
static Bool
-add_charset(codeset, charset)
- CodeSet codeset;
- XlcCharSet charset;
+add_charset(
+ CodeSet codeset,
+ XlcCharSet charset)
{
XlcCharSet *new_list;
int num;
@@ -172,8 +173,8 @@ add_charset(codeset, charset)
}
static CodeSet
-add_codeset(gen)
- XLCdGenericPart *gen;
+add_codeset(
+ XLCdGenericPart *gen)
{
CodeSet new, *new_list;
int num;
@@ -205,11 +206,11 @@ err:
}
static Bool
-add_parse_list(gen, type, encoding, codeset)
- XLCdGenericPart *gen;
- EncodingType type;
- char *encoding;
- CodeSet codeset;
+add_parse_list(
+ XLCdGenericPart *gen,
+ EncodingType type,
+ const char *encoding,
+ CodeSet codeset)
{
ParseInfo new, *new_list;
char *str;
@@ -270,8 +271,8 @@ err:
}
static void
-free_charset(lcd)
- XLCd lcd;
+free_charset(
+ XLCd lcd)
{
XLCdGenericPart *gen = XLC_GENERIC_PART(lcd);
ParseInfo *parse_info;
@@ -279,7 +280,7 @@ free_charset(lcd)
if (gen->mb_parse_table)
Xfree(gen->mb_parse_table);
- if ((num = gen->mb_parse_list_num)) {
+ if ((num = gen->mb_parse_list_num) > 0) {
for (parse_info = gen->mb_parse_list; num-- > 0; parse_info++) {
if ((*parse_info)->encoding)
Xfree((*parse_info)->encoding);
@@ -288,23 +289,28 @@ free_charset(lcd)
Xfree(gen->mb_parse_list);
}
- if ((num = gen->codeset_num))
+ if ((num = gen->codeset_num) > 0)
Xfree(gen->codeset_list);
}
+
/* For VW/UDC */
#define FORWARD (unsigned long)'+'
#define BACKWARD (unsigned long)'-'
-static char *getscope(str,scp)
-char *str;
-FontScope scp;
+static const char *
+getscope(
+ const char *str,
+ FontScope scp)
{
- char* next;
- unsigned long start=0,end=0,dest=0,shift=0,direction=0;
- sscanf(str,"[\\x%lx,\\x%lx]->\\x%lx", &start, &end,&dest);
- if( dest ){
- if(dest >= start ){
+ unsigned long start = 0;
+ unsigned long end = 0;
+ unsigned long dest = 0;
+ unsigned long shift = 0;
+ unsigned long direction = 0;
+ sscanf(str,"[\\x%lx,\\x%lx]->\\x%lx", &start, &end, &dest);
+ if (dest) {
+ if (dest >= start) {
shift = dest - start;
direction = FORWARD ;
} else {
@@ -318,115 +324,119 @@ FontScope scp;
scp->shift_direction
= direction ;
/* .......... */
- while(*str){
- if(*str == ',' && *(str+1) == '['){
+ while (*str) {
+ if (*str == ',' && *(str+1) == '[')
break;
- }
str++;
}
- next = str+1 ;
- return(next);
+ return str+1;
}
-static int count_scopemap(str)
-char *str;
+static int
+count_scopemap(
+ const char *str)
{
- char *ptr;
+ const char *ptr;
int num=0;
- for(ptr=str;*ptr;ptr++){
- if(*ptr == ']'){
- num ++;
+ for (ptr=str; *ptr; ptr++) {
+ if (*ptr == ']') {
+ num++;
}
}
- return(num);
+ return num;
}
-FontScope _XlcParse_scopemaps(str,size)
-char *str;
-int *size;
+FontScope
+_XlcParse_scopemaps(
+ const char *str,
+ int *size)
{
- int num=0,i;
- FontScope scope,sc_ptr;
- char *str_sc;
- num = count_scopemap(str);
- scope = (FontScope )Xmalloc(num * sizeof(FontScopeRec));
- if(scope == NULL) {
- return (NULL);
- }
- for (i=0,str_sc=str,sc_ptr=scope;
- i < num; i++,sc_ptr++){
- str_sc = getscope(str_sc,sc_ptr);
- }
- *size = num;
- return (scope);
+ int num=0,i;
+ FontScope scope,sc_ptr;
+ const char *str_sc;
+
+ num = count_scopemap(str);
+ scope = (FontScope) Xmalloc(num * sizeof(FontScopeRec));
+ if (scope == NULL)
+ return NULL;
+
+ for (i=0, str_sc=str, sc_ptr=scope; i < num; i++, sc_ptr++) {
+ str_sc = getscope(str_sc, sc_ptr);
+ }
+ *size = num;
+ return scope;
}
-void _XlcDbg_printValue(str,value,num)
-char *str;
-char **value;
-int num;
+void
+_XlcDbg_printValue(
+ const char *str,
+ char **value,
+ int num)
{
/*
int i;
- for(i=0;i<num;i++){
- fprintf(stderr,"%s value[%d] = %s\n",str,i,value[i]);
- }
+ for (i = 0; i < num; i++)
+ fprintf(stderr, "%s value[%d] = %s\n", str, i, value[i]);
*/
}
-static void dmpscope(name,sc,num)
-char* name;
-FontScope sc;
-int num;
+static void
+dmpscope(
+ const char* name,
+ FontScope sc,
+ int num)
{
/*
int i;
- fprintf(stderr,"dmpscope %s\n",name);
- for(i=0;i<num;i++){
+ fprintf(stderr, "dmpscope %s\n", name);
+ for (i=0; i<num; i++)
fprintf(stderr,"%x %x %x %x \n",
sc[i].start,
sc[i].end,
sc[i].shift,
sc[i].shift_direction);
- }
- fprintf(stderr,"dmpscope end\n");
+ fprintf(stderr, "dmpscope end\n");
*/
}
-static XlcCharSet srch_charset_define(name,new)
-char *name;
-int *new;
+static XlcCharSet
+srch_charset_define(
+ const char *name,
+ int *new)
{
- XlcCharSet charset = NULL;
+ XlcCharSet charset;
+
*new = 0;
charset = _XlcGetCharSet(name);
if (charset == NULL &&
(charset = _XlcCreateDefaultCharSet(name, ""))) {
_XlcAddCharSet(charset);
*new = 1;
+ charset->source = CSsrcXLC;
}
- return(charset);
+ return charset;
}
-static void read_charset_define(lcd,gen)
-XLCd lcd;
-XLCdGenericPart *gen;
+static void
+read_charset_define(
+ XLCd lcd,
+ XLCdGenericPart *gen)
{
- int i=0;
- char csd[16],cset_name[256];
+ int i;
+ char csd[16], cset_name[256];
char name[BUFSIZ];
XlcCharSet charsetd;
char **value;
- int num,new;
+ int num, new;
XlcSide side = XlcUnknown;
char *tmp;
- for(i=0;;i++){ /* loop start */
+ for (i=0; ; i++) { /* loop start */
charsetd = 0;
sprintf(csd, "csd%d", i);
- /* charset_name */
- sprintf(name, "%s.%s", csd , "charset_name");
+ /* charset_name */
+ sprintf(name, "%s.%s", csd, "charset_name");
_XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num);
_XlcDbg_printValue(name,value,num);
if (num > 0) {
@@ -437,108 +447,102 @@ XLCdGenericPart *gen;
_XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num);
if (num > 0) {
_XlcDbg_printValue(name,value,num);
- if( !_XlcNCompareISOLatin1(value[0], "none", 4) ){
- side = XlcNONE ;
- strcat(cset_name,":none");
- } else
- if( !_XlcNCompareISOLatin1(value[0], "GL", 2) ){
- side = XlcGL ;
+ if (!_XlcNCompareISOLatin1(value[0], "none", 4)) {
+ side = XlcGLGR;
+ } else if (!_XlcNCompareISOLatin1(value[0], "GL", 2)) {
+ side = XlcGL;
strcat(cset_name,":GL");
} else {
- side = XlcGR ;
+ side = XlcGR;
strcat(cset_name,":GR");
}
if (charsetd == NULL &&
(charsetd = srch_charset_define(cset_name,&new)) == NULL)
- return ;
+ return;
}
} else {
- if(i == 0){
- continue ;
- } else {
- break ;
- }
+ if (i == 0)
+ continue;
+ else
+ break;
}
- if(new){
+ if (new) {
tmp = (char *)Xmalloc(strlen(cset_name)+1);
- if(tmp == NULL){
- return ;
- }
+ if (tmp == NULL)
+ return;
strcpy(tmp,cset_name);
charsetd->name = tmp;
}
/* side */
- charsetd->side = side ;
+ charsetd->side = side ;
/* length */
- sprintf(name, "%s.%s", csd , "length");
+ sprintf(name, "%s.%s", csd, "length");
_XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num);
if (num > 0) {
_XlcDbg_printValue(name,value,num);
charsetd->char_size = atoi(value[0]);
}
/* gc_number */
- sprintf(name, "%s.%s", csd , "gc_number");
+ sprintf(name, "%s.%s", csd, "gc_number");
_XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num);
if (num > 0) {
_XlcDbg_printValue(name,value,num);
charsetd->set_size = atoi(value[0]);
}
/* string_encoding */
- sprintf(name, "%s.%s", csd , "string_encoding");
+ sprintf(name, "%s.%s", csd, "string_encoding");
_XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num);
if (num > 0) {
_XlcDbg_printValue(name,value,num);
- if(!strcmp("False",value[0])){
+ if (!strcmp("False",value[0])) {
charsetd->string_encoding = False;
} else {
charsetd->string_encoding = True;
}
}
/* sequence */
- sprintf(name, "%s.%s", csd , "sequence");
+ sprintf(name, "%s.%s", csd, "sequence");
_XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num);
if (num > 0) {
_XlcDbg_printValue(name,value,num);
/*
- if(charsetd->ct_sequence){
+ if (charsetd->ct_sequence) {
Xfree(charsetd->ct_sequence);
}
*/
tmp = (char *)Xmalloc(strlen(value[0])+1);
- if(tmp == NULL){
+ if (tmp == NULL)
return;
- }
charsetd->ct_sequence = tmp;
string_to_encoding(value[0],tmp);
}
/* encoding_name */
- sprintf(name, "%s.%s", csd , "encoding_name");
+ sprintf(name, "%s.%s", csd, "encoding_name");
_XlcGetResource(lcd, "XLC_CHARSET_DEFINE", name, &value, &num);
if (num > 0) {
_XlcDbg_printValue(name,value,num);
/*
- if(charsetd->encoding_name){
+ if (charsetd->encoding_name) {
Xfree(charsetd->encoding_name);
}
*/
- tmp = (char *)Xmalloc(strlen(value[0]+1));
+ tmp = (char *)Xmalloc(strlen(value[0])+1);
strcpy(tmp,value[0]);
charsetd->encoding_name = tmp;
- charsetd->xrm_encoding_name =
- XrmStringToQuark(tmp);
+ charsetd->xrm_encoding_name = XrmStringToQuark(tmp);
}
+ _XlcAddCT(charsetd->name, charsetd->ct_sequence);
}
-
}
-SegConv
-add_conversion(gen)
-XLCdGenericPart *gen;
+static SegConv
+add_conversion(
+ XLCdGenericPart *gen)
{
SegConv new_list;
int num;
- if ((num = gen->segment_conv_num)){
+ if ((num = gen->segment_conv_num) > 0) {
new_list = (SegConv) Xrealloc(gen->segment_conv,
(num + 1) * sizeof(SegConvRec));
} else {
@@ -546,102 +550,83 @@ XLCdGenericPart *gen;
}
if (new_list == NULL)
- return False;
+ return NULL;
gen->segment_conv = new_list;
gen->segment_conv_num = num + 1;
- return (&new_list[num]);
+ return &new_list[num];
}
-static void read_segmentconversion(lcd,gen)
-XLCd lcd;
-XLCdGenericPart *gen;
+
+static void
+read_segmentconversion(
+ XLCd lcd,
+ XLCdGenericPart *gen)
{
- int i=0;
+ int i;
char conv[16];
char name[BUFSIZ];
char **value;
int num,new;
SegConv conversion;
- for(i=0 ; ; i++){ /* loop start */
+ for (i=0 ; ; i++) { /* loop start */
conversion = 0;
sprintf(conv, "conv%d", i);
/* length */
- sprintf(name, "%s.%s", conv , "length");
+ sprintf(name, "%s.%s", conv, "length");
_XlcGetResource(lcd, "XLC_SEGMENTCONVERSION", name, &value, &num);
if (num > 0) {
if (conversion == NULL &&
(conversion = add_conversion(gen)) == NULL) {
- return ;
+ return;
}
_XlcDbg_printValue(name,value,num);
} else {
- if(i == 0){
+ if (i == 0)
continue;
- } else {
- break ;
- }
+ else
+ break;
}
conversion->length = atoi(value[0]);
/* source_encoding */
- sprintf(name, "%s.%s", conv , "source_encoding");
+ sprintf(name, "%s.%s", conv, "source_encoding");
_XlcGetResource(lcd, "XLC_SEGMENTCONVERSION", name, &value, &num);
if (num > 0) {
char *tmp;
_XlcDbg_printValue(name,value,num);
tmp = (char *)Xmalloc(strlen(value[0])+1);
- if(tmp == NULL){
+ if (tmp == NULL)
return;
- }
strcpy(tmp,value[0]);
conversion->source_encoding = tmp;
conversion->source = srch_charset_define(tmp,&new);
- if(new){
- tmp = (char *)Xmalloc(strlen(conversion->source_encoding)+1);
- if(tmp == NULL){
- return ;
- }
- strcpy(tmp,conversion->source_encoding);
- conversion->source->name = tmp;
- }
}
/* destination_encoding */
- sprintf(name, "%s.%s", conv , "destination_encoding");
+ sprintf(name, "%s.%s", conv, "destination_encoding");
_XlcGetResource(lcd, "XLC_SEGMENTCONVERSION", name, &value, &num);
if (num > 0) {
char *tmp;
_XlcDbg_printValue(name,value,num);
tmp = (char *)Xmalloc(strlen(value[0])+1);
- if(tmp == NULL){
+ if (tmp == NULL)
return;
- }
strcpy(tmp,value[0]);
conversion->destination_encoding = tmp;
conversion->dest = srch_charset_define(tmp,&new);
- if(new){
- tmp = (char *)Xmalloc(
- strlen(conversion->destination_encoding)+1);
- if(tmp == NULL){
- return ;
- }
- strcpy(tmp,conversion->destination_encoding);
- conversion->dest->name = tmp;
- }
}
/* range */
- sprintf(name, "%s.%s", conv , "range");
+ sprintf(name, "%s.%s", conv, "range");
_XlcGetResource(lcd, "XLC_SEGMENTCONVERSION", name, &value, &num);
if (num > 0) {
_XlcDbg_printValue(name,value,num);
sscanf(value[0],"\\x%lx,\\x%lx",
- &(conversion->range.start),
- &(conversion->range.end));
+ &(conversion->range.start), &(conversion->range.end));
}
/* conversion */
- sprintf(name, "%s.%s", conv , "conversion");
+ sprintf(name, "%s.%s", conv, "conversion");
_XlcGetResource(lcd, "XLC_SEGMENTCONVERSION", name, &value, &num);
if (num > 0) {
_XlcDbg_printValue(name,value,num);
@@ -651,9 +636,10 @@ XLCdGenericPart *gen;
} /* loop end */
}
-static ExtdSegment create_ctextseg(value,num)
-char **value;
-int num;
+static ExtdSegment
+create_ctextseg(
+ char **value,
+ int num)
{
ExtdSegment ret;
char* ptr;
@@ -661,69 +647,58 @@ int num;
int i,new;
FontScope scope;
ret = (ExtdSegment)Xmalloc(sizeof(ExtdSegmentRec));
- if(ret == NULL){
+ if (ret == NULL)
+ return NULL;
+ ret->name = (char *)Xmalloc(strlen(value[0]) + 1);
+ if (ret->name == NULL) {
+ Xfree (ret);
return NULL;
}
- if(strchr(value[0],':')){
- ret->name = (char *)Xmalloc(strlen(value[0])+1);
- if(ret->name == NULL){
- Xfree (ret);
- return NULL;
- }
- strcpy(ret->name,value[0]);
+ strcpy(ret->name,value[0]);
+ cset_name = (char*) Xmalloc (strlen(ret->name) + 1);
+ if (cset_name == NULL) {
+ Xfree (ret->name);
+ Xfree (ret);
+ return NULL;
+ }
+ if (strchr(value[0],':')) {
ptr = strchr(ret->name,':');
*ptr = '\0';
ptr++;
- cset_name = (char*) Xmalloc (strlen (ret->name) + 6);
- if (cset_name == NULL) {
- Xfree (ret->name);
- Xfree (ret);
- return NULL;
- }
- if( !_XlcNCompareISOLatin1(ptr, "none", 4) ){
- ret->side = XlcNONE ;
- sprintf(cset_name,"%s:%s",ret->name,"none");
- } else
- if( !_XlcNCompareISOLatin1(ptr, "GL", 2) ){
- ret->side = XlcGL ;
+ if (!_XlcNCompareISOLatin1(ptr, "GL", 2)) {
+ ret->side = XlcGL;
sprintf(cset_name,"%s:%s",ret->name,"GL");
} else {
- ret->side = XlcGR ;
+ ret->side = XlcGR;
sprintf(cset_name,"%s:%s",ret->name,"GR");
}
} else {
- ret->name = (char *)Xmalloc(strlen(value[0])+1);
- if(ret->name == NULL){
- Xfree (ret);
- return NULL;
- }
- strcpy(ret->name,value[0]);
+ ret->side = XlcGLGR;
+ strcpy(cset_name,ret->name);
}
ret->area = (FontScope)Xmalloc((num - 1)*sizeof(FontScopeRec));
- if(ret->area == NULL){
+ if (ret->area == NULL) {
+ Xfree (cset_name);
Xfree (ret->name);
Xfree (ret);
return NULL;
}
- ret->area_num = num - 1;
+ ret->area_num = num - 1;
scope = ret->area ;
- for(i=1;i<num;i++){
+ for (i = 1; i < num; i++) {
sscanf(value[i],"\\x%lx,\\x%lx",
- &scope[i-1].start,&scope[i-1].end);
+ &scope[i-1].start, &scope[i-1].end);
}
ret->charset = srch_charset_define(cset_name,&new);
- if (new)
- ret->charset->name = cset_name;
- else
- Xfree (cset_name);
+ Xfree (cset_name);
return ret;
}
/* For VW/UDC end */
static Bool
-load_generic(lcd)
- XLCd lcd;
+load_generic(
+ XLCd lcd)
{
XLCdGenericPart *gen = XLC_GENERIC_PART(lcd);
char **value;
@@ -731,6 +706,7 @@ load_generic(lcd)
unsigned long l;
int i;
int M,ii;
+ XlcCharSet charset;
gen->codeset_num = 0;
@@ -747,7 +723,6 @@ load_generic(lcd)
gen->wc_shift_bits = atoi(value[0]);
if (gen->wc_shift_bits < 1)
gen->wc_shift_bits = 8;
-#ifndef X_NOT_STDC_ENV
/***** use_stdc_env *****/
_XlcGetResource(lcd, "XLC_XLOCALE", "use_stdc_env", &value, &num);
if (num > 0 && !_XlcCompareISOLatin1(value[0], "True"))
@@ -760,7 +735,6 @@ load_generic(lcd)
gen->force_convert_to_mb = True;
else
gen->force_convert_to_mb = False;
-#endif
for (i = 0; ; i++) {
CodeSetRec *codeset = NULL;
@@ -779,13 +753,12 @@ load_generic(lcd)
goto err;
/* 3.4.1 side */
- if( !_XlcNCompareISOLatin1(value[0], "none", 4) ){
- codeset->side = XlcNONE ;
- } else
- if( !_XlcNCompareISOLatin1(value[0], "GL", 2) ){
- codeset->side = XlcGL ;
+ if (!_XlcNCompareISOLatin1(value[0], "none", 4)) {
+ codeset->side = XlcNONE;
+ } else if (!_XlcNCompareISOLatin1(value[0], "GL", 2)) {
+ codeset->side = XlcGL;
} else {
- codeset->side = XlcGR ;
+ codeset->side = XlcGR;
}
tmp = strrchr(value[0], ':');
@@ -813,13 +786,13 @@ load_generic(lcd)
_XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
if (num > 0) {
static struct {
- char *str;
- int type;
+ const char *str;
+ EncodingType type;
} shifts[] = {
{"<SS>", E_SS},
{"<LSL>", E_LSL},
{"<LSR>", E_LSR},
- 0
+ {0}
};
int j;
@@ -828,7 +801,7 @@ load_generic(lcd)
for ( ; num-- > 0; value++) {
char encoding[256];
char *tmp = *value;
- int type = E_SS; /* for BC */
+ EncodingType type = E_SS; /* for BC */
for (j = 0; shifts[j].str; j++) {
if (!_XlcNCompareISOLatin1(tmp, shifts[j].str,
strlen(shifts[j].str))) {
@@ -859,7 +832,6 @@ load_generic(lcd)
sprintf(name, "%s.%s", cs, "ct_encoding");
_XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
if (num > 0) {
- XlcCharSet charset;
char *encoding;
if (codeset == NULL && (codeset = add_codeset(gen)) == NULL)
@@ -895,33 +867,33 @@ load_generic(lcd)
codeset->cs_num = i;
/* For VW/UDC */
/***** 3.4.2 byteM (1 <= M <= length)*****/
- for(M=1; M-1 < codeset->length; M++){
- long start,end;
+ for (M=1; M-1 < codeset->length; M++) {
+ unsigned long start,end;
ByteInfo tmpb;
sprintf(name,"%s.%s%d",cs,"byte",M);
_XlcGetResource(lcd, "XLC_XLOCALE", name, &value, &num);
- if( M == 1){
- if(num < 1) {
- codeset->byteM = NULL ;
+ if (M == 1) {
+ if (num < 1) {
+ codeset->byteM = NULL;
break ;
}
codeset->byteM =
(ByteInfoListRec *)Xmalloc(
(codeset->length)*sizeof(ByteInfoListRec));
- if(codeset->byteM == NULL){
+ if (codeset->byteM == NULL) {
goto err;
}
}
- if(num > 0){
+ if (num > 0) {
_XlcDbg_printValue(name,value,num);
(codeset->byteM)[M-1].M = M;
(codeset->byteM)[M-1].byteinfo_num = num;
(codeset->byteM)[M-1].byteinfo =
(ByteInfo)Xmalloc( num * sizeof(ByteInfoRec));
- for(ii = 0 ; ii < num ; ii++){
+ for (ii = 0 ; ii < num ; ii++) {
tmpb = (codeset->byteM)[M-1].byteinfo ;
/* default 0x00 - 0xff */
sscanf(value[ii],"\\x%lx,\\x%lx",&start,&end);
@@ -942,7 +914,7 @@ load_generic(lcd)
codeset->mbconv->convlist =
_XlcParse_scopemaps(value[0],&(codeset->mbconv->conv_num));
dmpscope("mb_conv",codeset->mbconv->convlist,
- codeset->mbconv->conv_num);
+ codeset->mbconv->conv_num);
/* [\x%x,\x%x]->\x%x,... */
}
/***** codeset.ct_conversion *****/
@@ -954,7 +926,7 @@ load_generic(lcd)
codeset->ctconv->convlist =
_XlcParse_scopemaps(value[0],&(codeset->ctconv->conv_num));
dmpscope("ctconv",codeset->ctconv->convlist,
- codeset->ctconv->conv_num);
+ codeset->ctconv->conv_num);
/* [\x%x,\x%x]->\x%x,... */
}
/***** codeset.ct_conversion_file *****/
@@ -979,6 +951,34 @@ load_generic(lcd)
read_charset_define(lcd,gen); /* For VW/UDC */
read_segmentconversion(lcd,gen); /* For VW/UDC */
+ if (gen->initial_state_GL == NULL) {
+ CodeSetRec *codeset;
+ for (i = 0; i < gen->codeset_num; i++) {
+ codeset = gen->codeset_list[i];
+ if (codeset->side == XlcGL)
+ gen->initial_state_GL = codeset;
+ }
+ }
+
+ if (gen->initial_state_GR == NULL) {
+ CodeSetRec *codeset;
+ for (i = 0; i < gen->codeset_num; i++) {
+ codeset = gen->codeset_list[i];
+ if (codeset->side == XlcGR)
+ gen->initial_state_GR = codeset;
+ }
+ }
+
+ for (i = 0; i < gen->codeset_num; i++) {
+ CodeSetRec *codeset = gen->codeset_list[i];
+ for (ii = 0; ii < codeset->num_charsets; ii++) {
+ charset = codeset->charset_list[ii];
+ if (! strcmp(charset->encoding_name, "ISO8859-1"))
+ charset->string_encoding = True;
+ if ( charset->string_encoding )
+ codeset->string_encoding = True;
+ }
+ }
return True;
err:
@@ -992,8 +992,8 @@ err:
super_class's initialize method() */
static Bool
-initialize_core(lcd)
- XLCd lcd;
+initialize_core(
+ XLCd lcd)
{
_XInitDynamicOM(lcd);
@@ -1020,25 +1020,26 @@ initialize(lcd)
if (initialize_core(lcd) == False)
return False;
#endif
-
- if(load_generic(lcd) == False)
+
+ if (load_generic(lcd) == False)
return False;
return True;
}
+
/* VW/UDC start 95.01.08 */
static void
-freeByteM(codeset)
- CodeSet codeset;
+freeByteM(
+ CodeSet codeset)
{
int i;
ByteInfoList blst;
- if(codeset->byteM == NULL) {
+ if (codeset->byteM == NULL) {
return ;
}
blst = codeset->byteM;
- for(i=0;i<codeset->length;i++){
- if(blst[i].byteinfo){
+ for (i = 0; i < codeset->length; i++) {
+ if (blst[i].byteinfo) {
Xfree(blst[i].byteinfo);
blst[i].byteinfo = NULL;
}
@@ -1046,25 +1047,26 @@ freeByteM(codeset)
Xfree(codeset->byteM);
codeset->byteM = NULL;
}
+
static void
-freeConversion(codeset)
- CodeSet codeset;
+freeConversion(
+ CodeSet codeset)
{
Conversion mbconv,ctconv;
- if( codeset->mbconv ) {
+ if (codeset->mbconv) {
mbconv = codeset->mbconv;
/* ... */
- if(mbconv->convlist){
+ if (mbconv->convlist) {
Xfree(mbconv->convlist);
mbconv->convlist = NULL;
}
Xfree(mbconv);
codeset->mbconv = NULL;
}
- if( codeset->ctconv ) {
+ if (codeset->ctconv) {
ctconv = codeset->ctconv;
/* ... */
- if(ctconv->convlist){
+ if (ctconv->convlist) {
Xfree(ctconv->convlist);
ctconv->convlist = NULL;
}
@@ -1072,57 +1074,60 @@ freeConversion(codeset)
codeset->ctconv = NULL;
}
}
+
static void
-freeExtdSegment(codeset)
- CodeSet codeset;
+freeExtdSegment(
+ CodeSet codeset)
{
ExtdSegment ctextseg;
- if(codeset->ctextseg == NULL) {
- return ;
+ if (codeset->ctextseg == NULL) {
+ return;
}
ctextseg = codeset->ctextseg;
- if(ctextseg->name){
+ if (ctextseg->name) {
Xfree(ctextseg->name);
ctextseg->name = NULL;
}
- if(ctextseg->area){
+ if (ctextseg->area) {
Xfree(ctextseg->area);
ctextseg->area = NULL;
}
Xfree(codeset->ctextseg);
codeset->ctextseg = NULL;
}
+
static void
-freeParseInfo(codeset)
- CodeSet codeset;
+freeParseInfo(
+ CodeSet codeset)
{
ParseInfo parse_info;
- if(codeset->parse_info == NULL) {
- return ;
+ if (codeset->parse_info == NULL) {
+ return;
}
parse_info = codeset->parse_info;
- if(parse_info->encoding){
+ if (parse_info->encoding) {
Xfree(parse_info->encoding);
parse_info->encoding = NULL;
}
Xfree(codeset->parse_info);
codeset->parse_info = NULL;
}
+
static void
-destroy_CodeSetList(gen)
- XLCdGenericPart *gen ;
+destroy_CodeSetList(
+ XLCdGenericPart *gen)
{
CodeSet *codeset = gen->codeset_list;
int i;
- if(gen->codeset_num == 0) {
+ if (gen->codeset_num == 0) {
return;
}
- for(i=0;i<gen->codeset_num;i++){
+ for (i=0;i<gen->codeset_num;i++) {
freeByteM(codeset[i]);
freeConversion(codeset[i]);
freeExtdSegment(codeset[i]);
freeParseInfo(codeset[i]);
- if(codeset[i]->charset_list){
+ if (codeset[i]->charset_list) {
Xfree(codeset[i]->charset_list);
codeset[i]->charset_list = NULL;
}
@@ -1130,26 +1135,26 @@ destroy_CodeSetList(gen)
}
Xfree(codeset); gen->codeset_list = NULL;
}
-/* */
+
static void
-destroy_SegConv(gen)
- XLCdGenericPart *gen ;
+destroy_SegConv(
+ XLCdGenericPart *gen)
{
SegConv seg = gen->segment_conv;
int i;
- if(gen->segment_conv_num == 0) {
+ if (gen->segment_conv_num == 0) {
return;
}
- for(i=0;i<gen->segment_conv_num;i++){
- if(seg[i].source_encoding){
+ for (i=0;i<gen->segment_conv_num;i++) {
+ if (seg[i].source_encoding) {
Xfree(seg[i].source_encoding);
seg[i].source_encoding = NULL;
}
- if(seg[i].destination_encoding){
+ if (seg[i].destination_encoding) {
Xfree(seg[i].destination_encoding);
seg[i].destination_encoding = NULL;
}
- if(seg[i].conv){
+ if (seg[i].conv) {
Xfree(seg[i].conv); seg[i].conv = NULL;
}
}
@@ -1157,25 +1162,26 @@ destroy_SegConv(gen)
}
static void
-destroy_gen(lcd)
- XLCd lcd;
+destroy_gen(
+ XLCd lcd)
{
XLCdGenericPart *gen = XLC_GENERIC_PART(lcd);
destroy_SegConv(gen);
destroy_CodeSetList(gen);
- if(gen->mb_parse_table){
+ if (gen->mb_parse_table) {
Xfree(gen->mb_parse_table);
gen->mb_parse_table = NULL;
}
- if(gen->mb_parse_list){
+ if (gen->mb_parse_list) {
Xfree(gen->mb_parse_list);
gen->mb_parse_list = NULL;
}
}
/* VW/UDC end 95.01.08 */
+
static void
-destroy(lcd)
- XLCd lcd;
+destroy(
+ XLCd lcd)
{
XLCdPublicMethods superclass = XLC_PUBLIC_METHODS(lcd)->superclass;
diff --git a/src/xlibi18n/lcInit.c b/src/xlibi18n/lcInit.c
index e4d3a7a4..d034f4e0 100644
--- a/src/xlibi18n/lcInit.c
+++ b/src/xlibi18n/lcInit.c
@@ -74,156 +74,105 @@ Sun Microsystems, Inc. or its licensors is granted.
* Modifier: Masayoshi Shimamura FUJITSU LIMITED
*
*/
+/* $XFree86: xc/lib/X11/lcInit.c,v 3.9 2001/11/16 00:52:27 dawes Exp $ */
#include "Xlibint.h"
#include "Xlcint.h"
#ifdef USE_DYNAMIC_LC
#undef USE_DEFAULT_LOADER
+#undef USE_GENERIC_LOADER
+#undef USE_UTF8_LOADER
#else
#define USE_GENERIC_LOADER
#define USE_DEFAULT_LOADER
+#define USE_UTF8_LOADER
#ifdef X_LOCALE
# define USE_EUC_LOADER
# define USE_SJIS_LOADER
# define USE_JIS_LOADER
-# define USE_UTF_LOADER
#endif
#endif
-#ifdef USE_DEFAULT_LOADER
-extern XLCd _XlcDefaultLoader(
-#if NeedFunctionPrototypes
- char*
-#endif
-);
-#endif
+/*
+ * The _XlcInitLoader function initializes the locale object loader list
+ * with vendor specific manner.
+ */
-#ifdef USE_DYNAMIC_LC
-extern XLCd _XlcDynamicLoad(
-#if NeedFunctionPrototypes
- char*
-#endif
-);
-#endif
+void
+_XlcInitLoader()
+{
-#ifdef DYNAMIC_LOAD
-#ifdef AIXV3
-extern XLCd _XaixOsDynamicLoad(
-#if NeedFunctionPrototypes
- char*
-#endif
-);
-#endif /* AIXV3 */
-#endif
+#ifdef USE_DYNAMIC_LC
+ _XlcAddLoader(_XlcDynamicLoad, XlcHead);
+#else /* USE_DYNAMIC_LC */
#ifdef USE_GENERIC_LOADER
-extern XLCd _XlcGenericLoader(
-#if NeedFunctionPrototypes
- char*
-#endif
-);
+ _XlcAddLoader(_XlcGenericLoader, XlcHead);
#endif
-#ifdef USE_UTF_LOADER
-extern XLCd _XlcUtfLoader(
-#if NeedFunctionPrototypes
- char*
+#ifdef USE_DEFAULT_LOADER
+ _XlcAddLoader(_XlcDefaultLoader, XlcHead);
#endif
-);
+
+#ifdef USE_UTF8_LOADER
+ _XlcAddLoader(_XlcUtf8Loader, XlcHead);
#endif
#ifdef USE_EUC_LOADER
-extern XLCd _XlcEucLoader(
-#if NeedFunctionPrototypes
- char*
-#endif
-);
+ _XlcAddLoader(_XlcEucLoader, XlcHead);
#endif
#ifdef USE_SJIS_LOADER
-extern XLCd _XlcSjisLoader(
-#if NeedFunctionPrototypes
- char*
-#endif
-);
+ _XlcAddLoader(_XlcSjisLoader, XlcHead);
#endif
#ifdef USE_JIS_LOADER
-extern XLCd _XlcJisLoader(
-#if NeedFunctionPrototypes
- char*
-#endif
-);
+ _XlcAddLoader(_XlcJisLoader, XlcHead);
#endif
#ifdef USE_DYNAMIC_LOADER
-extern XLCd _XlcDynamicLoader(
-#if NeedFunctionPrototypes
- char*
-#endif
-);
+ _XlcAddLoader(_XlcDynamicLoader, XlcHead);
#endif
-/*
- * The _XlcInitLoader function initializes the locale object loader list
- * with vendor specific manner.
- */
+#endif /* USE_DYNAMIC_LC */
+}
void
-#if NeedFunctionPrototypes
-_XlcInitLoader(char *name)
-#else
-_XlcInitLoader(name)
- char *name;
-#endif
+_XlcDeInitLoader()
{
#ifdef USE_DYNAMIC_LC
- _XlcAddLoader(_XlcDynamicLoad, XlcHead);
-
-#ifdef USE_DEFAULT_LOADER
- if (strcmp(name, "C") == 0 || strcmp(name, "POSIX") == 0)
- _XlcAddLoader(_XlcDefaultLoader, XlcHead);
- else
- _XlcAddLoader(_XlcDefaultLoader, XlcTail);
-#endif
-
+ _XlcRemoveLoader(_XlcDynamicLoad);
#else /* USE_DYNAMIC_LC */
#ifdef USE_GENERIC_LOADER
- _XlcAddLoader(_XlcGenericLoader, XlcHead);
+ _XlcRemoveLoader(_XlcGenericLoader);
#endif
#ifdef USE_DEFAULT_LOADER
- _XlcAddLoader(_XlcDefaultLoader, XlcHead);
+ _XlcRemoveLoader(_XlcDefaultLoader);
+#endif
+
+#ifdef USE_UTF8_LOADER
+ _XlcRemoveLoader(_XlcUtf8Loader);
#endif
#ifdef USE_EUC_LOADER
- _XlcAddLoader(_XlcEucLoader, XlcHead);
+ _XlcRemoveLoader(_XlcEucLoader);
#endif
#ifdef USE_SJIS_LOADER
- _XlcAddLoader(_XlcSjisLoader, XlcHead);
+ _XlcRemoveLoader(_XlcSjisLoader);
#endif
#ifdef USE_JIS_LOADER
- _XlcAddLoader(_XlcJisLoader, XlcHead);
+ _XlcRemoveLoader(_XlcJisLoader);
#endif
-#ifdef USE_UTF_LOADER
- _XlcAddLoader(_XlcUtfLoader, XlcHead);
+#ifdef USE_DYNAMIC_LOADER
+ _XlcRemoveLoader(_XlcDynamicLoader);
#endif
#endif /* USE_DYNAMIC_LC */
-
-#ifdef DYNAMIC_LOAD
-#ifdef AIXV3
- _XlcAddLoader(_XaixOsDynamicLoad, XlcHead);
-#endif /* AIXV3 */
-#endif /* DYNAMIC_LOAD */
-
-#ifdef USE_DYNAMIC_LOADER
- _XlcAddLoader(_XlcDynamicLoader, XlcHead);
-#endif
}
diff --git a/src/xlibi18n/lcPrTxt.c b/src/xlibi18n/lcPrTxt.c
index c06a628f..3670340c 100644
--- a/src/xlibi18n/lcPrTxt.c
+++ b/src/xlibi18n/lcPrTxt.c
@@ -23,6 +23,7 @@
* Author: Katsuhisa Yano TOSHIBA Corp.
* mopi@osa.ilab.toshiba.co.jp
*/
+/* $XFree86: xc/lib/X11/lcPrTxt.c,v 1.9 2003/04/03 22:34:02 dawes Exp $ */
#include "Xlibint.h"
#include "XlcPubI.h"
@@ -30,10 +31,10 @@
#include <X11/Xatom.h>
static XPointer *
-alloc_list(is_wide_char, count, nitems)
- Bool is_wide_char;
- int count;
- int nitems;
+alloc_list(
+ Bool is_wide_char,
+ int count,
+ int nitems)
{
if (is_wide_char) {
wchar_t **wstr_list;
@@ -67,11 +68,11 @@ alloc_list(is_wide_char, count, nitems)
}
static void
-copy_list(is_wide_char, text, list, count)
- Bool is_wide_char;
- XPointer text;
- XPointer *list;
- int count;
+copy_list(
+ Bool is_wide_char,
+ XPointer text,
+ XPointer *list,
+ int count)
{
int length;
@@ -105,22 +106,22 @@ copy_list(is_wide_char, text, list, count)
}
static int
-_XTextPropertyToTextList(lcd, dpy, text_prop, to_type, list_ret, count_ret)
- XLCd lcd;
- Display *dpy;
- XTextProperty *text_prop;
- char *to_type;
- XPointer **list_ret;
- int *count_ret;
+_XTextPropertyToTextList(
+ XLCd lcd,
+ Display *dpy,
+ const XTextProperty *text_prop,
+ const char *to_type,
+ XPointer **list_ret,
+ int *count_ret)
{
- XlcConv conv;
- char *from_type;
+ XlcConv conv = NULL;
+ const char *from_type;
XPointer from, to, buf;
char *str_ptr, *last_ptr;
Atom encoding;
- int from_left, to_left, buf_len, ret;
+ int from_left, to_left, buf_len, ret, len;
int unconv_num, nitems = text_prop->nitems;
- Bool is_wide_char = False;
+ Bool is_wide_char = False, do_strcpy = False;
if (strcmp(XlcNWideChar, to_type) == 0)
is_wide_char = True;
@@ -137,6 +138,8 @@ _XTextPropertyToTextList(lcd, dpy, text_prop, to_type, list_ret, count_ret)
encoding = text_prop->encoding;
if (encoding == XA_STRING)
from_type = XlcNString;
+ else if (encoding == XInternAtom(dpy, "UTF8_STRING", False))
+ from_type = XlcNUtf8String;
else if (encoding == XInternAtom(dpy, "COMPOUND_TEXT", False))
from_type = XlcNCompoundText;
else if (encoding == XInternAtom(dpy, XLC_PUBLIC(lcd, encoding_name), False))
@@ -145,21 +148,29 @@ _XTextPropertyToTextList(lcd, dpy, text_prop, to_type, list_ret, count_ret)
return XConverterNotFound;
if (is_wide_char) {
- buf_len = text_prop->nitems + 1;
- buf = (XPointer) Xmalloc(buf_len * sizeof(wchar_t));
+ buf_len = (text_prop->nitems + 1) * sizeof(wchar_t);;
} else {
- buf_len = text_prop->nitems * XLC_PUBLIC(lcd, mb_cur_max) + 1;
- buf = (XPointer) Xmalloc(buf_len);
+ if (strcmp(to_type, XlcNUtf8String) == 0)
+ buf_len = text_prop->nitems * 6 + 1;
+ else
+ buf_len = text_prop->nitems * XLC_PUBLIC(lcd, mb_cur_max) + 1;
}
+ buf = (XPointer) Xmalloc(buf_len);
if (buf == NULL)
return XNoMemory;
to = buf;
to_left = buf_len;
- conv = _XlcOpenConverter(lcd, from_type, lcd, to_type);
- if (conv == NULL) {
- Xfree(buf);
- return XConverterNotFound;
+ /* can be XlcNMultiByte to XlcNMultiByte,
+ or XlcNUtf8String to XlcNUtf8String */
+ if (!strcmp(from_type, to_type)) {
+ do_strcpy = True;
+ } else {
+ conv = _XlcOpenConverter(lcd, from_type, lcd, to_type);
+ if (conv == NULL) {
+ Xfree(buf);
+ return XConverterNotFound;
+ }
}
last_ptr = str_ptr = (char *) text_prop->value;
@@ -171,7 +182,17 @@ _XTextPropertyToTextList(lcd, dpy, text_prop, to_type, list_ret, count_ret)
from_left = str_ptr - last_ptr;
last_ptr = str_ptr;
- ret = _XlcConvert(conv, &from, &from_left, &to, &to_left, NULL, 0);
+ if (do_strcpy) {
+ len = min(from_left, to_left);
+ strncpy(to, from, len);
+ from += len;
+ to += len;
+ from_left -= len;
+ to_left -= len;
+ ret = 0;
+ } else {
+ ret = _XlcConvert(conv, &from, &from_left, &to, &to_left, NULL, 0);
+ }
if (ret < 0)
continue;
@@ -191,20 +212,24 @@ _XTextPropertyToTextList(lcd, dpy, text_prop, to_type, list_ret, count_ret)
to++;
to_left--;
}
- _XlcResetConverter(conv);
+ if (! do_strcpy)
+ _XlcResetConverter(conv);
} else
str_ptr++;
nitems--;
}
- _XlcCloseConverter(conv);
+ if (! do_strcpy)
+ _XlcCloseConverter(conv);
- if (is_wide_char)
+ if (is_wide_char) {
*((wchar_t *) to) = (wchar_t) 0;
- else
+ to_left -= sizeof(wchar_t);
+ } else {
*((char *) to) = '\0';
- to_left--;
+ to_left--;
+ }
*list_ret = alloc_list(is_wide_char, *count_ret, buf_len - to_left);
if (*list_ret)
@@ -216,33 +241,45 @@ _XTextPropertyToTextList(lcd, dpy, text_prop, to_type, list_ret, count_ret)
}
int
-_XmbTextPropertyToTextList(lcd, dpy, text_prop, list_ret, count_ret)
- XLCd lcd;
- Display *dpy;
- XTextProperty *text_prop;
- char ***list_ret;
- int *count_ret;
+_XmbTextPropertyToTextList(
+ XLCd lcd,
+ Display *dpy,
+ const XTextProperty *text_prop,
+ char ***list_ret,
+ int *count_ret)
{
return _XTextPropertyToTextList(lcd, dpy, text_prop, XlcNMultiByte,
(XPointer **) list_ret, count_ret);
}
int
-_XwcTextPropertyToTextList(lcd, dpy, text_prop, list_ret, count_ret)
- XLCd lcd;
- Display *dpy;
- XTextProperty *text_prop;
- wchar_t ***list_ret;
- int *count_ret;
+_XwcTextPropertyToTextList(
+ XLCd lcd,
+ Display *dpy,
+ const XTextProperty *text_prop,
+ wchar_t ***list_ret,
+ int *count_ret)
{
return _XTextPropertyToTextList(lcd, dpy, text_prop, XlcNWideChar,
(XPointer **) list_ret, count_ret);
}
+int
+_Xutf8TextPropertyToTextList(
+ XLCd lcd,
+ Display *dpy,
+ const XTextProperty *text_prop,
+ char ***list_ret,
+ int *count_ret)
+{
+ return _XTextPropertyToTextList(lcd, dpy, text_prop, XlcNUtf8String,
+ (XPointer **) list_ret, count_ret);
+}
+
void
-_XwcFreeStringList(lcd, list)
- XLCd lcd;
- wchar_t **list;
+_XwcFreeStringList(
+ XLCd lcd,
+ wchar_t **list)
{
if (list) {
if (*list)
diff --git a/src/xlibi18n/lcPubWrap.c b/src/xlibi18n/lcPubWrap.c
index f9eeb244..cbbb65c2 100644
--- a/src/xlibi18n/lcPubWrap.c
+++ b/src/xlibi18n/lcPubWrap.c
@@ -23,19 +23,13 @@
* Author: Katsuhisa Yano TOSHIBA Corp.
* mopi@osa.ilab.toshiba.co.jp
*/
+/* $XFree86: xc/lib/X11/lcPubWrap.c,v 1.4 2001/01/17 19:41:55 dawes Exp $ */
#include "Xlibint.h"
#include "XlcPubI.h"
-#if NeedVarargsPrototypes
char *
_XGetLCValues(XLCd lcd, ...)
-#else
-char *
-_XGetLCValues(lcd, va_alist)
- XLCd lcd;
- va_dcl
-#endif
{
va_list var;
XlcArgList args;
@@ -43,11 +37,11 @@ _XGetLCValues(lcd, va_alist)
int num_args;
XLCdPublicMethodsPart *methods = XLC_PUBLIC_METHODS(lcd);
- Va_start(var, lcd);
+ va_start(var, lcd);
_XlcCountVaList(var, &num_args);
va_end(var);
- Va_start(var, lcd);
+ va_start(var, lcd);
_XlcVaToArgList(var, num_args, &args);
va_end(var);
@@ -62,8 +56,8 @@ _XGetLCValues(lcd, va_alist)
}
void
-_XlcDestroyLC(lcd)
- XLCd lcd;
+_XlcDestroyLC(
+ XLCd lcd)
{
XLCdPublicMethods methods = (XLCdPublicMethods) lcd->methods;
@@ -71,9 +65,9 @@ _XlcDestroyLC(lcd)
}
XLCd
-_XlcCreateLC(name, methods)
- char *name;
- XLCdMethods methods;
+_XlcCreateLC(
+ const char *name,
+ XLCdMethods methods)
{
XLCdPublicMethods pub_methods = (XLCdPublicMethods) methods;
XLCd lcd;
diff --git a/src/xlibi18n/lcPublic.c b/src/xlibi18n/lcPublic.c
index c72669ef..7b5e4230 100644
--- a/src/xlibi18n/lcPublic.c
+++ b/src/xlibi18n/lcPublic.c
@@ -23,17 +23,23 @@
* Author: Katsuhisa Yano TOSHIBA Corp.
* mopi@osa.ilab.toshiba.co.jp
*/
+/* $XFree86: xc/lib/X11/lcPublic.c,v 1.11 2001/11/16 00:52:28 dawes Exp $ */
#include <stdio.h>
#include "Xlibint.h"
#include "XlcPubI.h"
-static char *default_string();
+static const char *
+default_string(
+ XLCd lcd)
+{
+ return XLC_PUBLIC(lcd, default_string);
+}
-static XLCd create();
-static Bool initialize();
-static void destroy();
-static char *get_values();
+static XLCd create (const char *name, XLCdMethods methods);
+static Bool initialize (XLCd lcd);
+static void destroy (XLCd lcd);
+static char *get_values (XLCd lcd, XlcArgList args, int num_args);
static XLCdPublicMethodsRec publicMethods = {
{
@@ -44,8 +50,10 @@ static XLCdPublicMethodsRec publicMethods = {
_XrmDefaultInitParseInfo,
_XmbTextPropertyToTextList,
_XwcTextPropertyToTextList,
+ _Xutf8TextPropertyToTextList,
_XmbTextListToTextProperty,
_XwcTextListToTextProperty,
+ _Xutf8TextListToTextProperty,
_XwcFreeStringList,
default_string,
NULL,
@@ -63,17 +71,10 @@ static XLCdPublicMethodsRec publicMethods = {
XLCdMethods _XlcPublicMethods = (XLCdMethods) &publicMethods;
-static char *
-default_string(lcd)
- XLCd lcd;
-{
- return XLC_PUBLIC(lcd, default_string);
-}
-
static XLCd
-create(name, methods)
- char *name;
- XLCdMethods methods;
+create(
+ const char *name,
+ XLCdMethods methods)
{
XLCd lcd;
XLCdPublicMethods new;
@@ -91,7 +92,7 @@ create(name, methods)
new = (XLCdPublicMethods) Xmalloc(sizeof(XLCdPublicMethodsRec));
if (new == NULL)
goto err;
- *new = *((XLCdPublicMethods) methods);
+ memcpy(new,methods,sizeof(XLCdPublicMethodsRec));
lcd->methods = (XLCdMethods) new;
return lcd;
@@ -102,8 +103,8 @@ err:
}
static Bool
-load_public(lcd)
- XLCd lcd;
+load_public(
+ XLCd lcd)
{
XLCdPublicPart *pub = XLC_PUBLIC_PART(lcd);
char **values, *str;
@@ -137,8 +138,8 @@ load_public(lcd)
}
static Bool
-initialize_core(lcd)
- XLCd lcd;
+initialize_core(
+ XLCd lcd)
{
XLCdMethods methods = lcd->methods;
XLCdMethods core = &publicMethods.core;
@@ -172,12 +173,18 @@ initialize_core(lcd)
if (methods->wc_text_prop_to_list == NULL)
methods->wc_text_prop_to_list = core->wc_text_prop_to_list;
+ if (methods->utf8_text_prop_to_list == NULL)
+ methods->utf8_text_prop_to_list = core->utf8_text_prop_to_list;
+
if (methods->mb_text_list_to_prop == NULL)
methods->mb_text_list_to_prop = core->mb_text_list_to_prop;
if (methods->wc_text_list_to_prop == NULL)
methods->wc_text_list_to_prop = core->wc_text_list_to_prop;
+ if (methods->utf8_text_list_to_prop == NULL)
+ methods->utf8_text_list_to_prop = core->utf8_text_list_to_prop;
+
if (methods->wc_free_string_list == NULL)
methods->wc_free_string_list = core->wc_free_string_list;
@@ -187,21 +194,18 @@ initialize_core(lcd)
return True;
}
-extern Bool _XlcInitCTInfo();
-
static Bool
-initialize(lcd)
- XLCd lcd;
+initialize(
+ XLCd lcd)
{
XLCdPublicMethodsPart *methods = XLC_PUBLIC_METHODS(lcd);
XLCdPublicMethodsPart *pub_methods = &publicMethods.pub;
XLCdPublicPart *pub = XLC_PUBLIC_PART(lcd);
char *name;
-#if !defined(X_NOT_STDC_ENV) && !defined(X_LOCALE)
+#if !defined(X_LOCALE)
int len;
char sinamebuf[256];
char* siname;
- char *_XlcMapOSLocaleName();
#endif
_XlcInitCTInfo();
@@ -210,25 +214,29 @@ initialize(lcd)
return False;
name = lcd->core->name;
-#if !defined(X_NOT_STDC_ENV) && !defined(X_LOCALE)
+#if !defined(X_LOCALE)
/*
- * _XlMapOSLOcaleName will return the same string or a substring
+ * _XlMapOSLocaleName will return the same string or a substring
* of name, so strlen(name) is okay
*/
- if ((len = strlen(name)) < sizeof sinamebuf) siname = sinamebuf;
- else siname = Xmalloc (len + 1);
- if (siname == NULL) return False;
+ if ((len = strlen(name)) < sizeof sinamebuf)
+ siname = sinamebuf;
+ else
+ siname = Xmalloc (len + 1);
+ if (siname == NULL)
+ return False;
name = _XlcMapOSLocaleName(name, siname);
#endif
/* _XlcResolveLocaleName will lookup the SI's name for the locale */
if (_XlcResolveLocaleName(name, pub) == 0) {
-#if !defined(X_NOT_STDC_ENV) && !defined(X_LOCALE)
+#if !defined(X_LOCALE)
if (siname != sinamebuf) Xfree (siname);
#endif
return False;
}
-#if !defined(X_NOT_STDC_ENV) && !defined(X_LOCALE)
- if (siname != sinamebuf) Xfree (siname);
+#if !defined(X_LOCALE)
+ if (siname != sinamebuf)
+ Xfree (siname);
#endif
if (pub->default_string == NULL)
@@ -244,8 +252,8 @@ initialize(lcd)
}
static void
-destroy_core(lcd)
- XLCd lcd;
+destroy_core(
+ XLCd lcd)
{
if (lcd->core) {
if (lcd->core->name)
@@ -260,8 +268,8 @@ destroy_core(lcd)
}
static void
-destroy(lcd)
- XLCd lcd;
+destroy(
+ XLCd lcd)
{
XLCdPublicPart *pub = XLC_PUBLIC_PART(lcd);
@@ -293,10 +301,10 @@ static XlcResource resources[] = {
};
static char *
-get_values(lcd, args, num_args)
- register XLCd lcd;
- register XlcArgList args;
- register int num_args;
+get_values(
+ XLCd lcd,
+ XlcArgList args,
+ int num_args)
{
XLCdPublic pub = (XLCdPublic) lcd->core;
diff --git a/src/xlibi18n/lcRM.c b/src/xlibi18n/lcRM.c
index 0824a6f7..23ce80d3 100644
--- a/src/xlibi18n/lcRM.c
+++ b/src/xlibi18n/lcRM.c
@@ -22,101 +22,202 @@
*
* Author: Katsuhisa Yano TOSHIBA Corp.
* mopi@osa.ilab.toshiba.co.jp
+ * Bug fixes: Bruno Haible XFree86 Inc.
*/
+/* $XFree86: xc/lib/X11/lcRM.c,v 1.4 2000/11/28 18:49:48 dawes Exp $ */
#include "Xlibint.h"
#include "XlcPubI.h"
#include <stdio.h>
-typedef struct _StateRec {
- XLCd lcd;
- XlcConv conv;
-} StateRec, *State;
+/*
+ * Default implementation of methods for Xrm parsing.
+ */
+
+/* ======================= Unibyte implementation ======================= */
+
+/* Only for efficiency, to speed up things. */
+
+/* This implementation must keep the locale, for lcname. */
+typedef struct _UbStateRec {
+ XLCd lcd;
+} UbStateRec, *UbState;
+
+/* Sets the state to the initial state.
+ Initiates a sequence of calls to mbchar. */
+static void
+ub_mbinit(
+ XPointer state)
+{
+}
+
+/* Transforms one multibyte character, and return a 'char' in the same
+ parsing class. Returns the number of consumed bytes in *lenp. */
+static char
+ub_mbchar(
+ XPointer state,
+ const char *str,
+ int *lenp)
+{
+ *lenp = 1;
+ return *str;
+}
+
+/* Terminates a sequence of calls to mbchar. */
+static void
+ub_mbfinish(
+ XPointer state)
+{
+}
+/* Returns the name of the state's locale, as a static string. */
+static const char *
+ub_lcname(
+ XPointer state)
+{
+ return ((UbState) state)->lcd->core->name;
+}
+
+/* Frees the state, which was allocated by _XrmDefaultInitParseInfo. */
static void
-mbinit(state)
- XPointer state;
+ub_destroy(
+ XPointer state)
{
- _XlcResetConverter(((State) state)->conv);
+ _XCloseLC(((UbState) state)->lcd);
+ Xfree((char *) state);
}
+static const XrmMethodsRec ub_methods = {
+ ub_mbinit,
+ ub_mbchar,
+ ub_mbfinish,
+ ub_lcname,
+ ub_destroy
+};
+
+/* ======================= Multibyte implementation ======================= */
+
+/* This implementation uses an XlcConv from XlcNMultiByte to XlcNWideChar. */
+typedef struct _MbStateRec {
+ XLCd lcd;
+ XlcConv conv;
+} MbStateRec, *MbState;
+
+/* Sets the state to the initial state.
+ Initiates a sequence of calls to mbchar. */
+static void
+mb_mbinit(
+ XPointer state)
+{
+ _XlcResetConverter(((MbState) state)->conv);
+}
+
+/* Transforms one multibyte character, and return a 'char' in the same
+ parsing class. Returns the number of consumed bytes in *lenp. */
static char
-mbchar(state, str, lenp)
- XPointer state;
- char *str;
- int *lenp;
+mb_mbchar(
+ XPointer state,
+ const char *str,
+ int *lenp)
{
- XlcConv conv = ((State) state)->conv;
- XlcCharSet charset;
- char *from, *to, buf[BUFSIZ];
- int from_left, to_left;
- XPointer args[1];
+ XlcConv conv = ((MbState) state)->conv;
+ const char *from;
+ wchar_t *to, wc;
+ int cur_max, i, from_left, to_left, ret;
+
+ cur_max = XLC_PUBLIC(((MbState) state)->lcd, mb_cur_max);
from = str;
- *lenp = from_left = XLC_PUBLIC(((State) state)->lcd, mb_cur_max);
- to = buf;
- to_left = BUFSIZ;
- args[0] = (XPointer) &charset;
-
- _XlcConvert(conv, (XPointer *) &from, &from_left, (XPointer *) &to,
- &to_left, args, 1);
-
+ /* Determine from_left. Avoid overrun error which could occur if
+ from_left > strlen(str). */
+ from_left = cur_max;
+ for (i = 0; i < cur_max; i++)
+ if (str[i] == '\0') {
+ from_left = i;
+ break;
+ }
+ *lenp = from_left;
+
+ to = &wc;
+ to_left = 1;
+
+ ret = _XlcConvert(conv, (XPointer *) &from, &from_left,
+ (XPointer *) &to, &to_left, NULL, 0);
*lenp -= from_left;
- /* XXX */
- return buf[0];
+ if (ret < 0 || to_left > 0) {
+ /* Invalid or incomplete multibyte character seen. */
+ *lenp = 1;
+ return 0x7f;
+ }
+ /* Return a 'char' equivalent to wc. */
+ return (wc >= 0 && wc <= 0x7f ? wc : 0x7f);
}
+/* Terminates a sequence of calls to mbchar. */
static void
-mbfinish(state)
- XPointer state;
+mb_mbfinish(
+ XPointer state)
{
}
-static char *
-lcname(state)
- XPointer state;
+/* Returns the name of the state's locale, as a static string. */
+static const char *
+mb_lcname(
+ XPointer state)
{
- return ((State) state)->lcd->core->name;
+ return ((MbState) state)->lcd->core->name;
}
+/* Frees the state, which was allocated by _XrmDefaultInitParseInfo. */
static void
-destroy(state)
- XPointer state;
+mb_destroy(
+ XPointer state)
{
- _XlcCloseConverter(((State) state)->conv);
- _XCloseLC(((State) state)->lcd);
+ _XlcCloseConverter(((MbState) state)->conv);
+ _XCloseLC(((MbState) state)->lcd);
Xfree((char *) state);
}
-static XrmMethodsRec rm_methods = {
- mbinit,
- mbchar,
- mbfinish,
- lcname,
- destroy
-} ;
+static const XrmMethodsRec mb_methods = {
+ mb_mbinit,
+ mb_mbchar,
+ mb_mbfinish,
+ mb_lcname,
+ mb_destroy
+};
+
+/* ======================= Exported function ======================= */
XrmMethods
-_XrmDefaultInitParseInfo(lcd, rm_state)
- XLCd lcd;
- XPointer *rm_state;
+_XrmDefaultInitParseInfo(
+ XLCd lcd,
+ XPointer *rm_state)
{
- State state;
+ if (XLC_PUBLIC(lcd, mb_cur_max) == 1) {
+ /* Unibyte case. */
+ UbState state = (UbState) Xmalloc(sizeof(UbStateRec));
+ if (state == NULL)
+ return (XrmMethods) NULL;
+
+ state->lcd = lcd;
- state = (State) Xmalloc(sizeof(StateRec));
- if (state == NULL)
- return (XrmMethods) NULL;
+ *rm_state = (XPointer) state;
+ return &ub_methods;
+ } else {
+ /* Multibyte case. */
+ MbState state = (MbState) Xmalloc(sizeof(MbStateRec));
+ if (state == NULL)
+ return (XrmMethods) NULL;
- state->lcd = lcd;
- state->conv = _XlcOpenConverter(lcd, XlcNMultiByte, lcd, XlcNChar);
- if (state->conv == NULL) {
- Xfree((char *) state);
+ state->lcd = lcd;
+ state->conv = _XlcOpenConverter(lcd, XlcNMultiByte, lcd, XlcNWideChar);
+ if (state->conv == NULL) {
+ Xfree((char *) state);
+ return (XrmMethods) NULL;
+ }
- return (XrmMethods) NULL;
+ *rm_state = (XPointer) state;
+ return &mb_methods;
}
-
- *rm_state = (XPointer) state;
-
- return &rm_methods;
}
diff --git a/src/xlibi18n/lcStd.c b/src/xlibi18n/lcStd.c
index 9d938d39..81216aaa 100644
--- a/src/xlibi18n/lcStd.c
+++ b/src/xlibi18n/lcStd.c
@@ -23,16 +23,17 @@
* Author: Katsuhisa Yano TOSHIBA Corp.
* mopi@osa.ilab.toshiba.co.jp
*/
+/* $XFree86: xc/lib/X11/lcStd.c,v 1.6 2003/04/13 19:22:21 dawes Exp $ */
#include "Xlibint.h"
#include "XlcPubI.h"
int
-_Xlcmbtowc(lcd, wstr, str, len)
- XLCd lcd;
- wchar_t *wstr;
- char *str;
- int len;
+_Xlcmbtowc(
+ XLCd lcd,
+ wchar_t *wstr,
+ char *str,
+ int len)
{
static XLCd last_lcd = NULL;
static XlcConv conv = NULL;
@@ -73,10 +74,10 @@ _Xlcmbtowc(lcd, wstr, str, len)
}
int
-_Xlcwctomb(lcd, str, wc)
- XLCd lcd;
- char *str;
- wchar_t wc;
+_Xlcwctomb(
+ XLCd lcd,
+ char *str,
+ wchar_t wc)
{
static XLCd last_lcd = NULL;
static XlcConv conv = NULL;
@@ -116,11 +117,11 @@ _Xlcwctomb(lcd, str, wc)
}
int
-_Xlcmbstowcs(lcd, wstr, str, len)
- XLCd lcd;
- wchar_t *wstr;
- char *str;
- int len;
+_Xlcmbstowcs(
+ XLCd lcd,
+ wchar_t *wstr,
+ char *str,
+ int len)
{
XlcConv conv;
XPointer from, to;
@@ -155,11 +156,11 @@ _Xlcmbstowcs(lcd, wstr, str, len)
}
int
-_Xlcwcstombs(lcd, str, wstr, len)
- XLCd lcd;
- char *str;
- wchar_t *wstr;
- int len;
+_Xlcwcstombs(
+ XLCd lcd,
+ char *str,
+ wchar_t *wstr,
+ int len)
{
XlcConv conv;
XPointer from, to;
@@ -195,51 +196,63 @@ _Xlcwcstombs(lcd, str, wstr, len)
int
-_Xmbtowc(wstr, str, len)
- wchar_t *wstr;
- char *str;
- int len;
+_Xmbtowc(
+ wchar_t *wstr,
+#ifdef ISC
+ char const *str,
+ size_t len
+#else
+ char *str,
+ int len
+#endif
+ )
{
return _Xlcmbtowc((XLCd) NULL, wstr, str, len);
}
int
-_Xmblen(str, len)
- char *str;
- int len;
+_Xmblen(
+#ifdef ISC
+ char const *str,
+ size_t len
+#else
+ char *str,
+ int len
+#endif
+ )
{
return _Xmbtowc((wchar_t *) NULL, str, len);
}
int
-_Xwctomb(str, wc)
- char *str;
- wchar_t wc;
+_Xwctomb(
+ char *str,
+ wchar_t wc)
{
return _Xlcwctomb((XLCd) NULL, str, wc);
}
int
-_Xmbstowcs(wstr, str, len)
- wchar_t *wstr;
- char *str;
- int len;
+_Xmbstowcs(
+ wchar_t *wstr,
+ char *str,
+ int len)
{
return _Xlcmbstowcs((XLCd) NULL, wstr, str, len);
}
int
-_Xwcstombs(str, wstr, len)
- char *str;
- wchar_t *wstr;
- int len;
+_Xwcstombs(
+ char *str,
+ wchar_t *wstr,
+ int len)
{
return _Xlcwcstombs((XLCd) NULL, str, wstr, len);
}
wchar_t *
-_Xwcscpy(wstr1, wstr2)
- register wchar_t *wstr1, *wstr2;
+_Xwcscpy(
+ register wchar_t *wstr1, register wchar_t *wstr2)
{
wchar_t *wstr_tmp = wstr1;
@@ -250,9 +263,9 @@ _Xwcscpy(wstr1, wstr2)
}
wchar_t *
-_Xwcsncpy(wstr1, wstr2, len)
- register wchar_t *wstr1, *wstr2;
- register int len;
+_Xwcsncpy(
+ register wchar_t *wstr1, register wchar_t *wstr2,
+ register int len)
{
wchar_t *wstr_tmp = wstr1;
@@ -267,8 +280,8 @@ _Xwcsncpy(wstr1, wstr2, len)
}
int
-_Xwcslen(wstr)
- register wchar_t *wstr;
+_Xwcslen(
+ register wchar_t *wstr)
{
register wchar_t *wstr_ptr = wstr;
@@ -279,8 +292,8 @@ _Xwcslen(wstr)
}
int
-_Xwcscmp(wstr1, wstr2)
- register wchar_t *wstr1, *wstr2;
+_Xwcscmp(
+ register wchar_t *wstr1, register wchar_t *wstr2)
{
for ( ; *wstr1 && *wstr2; wstr1++, wstr2++)
if (*wstr1 != *wstr2)
@@ -290,9 +303,9 @@ _Xwcscmp(wstr1, wstr2)
}
int
-_Xwcsncmp(wstr1, wstr2, len)
- register wchar_t *wstr1, *wstr2;
- register int len;
+_Xwcsncmp(
+ register wchar_t *wstr1, register wchar_t *wstr2,
+ register int len)
{
for ( ; *wstr1 && *wstr2 && len > 0; wstr1++, wstr2++, len--)
if (*wstr1 != *wstr2)
@@ -303,3 +316,52 @@ _Xwcsncmp(wstr1, wstr2, len)
return *wstr1 - *wstr2;
}
+
+
+int
+_Xlcmbstoutf8(
+ XLCd lcd,
+ char *ustr,
+ const char *str,
+ int len)
+{
+ XlcConv conv;
+ XPointer from, to;
+ int from_left, to_left, ret;
+
+ if (lcd == NULL) {
+ lcd = _XlcCurrentLC();
+ if (lcd == NULL)
+ return -1;
+ }
+
+ conv = _XlcOpenConverter(lcd, XlcNMultiByte, lcd, XlcNUtf8String);
+ if (conv == NULL)
+ return -1;
+
+ from = (XPointer) str;
+ from_left = strlen(str);
+ to = (XPointer) ustr;
+ to_left = len;
+
+ if (_XlcConvert(conv, &from, &from_left, &to, &to_left, NULL, 0) < 0)
+ ret = -1;
+ else {
+ ret = len - to_left;
+ if (ustr && to_left > 0)
+ ustr[ret] = '\0';
+ }
+
+ _XlcCloseConverter(conv);
+
+ return ret;
+}
+
+int
+_Xmbstoutf8(
+ char *ustr,
+ const char *str,
+ int len)
+{
+ return _Xlcmbstoutf8((XLCd) NULL, ustr, str, len);
+}
diff --git a/src/xlibi18n/lcTxtPr.c b/src/xlibi18n/lcTxtPr.c
index 1efdb278..a58ef48b 100644
--- a/src/xlibi18n/lcTxtPr.c
+++ b/src/xlibi18n/lcTxtPr.c
@@ -23,6 +23,7 @@
* Author: Katsuhisa Yano TOSHIBA Corp.
* mopi@osa.ilab.toshiba.co.jp
*/
+/* $XFree86: xc/lib/X11/lcTxtPr.c,v 3.3 2001/01/17 19:41:55 dawes Exp $ */
#include "Xlibint.h"
#include "XlcPubI.h"
@@ -31,14 +32,14 @@
#include <stdio.h>
static int
-get_buf_size(is_wide_char, list, count)
- Bool is_wide_char;
- XPointer list;
- int count;
+get_buf_size(
+ Bool is_wide_char,
+ XPointer list,
+ int count)
{
- register int length = 0;
- register char **mb_list;
- register wchar_t **wc_list;
+ int length = 0;
+ char **mb_list;
+ wchar_t **wc_list;
if (list == NULL)
return 0;
@@ -64,23 +65,23 @@ get_buf_size(is_wide_char, list, count)
}
static int
-_XTextListToTextProperty(lcd, dpy, from_type, list, count, style, text_prop)
- XLCd lcd;
- Display *dpy;
- char *from_type;
- XPointer list;
- int count;
- XICCEncodingStyle style;
- XTextProperty *text_prop;
+_XTextListToTextProperty(
+ XLCd lcd,
+ Display *dpy,
+ const char *from_type,
+ XPointer list,
+ int count,
+ XICCEncodingStyle style,
+ XTextProperty *text_prop)
{
Atom encoding;
XlcConv conv;
- char *to_type;
- char **mb_list;
- wchar_t **wc_list;
+ const char *to_type;
+ char **mb_list = NULL;
+ wchar_t **wc_list = NULL;
XPointer from;
char *to, *buf, *value;
- int from_left, to_left, buf_len, nitems, unconv_num, ret, i;
+ int from_left, to_left, buf_len, nitems, unconv_num = 0, ret, i;
Bool is_wide_char = False;
if (strcmp(XlcNWideChar, from_type) == 0)
@@ -96,6 +97,10 @@ _XTextListToTextProperty(lcd, dpy, from_type, list, count, style, text_prop)
encoding = XA_STRING;
to_type = XlcNString;
break;
+ case XUTF8StringStyle:
+ encoding = XInternAtom(dpy, "UTF8_STRING", False);
+ to_type = XlcNUtf8String;
+ break;
case XCompoundTextStyle:
encoding = XInternAtom(dpy, "COMPOUND_TEXT", False);
to_type = XlcNCompoundText;
@@ -209,27 +214,40 @@ done:
}
int
-_XmbTextListToTextProperty(lcd, dpy, list, count, style, text_prop)
- XLCd lcd;
- Display *dpy;
- char **list;
- int count;
- XICCEncodingStyle style;
- XTextProperty *text_prop;
+_XmbTextListToTextProperty(
+ XLCd lcd,
+ Display *dpy,
+ char **list,
+ int count,
+ XICCEncodingStyle style,
+ XTextProperty *text_prop)
{
return _XTextListToTextProperty(lcd, dpy, XlcNMultiByte, (XPointer) list,
count, style, text_prop);
}
int
-_XwcTextListToTextProperty(lcd, dpy, list, count, style, text_prop)
- XLCd lcd;
- Display *dpy;
- wchar_t **list;
- int count;
- XICCEncodingStyle style;
- XTextProperty *text_prop;
+_XwcTextListToTextProperty(
+ XLCd lcd,
+ Display *dpy,
+ wchar_t **list,
+ int count,
+ XICCEncodingStyle style,
+ XTextProperty *text_prop)
{
return _XTextListToTextProperty(lcd, dpy, XlcNWideChar, (XPointer) list,
count, style, text_prop);
}
+
+int
+_Xutf8TextListToTextProperty(
+ XLCd lcd,
+ Display *dpy,
+ char **list,
+ int count,
+ XICCEncodingStyle style,
+ XTextProperty *text_prop)
+{
+ return _XTextListToTextProperty(lcd, dpy, XlcNUtf8String, (XPointer) list,
+ count, style, text_prop);
+}
diff --git a/src/xlibi18n/lcUTF8.c b/src/xlibi18n/lcUTF8.c
index 1f40704f..0994e965 100644
--- a/src/xlibi18n/lcUTF8.c
+++ b/src/xlibi18n/lcUTF8.c
@@ -129,16 +129,8 @@ typedef unsigned int ucs4_t;
typedef struct _Utf8ConvRec {
const char *name;
XrmQuark xrm_name;
-#if NeedFunctionPrototypes
int (* cstowc) (XlcConv, ucs4_t *, unsigned char const *, int);
-#else
- int (* cstowc) ();
-#endif
-#if NeedFunctionPrototypes
int (* wctocs) (XlcConv, unsigned char *, ucs4_t, int);
-#else
- int (* wctocs) ();
-#endif
} Utf8ConvRec, *Utf8Conv;
/*
@@ -1764,7 +1756,7 @@ create_tofontcs_conv(
if (!strcmp(preferred[k]->name, name))
break;
if (k < 0) {
- /* For fonts "ISO10646-1" means not utf8 but ucs2.*/
+ /* For fonts "ISO10646-1" means ucs2, not utf8.*/
if (!strcmp("ISO10646-1", name)) {
preferred[num++] = &all_charsets[ucs2_conv_index];
continue;
diff --git a/src/xlibi18n/lcUniConv/8bit_tab_to_h.c b/src/xlibi18n/lcUniConv/8bit_tab_to_h.c
index 1d794841..ae5340cf 100644
--- a/src/xlibi18n/lcUniConv/8bit_tab_to_h.c
+++ b/src/xlibi18n/lcUniConv/8bit_tab_to_h.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/8bit_tab_to_h.c,v 1.3 2001/02/09 00:02:54 dawes Exp $ */
+/* $XFree86: xc/lib/X11/lcUniConv/8bit_tab_to_h.c,v 1.2 2000/12/04 18:49:30 dawes Exp $ */
/*
* Generates an 8-bit character set table from a .TXT table as found on
diff --git a/src/xlibi18n/lcUniConv/README b/src/xlibi18n/lcUniConv/README
index 844f090b..5ea4f056 100644
--- a/src/xlibi18n/lcUniConv/README
+++ b/src/xlibi18n/lcUniConv/README
@@ -1,3 +1,5 @@
+$XFree86$
+
The files in this directory are taken from the libiconv-1.1 package.
The *.h files were generated from tables (mostly from ftp.unicode.org) using
@@ -6,5 +8,5 @@ optimizations were applied by hand.
If you find a bug in these files, instead of modifying them in XFree86
and let it diverge from libiconv, please notify the libiconv maintainer
-(currently <haible@clisp.cons.org>) so he can fix both in synch.
+(currently <bruno@clisp.org>) so he can fix both in synch.
diff --git a/src/xlibi18n/lcUniConv/armscii_8.h b/src/xlibi18n/lcUniConv/armscii_8.h
index 32b4e9c5..6ca102ea 100644
--- a/src/xlibi18n/lcUniConv/armscii_8.h
+++ b/src/xlibi18n/lcUniConv/armscii_8.h
@@ -6,8 +6,8 @@
static const unsigned short armscii_8_2uni[96] = {
/* 0xa0 */
- 0x00a0, 0x2741, 0x00a7, 0x0589, 0x0029, 0x0028, 0x00bb, 0x00ab,
- 0x2014, 0x002e, 0x055d, 0x002c, 0x002d, 0x055f, 0x2026, 0x055c,
+ 0x00a0, 0xfffd, 0x0587, 0x0589, 0x0029, 0x0028, 0x00bb, 0x00ab,
+ 0x2014, 0x002e, 0x055d, 0x002c, 0x002d, 0x058a, 0x2026, 0x055c,
/* 0xb0 */
0x055b, 0x055e, 0x0531, 0x0561, 0x0532, 0x0562, 0x0533, 0x0563,
0x0534, 0x0564, 0x0535, 0x0565, 0x0536, 0x0566, 0x0537, 0x0567,
@@ -22,26 +22,32 @@ static const unsigned short armscii_8_2uni[96] = {
0x054c, 0x057c, 0x054d, 0x057d, 0x054e, 0x057e, 0x054f, 0x057f,
/* 0xf0 */
0x0550, 0x0580, 0x0551, 0x0581, 0x0552, 0x0582, 0x0553, 0x0583,
- 0x0554, 0x0584, 0x0555, 0x0585, 0x0556, 0x0586, 0x2019, 0x0027,
+ 0x0554, 0x0584, 0x0555, 0x0585, 0x0556, 0x0586, 0x055a, 0xfffd,
};
static int
armscii_8_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
{
unsigned char c = *s;
- if (c < 0xa0)
+ if (c < 0xa0) {
*pwc = (ucs4_t) c;
- else
- *pwc = (ucs4_t) armscii_8_2uni[c-0xa0];
- return 1;
+ return 1;
+ }
+ else {
+ unsigned short wc = armscii_8_2uni[c-0xa0];
+ if (wc != 0xfffd) {
+ *pwc = (ucs4_t) wc;
+ return 1;
+ }
+ }
+ return RET_ILSEQ;
}
-static const unsigned char armscii_8_page00[16] = {
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0xff, /* 0x20-0x27 */
+static const unsigned char armscii_8_page00[8] = {
0xa5, 0xa4, 0x2a, 0x2b, 0xab, 0xac, 0xa9, 0x2f, /* 0x28-0x2f */
};
static const unsigned char armscii_8_page00_1[32] = {
- 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa2, /* 0xa0-0xa7 */
+ 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
0x00, 0x00, 0x00, 0xa7, 0x00, 0x00, 0x00, 0x00, /* 0xa8-0xaf */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xb0-0xb7 */
0x00, 0x00, 0x00, 0xa6, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
@@ -52,17 +58,17 @@ static const unsigned char armscii_8_page05[96] = {
0xd0, 0xd2, 0xd4, 0xd6, 0xd8, 0xda, 0xdc, 0xde, /* 0x40-0x47 */
0xe0, 0xe2, 0xe4, 0xe6, 0xe8, 0xea, 0xec, 0xee, /* 0x48-0x4f */
0xf0, 0xf2, 0xf4, 0xf6, 0xf8, 0xfa, 0xfc, 0x00, /* 0x50-0x57 */
- 0x00, 0x00, 0x00, 0xb0, 0xaf, 0xaa, 0xb1, 0xad, /* 0x58-0x5f */
+ 0x00, 0x00, 0xfe, 0xb0, 0xaf, 0xaa, 0xb1, 0x00, /* 0x58-0x5f */
0x00, 0xb3, 0xb5, 0xb7, 0xb9, 0xbb, 0xbd, 0xbf, /* 0x60-0x67 */
0xc1, 0xc3, 0xc5, 0xc7, 0xc9, 0xcb, 0xcd, 0xcf, /* 0x68-0x6f */
0xd1, 0xd3, 0xd5, 0xd7, 0xd9, 0xdb, 0xdd, 0xdf, /* 0x70-0x77 */
0xe1, 0xe3, 0xe5, 0xe7, 0xe9, 0xeb, 0xed, 0xef, /* 0x78-0x7f */
- 0xf1, 0xf3, 0xf5, 0xf7, 0xf9, 0xfb, 0xfd, 0x00, /* 0x80-0x87 */
- 0x00, 0xa3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
+ 0xf1, 0xf3, 0xf5, 0xf7, 0xf9, 0xfb, 0xfd, 0xa2, /* 0x80-0x87 */
+ 0x00, 0xa3, 0xad, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
};
static const unsigned char armscii_8_page20[24] = {
0x00, 0x00, 0x00, 0x00, 0xa8, 0x00, 0x00, 0x00, /* 0x10-0x17 */
- 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0x00, /* 0x20-0x27 */
};
@@ -70,12 +76,12 @@ static int
armscii_8_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
{
unsigned char c = 0;
- if (wc < 0x0020) {
+ if (wc < 0x0028) {
*r = wc;
return 1;
}
- else if (wc >= 0x0020 && wc < 0x0030)
- c = armscii_8_page00[wc-0x0020];
+ else if (wc >= 0x0028 && wc < 0x0030)
+ c = armscii_8_page00[wc-0x0028];
else if (wc >= 0x0030 && wc < 0x00a0)
c = wc;
else if (wc >= 0x00a0 && wc < 0x00c0)
@@ -84,8 +90,6 @@ armscii_8_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
c = armscii_8_page05[wc-0x0530];
else if (wc >= 0x2010 && wc < 0x2028)
c = armscii_8_page20[wc-0x2010];
- else if (wc == 0x2741)
- c = 0xa1;
if (c != 0) {
*r = c;
return 1;
diff --git a/src/xlibi18n/lcUniConv/ascii.h b/src/xlibi18n/lcUniConv/ascii.h
index 183de0bb..db8677d7 100644
--- a/src/xlibi18n/lcUniConv/ascii.h
+++ b/src/xlibi18n/lcUniConv/ascii.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/ascii.h,v 1.3 2000/11/29 17:40:28 dawes Exp $ */
+/* $XFree86$ */
/*
* ASCII
diff --git a/src/xlibi18n/lcUniConv/big5.h b/src/xlibi18n/lcUniConv/big5.h
index 83e5f400..b356b5eb 100644
--- a/src/xlibi18n/lcUniConv/big5.h
+++ b/src/xlibi18n/lcUniConv/big5.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/big5.h,v 1.1 2000/11/28 18:50:03 dawes Exp $ */
+/* $XFree86: xc/lib/X11/lcUniConv/big5.h,v 1.1tsi Exp $ */
/*
* BIG5
@@ -4103,7 +4103,7 @@ big5_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
{
if (n >= 2) {
const Summary16 *summary = NULL;
- if (wc >= 0x0000 && wc < 0x0100)
+ if (wc < 0x0100)
summary = &big5_uni2indx_page00[(wc>>4)];
else if (wc >= 0x0200 && wc < 0x0460)
summary = &big5_uni2indx_page02[(wc>>4)-0x020];
diff --git a/src/xlibi18n/lcUniConv/big5_emacs.h b/src/xlibi18n/lcUniConv/big5_emacs.h
index 91475539..4a8f6ed5 100644
--- a/src/xlibi18n/lcUniConv/big5_emacs.h
+++ b/src/xlibi18n/lcUniConv/big5_emacs.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/big5_emacs.h,v 1.1 2000/11/28 18:50:06 dawes Exp $ */
+/* $XFree86$ */
/*
* BIG5-0 and BIG5-1
diff --git a/src/xlibi18n/lcUniConv/cjk_tab_to_h.c b/src/xlibi18n/lcUniConv/cjk_tab_to_h.c
index 1335fae7..f3cc1e0e 100644
--- a/src/xlibi18n/lcUniConv/cjk_tab_to_h.c
+++ b/src/xlibi18n/lcUniConv/cjk_tab_to_h.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/cjk_tab_to_h.c,v 1.2 2000/12/04 18:49:31 dawes Exp $ */
+/* $XFree86$ */
/*
* Generates a CJK character set table from a .TXT table as found on
diff --git a/src/xlibi18n/lcUniConv/cp1133.h b/src/xlibi18n/lcUniConv/cp1133.h
index da7f5896..8b7ff548 100644
--- a/src/xlibi18n/lcUniConv/cp1133.h
+++ b/src/xlibi18n/lcUniConv/cp1133.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/cp1133.h,v 1.3 2000/11/29 17:40:28 dawes Exp $ */
+/* $XFree86$ */
/*
* IBM-CP1133
diff --git a/src/xlibi18n/lcUniConv/cp1251.h b/src/xlibi18n/lcUniConv/cp1251.h
index f3f7577f..166d5ba8 100644
--- a/src/xlibi18n/lcUniConv/cp1251.h
+++ b/src/xlibi18n/lcUniConv/cp1251.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/cp1251.h,v 1.1 2000/12/04 18:49:32 dawes Exp $ */
+/* $XFree86$ */
/*
* CP1251
diff --git a/src/xlibi18n/lcUniConv/cp1255.h b/src/xlibi18n/lcUniConv/cp1255.h
index 17b843ee..f8e175d8 100644
--- a/src/xlibi18n/lcUniConv/cp1255.h
+++ b/src/xlibi18n/lcUniConv/cp1255.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/cp1255.h,v 1.1 2000/12/04 18:49:33 dawes Exp $ */
+/* $XFree86$ */
/*
* CP1255
diff --git a/src/xlibi18n/lcUniConv/cp1256.h b/src/xlibi18n/lcUniConv/cp1256.h
index 5d4051bf..5097762a 100644
--- a/src/xlibi18n/lcUniConv/cp1256.h
+++ b/src/xlibi18n/lcUniConv/cp1256.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/cp1256.h,v 1.1 2000/12/04 18:49:34 dawes Exp $ */
+/* $XFree86$ */
/*
* CP1256
diff --git a/src/xlibi18n/lcUniConv/gb2312.h b/src/xlibi18n/lcUniConv/gb2312.h
index 7337e0b5..db900a47 100644
--- a/src/xlibi18n/lcUniConv/gb2312.h
+++ b/src/xlibi18n/lcUniConv/gb2312.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/gb2312.h,v 1.4 2001/08/09 19:14:07 dawes Exp $ */
+/* $XFree86: xc/lib/X11/lcUniConv/gb2312.h,v 1.4tsi Exp $ */
/*
* GB2312.1980-0
@@ -2518,7 +2518,7 @@ gb2312_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
{
if (n >= 2) {
const Summary16 *summary = NULL;
- if (wc >= 0x0000 && wc < 0x0460)
+ if (wc < 0x0460)
summary = &gb2312_uni2indx_page00[(wc>>4)];
else if (wc >= 0x2000 && wc < 0x2650)
summary = &gb2312_uni2indx_page20[(wc>>4)-0x200];
diff --git a/src/xlibi18n/lcUniConv/georgian_academy.h b/src/xlibi18n/lcUniConv/georgian_academy.h
index a847c52e..23036901 100644
--- a/src/xlibi18n/lcUniConv/georgian_academy.h
+++ b/src/xlibi18n/lcUniConv/georgian_academy.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/georgian_academy.h,v 1.3 2000/11/29 17:40:29 dawes Exp $ */
+/* $XFree86$ */
/*
* GEORGIAN-ACADEMY
diff --git a/src/xlibi18n/lcUniConv/georgian_ps.h b/src/xlibi18n/lcUniConv/georgian_ps.h
index e7220d0a..b7e30bf0 100644
--- a/src/xlibi18n/lcUniConv/georgian_ps.h
+++ b/src/xlibi18n/lcUniConv/georgian_ps.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/georgian_ps.h,v 1.3 2000/11/29 17:40:29 dawes Exp $ */
+/* $XFree86$ */
/*
* GEORGIAN-PS
diff --git a/src/xlibi18n/lcUniConv/iso8859_1.h b/src/xlibi18n/lcUniConv/iso8859_1.h
index a600899f..0b03e702 100644
--- a/src/xlibi18n/lcUniConv/iso8859_1.h
+++ b/src/xlibi18n/lcUniConv/iso8859_1.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/iso8859_1.h,v 1.3 2000/11/29 17:40:30 dawes Exp $ */
+/* $XFree86$ */
/*
* ISO-8859-1
diff --git a/src/xlibi18n/lcUniConv/iso8859_10.h b/src/xlibi18n/lcUniConv/iso8859_10.h
index b63de3eb..f0ef2f69 100644
--- a/src/xlibi18n/lcUniConv/iso8859_10.h
+++ b/src/xlibi18n/lcUniConv/iso8859_10.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/iso8859_10.h,v 1.3 2000/11/29 17:40:30 dawes Exp $ */
+/* $XFree86$ */
/*
* ISO-8859-10
diff --git a/src/xlibi18n/lcUniConv/iso8859_11.h b/src/xlibi18n/lcUniConv/iso8859_11.h
index ced0b3f2..57eb016a 100644
--- a/src/xlibi18n/lcUniConv/iso8859_11.h
+++ b/src/xlibi18n/lcUniConv/iso8859_11.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/iso8859_11.h,v 1.2 2002/10/09 16:38:19 tsi Exp $ */
+/* $XFree86: xc/lib/X11/lcUniConv/iso8859_11.h,v 1.1tsi Exp $ */
/*
* ISO8859-11
diff --git a/src/xlibi18n/lcUniConv/iso8859_13.h b/src/xlibi18n/lcUniConv/iso8859_13.h
index fe1d767b..7ad1fd2a 100644
--- a/src/xlibi18n/lcUniConv/iso8859_13.h
+++ b/src/xlibi18n/lcUniConv/iso8859_13.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/iso8859_13.h,v 1.2 2000/11/28 16:10:26 dawes Exp $ */
+/* $XFree86: xc/lib/X11/lcUniConv/iso8859_13.h,v 1.1 2000/06/23 19:50:59 dawes Exp $ */
/*
* ISO-8859-13
diff --git a/src/xlibi18n/lcUniConv/iso8859_14.h b/src/xlibi18n/lcUniConv/iso8859_14.h
index c76c2c2a..7fd322cc 100644
--- a/src/xlibi18n/lcUniConv/iso8859_14.h
+++ b/src/xlibi18n/lcUniConv/iso8859_14.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/iso8859_14.h,v 1.3 2000/11/29 17:40:30 dawes Exp $ */
+/* $XFree86$ */
/*
* ISO-8859-14
diff --git a/src/xlibi18n/lcUniConv/iso8859_15.h b/src/xlibi18n/lcUniConv/iso8859_15.h
index 8c613d7f..209ca21b 100644
--- a/src/xlibi18n/lcUniConv/iso8859_15.h
+++ b/src/xlibi18n/lcUniConv/iso8859_15.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/iso8859_15.h,v 1.3 2000/11/29 17:40:31 dawes Exp $ */
+/* $XFree86$ */
/*
* ISO-8859-15
diff --git a/src/xlibi18n/lcUniConv/iso8859_16.h b/src/xlibi18n/lcUniConv/iso8859_16.h
index 3efe2ffe..657e4450 100644
--- a/src/xlibi18n/lcUniConv/iso8859_16.h
+++ b/src/xlibi18n/lcUniConv/iso8859_16.h
@@ -6,8 +6,8 @@
static const unsigned short iso8859_16_2uni[96] = {
/* 0xa0 */
- 0x00a0, 0x0104, 0x0105, 0x0141, 0x20ac, 0x00ab, 0x0160, 0x00a7,
- 0x0161, 0x00a9, 0x0218, 0x201e, 0x0179, 0x00ad, 0x017a, 0x017b,
+ 0x00a0, 0x0104, 0x0105, 0x0141, 0x20ac, 0x201e, 0x0160, 0x00a7,
+ 0x0161, 0x00a9, 0x0218, 0x00ab, 0x0179, 0x00ad, 0x017a, 0x017b,
/* 0xb0 */
0x00b0, 0x00b1, 0x010c, 0x0142, 0x017d, 0x201d, 0x00b6, 0x00b7,
0x017e, 0x010d, 0x0219, 0x00bb, 0x0152, 0x0153, 0x0178, 0x017c,
@@ -38,7 +38,7 @@ iso8859_16_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
static const unsigned char iso8859_16_page00[224] = {
0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, /* 0xa0-0xa7 */
- 0x00, 0xa9, 0x00, 0xa5, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */
+ 0x00, 0xa9, 0x00, 0xab, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */
0xb0, 0xb1, 0x00, 0x00, 0x00, 0x00, 0xb6, 0xb7, /* 0xb0-0xb7 */
0x00, 0x00, 0x00, 0xbb, 0x00, 0x00, 0x00, 0x00, /* 0xb8-0xbf */
0xc0, 0xc1, 0xc2, 0x00, 0xc4, 0x00, 0xc6, 0xc7, /* 0xc0-0xc7 */
@@ -71,7 +71,7 @@ static const unsigned char iso8859_16_page02[8] = {
0xaa, 0xba, 0xde, 0xfe, 0x00, 0x00, 0x00, 0x00, /* 0x18-0x1f */
};
static const unsigned char iso8859_16_page20[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0xab, 0x00, /* 0x18-0x1f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0xa5, 0x00, /* 0x18-0x1f */
};
static int
diff --git a/src/xlibi18n/lcUniConv/iso8859_2.h b/src/xlibi18n/lcUniConv/iso8859_2.h
index 9598d54b..67abd855 100644
--- a/src/xlibi18n/lcUniConv/iso8859_2.h
+++ b/src/xlibi18n/lcUniConv/iso8859_2.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/iso8859_2.h,v 1.3 2000/11/29 17:40:31 dawes Exp $ */
+/* $XFree86$ */
/*
* ISO-8859-2
diff --git a/src/xlibi18n/lcUniConv/iso8859_3.h b/src/xlibi18n/lcUniConv/iso8859_3.h
index 1604c254..399b7906 100644
--- a/src/xlibi18n/lcUniConv/iso8859_3.h
+++ b/src/xlibi18n/lcUniConv/iso8859_3.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/iso8859_3.h,v 1.3 2000/11/29 17:40:31 dawes Exp $ */
+/* $XFree86$ */
/*
* ISO-8859-3
diff --git a/src/xlibi18n/lcUniConv/iso8859_4.h b/src/xlibi18n/lcUniConv/iso8859_4.h
index 6ea62d1c..f787fa85 100644
--- a/src/xlibi18n/lcUniConv/iso8859_4.h
+++ b/src/xlibi18n/lcUniConv/iso8859_4.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/iso8859_4.h,v 1.3 2000/11/29 17:40:31 dawes Exp $ */
+/* $XFree86$ */
/*
* ISO-8859-4
diff --git a/src/xlibi18n/lcUniConv/iso8859_5.h b/src/xlibi18n/lcUniConv/iso8859_5.h
index d4785677..4a2e46e5 100644
--- a/src/xlibi18n/lcUniConv/iso8859_5.h
+++ b/src/xlibi18n/lcUniConv/iso8859_5.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/iso8859_5.h,v 1.3 2000/11/29 17:40:32 dawes Exp $ */
+/* $XFree86$ */
/*
* ISO-8859-5
diff --git a/src/xlibi18n/lcUniConv/iso8859_6.h b/src/xlibi18n/lcUniConv/iso8859_6.h
index 4d57893a..22c66713 100644
--- a/src/xlibi18n/lcUniConv/iso8859_6.h
+++ b/src/xlibi18n/lcUniConv/iso8859_6.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/iso8859_6.h,v 1.3 2000/11/29 17:40:32 dawes Exp $ */
+/* $XFree86$ */
/*
* ISO-8859-6
diff --git a/src/xlibi18n/lcUniConv/iso8859_7.h b/src/xlibi18n/lcUniConv/iso8859_7.h
index 790cec75..2fb38cae 100644
--- a/src/xlibi18n/lcUniConv/iso8859_7.h
+++ b/src/xlibi18n/lcUniConv/iso8859_7.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/iso8859_7.h,v 1.3 2000/11/29 17:40:32 dawes Exp $ */
+/* $XFree86$ */
/*
* ISO-8859-7
diff --git a/src/xlibi18n/lcUniConv/iso8859_8.h b/src/xlibi18n/lcUniConv/iso8859_8.h
index 7b780f02..e9d77a22 100644
--- a/src/xlibi18n/lcUniConv/iso8859_8.h
+++ b/src/xlibi18n/lcUniConv/iso8859_8.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/iso8859_8.h,v 1.3 2000/11/29 17:40:32 dawes Exp $ */
+/* $XFree86$ */
/*
* ISO-8859-8
diff --git a/src/xlibi18n/lcUniConv/iso8859_9.h b/src/xlibi18n/lcUniConv/iso8859_9.h
index 55ec1cb1..662992d0 100644
--- a/src/xlibi18n/lcUniConv/iso8859_9.h
+++ b/src/xlibi18n/lcUniConv/iso8859_9.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/iso8859_9.h,v 1.3 2000/11/29 17:40:32 dawes Exp $ */
+/* $XFree86$ */
/*
* ISO-8859-9
diff --git a/src/xlibi18n/lcUniConv/iso8859_9e.h b/src/xlibi18n/lcUniConv/iso8859_9e.h
index a5a0b609..17ff75b0 100644
--- a/src/xlibi18n/lcUniConv/iso8859_9e.h
+++ b/src/xlibi18n/lcUniConv/iso8859_9e.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/iso8859_9e.h,v 1.3 2000/11/28 16:10:28 dawes Exp $ */
+/* $XFree86: xc/lib/X11/lcUniConv/iso8859_9e.h,v 1.2 2000/11/02 19:10:45 dawes Exp $ */
/*
* ISO-8859-9E
diff --git a/src/xlibi18n/lcUniConv/jisx0201.h b/src/xlibi18n/lcUniConv/jisx0201.h
index 4a30f284..fec138a4 100644
--- a/src/xlibi18n/lcUniConv/jisx0201.h
+++ b/src/xlibi18n/lcUniConv/jisx0201.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/jisx0201.h,v 1.3 2000/11/29 17:40:33 dawes Exp $ */
+/* $XFree86$ */
/*
* JISX0201.1976-0
diff --git a/src/xlibi18n/lcUniConv/jisx0208.h b/src/xlibi18n/lcUniConv/jisx0208.h
index ea075471..4d8a8918 100644
--- a/src/xlibi18n/lcUniConv/jisx0208.h
+++ b/src/xlibi18n/lcUniConv/jisx0208.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/jisx0208.h,v 1.5 2001/11/21 21:20:56 dawes Exp $ */
+/* $XFree86: xc/lib/X11/lcUniConv/jisx0208.h,v 1.5tsi Exp $ */
/*
* JISX0208.1990-0
@@ -2360,7 +2360,7 @@ jisx0208_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
{
if (n >= 2) {
const Summary16 *summary = NULL;
- if (wc >= 0x0000 && wc < 0x0100)
+ if (wc < 0x0100)
summary = &jisx0208_uni2indx_page00[(wc>>4)];
else if (wc >= 0x0300 && wc < 0x0460)
summary = &jisx0208_uni2indx_page03[(wc>>4)-0x030];
diff --git a/src/xlibi18n/lcUniConv/jisx0212.h b/src/xlibi18n/lcUniConv/jisx0212.h
index 3b7e6dc0..6c89ee63 100644
--- a/src/xlibi18n/lcUniConv/jisx0212.h
+++ b/src/xlibi18n/lcUniConv/jisx0212.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/jisx0212.h,v 1.4 2001/08/09 19:14:08 dawes Exp $ */
+/* $XFree86: xc/lib/X11/lcUniConv/jisx0212.h,v 1.4tsi Exp $ */
/*
* JISX0212.1990-0
@@ -2135,7 +2135,7 @@ jisx0212_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
{
if (n >= 2) {
const Summary16 *summary = NULL;
- if (wc >= 0x0000 && wc < 0x0460)
+ if (wc < 0x0460)
summary = &jisx0212_uni2indx_page00[(wc>>4)];
else if (wc >= 0x2100 && wc < 0x2130)
summary = &jisx0212_uni2indx_page21[(wc>>4)-0x210];
diff --git a/src/xlibi18n/lcUniConv/koi8_c.h b/src/xlibi18n/lcUniConv/koi8_c.h
index e31c3684..504c2589 100644
--- a/src/xlibi18n/lcUniConv/koi8_c.h
+++ b/src/xlibi18n/lcUniConv/koi8_c.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/koi8_c.h,v 1.2 2000/11/28 16:10:29 dawes Exp $ */
+/* $XFree86: xc/lib/X11/lcUniConv/koi8_c.h,v 1.1 2000/10/27 20:26:08 dawes Exp $ */
/*
* KOI8-C
diff --git a/src/xlibi18n/lcUniConv/koi8_r.h b/src/xlibi18n/lcUniConv/koi8_r.h
index a0d3d9b2..dfbbb8dc 100644
--- a/src/xlibi18n/lcUniConv/koi8_r.h
+++ b/src/xlibi18n/lcUniConv/koi8_r.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/koi8_r.h,v 1.3 2000/11/29 17:40:34 dawes Exp $ */
+/* $XFree86$ */
/*
* KOI8-R
diff --git a/src/xlibi18n/lcUniConv/koi8_u.h b/src/xlibi18n/lcUniConv/koi8_u.h
index 43457afd..168d6a10 100644
--- a/src/xlibi18n/lcUniConv/koi8_u.h
+++ b/src/xlibi18n/lcUniConv/koi8_u.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/koi8_u.h,v 1.3 2000/11/29 17:40:34 dawes Exp $ */
+/* $XFree86$ */
/*
* KOI8-U
diff --git a/src/xlibi18n/lcUniConv/ksc5601.h b/src/xlibi18n/lcUniConv/ksc5601.h
index c7dab1eb..7e2a4623 100644
--- a/src/xlibi18n/lcUniConv/ksc5601.h
+++ b/src/xlibi18n/lcUniConv/ksc5601.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/ksc5601.h,v 1.4 2001/08/09 19:14:09 dawes Exp $ */
+/* $XFree86: xc/lib/X11/lcUniConv/ksc5601.h,v 1.4tsi Exp $ */
/*
* KSC5601.1987-0
@@ -2966,7 +2966,7 @@ ksc5601_wctomb (conv_t conv, unsigned char *r, ucs4_t wc, int n)
{
if (n >= 2) {
const Summary16 *summary = NULL;
- if (wc >= 0x0000 && wc < 0x0460)
+ if (wc < 0x0460)
summary = &ksc5601_uni2indx_page00[(wc>>4)];
else if (wc >= 0x2000 && wc < 0x2670)
summary = &ksc5601_uni2indx_page20[(wc>>4)-0x200];
diff --git a/src/xlibi18n/lcUniConv/mulelao.h b/src/xlibi18n/lcUniConv/mulelao.h
index 2afd7b51..0e331f81 100644
--- a/src/xlibi18n/lcUniConv/mulelao.h
+++ b/src/xlibi18n/lcUniConv/mulelao.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/mulelao.h,v 1.3 2000/11/29 17:40:35 dawes Exp $ */
+/* $XFree86$ */
/*
* MULELAO-1
diff --git a/src/xlibi18n/lcUniConv/tatar_cyr.h b/src/xlibi18n/lcUniConv/tatar_cyr.h
index 53607005..5783fd92 100644
--- a/src/xlibi18n/lcUniConv/tatar_cyr.h
+++ b/src/xlibi18n/lcUniConv/tatar_cyr.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/tatar_cyr.h,v 1.3 2000/12/04 18:49:42 dawes Exp $ */
+/* $XFree86: xc/lib/X11/lcUniConv/tatar_cyr.h,v 1.2 2000/11/28 16:10:31 dawes Exp $ */
/*
* TATAR-CYR
diff --git a/src/xlibi18n/lcUniConv/tcvn.h b/src/xlibi18n/lcUniConv/tcvn.h
index f3d49755..eb80ab3f 100644
--- a/src/xlibi18n/lcUniConv/tcvn.h
+++ b/src/xlibi18n/lcUniConv/tcvn.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/tcvn.h,v 1.3 2000/11/29 17:40:35 dawes Exp $ */
+/* $XFree86$ */
/*
* TCVN-5712
diff --git a/src/xlibi18n/lcUniConv/tis620.h b/src/xlibi18n/lcUniConv/tis620.h
index beb7cd95..deda9769 100644
--- a/src/xlibi18n/lcUniConv/tis620.h
+++ b/src/xlibi18n/lcUniConv/tis620.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/tis620.h,v 1.4 2001/02/09 00:02:54 dawes Exp $ */
+/* $XFree86: xc/lib/X11/lcUniConv/tis620.h,v 1.3 2000/11/29 17:40:35 dawes Exp $ */
/*
* TIS620-0
diff --git a/src/xlibi18n/lcUniConv/ucs2be.h b/src/xlibi18n/lcUniConv/ucs2be.h
index af2a586b..ff9acc39 100644
--- a/src/xlibi18n/lcUniConv/ucs2be.h
+++ b/src/xlibi18n/lcUniConv/ucs2be.h
@@ -1,7 +1,7 @@
/*
* UCS-2BE = UCS-2 big endian
*/
-/* $XFree86: xc/lib/X11/lcUniConv/ucs2be.h,v 1.1 2000/11/28 17:25:09 dawes Exp $ */
+/* $XFree86$ */
static int
ucs2be_mbtowc (conv_t conv, ucs4_t *pwc, const unsigned char *s, int n)
diff --git a/src/xlibi18n/lcUniConv/utf8.h b/src/xlibi18n/lcUniConv/utf8.h
index fe189cc2..f8c2a7d8 100644
--- a/src/xlibi18n/lcUniConv/utf8.h
+++ b/src/xlibi18n/lcUniConv/utf8.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/utf8.h,v 1.3 2000/11/28 18:50:07 dawes Exp $ */
+/* $XFree86: xc/lib/X11/lcUniConv/utf8.h,v 1.2 2000/11/28 16:10:32 dawes Exp $ */
/*
* UTF-8
diff --git a/src/xlibi18n/lcUniConv/viscii.h b/src/xlibi18n/lcUniConv/viscii.h
index 9dffbf05..f7dfd447 100644
--- a/src/xlibi18n/lcUniConv/viscii.h
+++ b/src/xlibi18n/lcUniConv/viscii.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/X11/lcUniConv/viscii.h,v 1.3 2000/11/29 17:40:35 dawes Exp $ */
+/* $XFree86$ */
/*
* VISCII1.1-1
diff --git a/src/xlibi18n/lcUtil.c b/src/xlibi18n/lcUtil.c
index cb439b0b..fb159098 100644
--- a/src/xlibi18n/lcUtil.c
+++ b/src/xlibi18n/lcUtil.c
@@ -22,57 +22,64 @@
*
* Author: Katsuhisa Yano TOSHIBA Corp.
* mopi@osa.ilab.toshiba.co.jp
+ * Bug fixes: Bruno Haible XFree86 Inc.
*/
+/* $XFree86: xc/lib/X11/lcUtil.c,v 1.3 2000/11/29 17:40:24 dawes Exp $ */
-#include <stdio.h>
-#include <ctype.h>
-#include <X11/Xos.h>
-#include "Xlibint.h"
+#include <X11/Xlib.h>
+#include "XlcPublic.h"
-#ifdef X_NOT_STDC_ENV
-#ifndef toupper
-#define toupper(c) ((int)(c) - 'a' + 'A')
-#endif
-#endif
+/* Don't use <ctype.h> here because it is locale dependent. */
+#define set_toupper(ch) \
+ if (ch >= 'a' && ch <= 'z') \
+ ch = ch - 'a' + 'A';
+
+/* Compares two ISO 8859-1 strings, ignoring case of ASCII letters.
+ Like strcasecmp in an ASCII locale. */
int
-_XlcCompareISOLatin1(str1, str2)
- char *str1, *str2;
+_XlcCompareISOLatin1(
+ const char *str1,
+ const char *str2)
{
- register char ch1, ch2;
-
- for ( ; (ch1 = *str1) && (ch2 = *str2); str1++, str2++) {
- if (islower(ch1))
- ch1 = toupper(ch1);
- if (islower(ch2))
- ch2 = toupper(ch2);
+ unsigned char ch1, ch2;
- if (ch1 != ch2)
- break;
+ for ( ; ; str1++, str2++) {
+ ch1 = *str1;
+ ch2 = *str2;
+ if (ch1 == '\0' || ch2 == '\0')
+ break;
+ set_toupper(ch1);
+ set_toupper(ch2);
+ if (ch1 != ch2)
+ break;
}
- return *str1 - *str2;
+ return ch1 - ch2;
}
+/* Compares two ISO 8859-1 strings, at most len bytes of each, ignoring
+ case of ASCII letters. Like strncasecmp in an ASCII locale. */
int
-_XlcNCompareISOLatin1(str1, str2, len)
- char *str1, *str2;
- int len;
+_XlcNCompareISOLatin1(
+ const char *str1,
+ const char *str2,
+ int len)
{
- register char ch1, ch2;
+ unsigned char ch1, ch2;
- for ( ; (ch1 = *str1) && (ch2 = *str2) && len; str1++, str2++, len--) {
- if (islower(ch1))
- ch1 = toupper(ch1);
- if (islower(ch2))
- ch2 = toupper(ch2);
-
- if (ch1 != ch2)
- break;
+ for ( ; ; str1++, str2++, len--) {
+ if (len == 0)
+ return 0;
+ ch1 = *str1;
+ ch2 = *str2;
+ if (ch1 == '\0' || ch2 == '\0')
+ break;
+ set_toupper(ch1);
+ set_toupper(ch2);
+ if (ch1 != ch2)
+ break;
}
- if (len == 0)
- return 0;
-
- return *str1 - *str2;
+ return ch1 - ch2;
}
diff --git a/src/xlibi18n/lcWrap.c b/src/xlibi18n/lcWrap.c
index d2dcfe94..e489d6a4 100644
--- a/src/xlibi18n/lcWrap.c
+++ b/src/xlibi18n/lcWrap.c
@@ -53,7 +53,9 @@ from The Open Group.
*
* Katsuhisa Yano TOSHIBA Corp.
*/
+/* $XFree86: xc/lib/X11/lcWrap.c,v 3.15 2003/04/13 19:22:22 dawes Exp $ */
+#include <stdlib.h>
#include "Xlibint.h"
#include "Xlcint.h"
#include <X11/Xlocale.h>
@@ -62,37 +64,15 @@ from The Open Group.
#undef close
#endif
#include <X11/Xutil.h>
-
-#ifdef __STDC__
-#define Const const
-#else
-#define Const /**/
-#endif
-
-#ifdef X_NOT_STDC_ENV
-extern char *getenv();
-#endif
-
-extern void _XlcInitLoader(
-#if NeedFunctionPrototypes
- char*
-#endif
-);
+#include "XlcPubI.h"
#ifdef XTHREADS
LockInfoPtr _Xi18n_lock;
#endif
-#if NeedFunctionPrototypes
char *
XSetLocaleModifiers(
- _Xconst char *modifiers
-)
-#else
-char *
-XSetLocaleModifiers(modifiers)
- char *modifiers;
-#endif
+ const char *modifiers)
{
XLCd lcd = _XlcCurrentLC();
char *user_mods;
@@ -118,12 +98,12 @@ XSupportsLocale()
return _XlcCurrentLC() != (XLCd)NULL;
}
-Bool _XlcValidModSyntax(mods, valid_mods)
- char *mods;
- char **valid_mods;
+Bool _XlcValidModSyntax(
+ const char * mods,
+ const char * const *valid_mods)
{
int i;
- char **ptr;
+ const char * const *ptr;
while (mods && (*mods == '@')) {
mods++;
@@ -144,21 +124,21 @@ Bool _XlcValidModSyntax(mods, valid_mods)
return !mods || !*mods;
}
-static Const char *im_valid[] = {"im", (char *)NULL};
+static const char *im_valid[] = {"im", (const char *)NULL};
/*ARGSUSED*/
char *
-_XlcDefaultMapModifiers (lcd, user_mods, prog_mods)
- XLCd lcd;
- char *user_mods;
- char *prog_mods;
+_XlcDefaultMapModifiers(
+ XLCd lcd,
+ const char *user_mods,
+ const char *prog_mods)
{
int i;
char *mods;
- if (!_XlcValidModSyntax(prog_mods, (char **)im_valid))
+ if (!_XlcValidModSyntax(prog_mods, im_valid))
return (char *)NULL;
- if (!_XlcValidModSyntax(user_mods, (char **)im_valid))
+ if (!_XlcValidModSyntax(user_mods, im_valid))
return (char *)NULL;
i = strlen(prog_mods) + 1;
if (user_mods)
@@ -201,8 +181,8 @@ typedef struct _XlcLoaderListRec {
static XlcLoaderList loader_list = NULL;
void
-_XlcRemoveLoader(proc)
- XLCdLoadProc proc;
+_XlcRemoveLoader(
+ XLCdLoadProc proc)
{
XlcLoaderList loader, prev;
@@ -229,9 +209,9 @@ _XlcRemoveLoader(proc)
}
Bool
-_XlcAddLoader(proc, position)
- XLCdLoadProc proc;
- XlcPosition position;
+_XlcAddLoader(
+ XLCdLoadProc proc,
+ XlcPosition position)
{
XlcLoaderList loader, last;
@@ -262,30 +242,31 @@ _XlcAddLoader(proc, position)
}
XLCd
-_XOpenLC(name)
- char *name;
+_XOpenLC(
+ char *name)
{
XLCd lcd;
XlcLoaderList loader;
XLCdList cur;
-#if !defined(X_NOT_STDC_ENV) && !defined(X_LOCALE)
+#if !defined(X_LOCALE)
int len;
char sinamebuf[256];
- char* siname;
- char *_XlcMapOSLocaleName();
+ char* siname = sinamebuf;
#endif
if (name == NULL) {
name = setlocale (LC_CTYPE, (char *)NULL);
-#if !defined(X_NOT_STDC_ENV) && !defined(X_LOCALE)
- /*
- * _XlMapOSLOcaleName will return the same string or a substring
- * of name, so strlen(name) is okay
- */
- if ((len = strlen(name)) < sizeof sinamebuf) siname = sinamebuf;
- else siname = Xmalloc (len + 1);
- if (siname == NULL) return NULL;
- name = _XlcMapOSLocaleName(name, siname);
+#if !defined(X_LOCALE)
+ /*
+ * _XlMapOSLocaleName will return the same string or a substring
+ * of name, so strlen(name) is okay
+ */
+ if ((len = strlen(name)) >= sizeof sinamebuf) {
+ siname = Xmalloc (len + 1);
+ if (siname == NULL)
+ return NULL;
+ }
+ name = _XlcMapOSLocaleName(name, siname);
#endif
}
@@ -302,7 +283,8 @@ _XOpenLC(name)
}
}
- _XlcInitLoader(name);
+ if (!loader_list)
+ _XlcInitLoader();
/*
* not there, so try to get and add to list
@@ -320,14 +302,16 @@ _XOpenLC(name)
(*lcd->methods->close)(lcd);
lcd = (XLCd) NULL;
}
- break;
+ goto found;
}
}
+ lcd = NULL;
+
found:
_XUnlockMutex(_Xi18n_lock);
-#if !defined(X_NOT_STDC_ENV) && !defined(X_LOCALE)
+#if !defined(X_LOCALE)
if (siname != sinamebuf) Xfree(siname);
#endif
@@ -335,8 +319,8 @@ found:
}
void
-_XCloseLC(lcd)
- XLCd lcd;
+_XCloseLC(
+ XLCd lcd)
{
XLCdList cur, *prev;
@@ -350,6 +334,11 @@ _XCloseLC(lcd)
break;
}
}
+
+ if(loader_list) {
+ _XlcDeInitLoader();
+ loader_list = NULL;
+ }
}
/*
@@ -373,8 +362,8 @@ _XlcCurrentLC()
}
XrmMethods
-_XrmInitParseInfo(state)
- XPointer *state;
+_XrmInitParseInfo(
+ XPointer *state)
{
XLCd lcd = _XOpenLC((char *) NULL);
@@ -385,11 +374,11 @@ _XrmInitParseInfo(state)
}
int
-XmbTextPropertyToTextList(dpy, text_prop, list_ret, count_ret)
- Display *dpy;
- XTextProperty *text_prop;
- char ***list_ret;
- int *count_ret;
+XmbTextPropertyToTextList(
+ Display *dpy,
+ const XTextProperty *text_prop,
+ char ***list_ret,
+ int *count_ret)
{
XLCd lcd = _XlcCurrentLC();
@@ -401,11 +390,11 @@ XmbTextPropertyToTextList(dpy, text_prop, list_ret, count_ret)
}
int
-XwcTextPropertyToTextList(dpy, text_prop, list_ret, count_ret)
- Display *dpy;
- XTextProperty *text_prop;
- wchar_t ***list_ret;
- int *count_ret;
+XwcTextPropertyToTextList(
+ Display *dpy,
+ const XTextProperty *text_prop,
+ wchar_t ***list_ret,
+ int *count_ret)
{
XLCd lcd = _XlcCurrentLC();
@@ -417,12 +406,28 @@ XwcTextPropertyToTextList(dpy, text_prop, list_ret, count_ret)
}
int
-XmbTextListToTextProperty(dpy, list, count, style, text_prop)
- Display *dpy;
- char **list;
- int count;
- XICCEncodingStyle style;
- XTextProperty *text_prop;
+Xutf8TextPropertyToTextList(
+ Display *dpy,
+ const XTextProperty *text_prop,
+ char ***list_ret,
+ int *count_ret)
+{
+ XLCd lcd = _XlcCurrentLC();
+
+ if (lcd == NULL)
+ return XLocaleNotSupported;
+
+ return (*lcd->methods->utf8_text_prop_to_list)(lcd, dpy, text_prop,
+ list_ret, count_ret);
+}
+
+int
+XmbTextListToTextProperty(
+ Display *dpy,
+ char **list,
+ int count,
+ XICCEncodingStyle style,
+ XTextProperty *text_prop)
{
XLCd lcd = _XlcCurrentLC();
@@ -434,12 +439,12 @@ XmbTextListToTextProperty(dpy, list, count, style, text_prop)
}
int
-XwcTextListToTextProperty(dpy, list, count, style, text_prop)
- Display *dpy;
- wchar_t **list;
- int count;
- XICCEncodingStyle style;
- XTextProperty *text_prop;
+XwcTextListToTextProperty(
+ Display *dpy,
+ wchar_t **list,
+ int count,
+ XICCEncodingStyle style,
+ XTextProperty *text_prop)
{
XLCd lcd = _XlcCurrentLC();
@@ -450,9 +455,26 @@ XwcTextListToTextProperty(dpy, list, count, style, text_prop)
text_prop);
}
+int
+Xutf8TextListToTextProperty(
+ Display *dpy,
+ char **list,
+ int count,
+ XICCEncodingStyle style,
+ XTextProperty *text_prop)
+{
+ XLCd lcd = _XlcCurrentLC();
+
+ if (lcd == NULL)
+ return XLocaleNotSupported;
+
+ return (*lcd->methods->utf8_text_list_to_prop)(lcd, dpy, list, count,
+ style, text_prop);
+}
+
void
-XwcFreeStringList(list)
- wchar_t **list;
+XwcFreeStringList(
+ wchar_t **list)
{
XLCd lcd = _XlcCurrentLC();
@@ -462,7 +484,7 @@ XwcFreeStringList(list)
(*lcd->methods->wc_free_string_list)(lcd, list);
}
-char *
+const char *
XDefaultString()
{
XLCd lcd = _XlcCurrentLC();
@@ -474,16 +496,16 @@ XDefaultString()
}
void
-_XlcCopyFromArg(src, dst, size)
- char *src;
- register char *dst;
- register int size;
+_XlcCopyFromArg(
+ char *src,
+ char *dst,
+ int size)
{
if (size == sizeof(long))
*((long *) dst) = (long) src;
#ifdef LONG64
else if (size == sizeof(int))
- *((int *) dst) = (int) src;
+ *((int *) dst) = (int)(long) src;
#endif
else if (size == sizeof(short))
*((short *) dst) = (short)(long) src;
@@ -498,13 +520,19 @@ _XlcCopyFromArg(src, dst, size)
}
void
-_XlcCopyToArg(src, dst, size)
- register char *src;
- register char **dst;
- register int size;
+_XlcCopyToArg(
+ char *src,
+ char **dst,
+ int size)
{
+ /* FIXME:
+ On Big Endian machines, this behaves differently than _XCopyToArg. */
if (size == sizeof(long))
*((long *) *dst) = *((long *) src);
+#ifdef LONG64
+ else if (size == sizeof(int))
+ *((int *) *dst) = *((int *) src);
+#endif
else if (size == sizeof(short))
*((short *) *dst) = *((short *) src);
else if (size == sizeof(char))
@@ -516,25 +544,25 @@ _XlcCopyToArg(src, dst, size)
}
void
-_XlcCountVaList(var, count_ret)
- va_list var;
- int *count_ret;
+_XlcCountVaList(
+ va_list var,
+ int *count_ret)
{
- register int count;
+ int count;
for (count = 0; va_arg(var, char *); count++)
- va_arg(var, XPointer);
+ (void)va_arg(var, XPointer);
*count_ret = count;
}
void
-_XlcVaToArgList(var, count, args_ret)
- va_list var;
- register int count;
- XlcArgList *args_ret;
+_XlcVaToArgList(
+ va_list var,
+ int count,
+ XlcArgList *args_ret)
{
- register XlcArgList args;
+ XlcArgList args;
*args_ret = args = (XlcArgList) Xmalloc(sizeof(XlcArg) * count);
if (args == (XlcArgList) NULL)
@@ -547,22 +575,22 @@ _XlcVaToArgList(var, count, args_ret)
}
void
-_XlcCompileResourceList(resources, num_resources)
- register XlcResourceList resources;
- register int num_resources;
+_XlcCompileResourceList(
+ XlcResourceList resources,
+ int num_resources)
{
for ( ; num_resources-- > 0; resources++)
resources->xrm_name = XrmPermStringToQuark(resources->name);
}
char *
-_XlcGetValues(base, resources, num_resources, args, num_args, mask)
- XPointer base;
- XlcResourceList resources;
- int num_resources;
- XlcArgList args;
- int num_args;
- unsigned long mask;
+_XlcGetValues(
+ XPointer base,
+ XlcResourceList resources,
+ int num_resources,
+ XlcArgList args,
+ int num_args,
+ unsigned long mask)
{
XlcResourceList res;
XrmQuark xrm_name;
@@ -588,13 +616,13 @@ _XlcGetValues(base, resources, num_resources, args, num_args, mask)
}
char *
-_XlcSetValues(base, resources, num_resources, args, num_args, mask)
- XPointer base;
- XlcResourceList resources;
- int num_resources;
- XlcArgList args;
- int num_args;
- unsigned long mask;
+_XlcSetValues(
+ XPointer base,
+ XlcResourceList resources,
+ int num_resources,
+ XlcArgList args,
+ int num_args,
+ unsigned long mask)
{
XlcResourceList res;
XrmQuark xrm_name;
diff --git a/src/xlibi18n/mbWMProps.c b/src/xlibi18n/mbWMProps.c
index be256575..44f38139 100644
--- a/src/xlibi18n/mbWMProps.c
+++ b/src/xlibi18n/mbWMProps.c
@@ -26,14 +26,15 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
+/* $XFree86: xc/lib/X11/mbWMProps.c,v 1.5 2001/12/14 19:54:10 dawes Exp $ */
#include <X11/Xlibint.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
#include <X11/Xlocale.h>
-#if NeedFunctionPrototypes
-void XmbSetWMProperties (
+void
+XmbSetWMProperties (
Display *dpy,
Window w,
_Xconst char *windowName,
@@ -43,32 +44,18 @@ void XmbSetWMProperties (
XSizeHints *sizeHints,
XWMHints *wmHints,
XClassHint *classHints)
-#else
-void XmbSetWMProperties (dpy, w, windowName, iconName, argv, argc, sizeHints,
- wmHints, classHints)
- Display *dpy;
- Window w; /* window to decorate */
- char *windowName; /* name of application */
- char *iconName; /* name string for icon */
- char **argv; /* command line */
- int argc; /* size of command line */
- XSizeHints *sizeHints; /* size hints for window in its normal state */
- XWMHints *wmHints; /* miscelaneous window manager hints */
- XClassHint *classHints; /* resource name and class */
-#endif
{
XTextProperty wname, iname;
XTextProperty *wprop = NULL;
XTextProperty *iprop = NULL;
- char *locale;
if (windowName &&
XmbTextListToTextProperty(dpy, (char**)&windowName, 1,
- XStdICCTextStyle, &wname) >= Success)
+ XStdICCTextStyle, &wname) >= Success)
wprop = &wname;
if (iconName &&
XmbTextListToTextProperty(dpy, (char**)&iconName, 1,
- XStdICCTextStyle, &iname) >= Success)
+ XStdICCTextStyle, &iname) >= Success)
iprop = &iname;
XSetWMProperties(dpy, w, wprop, iprop, argv, argc,
sizeHints, wmHints, classHints);
@@ -76,9 +63,6 @@ void XmbSetWMProperties (dpy, w, windowName, iconName, argv, argc, sizeHints,
Xfree((char *)wname.value);
if (iprop)
Xfree((char *)iname.value);
- locale = setlocale(LC_CTYPE, (char *)NULL);
- if (locale)
- XChangeProperty (dpy, w, XInternAtom(dpy, "WM_LOCALE_NAME", False),
- XA_STRING, 8, PropModeReplace,
- (unsigned char *)locale, strlen(locale));
+
+ /* Note: The WM_LOCALE_NAME property is set by XSetWMProperties. */
}
diff --git a/src/xlibi18n/mbWrap.c b/src/xlibi18n/mbWrap.c
index f82ba212..6eca32fc 100644
--- a/src/xlibi18n/mbWrap.c
+++ b/src/xlibi18n/mbWrap.c
@@ -50,20 +50,22 @@ from The Open Group.
*
* M. Collins OSF
*/
+/* $XFree86: xc/lib/X11/mbWrap.c,v 1.6 2001/12/14 19:54:10 dawes Exp $ */
#include "Xlibint.h"
#include "Xlcint.h"
void
-XmbDrawText(dpy, d, gc, x, y, text_items, nitems)
- Display *dpy;
- Drawable d;
- GC gc;
- int x, y;
- XmbTextItem *text_items;
- int nitems;
+XmbDrawText(
+ Display *dpy,
+ Drawable d,
+ GC gc,
+ int x,
+ int y,
+ XmbTextItem *text_items,
+ int nitems)
{
- register XFontSet fs;
+ register XFontSet fs = NULL;
register XmbTextItem *p = text_items;
register int i = nitems;
register int esc;
@@ -86,7 +88,6 @@ XmbDrawText(dpy, d, gc, x, y, text_items, nitems)
}
}
-#if NeedFunctionPrototypes
void
XmbDrawString(
Display *dpy,
@@ -97,24 +98,12 @@ XmbDrawString(
int y,
_Xconst char *text,
int text_len)
-#else
-void
-XmbDrawString(dpy, d, font_set, gc, x, y, text, text_len)
- Display *dpy;
- Drawable d;
- XFontSet font_set;
- GC gc;
- int x, y;
- char *text;
- int text_len;
-#endif
{
(void)(*font_set->methods->mb_draw_string) (dpy, d, font_set, gc, x, y,
(char *)text, text_len);
}
-#if NeedFunctionPrototypes
void
XmbDrawImageString(
Display *dpy,
@@ -125,41 +114,21 @@ XmbDrawImageString(
int y,
_Xconst char *text,
int text_len)
-#else
-void
-XmbDrawImageString(dpy, d, font_set, gc, x, y, text, text_len)
- Display *dpy;
- Drawable d;
- XFontSet font_set;
- GC gc;
- int x, y;
- char *text;
- int text_len;
-#endif
{
(*font_set->methods->mb_draw_image_string) (dpy, d, font_set, gc, x, y,
(char *)text, text_len);
}
-#if NeedFunctionPrototypes
int
XmbTextEscapement(
XFontSet font_set,
_Xconst char *text,
int text_len)
-#else
-int
-XmbTextEscapement(font_set, text, text_len)
- XFontSet font_set;
- char *text;
- int text_len;
-#endif
{
return (*font_set->methods->mb_escapement) (font_set,
(char *)text, text_len);
}
-#if NeedFunctionPrototypes
int
XmbTextExtents(
XFontSet font_set,
@@ -167,16 +136,6 @@ XmbTextExtents(
int text_len,
XRectangle *overall_ink_extents,
XRectangle *overall_logical_extents)
-#else
-int
-XmbTextExtents(font_set, text, text_len,
- overall_ink_extents, overall_logical_extents)
- XFontSet font_set;
- char *text;
- int text_len;
- XRectangle *overall_ink_extents;
- XRectangle *overall_logical_extents;
-#endif
{
return (*font_set->methods->mb_extents) (font_set,
(char *)text, text_len,
@@ -184,7 +143,6 @@ XmbTextExtents(font_set, text, text_len,
overall_logical_extents);
}
-#if NeedFunctionPrototypes
Status
XmbTextPerCharExtents(
XFontSet font_set,
@@ -196,22 +154,6 @@ XmbTextPerCharExtents(
int *num_chars,
XRectangle *max_ink_extents,
XRectangle *max_logical_extents)
-#else
-Status
-XmbTextPerCharExtents(font_set, text, text_len,
- ink_extents_buffer, logical_extents_buffer,
- buffer_size, num_chars,
- max_ink_extents, max_logical_extents)
- XFontSet font_set;
- char *text;
- int text_len;
- XRectangle *ink_extents_buffer;
- XRectangle *logical_extents_buffer;
- int buffer_size;
- int *num_chars;
- XRectangle *max_ink_extents;
- XRectangle *max_logical_extents;
-#endif
{
return (*font_set->methods->mb_extents_per_char)
(font_set, (char *)text, text_len,
diff --git a/src/xlibi18n/utf8WMProps.c b/src/xlibi18n/utf8WMProps.c
index bed38584..084e3d33 100644
--- a/src/xlibi18n/utf8WMProps.c
+++ b/src/xlibi18n/utf8WMProps.c
@@ -55,8 +55,8 @@ from The Open Group.
#include <X11/Xatom.h>
#include <X11/Xlocale.h>
-#if NeedFunctionPrototypes
-void Xutf8SetWMProperties (
+void
+Xutf8SetWMProperties (
Display *dpy,
Window w,
_Xconst char *windowName,
@@ -66,19 +66,6 @@ void Xutf8SetWMProperties (
XSizeHints *sizeHints,
XWMHints *wmHints,
XClassHint *classHints)
-#else
-void Xutf8SetWMProperties (dpy, w, windowName, iconName, argv, argc, sizeHints,
- wmHints, classHints)
- Display *dpy;
- Window w; /* window to decorate */
- _Xconst char *windowName; /* name of application */
- _Xconst char *iconName; /* name string for icon */
- char **argv; /* command line */
- int argc; /* size of command line */
- XSizeHints *sizeHints; /* size hints for window in its normal state */
- XWMHints *wmHints; /* miscelaneous window manager hints */
- XClassHint *classHints; /* resource name and class */
-#endif
{
XTextProperty wname, iname;
XTextProperty *wprop = NULL;
diff --git a/src/xlibi18n/utf8Wrap.c b/src/xlibi18n/utf8Wrap.c
index bde4647b..1a36463d 100644
--- a/src/xlibi18n/utf8Wrap.c
+++ b/src/xlibi18n/utf8Wrap.c
@@ -77,7 +77,6 @@ from The Open Group.
#include "Xlibint.h"
#include "Xlcint.h"
-#if NeedFunctionPrototypes
void
Xutf8DrawText(
Display *dpy,
@@ -87,16 +86,6 @@ Xutf8DrawText(
int y,
XmbTextItem *text_items,
int nitems)
-#else
-void
-Xutf8DrawText(dpy, d, gc, x, y, text_items, nitems)
- Display *dpy;
- Drawable d;
- GC gc;
- int x, y;
- XmbTextItem *text_items;
- int nitems;
-#endif
{
register XFontSet fs = NULL;
register XmbTextItem *p = text_items;
@@ -121,7 +110,6 @@ Xutf8DrawText(dpy, d, gc, x, y, text_items, nitems)
}
}
-#if NeedFunctionPrototypes
void
Xutf8DrawString(
Display *dpy,
@@ -132,24 +120,12 @@ Xutf8DrawString(
int y,
_Xconst char *text,
int text_len)
-#else
-void
-Xutf8DrawString(dpy, d, font_set, gc, x, y, text, text_len)
- Display *dpy;
- Drawable d;
- XFontSet font_set;
- GC gc;
- int x, y;
- _Xconst char *text;
- int text_len;
-#endif
{
(void)(*font_set->methods->utf8_draw_string) (dpy, d, font_set, gc, x, y,
(char *)text, text_len);
}
-#if NeedFunctionPrototypes
void
Xutf8DrawImageString(
Display *dpy,
@@ -160,41 +136,21 @@ Xutf8DrawImageString(
int y,
_Xconst char *text,
int text_len)
-#else
-void
-Xutf8DrawImageString(dpy, d, font_set, gc, x, y, text, text_len)
- Display *dpy;
- Drawable d;
- XFontSet font_set;
- GC gc;
- int x, y;
- _Xconst char *text;
- int text_len;
-#endif
{
(*font_set->methods->utf8_draw_image_string) (dpy, d, font_set, gc, x, y,
(char *)text, text_len);
}
-#if NeedFunctionPrototypes
int
Xutf8TextEscapement(
XFontSet font_set,
_Xconst char *text,
int text_len)
-#else
-int
-Xutf8TextEscapement(font_set, text, text_len)
- XFontSet font_set;
- _Xconst char *text;
- int text_len;
-#endif
{
return (*font_set->methods->utf8_escapement) (font_set,
(char *)text, text_len);
}
-#if NeedFunctionPrototypes
int
Xutf8TextExtents(
XFontSet font_set,
@@ -202,16 +158,6 @@ Xutf8TextExtents(
int text_len,
XRectangle *overall_ink_extents,
XRectangle *overall_logical_extents)
-#else
-int
-Xutf8TextExtents(font_set, text, text_len,
- overall_ink_extents, overall_logical_extents)
- XFontSet font_set;
- _Xconst char *text;
- int text_len;
- XRectangle *overall_ink_extents;
- XRectangle *overall_logical_extents;
-#endif
{
return (*font_set->methods->utf8_extents) (font_set,
(char *)text, text_len,
@@ -219,7 +165,6 @@ Xutf8TextExtents(font_set, text, text_len,
overall_logical_extents);
}
-#if NeedFunctionPrototypes
Status
Xutf8TextPerCharExtents(
XFontSet font_set,
@@ -231,22 +176,6 @@ Xutf8TextPerCharExtents(
int *num_chars,
XRectangle *max_ink_extents,
XRectangle *max_logical_extents)
-#else
-Status
-Xutf8TextPerCharExtents(font_set, text, text_len,
- ink_extents_buffer, logical_extents_buffer,
- buffer_size, num_chars,
- max_ink_extents, max_logical_extents)
- XFontSet font_set;
- _Xconst char *text;
- int text_len;
- XRectangle *ink_extents_buffer;
- XRectangle *logical_extents_buffer;
- int buffer_size;
- int *num_chars;
- XRectangle *max_ink_extents;
- XRectangle *max_logical_extents;
-#endif
{
return (*font_set->methods->utf8_extents_per_char)
(font_set, (char *)text, text_len,
diff --git a/src/xlibi18n/wcWrap.c b/src/xlibi18n/wcWrap.c
index 621423d3..d28f9d09 100644
--- a/src/xlibi18n/wcWrap.c
+++ b/src/xlibi18n/wcWrap.c
@@ -51,20 +51,22 @@ from The Open Group.
*
* M. Collins OSF
*/
+/* $XFree86: xc/lib/X11/wcWrap.c,v 1.6 2001/12/14 19:54:11 dawes Exp $ */
#include "Xlibint.h"
#include "Xlcint.h"
void
-XwcDrawText(dpy, d, gc, x, y, text_items, nitems)
- Display *dpy;
- Drawable d;
- GC gc;
- int x, y;
- XwcTextItem *text_items;
- int nitems;
+XwcDrawText(
+ Display *dpy,
+ Drawable d,
+ GC gc,
+ int x,
+ int y,
+ XwcTextItem *text_items,
+ int nitems)
{
- register XFontSet fs;
+ register XFontSet fs = NULL;
register XwcTextItem *p = text_items;
register int i = nitems;
register int esc;
@@ -87,7 +89,6 @@ XwcDrawText(dpy, d, gc, x, y, text_items, nitems)
}
}
-#if NeedFunctionPrototypes
void
XwcDrawString(
Display *dpy,
@@ -98,23 +99,11 @@ XwcDrawString(
int y,
_Xconst wchar_t *text,
int text_len)
-#else
-void
-XwcDrawString(dpy, d, font_set, gc, x, y, text, text_len)
- Display *dpy;
- Drawable d;
- XFontSet font_set;
- GC gc;
- int x, y;
- wchar_t *text;
- int text_len;
-#endif
{
(void)(*font_set->methods->wc_draw_string) (dpy, d, font_set, gc, x, y,
text, text_len);
}
-#if NeedFunctionPrototypes
void
XwcDrawImageString(
Display *dpy,
@@ -125,40 +114,20 @@ XwcDrawImageString(
int y,
_Xconst wchar_t *text,
int text_len)
-#else
-void
-XwcDrawImageString(dpy, d, font_set, gc, x, y, text, text_len)
- Display *dpy;
- Drawable d;
- XFontSet font_set;
- GC gc;
- int x, y;
- wchar_t *text;
- int text_len;
-#endif
{
(*font_set->methods->wc_draw_image_string) (dpy, d, font_set, gc, x, y,
text, text_len);
}
-#if NeedFunctionPrototypes
int
XwcTextEscapement(
XFontSet font_set,
_Xconst wchar_t *text,
int text_len)
-#else
-int
-XwcTextEscapement(font_set, text, text_len)
- XFontSet font_set;
- wchar_t *text;
- int text_len;
-#endif
{
return (*font_set->methods->wc_escapement) (font_set, text, text_len);
}
-#if NeedFunctionPrototypes
int
XwcTextExtents(
XFontSet font_set,
@@ -166,23 +135,12 @@ XwcTextExtents(
int text_len,
XRectangle *overall_ink_extents,
XRectangle *overall_logical_extents)
-#else
-int
-XwcTextExtents(font_set, text, text_len,
- overall_ink_extents, overall_logical_extents)
- XFontSet font_set;
- wchar_t *text;
- int text_len;
- XRectangle *overall_ink_extents;
- XRectangle *overall_logical_extents;
-#endif
{
return (*font_set->methods->wc_extents) (font_set, text, text_len,
overall_ink_extents,
overall_logical_extents);
}
-#if NeedFunctionPrototypes
Status
XwcTextPerCharExtents(
XFontSet font_set,
@@ -194,22 +152,6 @@ XwcTextPerCharExtents(
int *num_chars,
XRectangle *max_ink_extents,
XRectangle *max_logical_extents)
-#else
-Status
-XwcTextPerCharExtents(font_set, text, text_len,
- ink_extents_buffer, logical_extents_buffer,
- buffer_size, num_chars,
- max_ink_extents, max_logical_extents)
- XFontSet font_set;
- wchar_t *text;
- int text_len;
- XRectangle *ink_extents_buffer;
- XRectangle *logical_extents_buffer;
- int buffer_size;
- int *num_chars;
- XRectangle *max_ink_extents;
- XRectangle *max_logical_extents;
-#endif
{
return (*font_set->methods->wc_extents_per_char)
(font_set, text, text_len,