mirror of
https://gitlab.freedesktop.org/xorg/lib/libx11.git
synced 2026-05-07 07:28:03 +02:00
Merge branch 'master' into xge
Conflicts: src/xcb_io.c
This commit is contained in:
commit
5dfefd3829
30 changed files with 1081 additions and 749 deletions
72
NEWS
72
NEWS
|
|
@ -1,3 +1,75 @@
|
|||
Version 1.1.2 - 2007-06-03
|
||||
|
||||
* Security fixes:
|
||||
* Fix CVE-2007-1667: Multiple integer overflows in the XGetPixel() and
|
||||
XInitImage() functions.
|
||||
* Bug #9279: Fixed a file descriptor leak.
|
||||
|
||||
* Xlib/XCB: Ensure _XReadEvents reads at least one new event and blocks for
|
||||
exactly one event. Large performance improvement for XIfEvent and similar.
|
||||
|
||||
* Hold XCB's Xlib lock even when only the user lock (XLockDisplay) is held.
|
||||
An Xlib client can query Display state, such as with NextRequest, while it
|
||||
holds only the Xlib user lock (between XLockDisplay and XUnlockDisplay), so
|
||||
XCB requests in other threads should be blocked when the Xlib user lock is
|
||||
held. We acquire the lock even when XInitThreads was not called, so that
|
||||
pure XCB code can use multiple threads even in an otherwise single-threaded
|
||||
Xlib application.
|
||||
|
||||
* Allow re-entrant Xlib calls from _XIOError.
|
||||
Some libraries try to clean up X resources from atexit handlers, _fini, or
|
||||
C++ destructors. To make these work, downgrade the Display lock to a user
|
||||
lock (as in XLockDisplay) before calling exit(3). This blocks Xlib calls
|
||||
from threads other than the one calling exit(3) while still allowing the
|
||||
exit handlers to call Xlib.
|
||||
|
||||
* Xlib/XCB: Avoid re-crashing after _XIOError.
|
||||
|
||||
* Xlib/XCB: Only remove pending_requests when there are provably no more responses.
|
||||
|
||||
* For NetBSD, define XTHREADLIB and XTHREAD_CFLAGS.
|
||||
|
||||
* Bug #7703: Fixed XSetSizeHints() et al wrt use of uninitialized data.
|
||||
Now only those fields of the respective hint struct are set that
|
||||
are actually valid in the input data.
|
||||
|
||||
* Bug #10292: Fixed a memory leak related to XOpenDisplay() in the XCB code.
|
||||
|
||||
* Bug #7713: Initialize all of the event's fields before sending it.
|
||||
|
||||
* Bug #10562: Define _GNU_SOURCE on glibc systems.
|
||||
|
||||
* Use unistd.h to get getresuid() and friends, now that we have _GNU_SOURCE
|
||||
defined.
|
||||
|
||||
* Switched function definitions from K&R to ANSI style.
|
||||
|
||||
* Many constness fixes.
|
||||
|
||||
* Fixed a few warnings.
|
||||
|
||||
* Fix 64bit issues with reallocation.
|
||||
|
||||
* Manpage fixes:
|
||||
* Add man pages for XKB APIs.
|
||||
(Volunteer needed to convert prototypes in man pages to ANSI C style...)
|
||||
* Protect C comments and #defines in XKB man pages from being mangled by cpp
|
||||
* Fix typo in nroff macro in XkbAddGeomOverlayKey.man
|
||||
* Bug #9695: Fixed a few argument types in the XOpenIM manpage.
|
||||
* Markup tweak for XOpenIM.
|
||||
* Bug #9696: refer to XDefineCursor() instead of XDefineCusor().
|
||||
* Bug #9697: Fixed documentation of XVisualInfo struct. The "depth" member
|
||||
was said to be unsigned int, but it's signed.
|
||||
|
||||
* nls fixes:
|
||||
* Update el_GR.UTF-8/Compose.pre to match changes in xkeyboard-config cvs.
|
||||
* For nls/*.pre, allow people to comment lines by starting them with '##'.
|
||||
|
||||
* Build system fixes:
|
||||
* Add autogen.sh to EXTRA_DIST.
|
||||
* Makefile.am: make ChangeLog hook safer
|
||||
* Don't distribute the configure-generated XlibConf.h in tarballs.
|
||||
|
||||
Version 1.1.1 - 2006-11-30
|
||||
|
||||
The "xcompmgr is hard, let's go releasing" release
|
||||
|
|
|
|||
34
acinclude.m4
34
acinclude.m4
|
|
@ -1,4 +1,36 @@
|
|||
# AC_DEFINE_DIR macro from autoconf-archive.cryp.to
|
||||
##### http://autoconf-archive.cryp.to/ac_define_dir.html
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AC_DEFINE_DIR(VARNAME, DIR [, DESCRIPTION])
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
# This macro sets VARNAME to the expansion of the DIR variable,
|
||||
# taking care of fixing up ${prefix} and such.
|
||||
#
|
||||
# VARNAME is then offered as both an output variable and a C
|
||||
# preprocessor symbol.
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# AC_DEFINE_DIR([DATADIR], [datadir], [Where data are placed to.])
|
||||
#
|
||||
# LAST MODIFICATION
|
||||
#
|
||||
# 2006-10-13
|
||||
#
|
||||
# COPYLEFT
|
||||
#
|
||||
# Copyright (c) 2006 Stepan Kasal <kasal@ucw.cz>
|
||||
# Copyright (c) 2006 Andreas Schwab <schwab@suse.de>
|
||||
# Copyright (c) 2006 Guido U. Draheim <guidod@gmx.de>
|
||||
# Copyright (c) 2006 Alexandre Oliva
|
||||
#
|
||||
# Copying and distribution of this file, with or without
|
||||
# modification, are permitted in any medium without royalty provided
|
||||
# the copyright notice and this notice are preserved.
|
||||
|
||||
AC_DEFUN([AC_DEFINE_DIR], [
|
||||
prefix_NONE=
|
||||
exec_prefix_NONE=
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
AC_PREREQ(2.57)
|
||||
AC_INIT([libX11],
|
||||
1.1.1,
|
||||
1.1.3,
|
||||
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
|
||||
libX11)
|
||||
AC_CONFIG_SRCDIR([Makefile.am])
|
||||
|
|
|
|||
|
|
@ -189,7 +189,7 @@ If sufficient memory can be allocated to contain the string list,
|
|||
.ZN XGetCommand
|
||||
fills in the argv_return and argc_return arguments
|
||||
and returns a nonzero status.
|
||||
Otherwise, it returns a zero status.
|
||||
Otherwise, or if any other error is encountered, it returns a zero status.
|
||||
If the data returned by the server is in the Latin Portable Character Encoding,
|
||||
then the returned strings are in the Host Portable Character Encoding.
|
||||
Otherwise, the result is implementation-dependent.
|
||||
|
|
|
|||
|
|
@ -145,10 +145,11 @@
|
|||
XrmMergeDatabases, XrmCombineDatabase, XrmCombineFileDatabase \- merge resource databases
|
||||
.SH SYNTAX
|
||||
.HP
|
||||
void XrmMergeDatabases(\^XrmDatabase \fIsource_db\fP, *\fItarget_db\fP\^);
|
||||
void XrmMergeDatabases(\^XrmDatabase \fIsource_db\fP, XrmDatabase
|
||||
*\fItarget_db\fP\^);
|
||||
.HP
|
||||
void XrmCombineDatabase(\^XrmDatabase \fIsource_db\fP, XrmDatabase
|
||||
*\fItarget_db\fP\^);
|
||||
*\fItarget_db\fP, Bool \fIoverride\fP\^);
|
||||
.HP
|
||||
Status XrmCombineFileDatabase(\^char *\fIfilename\fP, XrmDatabase
|
||||
*\fItarget_db\fP\^, Bool \fIoverride\fP);
|
||||
|
|
|
|||
|
|
@ -466,7 +466,7 @@ _XimGetWindowEventmask(
|
|||
Xim im = (Xim )ic->core.im;
|
||||
XWindowAttributes atr;
|
||||
|
||||
if (!_XGetWindowAttributes(im->core.display, ic->core.focus_window, &atr))
|
||||
if (!XGetWindowAttributes(im->core.display, ic->core.focus_window, &atr))
|
||||
return 0;
|
||||
return (EVENTMASK)atr.your_event_mask;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -278,32 +278,26 @@ static long
|
|||
modmask(
|
||||
char *name)
|
||||
{
|
||||
long mask;
|
||||
|
||||
struct _modtbl {
|
||||
const char *name;
|
||||
const char name[6];
|
||||
long mask;
|
||||
};
|
||||
struct _modtbl *p;
|
||||
|
||||
static struct _modtbl tbl[] = {
|
||||
static const struct _modtbl tbl[] = {
|
||||
{ "Ctrl", ControlMask },
|
||||
{ "Lock", LockMask },
|
||||
{ "Caps", LockMask },
|
||||
{ "Shift", ShiftMask },
|
||||
{ "Alt", Mod1Mask },
|
||||
{ "Meta", Mod1Mask },
|
||||
{ NULL, 0 }};
|
||||
{ "Meta", Mod1Mask }};
|
||||
|
||||
p = tbl;
|
||||
mask = 0;
|
||||
for (p = tbl; p->name != NULL; p++) {
|
||||
if (strcmp(name, p->name) == 0) {
|
||||
mask = p->mask;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return(mask);
|
||||
int i, num_entries = sizeof (tbl) / sizeof (tbl[0]);
|
||||
|
||||
for (i = 0; i < num_entries; i++)
|
||||
if (!strcmp (name, tbl[i].name))
|
||||
return tbl[i].mask;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static char*
|
||||
|
|
|
|||
|
|
@ -42,8 +42,10 @@ PERFORMANCE OF THIS SOFTWARE.
|
|||
#include "Ximint.h"
|
||||
#include "Xresource.h"
|
||||
|
||||
#define GET_NAME(x) name_table + x.name_offset
|
||||
|
||||
typedef struct _XimValueOffsetInfo {
|
||||
const char *name;
|
||||
unsigned short name_offset;
|
||||
XrmQuark quark;
|
||||
unsigned int offset;
|
||||
Bool (*defaults)(
|
||||
|
|
@ -206,54 +208,136 @@ _XimSetProtoResource(im)
|
|||
}
|
||||
#endif /* XIM_CONNECTABLE */
|
||||
|
||||
static const char *supported_local_im_values_list[] = {
|
||||
XNQueryInputStyle,
|
||||
XNResourceName,
|
||||
XNResourceClass,
|
||||
XNDestroyCallback,
|
||||
XNQueryIMValuesList,
|
||||
XNQueryICValuesList,
|
||||
XNVisiblePosition,
|
||||
NULL
|
||||
static const char name_table[] =
|
||||
/* 0 */ XNQueryInputStyle"\0"
|
||||
/* 16 */ XNClientWindow"\0"
|
||||
/* 29 */ XNInputStyle"\0"
|
||||
/* 40 */ XNFocusWindow"\0"
|
||||
/* 52 */ XNResourceName"\0"
|
||||
/* 65 */ XNResourceClass"\0"
|
||||
/* 79 */ XNGeometryCallback"\0"
|
||||
/* 96 */ XNDestroyCallback"\0"
|
||||
/* 112 */ XNFilterEvents"\0"
|
||||
/* 125 */ XNPreeditStartCallback"\0"
|
||||
/* 146 */ XNPreeditDoneCallback"\0"
|
||||
/* 166 */ XNPreeditDrawCallback"\0"
|
||||
/* 186 */ XNPreeditCaretCallback"\0"
|
||||
/* 207 */ XNPreeditStateNotifyCallback"\0"
|
||||
/* 234 */ XNPreeditAttributes"\0"
|
||||
/* 252 */ XNStatusStartCallback"\0"
|
||||
/* 272 */ XNStatusDoneCallback"\0"
|
||||
/* 291 */ XNStatusDrawCallback"\0"
|
||||
/* 310 */ XNStatusAttributes"\0"
|
||||
/* 327 */ XNArea"\0"
|
||||
/* 332 */ XNAreaNeeded"\0"
|
||||
/* 343 */ XNSpotLocation"\0"
|
||||
/* 356 */ XNColormap"\0"
|
||||
/* 365 */ XNStdColormap"\0"
|
||||
/* 377 */ XNForeground"\0"
|
||||
/* 388 */ XNBackground"\0"
|
||||
/* 399 */ XNBackgroundPixmap"\0"
|
||||
/* 416 */ XNFontSet"\0"
|
||||
/* 424 */ XNLineSpace"\0"
|
||||
/* 434 */ XNCursor"\0"
|
||||
/* 441 */ XNQueryIMValuesList"\0"
|
||||
/* 459 */ XNQueryICValuesList"\0"
|
||||
/* 477 */ XNVisiblePosition"\0"
|
||||
/* 493 */ XNStringConversionCallback"\0"
|
||||
/* 518 */ XNStringConversion"\0"
|
||||
/* 535 */ XNResetState"\0"
|
||||
/* 546 */ XNHotKey"\0"
|
||||
/* 553 */ XNHotKeyState"\0"
|
||||
/* 565 */ XNPreeditState
|
||||
;
|
||||
|
||||
#define OFFSET_XNQUERYINPUTSTYLE 0
|
||||
#define OFFSET_XNCLIENTWINDOW 16
|
||||
#define OFFSET_XNINPUTSTYLE 29
|
||||
#define OFFSET_XNFOCUSWINDOW 40
|
||||
#define OFFSET_XNRESOURCENAME 52
|
||||
#define OFFSET_XNRESOURCECLASS 65
|
||||
#define OFFSET_XNGEOMETRYCALLBACK 79
|
||||
#define OFFSET_XNDESTROYCALLBACK 96
|
||||
#define OFFSET_XNFILTEREVENTS 112
|
||||
#define OFFSET_XNPREEDITSTARTCALLBACK 125
|
||||
#define OFFSET_XNPREEDITDONECALLBACK 146
|
||||
#define OFFSET_XNPREEDITDRAWCALLBACK 166
|
||||
#define OFFSET_XNPREEDITCARETCALLBACK 186
|
||||
#define OFFSET_XNPREEDITSTATENOTIFYCALLBACK 207
|
||||
#define OFFSET_XNPREEDITATTRIBUTES 234
|
||||
#define OFFSET_XNSTATUSSTARTCALLBACK 252
|
||||
#define OFFSET_XNSTATUSDONECALLBACK 272
|
||||
#define OFFSET_XNSTATUSDRAWCALLBACK 291
|
||||
#define OFFSET_XNSTATUSATTRIBUTES 310
|
||||
#define OFFSET_XNAREA 327
|
||||
#define OFFSET_XNAREANEEDED 332
|
||||
#define OFFSET_XNSPOTLOCATION 343
|
||||
#define OFFSET_XNCOLORMAP 356
|
||||
#define OFFSET_XNSTDCOLORMAP 365
|
||||
#define OFFSET_XNFOREGROUND 377
|
||||
#define OFFSET_XNBACKGROUND 388
|
||||
#define OFFSET_XNBACKGROUNDPIXMAP 399
|
||||
#define OFFSET_XNFONTSET 416
|
||||
#define OFFSET_XNLINESPACE 424
|
||||
#define OFFSET_XNCURSOR 434
|
||||
#define OFFSET_XNQUERYIMVALUESLIST 441
|
||||
#define OFFSET_XNQUERYICVALUESLIST 459
|
||||
#define OFFSET_XNVISIBLEPOSITION 477
|
||||
#define OFFSET_XNSTRINGCONVERSIONCALLBACK 493
|
||||
#define OFFSET_XNSTRINGCONVERSION 518
|
||||
#define OFFSET_XNRESETSTATE 535
|
||||
#define OFFSET_XNHOTKEY 546
|
||||
#define OFFSET_XNHOTKEYSTATE 553
|
||||
#define OFFSET_XNPREEDITSTATE 565
|
||||
|
||||
/* offsets into name_table */
|
||||
static const unsigned short supported_local_im_values_list[] = {
|
||||
OFFSET_XNQUERYINPUTSTYLE,
|
||||
OFFSET_XNRESOURCENAME,
|
||||
OFFSET_XNRESOURCECLASS,
|
||||
OFFSET_XNDESTROYCALLBACK,
|
||||
OFFSET_XNQUERYIMVALUESLIST,
|
||||
OFFSET_XNQUERYICVALUESLIST,
|
||||
OFFSET_XNVISIBLEPOSITION
|
||||
};
|
||||
|
||||
static const char *supported_local_ic_values_list[] = {
|
||||
XNInputStyle,
|
||||
XNClientWindow,
|
||||
XNFocusWindow,
|
||||
XNResourceName,
|
||||
XNResourceClass,
|
||||
XNGeometryCallback,
|
||||
XNFilterEvents,
|
||||
XNDestroyCallback,
|
||||
XNStringConversionCallback,
|
||||
XNStringConversion,
|
||||
XNResetState,
|
||||
XNHotKey,
|
||||
XNHotKeyState,
|
||||
XNPreeditAttributes,
|
||||
XNStatusAttributes,
|
||||
XNArea,
|
||||
XNAreaNeeded,
|
||||
XNSpotLocation,
|
||||
XNColormap,
|
||||
XNStdColormap,
|
||||
XNForeground,
|
||||
XNBackground,
|
||||
XNBackgroundPixmap,
|
||||
XNFontSet,
|
||||
XNLineSpace,
|
||||
XNCursor,
|
||||
XNPreeditStartCallback,
|
||||
XNPreeditDoneCallback,
|
||||
XNPreeditDrawCallback,
|
||||
XNPreeditCaretCallback,
|
||||
XNStatusStartCallback,
|
||||
XNStatusDoneCallback,
|
||||
XNStatusDrawCallback,
|
||||
XNPreeditState,
|
||||
XNPreeditStateNotifyCallback,
|
||||
NULL
|
||||
/* offsets into name_table */
|
||||
static const unsigned short supported_local_ic_values_list[] = {
|
||||
OFFSET_XNINPUTSTYLE,
|
||||
OFFSET_XNCLIENTWINDOW,
|
||||
OFFSET_XNFOCUSWINDOW,
|
||||
OFFSET_XNRESOURCENAME,
|
||||
OFFSET_XNRESOURCECLASS,
|
||||
OFFSET_XNGEOMETRYCALLBACK,
|
||||
OFFSET_XNFILTEREVENTS,
|
||||
OFFSET_XNDESTROYCALLBACK,
|
||||
OFFSET_XNSTRINGCONVERSIONCALLBACK,
|
||||
OFFSET_XNSTRINGCONVERSIONCALLBACK,
|
||||
OFFSET_XNRESETSTATE,
|
||||
OFFSET_XNHOTKEY,
|
||||
OFFSET_XNHOTKEYSTATE,
|
||||
OFFSET_XNPREEDITATTRIBUTES,
|
||||
OFFSET_XNSTATUSATTRIBUTES,
|
||||
OFFSET_XNAREA,
|
||||
OFFSET_XNAREANEEDED,
|
||||
OFFSET_XNSPOTLOCATION,
|
||||
OFFSET_XNCOLORMAP,
|
||||
OFFSET_XNSTDCOLORMAP,
|
||||
OFFSET_XNFOREGROUND,
|
||||
OFFSET_XNBACKGROUND,
|
||||
OFFSET_XNBACKGROUNDPIXMAP,
|
||||
OFFSET_XNFONTSET,
|
||||
OFFSET_XNLINESPACE,
|
||||
OFFSET_XNCURSOR,
|
||||
OFFSET_XNPREEDITSTARTCALLBACK,
|
||||
OFFSET_XNPREEDITDONECALLBACK,
|
||||
OFFSET_XNPREEDITDRAWCALLBACK,
|
||||
OFFSET_XNPREEDITCARETCALLBACK,
|
||||
OFFSET_XNSTATUSSTARTCALLBACK,
|
||||
OFFSET_XNSTATUSDONECALLBACK,
|
||||
OFFSET_XNSTATUSDRAWCALLBACK,
|
||||
OFFSET_XNPREEDITSTATE,
|
||||
OFFSET_XNPREEDITSTATENOTIFYCALLBACK
|
||||
};
|
||||
|
||||
static XIMStyle const supported_local_styles[] = {
|
||||
|
|
@ -312,7 +396,7 @@ _XimDefaultIMValues(
|
|||
int len;
|
||||
XPointer tmp;
|
||||
|
||||
n = XIMNumber(supported_local_im_values_list) - 1;
|
||||
n = XIMNumber(supported_local_im_values_list);
|
||||
len = sizeof(XIMValuesList) + sizeof(char **) * n;
|
||||
if(!(tmp = (XPointer)Xmalloc(len))) {
|
||||
return False;
|
||||
|
|
@ -325,8 +409,8 @@ _XimDefaultIMValues(
|
|||
values_list->supported_values
|
||||
= (char **)((char *)tmp + sizeof(XIMValuesList));
|
||||
for(i = 0; i < n; i++) {
|
||||
values_list->supported_values[i]
|
||||
= supported_local_im_values_list[i];
|
||||
values_list->supported_values[i] =
|
||||
name_table + supported_local_im_values_list[i];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -349,7 +433,7 @@ _XimDefaultICValues(
|
|||
int len;
|
||||
XPointer tmp;
|
||||
|
||||
n = XIMNumber(supported_local_ic_values_list) - 1;
|
||||
n = XIMNumber(supported_local_ic_values_list);
|
||||
len = sizeof(XIMValuesList) + sizeof(char **) * n;
|
||||
if(!(tmp = (XPointer)Xmalloc(len))) {
|
||||
return False;
|
||||
|
|
@ -362,8 +446,8 @@ _XimDefaultICValues(
|
|||
values_list->supported_values
|
||||
= (char **)((char *)tmp + sizeof(XIMValuesList));
|
||||
for(i = 0; i < n; i++) {
|
||||
values_list->supported_values[i]
|
||||
= supported_local_ic_values_list[i];
|
||||
values_list->supported_values[i] =
|
||||
name_table + supported_local_ic_values_list[i];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1439,247 +1523,245 @@ static XIMResource ic_inner_resources[] = {
|
|||
};
|
||||
|
||||
static XimValueOffsetInfoRec im_attr_info[] = {
|
||||
{XNQueryInputStyle, 0,
|
||||
{OFFSET_XNQUERYINPUTSTYLE, 0,
|
||||
XOffsetOf(XimDefIMValues, styles),
|
||||
_XimDefaultStyles, NULL, _XimDecodeStyles},
|
||||
|
||||
{XNDestroyCallback, 0,
|
||||
{OFFSET_XNDESTROYCALLBACK, 0,
|
||||
XOffsetOf(XimDefIMValues, destroy_callback),
|
||||
NULL, _XimEncodeCallback, _XimDecodeCallback},
|
||||
|
||||
{XNResourceName, 0,
|
||||
{OFFSET_XNRESOURCENAME, 0,
|
||||
XOffsetOf(XimDefIMValues, res_name),
|
||||
NULL, _XimEncodeString, _XimDecodeString},
|
||||
|
||||
{XNResourceClass, 0,
|
||||
{OFFSET_XNRESOURCECLASS, 0,
|
||||
XOffsetOf(XimDefIMValues, res_class),
|
||||
NULL, _XimEncodeString, _XimDecodeString},
|
||||
|
||||
{XNQueryIMValuesList, 0,
|
||||
{OFFSET_XNQUERYIMVALUESLIST, 0,
|
||||
XOffsetOf(XimDefIMValues, im_values_list),
|
||||
_XimDefaultIMValues, NULL, _XimDecodeValues},
|
||||
|
||||
{XNQueryICValuesList, 0,
|
||||
{OFFSET_XNQUERYICVALUESLIST, 0,
|
||||
XOffsetOf(XimDefIMValues, ic_values_list),
|
||||
_XimDefaultICValues, NULL, _XimDecodeValues},
|
||||
|
||||
{XNVisiblePosition, 0,
|
||||
{OFFSET_XNVISIBLEPOSITION, 0,
|
||||
XOffsetOf(XimDefIMValues, visible_position),
|
||||
_XimDefaultVisiblePos, NULL, _XimDecodeBool}
|
||||
};
|
||||
|
||||
static XimValueOffsetInfoRec ic_attr_info[] = {
|
||||
{XNInputStyle, 0,
|
||||
{OFFSET_XNINPUTSTYLE, 0,
|
||||
XOffsetOf(XimDefICValues, input_style),
|
||||
NULL, _XimEncodeStyle, _XimDecodeStyle},
|
||||
|
||||
{XNClientWindow, 0,
|
||||
{OFFSET_XNCLIENTWINDOW, 0,
|
||||
XOffsetOf(XimDefICValues, client_window),
|
||||
NULL, _XimEncodeWindow, _XimDecodeWindow},
|
||||
|
||||
{XNFocusWindow, 0,
|
||||
{OFFSET_XNFOCUSWINDOW, 0,
|
||||
XOffsetOf(XimDefICValues, focus_window),
|
||||
_XimDefaultFocusWindow, _XimEncodeWindow, _XimDecodeWindow},
|
||||
|
||||
{XNResourceName, 0,
|
||||
{OFFSET_XNRESOURCENAME, 0,
|
||||
XOffsetOf(XimDefICValues, res_name),
|
||||
_XimDefaultResName, _XimEncodeString, _XimDecodeString},
|
||||
|
||||
{XNResourceClass, 0,
|
||||
{OFFSET_XNRESOURCECLASS, 0,
|
||||
XOffsetOf(XimDefICValues, res_class),
|
||||
_XimDefaultResClass, _XimEncodeString, _XimDecodeString},
|
||||
|
||||
{XNGeometryCallback, 0,
|
||||
{OFFSET_XNGEOMETRYCALLBACK, 0,
|
||||
XOffsetOf(XimDefICValues, geometry_callback),
|
||||
NULL, _XimEncodeCallback, _XimDecodeCallback},
|
||||
|
||||
{XNFilterEvents, 0,
|
||||
{OFFSET_XNFILTEREVENTS, 0,
|
||||
XOffsetOf(XimDefICValues, filter_events),
|
||||
NULL, NULL, _XimDecodeLong},
|
||||
|
||||
{XNDestroyCallback, 0,
|
||||
{OFFSET_XNDESTROYCALLBACK, 0,
|
||||
XOffsetOf(XimDefICValues, destroy_callback),
|
||||
_XimDefaultDestroyCB, _XimEncodeCallback, _XimDecodeCallback},
|
||||
|
||||
{XNStringConversionCallback, 0,
|
||||
{OFFSET_XNSTRINGCONVERSIONCALLBACK, 0,
|
||||
XOffsetOf(XimDefICValues, string_conversion_callback),
|
||||
NULL, _XimEncodeCallback, _XimDecodeCallback},
|
||||
|
||||
{XNStringConversion, 0,
|
||||
{OFFSET_XNSTRINGCONVERSION, 0,
|
||||
XOffsetOf(XimDefICValues, string_conversion),
|
||||
NULL, _XimEncodeStringConv, _XimDecodeStringConv},
|
||||
|
||||
{XNResetState, 0,
|
||||
{OFFSET_XNRESETSTATE, 0,
|
||||
XOffsetOf(XimDefICValues, reset_state),
|
||||
_XimDefaultResetState, _XimEncodeResetState, _XimDecodeResetState},
|
||||
|
||||
{XNHotKey, 0,
|
||||
{OFFSET_XNHOTKEY, 0,
|
||||
XOffsetOf(XimDefICValues, hotkey),
|
||||
NULL, _XimEncodeHotKey, _XimDecodeHotKey},
|
||||
|
||||
{XNHotKeyState, 0,
|
||||
{OFFSET_XNHOTKEYSTATE, 0,
|
||||
XOffsetOf(XimDefICValues, hotkey_state),
|
||||
_XimDefaultHotKeyState, _XimEncodeHotKetState, _XimDecodeHotKetState},
|
||||
|
||||
{XNPreeditAttributes, 0,
|
||||
{OFFSET_XNPREEDITATTRIBUTES, 0,
|
||||
XOffsetOf(XimDefICValues, preedit_attr),
|
||||
_XimDefaultNest, _XimEncodeNest, _XimDecodeNest},
|
||||
|
||||
{XNStatusAttributes, 0,
|
||||
{OFFSET_XNSTATUSATTRIBUTES, 0,
|
||||
XOffsetOf(XimDefICValues, status_attr),
|
||||
_XimDefaultNest, _XimEncodeNest, _XimDecodeNest},
|
||||
};
|
||||
|
||||
static XimValueOffsetInfoRec ic_pre_attr_info[] = {
|
||||
{XNArea, 0,
|
||||
{OFFSET_XNAREA, 0,
|
||||
XOffsetOf(ICPreeditAttributes, area),
|
||||
_XimDefaultArea, _XimEncodeRectangle, _XimDecodeRectangle},
|
||||
|
||||
{XNAreaNeeded, 0,
|
||||
{OFFSET_XNAREANEEDED, 0,
|
||||
XOffsetOf(ICPreeditAttributes, area_needed),
|
||||
NULL, _XimEncodeRectangle, _XimDecodeRectangle},
|
||||
|
||||
{XNSpotLocation, 0,
|
||||
{OFFSET_XNSPOTLOCATION, 0,
|
||||
XOffsetOf(ICPreeditAttributes, spot_location),
|
||||
NULL, _XimEncodeSpot, _XimDecodeSpot},
|
||||
|
||||
{XNColormap, 0,
|
||||
{OFFSET_XNCOLORMAP, 0,
|
||||
XOffsetOf(ICPreeditAttributes, colormap),
|
||||
_XimDefaultColormap, _XimEncodeColormap, _XimDecodeColormap},
|
||||
|
||||
{XNStdColormap, 0,
|
||||
{OFFSET_XNSTDCOLORMAP, 0,
|
||||
XOffsetOf(ICPreeditAttributes, std_colormap),
|
||||
_XimDefaultStdColormap, _XimEncodeStdColormap, _XimDecodeStdColormap},
|
||||
|
||||
{XNForeground, 0,
|
||||
{OFFSET_XNFOREGROUND, 0,
|
||||
XOffsetOf(ICPreeditAttributes, foreground),
|
||||
_XimDefaultFg, _XimEncodeLong, _XimDecodeLong},
|
||||
|
||||
{XNBackground, 0,
|
||||
{OFFSET_XNBACKGROUND, 0,
|
||||
XOffsetOf(ICPreeditAttributes, background),
|
||||
_XimDefaultBg, _XimEncodeLong, _XimDecodeLong},
|
||||
|
||||
{XNBackgroundPixmap, 0,
|
||||
{OFFSET_XNBACKGROUNDPIXMAP, 0,
|
||||
XOffsetOf(ICPreeditAttributes, background_pixmap),
|
||||
_XimDefaultBgPixmap, _XimEncodeBgPixmap, _XimDecodeBgPixmap},
|
||||
|
||||
{XNFontSet, 0,
|
||||
{OFFSET_XNFONTSET, 0,
|
||||
XOffsetOf(ICPreeditAttributes, fontset),
|
||||
_XimDefaultFontSet, _XimEncodeFontSet, _XimDecodeFontSet},
|
||||
|
||||
{XNLineSpace, 0,
|
||||
{OFFSET_XNLINESPACE, 0,
|
||||
XOffsetOf(ICPreeditAttributes, line_spacing),
|
||||
_XimDefaultLineSpace, _XimEncodeLineSpace, _XimDecodeLineSpace},
|
||||
|
||||
{XNCursor, 0,
|
||||
{OFFSET_XNCURSOR, 0,
|
||||
XOffsetOf(ICPreeditAttributes, cursor),
|
||||
_XimDefaultCursor, _XimEncodeCursor, _XimDecodeCursor},
|
||||
|
||||
{XNPreeditStartCallback, 0,
|
||||
{OFFSET_XNPREEDITSTARTCALLBACK, 0,
|
||||
XOffsetOf(ICPreeditAttributes, start_callback),
|
||||
NULL, _XimEncodeCallback, _XimDecodeCallback},
|
||||
|
||||
{XNPreeditDoneCallback, 0,
|
||||
{OFFSET_XNPREEDITDONECALLBACK, 0,
|
||||
XOffsetOf(ICPreeditAttributes, done_callback),
|
||||
NULL, _XimEncodeCallback, _XimDecodeCallback},
|
||||
|
||||
{XNPreeditDrawCallback, 0,
|
||||
{OFFSET_XNPREEDITDRAWCALLBACK, 0,
|
||||
XOffsetOf(ICPreeditAttributes, draw_callback),
|
||||
NULL, _XimEncodeCallback, _XimDecodeCallback},
|
||||
|
||||
{XNPreeditCaretCallback, 0,
|
||||
{OFFSET_XNPREEDITCARETCALLBACK, 0,
|
||||
XOffsetOf(ICPreeditAttributes, caret_callback),
|
||||
NULL, _XimEncodeCallback, _XimDecodeCallback},
|
||||
|
||||
{XNPreeditState, 0,
|
||||
{OFFSET_XNPREEDITSTATE, 0,
|
||||
XOffsetOf(ICPreeditAttributes, preedit_state),
|
||||
_XimDefaultPreeditState, _XimEncodePreeditState,_XimDecodePreeditState},
|
||||
|
||||
{XNPreeditStateNotifyCallback, 0,
|
||||
{OFFSET_XNPREEDITSTATENOTIFYCALLBACK, 0,
|
||||
XOffsetOf(ICPreeditAttributes, state_notify_callback),
|
||||
NULL, _XimEncodeCallback, _XimDecodeCallback},
|
||||
};
|
||||
|
||||
static XimValueOffsetInfoRec ic_sts_attr_info[] = {
|
||||
{XNArea, 0,
|
||||
{OFFSET_XNAREA, 0,
|
||||
XOffsetOf(ICStatusAttributes, area),
|
||||
_XimDefaultArea, _XimEncodeRectangle, _XimDecodeRectangle},
|
||||
|
||||
{XNAreaNeeded, 0,
|
||||
{OFFSET_XNAREANEEDED, 0,
|
||||
XOffsetOf(ICStatusAttributes, area_needed),
|
||||
NULL, _XimEncodeRectangle, _XimDecodeRectangle},
|
||||
|
||||
{XNColormap, 0,
|
||||
{OFFSET_XNCOLORMAP, 0,
|
||||
XOffsetOf(ICStatusAttributes, colormap),
|
||||
_XimDefaultColormap, _XimEncodeColormap, _XimDecodeColormap},
|
||||
|
||||
{XNStdColormap, 0,
|
||||
{OFFSET_XNSTDCOLORMAP, 0,
|
||||
XOffsetOf(ICStatusAttributes, std_colormap),
|
||||
_XimDefaultStdColormap, _XimEncodeStdColormap, _XimDecodeStdColormap},
|
||||
|
||||
{XNForeground, 0,
|
||||
{OFFSET_XNFOREGROUND, 0,
|
||||
XOffsetOf(ICStatusAttributes, foreground),
|
||||
_XimDefaultFg, _XimEncodeLong, _XimDecodeLong},
|
||||
|
||||
{XNBackground, 0,
|
||||
{OFFSET_XNBACKGROUND, 0,
|
||||
XOffsetOf(ICStatusAttributes, background),
|
||||
_XimDefaultBg, _XimEncodeLong, _XimDecodeLong},
|
||||
|
||||
{XNBackgroundPixmap, 0,
|
||||
{OFFSET_XNBACKGROUNDPIXMAP, 0,
|
||||
XOffsetOf(ICStatusAttributes, background_pixmap),
|
||||
_XimDefaultBgPixmap, _XimEncodeBgPixmap, _XimDecodeBgPixmap},
|
||||
|
||||
{XNFontSet, 0,
|
||||
{OFFSET_XNFONTSET, 0,
|
||||
XOffsetOf(ICStatusAttributes, fontset),
|
||||
_XimDefaultFontSet, _XimEncodeFontSet, _XimDecodeFontSet},
|
||||
|
||||
{XNLineSpace, 0,
|
||||
{OFFSET_XNLINESPACE, 0,
|
||||
XOffsetOf(ICStatusAttributes, line_spacing),
|
||||
_XimDefaultLineSpace, _XimEncodeLineSpace, _XimDecodeLineSpace},
|
||||
|
||||
{XNCursor, 0,
|
||||
{OFFSET_XNCURSOR, 0,
|
||||
XOffsetOf(ICStatusAttributes, cursor),
|
||||
_XimDefaultCursor, _XimEncodeCursor, _XimDecodeCursor},
|
||||
|
||||
{XNStatusStartCallback, 0,
|
||||
{OFFSET_XNSTATUSSTARTCALLBACK, 0,
|
||||
XOffsetOf(ICStatusAttributes, start_callback),
|
||||
NULL, _XimEncodeCallback, _XimDecodeCallback},
|
||||
|
||||
{XNStatusDoneCallback, 0,
|
||||
{OFFSET_XNSTATUSDONECALLBACK, 0,
|
||||
XOffsetOf(ICStatusAttributes, done_callback),
|
||||
NULL, _XimEncodeCallback, _XimDecodeCallback},
|
||||
|
||||
{XNStatusDrawCallback, 0,
|
||||
{OFFSET_XNSTATUSDRAWCALLBACK, 0,
|
||||
XOffsetOf(ICStatusAttributes, draw_callback),
|
||||
NULL, _XimEncodeCallback, _XimDecodeCallback}
|
||||
};
|
||||
|
||||
typedef struct _XimIMMode {
|
||||
const char *name;
|
||||
XrmQuark quark;
|
||||
unsigned short name_offset;
|
||||
unsigned short mode;
|
||||
} XimIMMode;
|
||||
|
||||
static XimIMMode im_mode[] = {
|
||||
{XNQueryInputStyle, 0,
|
||||
static const XimIMMode im_mode[] = {
|
||||
{OFFSET_XNQUERYINPUTSTYLE,
|
||||
(XIM_MODE_IM_DEFAULT | XIM_MODE_IM_GET)},
|
||||
{XNDestroyCallback, 0,
|
||||
{OFFSET_XNDESTROYCALLBACK,
|
||||
(XIM_MODE_IM_DEFAULT | XIM_MODE_IM_SET | XIM_MODE_IM_GET)},
|
||||
{XNResourceName, 0,
|
||||
{OFFSET_XNRESOURCENAME,
|
||||
(XIM_MODE_IM_DEFAULT | XIM_MODE_IM_SET | XIM_MODE_IM_GET)},
|
||||
{XNResourceClass, 0,
|
||||
{OFFSET_XNRESOURCECLASS,
|
||||
(XIM_MODE_IM_DEFAULT | XIM_MODE_IM_SET | XIM_MODE_IM_GET)},
|
||||
{XNQueryIMValuesList, 0,
|
||||
{OFFSET_XNQUERYIMVALUESLIST,
|
||||
(XIM_MODE_IM_DEFAULT | XIM_MODE_IM_GET)},
|
||||
{XNQueryICValuesList, 0,
|
||||
{OFFSET_XNQUERYICVALUESLIST,
|
||||
(XIM_MODE_IM_DEFAULT | XIM_MODE_IM_GET)},
|
||||
{XNVisiblePosition, 0,
|
||||
{OFFSET_XNVISIBLEPOSITION,
|
||||
(XIM_MODE_IM_DEFAULT | XIM_MODE_IM_GET)}
|
||||
};
|
||||
|
||||
typedef struct _XimICMode {
|
||||
const char *name;
|
||||
XrmQuark quark;
|
||||
unsigned short name_offset;
|
||||
unsigned short preedit_callback_mode;
|
||||
unsigned short preedit_position_mode;
|
||||
unsigned short preedit_area_mode;
|
||||
|
|
@ -1691,8 +1773,8 @@ typedef struct _XimICMode {
|
|||
unsigned short status_none_mode;
|
||||
} XimICMode;
|
||||
|
||||
static XimICMode ic_mode[] = {
|
||||
{XNInputStyle, 0,
|
||||
static const XimICMode ic_mode[] = {
|
||||
{OFFSET_XNINPUTSTYLE,
|
||||
(XIM_MODE_PRE_CREATE | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_CREATE | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_CREATE | XIM_MODE_PRE_GET),
|
||||
|
|
@ -1702,7 +1784,7 @@ static XimICMode ic_mode[] = {
|
|||
(XIM_MODE_STS_CREATE | XIM_MODE_STS_GET),
|
||||
(XIM_MODE_STS_CREATE | XIM_MODE_STS_GET),
|
||||
(XIM_MODE_STS_CREATE | XIM_MODE_STS_GET)},
|
||||
{XNClientWindow, 0,
|
||||
{OFFSET_XNCLIENTWINDOW,
|
||||
(XIM_MODE_PRE_ONCE | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_ONCE | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_ONCE | XIM_MODE_PRE_GET),
|
||||
|
|
@ -1712,7 +1794,7 @@ static XimICMode ic_mode[] = {
|
|||
(XIM_MODE_STS_ONCE | XIM_MODE_STS_GET),
|
||||
(XIM_MODE_STS_ONCE | XIM_MODE_STS_GET),
|
||||
0},
|
||||
{XNFocusWindow, 0,
|
||||
{OFFSET_XNFOCUSWINDOW,
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
|
|
@ -1722,7 +1804,7 @@ static XimICMode ic_mode[] = {
|
|||
(XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
|
||||
(XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
|
||||
0},
|
||||
{XNResourceName, 0,
|
||||
{OFFSET_XNRESOURCENAME,
|
||||
0,
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
|
|
@ -1732,7 +1814,7 @@ static XimICMode ic_mode[] = {
|
|||
(XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
|
||||
(XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
|
||||
0},
|
||||
{XNResourceClass, 0,
|
||||
{OFFSET_XNRESOURCECLASS,
|
||||
0,
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
|
|
@ -1742,7 +1824,7 @@ static XimICMode ic_mode[] = {
|
|||
(XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
|
||||
(XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
|
||||
0},
|
||||
{XNGeometryCallback, 0,
|
||||
{OFFSET_XNGEOMETRYCALLBACK,
|
||||
0,
|
||||
0,
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
|
|
@ -1752,7 +1834,7 @@ static XimICMode ic_mode[] = {
|
|||
(XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
|
||||
0,
|
||||
0},
|
||||
{XNFilterEvents, 0,
|
||||
{OFFSET_XNFILTEREVENTS,
|
||||
XIM_MODE_PRE_GET,
|
||||
XIM_MODE_PRE_GET,
|
||||
XIM_MODE_PRE_GET,
|
||||
|
|
@ -1762,7 +1844,7 @@ static XimICMode ic_mode[] = {
|
|||
XIM_MODE_STS_GET,
|
||||
XIM_MODE_STS_GET,
|
||||
XIM_MODE_STS_GET},
|
||||
{XNDestroyCallback, 0,
|
||||
{OFFSET_XNDESTROYCALLBACK,
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
|
|
@ -1772,7 +1854,7 @@ static XimICMode ic_mode[] = {
|
|||
0,
|
||||
0,
|
||||
0},
|
||||
{XNStringConversionCallback, 0,
|
||||
{OFFSET_XNSTRINGCONVERSIONCALLBACK,
|
||||
(XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
|
|
@ -1782,7 +1864,7 @@ static XimICMode ic_mode[] = {
|
|||
0,
|
||||
0,
|
||||
0},
|
||||
{XNStringConversion, 0,
|
||||
{OFFSET_XNSTRINGCONVERSION,
|
||||
XIM_MODE_PRE_SET,
|
||||
XIM_MODE_PRE_SET,
|
||||
XIM_MODE_PRE_SET,
|
||||
|
|
@ -1792,7 +1874,7 @@ static XimICMode ic_mode[] = {
|
|||
0,
|
||||
0,
|
||||
0},
|
||||
{XNResetState, 0,
|
||||
{OFFSET_XNRESETSTATE,
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
|
|
@ -1802,7 +1884,7 @@ static XimICMode ic_mode[] = {
|
|||
0,
|
||||
0,
|
||||
0},
|
||||
{XNHotKey, 0,
|
||||
{OFFSET_XNHOTKEY,
|
||||
(XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
|
|
@ -1812,7 +1894,7 @@ static XimICMode ic_mode[] = {
|
|||
0,
|
||||
0,
|
||||
0},
|
||||
{XNHotKeyState, 0,
|
||||
{OFFSET_XNHOTKEYSTATE,
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
|
|
@ -1822,7 +1904,7 @@ static XimICMode ic_mode[] = {
|
|||
0,
|
||||
0,
|
||||
0},
|
||||
{XNPreeditAttributes, 0,
|
||||
{OFFSET_XNPREEDITATTRIBUTES,
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
|
|
@ -1832,7 +1914,7 @@ static XimICMode ic_mode[] = {
|
|||
0,
|
||||
0,
|
||||
0},
|
||||
{XNStatusAttributes, 0,
|
||||
{OFFSET_XNSTATUSATTRIBUTES,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
|
|
@ -1842,7 +1924,7 @@ static XimICMode ic_mode[] = {
|
|||
(XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
|
||||
(XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
|
||||
0},
|
||||
{XNArea, 0,
|
||||
{OFFSET_XNAREA,
|
||||
0,
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
|
|
@ -1852,7 +1934,7 @@ static XimICMode ic_mode[] = {
|
|||
(XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
|
||||
0,
|
||||
0},
|
||||
{XNAreaNeeded, 0,
|
||||
{OFFSET_XNAREANEEDED,
|
||||
0,
|
||||
0,
|
||||
(XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
|
|
@ -1862,7 +1944,7 @@ static XimICMode ic_mode[] = {
|
|||
(XIM_MODE_STS_SET | XIM_MODE_STS_GET),
|
||||
0,
|
||||
0},
|
||||
{XNSpotLocation, 0,
|
||||
{OFFSET_XNSPOTLOCATION,
|
||||
0, /*(XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),*/
|
||||
(XIM_MODE_PRE_CREATE | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
0,
|
||||
|
|
@ -1872,7 +1954,7 @@ static XimICMode ic_mode[] = {
|
|||
0,
|
||||
0,
|
||||
0},
|
||||
{XNColormap, 0,
|
||||
{OFFSET_XNCOLORMAP,
|
||||
0,
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
|
|
@ -1882,7 +1964,7 @@ static XimICMode ic_mode[] = {
|
|||
(XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
|
||||
(XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
|
||||
0},
|
||||
{XNStdColormap, 0,
|
||||
{OFFSET_XNSTDCOLORMAP,
|
||||
0,
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
|
|
@ -1892,7 +1974,7 @@ static XimICMode ic_mode[] = {
|
|||
(XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
|
||||
(XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
|
||||
0},
|
||||
{XNForeground, 0,
|
||||
{OFFSET_XNFOREGROUND,
|
||||
0,
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
|
|
@ -1902,7 +1984,7 @@ static XimICMode ic_mode[] = {
|
|||
(XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
|
||||
(XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
|
||||
0},
|
||||
{XNBackground, 0,
|
||||
{OFFSET_XNBACKGROUND,
|
||||
0,
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
|
|
@ -1912,7 +1994,7 @@ static XimICMode ic_mode[] = {
|
|||
(XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
|
||||
(XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
|
||||
0},
|
||||
{XNBackgroundPixmap, 0,
|
||||
{OFFSET_XNBACKGROUNDPIXMAP,
|
||||
0,
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
|
|
@ -1922,7 +2004,7 @@ static XimICMode ic_mode[] = {
|
|||
(XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
|
||||
(XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
|
||||
0},
|
||||
{XNFontSet, 0,
|
||||
{OFFSET_XNFONTSET,
|
||||
0,
|
||||
(XIM_MODE_PRE_CREATE | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_CREATE | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
|
|
@ -1932,7 +2014,7 @@ static XimICMode ic_mode[] = {
|
|||
(XIM_MODE_STS_CREATE | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
|
||||
(XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
|
||||
0},
|
||||
{XNLineSpace, 0,
|
||||
{OFFSET_XNLINESPACE,
|
||||
0,
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
|
|
@ -1942,7 +2024,7 @@ static XimICMode ic_mode[] = {
|
|||
(XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
|
||||
(XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
|
||||
0},
|
||||
{XNCursor, 0,
|
||||
{OFFSET_XNCURSOR,
|
||||
0,
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
|
|
@ -1952,7 +2034,7 @@ static XimICMode ic_mode[] = {
|
|||
(XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
|
||||
(XIM_MODE_STS_DEFAULT | XIM_MODE_STS_SET | XIM_MODE_STS_GET),
|
||||
0},
|
||||
{XNPreeditStartCallback, 0,
|
||||
{OFFSET_XNPREEDITSTARTCALLBACK,
|
||||
(XIM_MODE_PRE_CREATE | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
0,
|
||||
0,
|
||||
|
|
@ -1962,7 +2044,7 @@ static XimICMode ic_mode[] = {
|
|||
0,
|
||||
0,
|
||||
0},
|
||||
{XNPreeditDoneCallback, 0,
|
||||
{OFFSET_XNPREEDITDONECALLBACK,
|
||||
(XIM_MODE_PRE_CREATE | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
0,
|
||||
0,
|
||||
|
|
@ -1972,7 +2054,7 @@ static XimICMode ic_mode[] = {
|
|||
0,
|
||||
0,
|
||||
0},
|
||||
{XNPreeditDrawCallback, 0,
|
||||
{OFFSET_XNPREEDITDRAWCALLBACK,
|
||||
(XIM_MODE_PRE_CREATE | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
0,
|
||||
0,
|
||||
|
|
@ -1982,7 +2064,7 @@ static XimICMode ic_mode[] = {
|
|||
0,
|
||||
0,
|
||||
0},
|
||||
{XNPreeditCaretCallback, 0,
|
||||
{OFFSET_XNPREEDITCARETCALLBACK,
|
||||
(XIM_MODE_PRE_CREATE | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
0,
|
||||
0,
|
||||
|
|
@ -1992,7 +2074,7 @@ static XimICMode ic_mode[] = {
|
|||
0,
|
||||
0,
|
||||
0},
|
||||
{XNPreeditState, 0,
|
||||
{OFFSET_XNPREEDITSTATE,
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_DEFAULT | XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
|
|
@ -2002,7 +2084,7 @@ static XimICMode ic_mode[] = {
|
|||
0,
|
||||
0,
|
||||
0},
|
||||
{XNPreeditStateNotifyCallback, 0,
|
||||
{OFFSET_XNPREEDITSTATENOTIFYCALLBACK,
|
||||
(XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
(XIM_MODE_PRE_SET | XIM_MODE_PRE_GET),
|
||||
|
|
@ -2012,7 +2094,7 @@ static XimICMode ic_mode[] = {
|
|||
0,
|
||||
0,
|
||||
0},
|
||||
{XNStatusStartCallback, 0,
|
||||
{OFFSET_XNSTATUSSTARTCALLBACK,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
|
|
@ -2022,7 +2104,7 @@ static XimICMode ic_mode[] = {
|
|||
0,
|
||||
0,
|
||||
0},
|
||||
{XNStatusDoneCallback, 0,
|
||||
{OFFSET_XNSTATUSDONECALLBACK,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
|
|
@ -2032,7 +2114,7 @@ static XimICMode ic_mode[] = {
|
|||
0,
|
||||
0,
|
||||
0},
|
||||
{XNStatusDrawCallback, 0,
|
||||
{OFFSET_XNSTATUSDRAWCALLBACK,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
|
|
@ -2044,6 +2126,12 @@ static XimICMode ic_mode[] = {
|
|||
0}
|
||||
};
|
||||
|
||||
/* the quarks are separated from im_mode/ic_mode so those arrays
|
||||
* can be const.
|
||||
*/
|
||||
static XrmQuark im_mode_quark[sizeof(im_mode) / sizeof(im_mode[0])];
|
||||
static XrmQuark ic_mode_quark[sizeof(ic_mode) / sizeof(ic_mode[0])];
|
||||
|
||||
Private Bool
|
||||
_XimSetResourceList(
|
||||
XIMResourceList *res_list,
|
||||
|
|
@ -2234,7 +2322,7 @@ _XimSetIMMode(
|
|||
|
||||
for(i = 0; i < n; i++) {
|
||||
if(!(res = _XimGetResourceListRecByQuark(res_list,
|
||||
list_num, im_mode[i].quark))) {
|
||||
list_num, im_mode_quark[i]))) {
|
||||
continue;
|
||||
}
|
||||
res->mode = im_mode[i].mode;
|
||||
|
|
@ -2327,7 +2415,7 @@ _XimSetICMode(res_list, list_num, style)
|
|||
|
||||
for(i = 0; i < n; i++) {
|
||||
if(!(res = _XimGetResourceListRecByQuark(res_list,
|
||||
list_num, ic_mode[i].quark))) {
|
||||
list_num, ic_mode_quark[i]))) {
|
||||
continue;
|
||||
}
|
||||
res->mode = ( (*(unsigned short *)((char *)&ic_mode[i] + pre_offset))
|
||||
|
|
@ -3069,7 +3157,7 @@ _XimInitialIMOffsetInfo(void)
|
|||
register int i;
|
||||
|
||||
for(i = 0; i < n; i++) {
|
||||
im_attr_info[i].quark = XrmStringToQuark(im_attr_info[i].name);
|
||||
im_attr_info[i].quark = XrmStringToQuark(GET_NAME(im_attr_info[i]));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -3081,17 +3169,17 @@ _XimInitialICOffsetInfo(void)
|
|||
|
||||
n = XIMNumber(ic_attr_info);
|
||||
for(i = 0; i < n; i++) {
|
||||
ic_attr_info[i].quark = XrmStringToQuark(ic_attr_info[i].name);
|
||||
ic_attr_info[i].quark = XrmStringToQuark(GET_NAME(ic_attr_info[i]));
|
||||
}
|
||||
|
||||
n = XIMNumber(ic_pre_attr_info);
|
||||
for(i = 0; i < n; i++) {
|
||||
ic_pre_attr_info[i].quark = XrmStringToQuark(ic_pre_attr_info[i].name);
|
||||
ic_pre_attr_info[i].quark = XrmStringToQuark(GET_NAME(ic_pre_attr_info[i]));
|
||||
}
|
||||
|
||||
n = XIMNumber(ic_sts_attr_info);
|
||||
for(i = 0; i < n; i++) {
|
||||
ic_sts_attr_info[i].quark = XrmStringToQuark(ic_sts_attr_info[i].name);
|
||||
ic_sts_attr_info[i].quark = XrmStringToQuark(GET_NAME(ic_sts_attr_info[i]));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -3102,7 +3190,7 @@ _XimInitialIMMode(void)
|
|||
register int i;
|
||||
|
||||
for(i = 0; i < n; i++) {
|
||||
im_mode[i].quark = XrmStringToQuark(im_mode[i].name);
|
||||
im_mode_quark[i] = XrmStringToQuark(GET_NAME(im_mode[i]));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -3113,7 +3201,7 @@ _XimInitialICMode(void)
|
|||
register int i;
|
||||
|
||||
for(i = 0; i < n; i++) {
|
||||
ic_mode[i].quark = XrmStringToQuark(ic_mode[i].name);
|
||||
ic_mode_quark[i] = XrmStringToQuark(GET_NAME(ic_mode[i]));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -32,8 +32,14 @@ iso8859-1/Compose: br_FR.ISO8859-1
|
|||
iso8859-14/Compose: br_FR.ISO8859-14
|
||||
iso8859-15/Compose: br_FR.ISO8859-15
|
||||
iso8859-2/Compose: bs_BA.ISO8859-2
|
||||
iso8859-1/Compose: ca_AD.ISO8859-1
|
||||
iso8859-15/Compose: ca_AD.ISO8859-15
|
||||
iso8859-1/Compose: ca_ES.ISO8859-1
|
||||
iso8859-15/Compose: ca_ES.ISO8859-15
|
||||
iso8859-1/Compose: ca_FR.ISO8859-1
|
||||
iso8859-15/Compose: ca_FR.ISO8859-15
|
||||
iso8859-1/Compose: ca_IT.ISO8859-1
|
||||
iso8859-15/Compose: ca_IT.ISO8859-15
|
||||
iso8859-2/Compose: cs_CZ.ISO8859-2
|
||||
iso8859-1/Compose: cy_GB.ISO8859-1
|
||||
iso8859-14/Compose: cy_GB.ISO8859-14
|
||||
|
|
@ -258,7 +264,10 @@ en_US.UTF-8/Compose: be_BY.UTF-8
|
|||
en_US.UTF-8/Compose: bg_BG.UTF-8
|
||||
en_US.UTF-8/Compose: bn_IN.UTF-8
|
||||
en_US.UTF-8/Compose: br_FR.UTF-8
|
||||
en_US.UTF-8/Compose: ca_AD.UTF-8
|
||||
en_US.UTF-8/Compose: ca_ES.UTF-8
|
||||
en_US.UTF-8/Compose: ca_FR.UTF-8
|
||||
en_US.UTF-8/Compose: ca_IT.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
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ XCOMM Spaces
|
|||
|
||||
<Multi_key> <period> <greater> : "›" U203a # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
|
||||
<Multi_key> <period> <less> : "‹" U2039 # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
|
||||
<Multi_key> <period> <period> : "·" U00B7 # MIDDLE DOT
|
||||
<Multi_key> <period> <period> : "·" periodcentered # MIDDLE DOT
|
||||
<Multi_key> <exclam> <asciicircum> : "¦" brokenbar # BROKEN BAR
|
||||
<Multi_key> <exclam> <exclam> : "¡" exclamdown # INVERTED EXCLAMATION MARK
|
||||
<Multi_key> <p> <exclam> : "¶" paragraph # PILCROW SIGN
|
||||
|
|
@ -155,13 +155,20 @@ XCOMM "₪" U20aa NEW SHEQEL SIGN
|
|||
<Multi_key> <equal> <c> : "€" EuroSign # EURO SIGN
|
||||
<Multi_key> <E> <equal> : "€" EuroSign # EURO SIGN
|
||||
<Multi_key> <equal> <E> : "€" EuroSign # EURO SIGN
|
||||
<Multi_key> <e> <equal> : "€" EuroSign # EURO SIGN
|
||||
<Multi_key> <equal> <e> : "€" EuroSign # EURO SIGN
|
||||
<Multi_key> <Cyrillic_ES> <equal> : "€" EuroSign # EURO SIGN
|
||||
<Multi_key> <equal> <Cyrillic_ES> : "€" EuroSign # EURO SIGN
|
||||
<Multi_key> <Cyrillic_IE> <equal> : "€" EuroSign # EURO SIGN
|
||||
<Multi_key> <equal> <Cyrillic_IE> : "€" EuroSign # EURO SIGN
|
||||
|
||||
<Multi_key> <bar> <c> : "¢" U00A2 # CENT SIGN
|
||||
<Multi_key> <c> <bar> : "¢" U00A2 # CENT SIGN
|
||||
<Multi_key> <c> <slash> : "¢" 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> <bar> <c> : "¢" cent # CENT SIGN
|
||||
<Multi_key> <c> <bar> : "¢" cent # CENT SIGN
|
||||
<Multi_key> <c> <slash> : "¢" cent # CENT SIGN
|
||||
<Multi_key> <slash> <c> : "¢" cent # CENT SIGN
|
||||
<Multi_key> <L> <minus> : "£" sterling # POUND SIGN
|
||||
<Multi_key> <minus> <L> : "£" sterling # POUND SIGN
|
||||
<Multi_key> <Y> <equal> : "¥" yen # YEN SIGN
|
||||
<Multi_key> <equal> <Y> : "¥" yen # YEN SIGN
|
||||
|
||||
|
|
@ -181,12 +188,18 @@ XCOMM Musical alterations
|
|||
XCOMM Other symbols
|
||||
<Multi_key> <s> <o> : "§" section # SECTION SIGN
|
||||
<Multi_key> <o> <s> : "§" section # SECTION SIGN
|
||||
<Multi_key> <Cyrillic_pe> <Cyrillic_a> : "§" section # SECTION SIGN
|
||||
|
||||
<Multi_key> <o> <x> : "¤" currency # CURRENCY SIGN
|
||||
<Multi_key> <x> <o> : "¤" currency # CURRENCY SIGN
|
||||
|
||||
<Multi_key> <P> <P> : "¶" paragraph # PILCROW SIGN
|
||||
|
||||
<Multi_key> <N> <o> : "№" numerosign # NUMERO SIGN
|
||||
<Multi_key> <N> <O> : "№" numerosign # NUMERO SIGN
|
||||
<Multi_key> <Cyrillic_EN> <Cyrillic_o> : "№" numerosign # NUMERO SIGN
|
||||
<Multi_key> <Cyrillic_EN> <Cyrillic_O> : "№" numerosign # NUMERO SIGN
|
||||
|
||||
XCOMM Part 2
|
||||
|
||||
XCOMM Compose map for Korean Hangul(Choseongul) Conjoining Jamos automatically
|
||||
|
|
@ -429,191 +442,191 @@ XCOMM group 1: cluster jamos made of three basic jamos
|
|||
<Multi_key> <U100011B7> <U100011BB> : "ᇞ" U11de # HANGUL JONGSEONG MIEUM-SSANGSIOS
|
||||
<Multi_key> <U100011BC> <U100011A9> : "ᇭ" U11ed # HANGUL JONGSEONG IEUNG-SSANGKIYEOK
|
||||
|
||||
<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
|
||||
<Multi_key> <comma> <minus> : "¬" notsign # NOT SIGN
|
||||
<Multi_key> <minus> <comma> : "¬" notsign # NOT SIGN
|
||||
<dead_circumflex> <Multi_key> <underscore> <a> : "ª" ordfeminine # FEMININE ORDINAL INDICATOR
|
||||
<Multi_key> <asciicircum> <underscore> <a> : "ª" ordfeminine # FEMININE ORDINAL INDICATOR
|
||||
<dead_circumflex> <Multi_key> <underbar> <a> : "ª" ordfeminine # FEMININE ORDINAL INDICATOR
|
||||
<Multi_key> <asciicircum> <underbar> <a> : "ª" ordfeminine # FEMININE ORDINAL INDICATOR
|
||||
<dead_circumflex> <2> : "²" twosuperior # SUPERSCRIPT TWO
|
||||
<Multi_key> <asciicircum> <2> : "²" twosuperior # SUPERSCRIPT TWO
|
||||
<dead_circumflex> <KP_Space> : "²" twosuperior # SUPERSCRIPT TWO
|
||||
<Multi_key> <asciicircum> <KP_Space> : "²" twosuperior # SUPERSCRIPT TWO
|
||||
<dead_circumflex> <KP_2> : "²" twosuperior # SUPERSCRIPT TWO
|
||||
<Multi_key> <asciicircum> <KP_2> : "²" twosuperior # SUPERSCRIPT TWO
|
||||
<dead_circumflex> <3> : "³" threesuperior # SUPERSCRIPT THREE
|
||||
<Multi_key> <asciicircum> <3> : "³" threesuperior # SUPERSCRIPT THREE
|
||||
<dead_circumflex> <KP_3> : "³" threesuperior # SUPERSCRIPT THREE
|
||||
<Multi_key> <asciicircum> <KP_3> : "³" threesuperior # SUPERSCRIPT THREE
|
||||
<Multi_key> <m> <u> : "µ" mu # MICRO SIGN
|
||||
<dead_circumflex> <1> : "¹" onesuperior # SUPERSCRIPT ONE
|
||||
<Multi_key> <asciicircum> <1> : "¹" onesuperior # SUPERSCRIPT ONE
|
||||
<dead_circumflex> <KP_1> : "¹" onesuperior # SUPERSCRIPT ONE
|
||||
<Multi_key> <asciicircum> <KP_1> : "¹" onesuperior # SUPERSCRIPT ONE
|
||||
<dead_circumflex> <Multi_key> <underscore> <o> : "º" masculine # MASCULINE ORDINAL INDICATOR
|
||||
<Multi_key> <asciicircum> <underscore> <o> : "º" masculine # MASCULINE ORDINAL INDICATOR
|
||||
<dead_circumflex> <Multi_key> <underbar> <o> : "º" masculine # MASCULINE ORDINAL INDICATOR
|
||||
<Multi_key> <asciicircum> <underbar> <o> : "º" masculine # MASCULINE ORDINAL INDICATOR
|
||||
<Multi_key> <1> <4> : "¼" onequarter # VULGAR FRACTION ONE QUARTER
|
||||
<Multi_key> <1> <2> : "½" onehalf # VULGAR FRACTION ONE HALF
|
||||
<Multi_key> <3> <4> : "¾" threequarters # VULGAR FRACTION THREE QUARTERS
|
||||
<dead_grave> <A> : "À" Agrave # LATIN CAPITAL LETTER A WITH GRAVE
|
||||
<Multi_key> <grave> <A> : "À" Agrave # LATIN CAPITAL LETTER A WITH GRAVE
|
||||
<combining_grave> <A> : "À" Agrave # LATIN CAPITAL LETTER A WITH GRAVE
|
||||
<dead_acute> <A> : "Á" Aacute # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
<Multi_key> <acute> <A> : "Á" Aacute # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
<Multi_key> <apostrophe> <A> : "Á" Aacute # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
<combining_acute> <A> : "Á" Aacute # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
<dead_circumflex> <A> : "Â" Acircumflex # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
<Multi_key> <asciicircum> <A> : "Â" Acircumflex # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
<dead_tilde> <A> : "Ã" Atilde # LATIN CAPITAL LETTER A WITH TILDE
|
||||
<Multi_key> <asciitilde> <A> : "Ã" Atilde # LATIN CAPITAL LETTER A WITH TILDE
|
||||
<combining_tilde> <A> : "Ã" Atilde # LATIN CAPITAL LETTER A WITH TILDE
|
||||
<dead_diaeresis> <A> : "Ä" Adiaeresis # LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
<Multi_key> <quotedbl> <A> : "Ä" Adiaeresis # LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
<dead_abovering> <A> : "Å" Aring # LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
<Multi_key> <o> <A> : "Å" Aring # LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
<dead_cedilla> <C> : "Ç" Ccedilla # LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
<Multi_key> <comma> <C> : "Ç" Ccedilla # LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
<dead_grave> <E> : "È" Egrave # LATIN CAPITAL LETTER E WITH GRAVE
|
||||
<Multi_key> <grave> <E> : "È" Egrave # LATIN CAPITAL LETTER E WITH GRAVE
|
||||
<combining_grave> <E> : "È" Egrave # LATIN CAPITAL LETTER E WITH GRAVE
|
||||
<dead_acute> <E> : "É" Eacute # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
<Multi_key> <acute> <E> : "É" Eacute # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
<Multi_key> <apostrophe> <E> : "É" Eacute # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
<combining_acute> <E> : "É" Eacute # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
<dead_circumflex> <E> : "Ê" Ecircumflex # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
<Multi_key> <asciicircum> <E> : "Ê" Ecircumflex # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
<dead_diaeresis> <E> : "Ë" Ediaeresis # LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
<Multi_key> <quotedbl> <E> : "Ë" Ediaeresis # LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
<dead_grave> <I> : "Ì" Igrave # LATIN CAPITAL LETTER I WITH GRAVE
|
||||
<Multi_key> <grave> <I> : "Ì" Igrave # LATIN CAPITAL LETTER I WITH GRAVE
|
||||
<combining_grave> <I> : "Ì" Igrave # LATIN CAPITAL LETTER I WITH GRAVE
|
||||
<dead_acute> <I> : "Í" Iacute # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
<Multi_key> <acute> <I> : "Í" Iacute # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
<Multi_key> <apostrophe> <I> : "Í" Iacute # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
<combining_acute> <I> : "Í" Iacute # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
<dead_circumflex> <I> : "Î" Icircumflex # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
<Multi_key> <asciicircum> <I> : "Î" Icircumflex # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
<dead_diaeresis> <I> : "Ï" Idiaeresis # LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
<Multi_key> <quotedbl> <I> : "Ï" Idiaeresis # LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
<Multi_key> <D> <H> : "Ð" ETH # LATIN CAPITAL LETTER ETH
|
||||
<dead_tilde> <N> : "Ñ" Ntilde # LATIN CAPITAL LETTER N WITH TILDE
|
||||
<Multi_key> <asciitilde> <N> : "Ñ" Ntilde # LATIN CAPITAL LETTER N WITH TILDE
|
||||
<combining_tilde> <N> : "Ñ" Ntilde # LATIN CAPITAL LETTER N WITH TILDE
|
||||
<dead_grave> <O> : "Ò" Ograve # LATIN CAPITAL LETTER O WITH GRAVE
|
||||
<Multi_key> <grave> <O> : "Ò" Ograve # LATIN CAPITAL LETTER O WITH GRAVE
|
||||
<combining_grave> <O> : "Ò" Ograve # LATIN CAPITAL LETTER O WITH GRAVE
|
||||
<dead_acute> <O> : "Ó" Oacute # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
<Multi_key> <acute> <O> : "Ó" Oacute # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
<Multi_key> <apostrophe> <O> : "Ó" Oacute # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
<combining_acute> <O> : "Ó" Oacute # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
<dead_circumflex> <O> : "Ô" Ocircumflex # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
<Multi_key> <asciicircum> <O> : "Ô" Ocircumflex # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
<dead_tilde> <O> : "Õ" Otilde # LATIN CAPITAL LETTER O WITH TILDE
|
||||
<Multi_key> <asciitilde> <O> : "Õ" Otilde # LATIN CAPITAL LETTER O WITH TILDE
|
||||
<combining_tilde> <O> : "Õ" Otilde # LATIN CAPITAL LETTER O WITH TILDE
|
||||
<dead_diaeresis> <O> : "Ö" Odiaeresis # LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
<Multi_key> <quotedbl> <O> : "Ö" Odiaeresis # LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
<Multi_key> <x> <x> : "×" multiply # MULTIPLICATION SIGN
|
||||
<Multi_key> <slash> <O> : "Ø" Oslash # LATIN CAPITAL LETTER O WITH STROKE
|
||||
<Multi_key> <KP_Divide> <O> : "Ø" Oslash # LATIN CAPITAL LETTER O WITH STROKE
|
||||
<dead_grave> <U> : "Ù" Ugrave # LATIN CAPITAL LETTER U WITH GRAVE
|
||||
<Multi_key> <grave> <U> : "Ù" Ugrave # LATIN CAPITAL LETTER U WITH GRAVE
|
||||
<combining_grave> <U> : "Ù" Ugrave # LATIN CAPITAL LETTER U WITH GRAVE
|
||||
<dead_acute> <U> : "Ú" Uacute # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
<Multi_key> <acute> <U> : "Ú" Uacute # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
<Multi_key> <apostrophe> <U> : "Ú" Uacute # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
<combining_acute> <U> : "Ú" Uacute # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
<dead_circumflex> <U> : "Û" Ucircumflex # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
<Multi_key> <asciicircum> <U> : "Û" Ucircumflex # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
<dead_diaeresis> <U> : "Ü" Udiaeresis # LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
<Multi_key> <quotedbl> <U> : "Ü" Udiaeresis # LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
<dead_acute> <Y> : "Ý" Yacute # LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
<Multi_key> <acute> <Y> : "Ý" Yacute # LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
<Multi_key> <apostrophe> <Y> : "Ý" Yacute # LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
<combining_acute> <Y> : "Ý" Yacute # LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
<Multi_key> <T> <H> : "Þ" THORN # LATIN CAPITAL LETTER THORN
|
||||
<dead_grave> <a> : "à" agrave # LATIN SMALL LETTER A WITH GRAVE
|
||||
<Multi_key> <grave> <a> : "à" agrave # LATIN SMALL LETTER A WITH GRAVE
|
||||
<combining_grave> <a> : "à" agrave # LATIN SMALL LETTER A WITH GRAVE
|
||||
<dead_acute> <a> : "á" aacute # LATIN SMALL LETTER A WITH ACUTE
|
||||
<Multi_key> <acute> <a> : "á" aacute # LATIN SMALL LETTER A WITH ACUTE
|
||||
<Multi_key> <apostrophe> <a> : "á" aacute # LATIN SMALL LETTER A WITH ACUTE
|
||||
<combining_acute> <a> : "á" aacute # LATIN SMALL LETTER A WITH ACUTE
|
||||
<dead_circumflex> <a> : "â" acircumflex # LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
<Multi_key> <asciicircum> <a> : "â" acircumflex # LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
<dead_tilde> <a> : "ã" atilde # LATIN SMALL LETTER A WITH TILDE
|
||||
<Multi_key> <asciitilde> <a> : "ã" atilde # LATIN SMALL LETTER A WITH TILDE
|
||||
<combining_tilde> <a> : "ã" atilde # LATIN SMALL LETTER A WITH TILDE
|
||||
<dead_diaeresis> <a> : "ä" adiaeresis # LATIN SMALL LETTER A WITH DIAERESIS
|
||||
<Multi_key> <quotedbl> <a> : "ä" adiaeresis # LATIN SMALL LETTER A WITH DIAERESIS
|
||||
<dead_abovering> <a> : "å" aring # LATIN SMALL LETTER A WITH RING ABOVE
|
||||
<Multi_key> <o> <a> : "å" aring # LATIN SMALL LETTER A WITH RING ABOVE
|
||||
<dead_cedilla> <c> : "ç" ccedilla # LATIN SMALL LETTER C WITH CEDILLA
|
||||
<Multi_key> <comma> <c> : "ç" ccedilla # LATIN SMALL LETTER C WITH CEDILLA
|
||||
<dead_grave> <e> : "è" egrave # LATIN SMALL LETTER E WITH GRAVE
|
||||
<Multi_key> <grave> <e> : "è" egrave # LATIN SMALL LETTER E WITH GRAVE
|
||||
<combining_grave> <e> : "è" egrave # LATIN SMALL LETTER E WITH GRAVE
|
||||
<dead_acute> <e> : "é" eacute # LATIN SMALL LETTER E WITH ACUTE
|
||||
<Multi_key> <acute> <e> : "é" eacute # LATIN SMALL LETTER E WITH ACUTE
|
||||
<Multi_key> <apostrophe> <e> : "é" eacute # LATIN SMALL LETTER E WITH ACUTE
|
||||
<combining_acute> <e> : "é" eacute # LATIN SMALL LETTER E WITH ACUTE
|
||||
<dead_circumflex> <e> : "ê" ecircumflex # LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
<Multi_key> <asciicircum> <e> : "ê" ecircumflex # LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
<dead_diaeresis> <e> : "ë" ediaeresis # LATIN SMALL LETTER E WITH DIAERESIS
|
||||
<Multi_key> <quotedbl> <e> : "ë" ediaeresis # LATIN SMALL LETTER E WITH DIAERESIS
|
||||
<dead_grave> <i> : "ì" igrave # LATIN SMALL LETTER I WITH GRAVE
|
||||
<Multi_key> <grave> <i> : "ì" igrave # LATIN SMALL LETTER I WITH GRAVE
|
||||
<combining_grave> <i> : "ì" igrave # LATIN SMALL LETTER I WITH GRAVE
|
||||
<dead_acute> <i> : "í" iacute # LATIN SMALL LETTER I WITH ACUTE
|
||||
<Multi_key> <acute> <i> : "í" iacute # LATIN SMALL LETTER I WITH ACUTE
|
||||
<Multi_key> <apostrophe> <i> : "í" iacute # LATIN SMALL LETTER I WITH ACUTE
|
||||
<combining_acute> <i> : "í" iacute # LATIN SMALL LETTER I WITH ACUTE
|
||||
<dead_circumflex> <i> : "î" icircumflex # LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
<Multi_key> <asciicircum> <i> : "î" icircumflex # LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
<dead_diaeresis> <i> : "ï" idiaeresis # LATIN SMALL LETTER I WITH DIAERESIS
|
||||
<Multi_key> <quotedbl> <i> : "ï" idiaeresis # LATIN SMALL LETTER I WITH DIAERESIS
|
||||
<Multi_key> <d> <h> : "ð" eth # LATIN SMALL LETTER ETH
|
||||
<dead_tilde> <n> : "ñ" ntilde # LATIN SMALL LETTER N WITH TILDE
|
||||
<Multi_key> <asciitilde> <n> : "ñ" ntilde # LATIN SMALL LETTER N WITH TILDE
|
||||
<combining_tilde> <n> : "ñ" ntilde # LATIN SMALL LETTER N WITH TILDE
|
||||
<dead_grave> <o> : "ò" ograve # LATIN SMALL LETTER O WITH GRAVE
|
||||
<Multi_key> <grave> <o> : "ò" ograve # LATIN SMALL LETTER O WITH GRAVE
|
||||
<combining_grave> <o> : "ò" ograve # LATIN SMALL LETTER O WITH GRAVE
|
||||
<dead_acute> <o> : "ó" oacute # LATIN SMALL LETTER O WITH ACUTE
|
||||
<Multi_key> <acute> <o> : "ó" oacute # LATIN SMALL LETTER O WITH ACUTE
|
||||
<Multi_key> <apostrophe> <o> : "ó" oacute # LATIN SMALL LETTER O WITH ACUTE
|
||||
<combining_acute> <o> : "ó" oacute # LATIN SMALL LETTER O WITH ACUTE
|
||||
<dead_circumflex> <o> : "ô" ocircumflex # LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
<Multi_key> <asciicircum> <o> : "ô" ocircumflex # LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
<dead_tilde> <o> : "õ" otilde # LATIN SMALL LETTER O WITH TILDE
|
||||
<Multi_key> <asciitilde> <o> : "õ" otilde # LATIN SMALL LETTER O WITH TILDE
|
||||
<combining_tilde> <o> : "õ" otilde # LATIN SMALL LETTER O WITH TILDE
|
||||
<dead_diaeresis> <o> : "ö" odiaeresis # LATIN SMALL LETTER O WITH DIAERESIS
|
||||
<Multi_key> <quotedbl> <o> : "ö" odiaeresis # LATIN SMALL LETTER O WITH DIAERESIS
|
||||
<Multi_key> <colon> <minus> : "÷" division # DIVISION SIGN
|
||||
<Multi_key> <minus> <colon> : "÷" division # DIVISION SIGN
|
||||
<Multi_key> <slash> <o> : "ø" oslash # LATIN SMALL LETTER O WITH STROKE
|
||||
<Multi_key> <KP_Divide> <o> : "ø" oslash # LATIN SMALL LETTER O WITH STROKE
|
||||
<dead_grave> <u> : "ù" ugrave # LATIN SMALL LETTER U WITH GRAVE
|
||||
<Multi_key> <grave> <u> : "ù" ugrave # LATIN SMALL LETTER U WITH GRAVE
|
||||
<combining_grave> <u> : "ù" ugrave # LATIN SMALL LETTER U WITH GRAVE
|
||||
<dead_acute> <u> : "ú" uacute # LATIN SMALL LETTER U WITH ACUTE
|
||||
<Multi_key> <acute> <u> : "ú" uacute # LATIN SMALL LETTER U WITH ACUTE
|
||||
<Multi_key> <apostrophe> <u> : "ú" uacute # LATIN SMALL LETTER U WITH ACUTE
|
||||
<combining_acute> <u> : "ú" uacute # LATIN SMALL LETTER U WITH ACUTE
|
||||
<dead_circumflex> <u> : "û" ucircumflex # LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
<Multi_key> <asciicircum> <u> : "û" ucircumflex # LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
<dead_diaeresis> <u> : "ü" udiaeresis # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
<Multi_key> <quotedbl> <u> : "ü" udiaeresis # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
<dead_acute> <y> : "ý" yacute # LATIN SMALL LETTER Y WITH ACUTE
|
||||
<Multi_key> <acute> <y> : "ý" yacute # LATIN SMALL LETTER Y WITH ACUTE
|
||||
<Multi_key> <apostrophe> <y> : "ý" yacute # LATIN SMALL LETTER Y WITH ACUTE
|
||||
<combining_acute> <y> : "ý" yacute # LATIN SMALL LETTER Y WITH ACUTE
|
||||
<Multi_key> <t> <h> : "þ" thorn # LATIN SMALL LETTER THORN
|
||||
<dead_diaeresis> <y> : "ÿ" ydiaeresis # LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
<Multi_key> <quotedbl> <y> : "ÿ" ydiaeresis # 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
|
||||
|
|
@ -4982,8 +4995,20 @@ XCOMM group 1: cluster jamos made of three basic jamos
|
|||
<Multi_key> <underbar> <parenright> : "₎" U208E # SUBSCRIPT RIGHT PARENTHESIS
|
||||
<dead_circumflex> <Multi_key> <S> <M> : "℠" U2120 # SERVICE MARK
|
||||
<Multi_key> <S> <M> : "℠" U2120 # SERVICE MARK
|
||||
<dead_circumflex> <Multi_key> <s> <M> : "℠" U2120 # SERVICE MARK
|
||||
<Multi_key> <s> <M> : "℠" U2120 # SERVICE MARK
|
||||
<dead_circumflex> <Multi_key> <S> <m> : "℠" U2120 # SERVICE MARK
|
||||
<Multi_key> <S> <m> : "℠" U2120 # SERVICE MARK
|
||||
<dead_circumflex> <Multi_key> <s> <m> : "℠" U2120 # SERVICE MARK
|
||||
<Multi_key> <s> <m> : "℠" U2120 # SERVICE MARK
|
||||
<dead_circumflex> <Multi_key> <T> <M> : "™" U2122 # TRADE MARK SIGN
|
||||
<Multi_key> <T> <M> : "™" U2122 # TRADE MARK SIGN
|
||||
<dead_circumflex> <Multi_key> <t> <M> : "™" U2122 # TRADE MARK SIGN
|
||||
<Multi_key> <t> <M> : "™" U2122 # TRADE MARK SIGN
|
||||
<dead_circumflex> <Multi_key> <T> <m> : "™" U2122 # TRADE MARK SIGN
|
||||
<Multi_key> <T> <m> : "™" U2122 # TRADE MARK SIGN
|
||||
<dead_circumflex> <Multi_key> <t> <m> : "™" U2122 # TRADE MARK SIGN
|
||||
<Multi_key> <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
|
||||
|
|
@ -5556,25 +5581,25 @@ XCOMM group 1: cluster jamos made of three basic jamos
|
|||
<Multi_key> <U100005BF> <hebrew_beth> : "בֿ" UFB4C # HEBREW LETTER BET WITH RAFE
|
||||
<Multi_key> <U100005BF> <hebrew_kaph> : "כֿ" UFB4D # HEBREW LETTER KAF WITH RAFE
|
||||
<Multi_key> <U100005BF> <hebrew_pe> : "פֿ" UFB4E # HEBREW LETTER PE WITH RAFE
|
||||
<Multi_key> <U1001D157> <U1001D165> : "텞" U1D15E # MUSICAL SYMBOL HALF NOTE
|
||||
<Multi_key> <U1001D158> <U1001D165> : "텟" U1D15F # MUSICAL SYMBOL QUARTER NOTE
|
||||
<Multi_key> <U1001D15F> <U1001D16E> : "텠" U1D160 # MUSICAL SYMBOL EIGHTH NOTE
|
||||
##<Multi_key> <U1001D158> <U1001D165> <U1001D16E> : "텠" U1D160 # MUSICAL SYMBOL EIGHTH NOTE
|
||||
<Multi_key> <U1001D15F> <U1001D16F> : "텡" U1D161 # MUSICAL SYMBOL SIXTEENTH NOTE
|
||||
##<Multi_key> <U1001D158> <U1001D165> <U1001D16F> : "텡" U1D161 # MUSICAL SYMBOL SIXTEENTH NOTE
|
||||
<Multi_key> <U1001D15F> <U1001D170> : "텢" U1D162 # MUSICAL SYMBOL THIRTY-SECOND NOTE
|
||||
##<Multi_key> <U1001D158> <U1001D165> <U1001D170> : "텢" U1D162 # MUSICAL SYMBOL THIRTY-SECOND NOTE
|
||||
<Multi_key> <U1001D15F> <U1001D171> : "텣" U1D163 # MUSICAL SYMBOL SIXTY-FOURTH NOTE
|
||||
##<Multi_key> <U1001D158> <U1001D165> <U1001D171> : "텣" U1D163 # MUSICAL SYMBOL SIXTY-FOURTH NOTE
|
||||
<Multi_key> <U1001D15F> <U1001D172> : "텤" U1D164 # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
|
||||
##<Multi_key> <U1001D158> <U1001D165> <U1001D172> : "텤" U1D164 # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
|
||||
<Multi_key> <U1001D1B9> <U1001D165> : "톻" U1D1BB # MUSICAL SYMBOL MINIMA
|
||||
<Multi_key> <U1001D1BA> <U1001D165> : "톼" U1D1BC # MUSICAL SYMBOL MINIMA BLACK
|
||||
<Multi_key> <U1001D1BB> <U1001D16E> : "톽" U1D1BD # MUSICAL SYMBOL SEMIMINIMA WHITE
|
||||
##<Multi_key> <U1001D1B9> <U1001D165> <U1001D16E> : "톽" U1D1BD # MUSICAL SYMBOL SEMIMINIMA WHITE
|
||||
<Multi_key> <U1001D1BC> <U1001D16E> : "톾" U1D1BE # MUSICAL SYMBOL SEMIMINIMA BLACK
|
||||
##<Multi_key> <U1001D1BA> <U1001D165> <U1001D16E> : "톾" U1D1BE # MUSICAL SYMBOL SEMIMINIMA BLACK
|
||||
<Multi_key> <U1001D1BB> <U1001D16F> : "톿" U1D1BF # MUSICAL SYMBOL FUSA WHITE
|
||||
##<Multi_key> <U1001D1B9> <U1001D165> <U1001D16F> : "톿" U1D1BF # MUSICAL SYMBOL FUSA WHITE
|
||||
<Multi_key> <U1001D1BC> <U1001D16F> : "퇀" U1D1C0 # MUSICAL SYMBOL FUSA BLACK
|
||||
##<Multi_key> <U1001D1BA> <U1001D165> <U1001D16F> : "퇀" U1D1C0 # MUSICAL SYMBOL FUSA BLACK
|
||||
<Multi_key> <U1001D157> <U1001D165> : "𝅗𝅥" U1D15E # MUSICAL SYMBOL HALF NOTE
|
||||
<Multi_key> <U1001D158> <U1001D165> : "𝅘𝅥" U1D15F # MUSICAL SYMBOL QUARTER NOTE
|
||||
<Multi_key> <U1001D15F> <U1001D16E> : "𝅘𝅥𝅮" U1D160 # MUSICAL SYMBOL EIGHTH NOTE
|
||||
##<Multi_key> <U1001D158> <U1001D165> <U1001D16E> : "𝅘𝅥𝅮" U1D160 # MUSICAL SYMBOL EIGHTH NOTE
|
||||
<Multi_key> <U1001D15F> <U1001D16F> : "𝅘𝅥𝅯" U1D161 # MUSICAL SYMBOL SIXTEENTH NOTE
|
||||
##<Multi_key> <U1001D158> <U1001D165> <U1001D16F> : "𝅘𝅥𝅯" U1D161 # MUSICAL SYMBOL SIXTEENTH NOTE
|
||||
<Multi_key> <U1001D15F> <U1001D170> : "𝅘𝅥𝅰" U1D162 # MUSICAL SYMBOL THIRTY-SECOND NOTE
|
||||
##<Multi_key> <U1001D158> <U1001D165> <U1001D170> : "𝅘𝅥𝅰" U1D162 # MUSICAL SYMBOL THIRTY-SECOND NOTE
|
||||
<Multi_key> <U1001D15F> <U1001D171> : "𝅘𝅥𝅱" U1D163 # MUSICAL SYMBOL SIXTY-FOURTH NOTE
|
||||
##<Multi_key> <U1001D158> <U1001D165> <U1001D171> : "𝅘𝅥𝅱" U1D163 # MUSICAL SYMBOL SIXTY-FOURTH NOTE
|
||||
<Multi_key> <U1001D15F> <U1001D172> : "𝅘𝅥𝅲" U1D164 # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
|
||||
##<Multi_key> <U1001D158> <U1001D165> <U1001D172> : "𝅘𝅥𝅲" U1D164 # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
|
||||
<Multi_key> <U1001D1B9> <U1001D165> : "𝆹𝅥" U1D1BB # MUSICAL SYMBOL MINIMA
|
||||
<Multi_key> <U1001D1BA> <U1001D165> : "𝆺𝅥" U1D1BC # MUSICAL SYMBOL MINIMA BLACK
|
||||
<Multi_key> <U1001D1BB> <U1001D16E> : "𝆹𝅥𝅮" U1D1BD # MUSICAL SYMBOL SEMIMINIMA WHITE
|
||||
##<Multi_key> <U1001D1B9> <U1001D165> <U1001D16E> : "𝆹𝅥𝅮" U1D1BD # MUSICAL SYMBOL SEMIMINIMA WHITE
|
||||
<Multi_key> <U1001D1BC> <U1001D16E> : "𝆺𝅥𝅮" U1D1BE # MUSICAL SYMBOL SEMIMINIMA BLACK
|
||||
##<Multi_key> <U1001D1BA> <U1001D165> <U1001D16E> : "𝆺𝅥𝅮" U1D1BE # MUSICAL SYMBOL SEMIMINIMA BLACK
|
||||
<Multi_key> <U1001D1BB> <U1001D16F> : "𝆹𝅥𝅯" U1D1BF # MUSICAL SYMBOL FUSA WHITE
|
||||
##<Multi_key> <U1001D1B9> <U1001D165> <U1001D16F> : "𝆹𝅥𝅯" U1D1BF # MUSICAL SYMBOL FUSA WHITE
|
||||
<Multi_key> <U1001D1BC> <U1001D16F> : "𝆺𝅥𝅯" U1D1C0 # MUSICAL SYMBOL FUSA BLACK
|
||||
##<Multi_key> <U1001D1BA> <U1001D165> <U1001D16F> : "𝆺𝅥𝅯" U1D1C0 # MUSICAL SYMBOL FUSA BLACK
|
||||
|
|
|
|||
|
|
@ -56,8 +56,12 @@ XCOMM Special Character
|
|||
<Multi_key> <equal> <L> : "\243" sterling
|
||||
<Multi_key> <C> <equal> : "\244" EuroSign
|
||||
<Multi_key> <equal> <C> : "\244" EuroSign
|
||||
<Multi_key> <c> <equal> : "\244" EuroSign
|
||||
<Multi_key> <equal> <c> : "\244" EuroSign
|
||||
<Multi_key> <E> <equal> : "\244" EuroSign
|
||||
<Multi_key> <equal> <E> : "\244" EuroSign
|
||||
<Multi_key> <e> <equal> : "\244" EuroSign
|
||||
<Multi_key> <equal> <e> : "\244" EuroSign
|
||||
<Multi_key> <y> <minus> : "\245" yen
|
||||
<Multi_key> <minus> <y> : "\245" yen
|
||||
<Multi_key> <Y> <minus> : "\245" yen
|
||||
|
|
|
|||
|
|
@ -47,6 +47,10 @@ XCOMM Special Character
|
|||
<Multi_key> <equal> <L> : "\243" sterling
|
||||
<Multi_key> <C> <equal> : "\244" EuroSign
|
||||
<Multi_key> <equal> <C> : "\244" EuroSign
|
||||
<Multi_key> <c> <equal> : "\244" EuroSign
|
||||
<Multi_key> <equal> <c> : "\244" EuroSign
|
||||
<Multi_key> <E> <equal> : "\244" EuroSign
|
||||
<Multi_key> <equal> <E> : "\244" EuroSign
|
||||
<Multi_key> <e> <equal> : "\244" EuroSign
|
||||
<Multi_key> <equal> <e> : "\244" EuroSign
|
||||
<Multi_key> <y> <minus> : "\245" yen
|
||||
|
|
|
|||
|
|
@ -55,6 +55,10 @@ XCOMM Special Character
|
|||
<Multi_key> <equal> <L> : "\243" sterling
|
||||
<Multi_key> <C> <equal> : "\244" EuroSign
|
||||
<Multi_key> <equal> <C> : "\244" EuroSign
|
||||
<Multi_key> <c> <equal> : "\244" EuroSign
|
||||
<Multi_key> <equal> <c> : "\244" EuroSign
|
||||
<Multi_key> <E> <equal> : "\244" EuroSign
|
||||
<Multi_key> <equal> <E> : "\244" EuroSign
|
||||
<Multi_key> <e> <equal> : "\244" EuroSign
|
||||
<Multi_key> <equal> <e> : "\244" EuroSign
|
||||
<Multi_key> <y> <minus> : "\245" yen
|
||||
|
|
|
|||
|
|
@ -54,6 +54,10 @@ XCOMM Special Character
|
|||
<Multi_key> <equal> <L> : "\243" sterling
|
||||
<Multi_key> <C> <equal> : "\244" EuroSign
|
||||
<Multi_key> <equal> <C> : "\244" EuroSign
|
||||
<Multi_key> <c> <equal> : "\244" EuroSign
|
||||
<Multi_key> <equal> <c> : "\244" EuroSign
|
||||
<Multi_key> <E> <equal> : "\244" EuroSign
|
||||
<Multi_key> <equal> <E> : "\244" EuroSign
|
||||
<Multi_key> <e> <equal> : "\244" EuroSign
|
||||
<Multi_key> <equal> <e> : "\244" EuroSign
|
||||
<Multi_key> <y> <minus> : "\245" yen
|
||||
|
|
|
|||
|
|
@ -146,6 +146,15 @@ bs_BA.iso88592: bs_BA.ISO8859-2
|
|||
bs_BA.ISO-8859-2: bs_BA.ISO8859-2
|
||||
bs_BA.ISO_8859-2: bs_BA.ISO8859-2
|
||||
ca: ca_ES.ISO8859-1
|
||||
ca_AD: ca_AD.ISO8859-1
|
||||
ca_AD@euro: ca_AD.ISO8859-15
|
||||
ca_AD.iso88591: ca_AD.ISO8859-1
|
||||
ca_AD.ISO-8859-1: ca_AD.ISO8859-1
|
||||
ca_AD.iso885915: ca_AD.ISO8859-15
|
||||
ca_AD.utf8: ca_AD.UTF-8
|
||||
ca_AD.ISO-8859-15: ca_AD.ISO8859-15
|
||||
ca_AD.ISO-8859-15@euro: ca_AD.ISO8859-15
|
||||
ca_AD.UTF-8@euro: ca_AD.UTF-8
|
||||
ca_ES: ca_ES.ISO8859-1
|
||||
ca_ES@euro: ca_ES.ISO8859-15
|
||||
ca_ES.iso88591: ca_ES.ISO8859-1
|
||||
|
|
@ -155,6 +164,24 @@ ca_ES.utf8: ca_ES.UTF-8
|
|||
ca_ES.ISO-8859-15: ca_ES.ISO8859-15
|
||||
ca_ES.ISO-8859-15@euro: ca_ES.ISO8859-15
|
||||
ca_ES.UTF-8@euro: ca_ES.UTF-8
|
||||
ca_FR: ca_FR.ISO8859-1
|
||||
ca_FR@euro: ca_FR.ISO8859-15
|
||||
ca_FR.iso88591: ca_FR.ISO8859-1
|
||||
ca_FR.ISO-8859-1: ca_FR.ISO8859-1
|
||||
ca_FR.iso885915: ca_FR.ISO8859-15
|
||||
ca_FR.utf8: ca_FR.UTF-8
|
||||
ca_FR.ISO-8859-15: ca_FR.ISO8859-15
|
||||
ca_FR.ISO-8859-15@euro: ca_FR.ISO8859-15
|
||||
ca_FR.UTF-8@euro: ca_FR.UTF-8
|
||||
ca_IT: ca_IT.ISO8859-1
|
||||
ca_IT@euro: ca_IT.ISO8859-15
|
||||
ca_IT.iso88591: ca_IT.ISO8859-1
|
||||
ca_IT.ISO-8859-1: ca_IT.ISO8859-1
|
||||
ca_IT.iso885915: ca_IT.ISO8859-15
|
||||
ca_IT.utf8: ca_IT.UTF-8
|
||||
ca_IT.ISO-8859-15: ca_IT.ISO8859-15
|
||||
ca_IT.ISO-8859-15@euro: ca_IT.ISO8859-15
|
||||
ca_IT.UTF-8@euro: ca_IT.UTF-8
|
||||
cs: cs_CZ.ISO8859-2
|
||||
cs_CS: cs_CZ.ISO8859-2
|
||||
cs_CS.ISO8859-2: cs_CZ.ISO8859-2
|
||||
|
|
@ -1237,7 +1264,10 @@ Arabic_Tunisia.1256: ar_TN.iso8859-6
|
|||
Arabic_Yemen.1256: ar_YE.iso8859-6
|
||||
Belarusian_Belarus.1251: be_BY.iso8859-5
|
||||
Bulgarian_Bulgaria.1251: bg_BG.iso8859-5
|
||||
Catalan_Andorra.1252: ca_AD.iso8859-1
|
||||
Catalan_Spain.1252: ca_ES.iso8859-1
|
||||
Catalan_France.1252: ca_FR.iso8859-1
|
||||
Catalan_Italy.1252: ca_IT.iso8859-1
|
||||
Czech_Czech Republic.1250: cs_CZ.iso8859-2
|
||||
Danish_Denmark.1252: da_DK.iso8859-1
|
||||
German_Austria.1252: de_AT.iso8859-1
|
||||
|
|
|
|||
|
|
@ -38,8 +38,14 @@ iso8859-2/XLC_LOCALE bs_BA.ISO8859-2
|
|||
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_AD.ISO8859-1
|
||||
iso8859-15/XLC_LOCALE: ca_AD.ISO8859-15
|
||||
iso8859-1/XLC_LOCALE: ca_ES.ISO8859-1
|
||||
iso8859-15/XLC_LOCALE: ca_ES.ISO8859-15
|
||||
iso8859-1/XLC_LOCALE: ca_FR.ISO8859-1
|
||||
iso8859-15/XLC_LOCALE: ca_FR.ISO8859-15
|
||||
iso8859-1/XLC_LOCALE: ca_IT.ISO8859-1
|
||||
iso8859-15/XLC_LOCALE: ca_IT.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
|
||||
|
|
@ -278,7 +284,10 @@ 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: bn_IN.UTF-8
|
||||
en_US.UTF-8/XLC_LOCALE: br_FR.UTF-8
|
||||
en_US.UTF-8/XLC_LOCALE: ca_AD.UTF-8
|
||||
en_US.UTF-8/XLC_LOCALE: ca_ES.UTF-8
|
||||
en_US.UTF-8/XLC_LOCALE: ca_FR.UTF-8
|
||||
en_US.UTF-8/XLC_LOCALE: ca_IT.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
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ XCOMM Spaces
|
|||
|
||||
<Multi_key> <period> <greater> : "›" U203a
|
||||
<Multi_key> <period> <less> : "‹" U2039
|
||||
<Multi_key> <period> <period> : "·" U00B7
|
||||
<Multi_key> <period> <period> : "·" periodcentered
|
||||
<Multi_key> <exclam> <asciicircum> : "¦" brokenbar
|
||||
<Multi_key> <exclam> <exclam> : "¡" exclamdown
|
||||
<Multi_key> <p> <exclam> : "¶" paragraph
|
||||
|
|
@ -149,11 +149,15 @@ 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> <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
|
||||
<Multi_key> <e> <equal> : "€" EuroSign # EURO SIGN
|
||||
<Multi_key> <equal> <e> : "€" EuroSign # EURO SIGN
|
||||
|
||||
<Multi_key> <L> <minus> : "£" U00a3 # POUND SIGN
|
||||
<Multi_key> <minus> <L> : "£" U00a3 # POUND SIGN
|
||||
<Multi_key> <L> <minus> : "£" sterling # POUND SIGN
|
||||
<Multi_key> <minus> <L> : "£" sterling # POUND SIGN
|
||||
<Multi_key> <Y> <equal> : "¥" yen
|
||||
<Multi_key> <equal><Y> : "¥" yen
|
||||
|
||||
|
|
@ -420,178 +424,178 @@ XCOMM group 1: cluster jamos made of three basic jamos
|
|||
<Multi_key> <U11b7> <U11bb> : "ᇞ" U11de : ᅟᅠᆷ ᅟᅠᆻ = ᅟᅠᇞ
|
||||
<Multi_key> <U11bc> <U11a9> : "ᇭ" U11ed : ᅟᅠᆼ ᅟᅠᆩ = ᅟᅠᇭ
|
||||
|
||||
<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
|
||||
<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
|
||||
<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
|
||||
<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> <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
|
||||
<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
|
||||
<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> <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
|
||||
<dead_diaeresis> <y> : "ÿ" U00FF # LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
<Multi_key> <quotedbl> <y> : "ÿ" U00FF # LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
<dead_circumflex> <Multi_key> <underscore> <a> : "ª" ordfeminine # FEMININE ORDINAL INDICATOR
|
||||
<Multi_key> <asciicircum> <underscore> <a> : "ª" ordfeminine # FEMININE ORDINAL INDICATOR
|
||||
<dead_circumflex> <Multi_key> <underbar> <a> : "ª" ordfeminine # FEMININE ORDINAL INDICATOR
|
||||
<Multi_key> <asciicircum> <underbar> <a> : "ª" ordfeminine # FEMININE ORDINAL INDICATOR
|
||||
<dead_circumflex> <2> : "²" twosuperior # SUPERSCRIPT TWO
|
||||
<Multi_key> <asciicircum> <2> : "²" twosuperior # SUPERSCRIPT TWO
|
||||
<dead_circumflex> <KP_Space> : "²" twosuperior # SUPERSCRIPT TWO
|
||||
<Multi_key> <asciicircum> <KP_Space> : "²" twosuperior # SUPERSCRIPT TWO
|
||||
<dead_circumflex> <KP_2> : "²" twosuperior # SUPERSCRIPT TWO
|
||||
<Multi_key> <asciicircum> <KP_2> : "²" twosuperior # SUPERSCRIPT TWO
|
||||
<dead_circumflex> <3> : "³" threesuperior # SUPERSCRIPT THREE
|
||||
<Multi_key> <asciicircum> <3> : "³" threesuperior # SUPERSCRIPT THREE
|
||||
<dead_circumflex> <KP_3> : "³" threesuperior # SUPERSCRIPT THREE
|
||||
<Multi_key> <asciicircum> <KP_3> : "³" threesuperior # SUPERSCRIPT THREE
|
||||
<dead_circumflex> <1> : "¹" onesuperior # SUPERSCRIPT ONE
|
||||
<Multi_key> <asciicircum> <1> : "¹" onesuperior # SUPERSCRIPT ONE
|
||||
<dead_circumflex> <KP_1> : "¹" onesuperior # SUPERSCRIPT ONE
|
||||
<Multi_key> <asciicircum> <KP_1> : "¹" onesuperior # SUPERSCRIPT ONE
|
||||
<dead_circumflex> <Multi_key> <underscore> <o> : "º" masculine # MASCULINE ORDINAL INDICATOR
|
||||
<Multi_key> <asciicircum> <underscore> <o> : "º" masculine # MASCULINE ORDINAL INDICATOR
|
||||
<dead_circumflex> <Multi_key> <underbar> <o> : "º" masculine # MASCULINE ORDINAL INDICATOR
|
||||
<Multi_key> <asciicircum> <underbar> <o> : "º" masculine # MASCULINE ORDINAL INDICATOR
|
||||
<dead_grave> <A> : "À" Agrave # LATIN CAPITAL LETTER A WITH GRAVE
|
||||
<Multi_key> <grave> <A> : "À" Agrave # LATIN CAPITAL LETTER A WITH GRAVE
|
||||
<combining_grave> <A> : "À" Agrave # LATIN CAPITAL LETTER A WITH GRAVE
|
||||
<dead_acute> <A> : "Á" Aacute # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
<Multi_key> <acute> <A> : "Á" Aacute # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
<Multi_key> <apostrophe> <A> : "Á" Aacute # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
<combining_acute> <A> : "Á" Aacute # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
<dead_circumflex> <A> : "Â" Acircumflex # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
<Multi_key> <asciicircum> <A> : "Â" Acircumflex # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
<dead_tilde> <A> : "Ã" Atilde # LATIN CAPITAL LETTER A WITH TILDE
|
||||
<Multi_key> <asciitilde> <A> : "Ã" Atilde # LATIN CAPITAL LETTER A WITH TILDE
|
||||
<combining_tilde> <A> : "Ã" Atilde # LATIN CAPITAL LETTER A WITH TILDE
|
||||
<dead_diaeresis> <A> : "Ä" Adiaeresis # LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
<Multi_key> <quotedbl> <A> : "Ä" Adiaeresis # LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
<dead_abovering> <A> : "Å" Aring # LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
<Multi_key> <o> <A> : "Å" Aring # LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
<dead_cedilla> <C> : "Ç" Ccedilla # LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
<Multi_key> <comma> <C> : "Ç" Ccedilla # LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
<dead_grave> <E> : "È" Egrave # LATIN CAPITAL LETTER E WITH GRAVE
|
||||
<Multi_key> <grave> <E> : "È" Egrave # LATIN CAPITAL LETTER E WITH GRAVE
|
||||
<combining_grave> <E> : "È" Egrave # LATIN CAPITAL LETTER E WITH GRAVE
|
||||
<dead_acute> <E> : "É" Eacute # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
<Multi_key> <acute> <E> : "É" Eacute # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
<Multi_key> <apostrophe> <E> : "É" Eacute # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
<combining_acute> <E> : "É" Eacute # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
<dead_circumflex> <E> : "Ê" Ecircumflex # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
<Multi_key> <asciicircum> <E> : "Ê" Ecircumflex # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
<dead_diaeresis> <E> : "Ë" Ediaeresis # LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
<Multi_key> <quotedbl> <E> : "Ë" Ediaeresis # LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
<dead_grave> <I> : "Ì" Igrave # LATIN CAPITAL LETTER I WITH GRAVE
|
||||
<Multi_key> <grave> <I> : "Ì" Igrave # LATIN CAPITAL LETTER I WITH GRAVE
|
||||
<combining_grave> <I> : "Ì" Igrave # LATIN CAPITAL LETTER I WITH GRAVE
|
||||
<dead_acute> <I> : "Í" Iacute # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
<Multi_key> <acute> <I> : "Í" Iacute # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
<Multi_key> <apostrophe> <I> : "Í" Iacute # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
<combining_acute> <I> : "Í" Iacute # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
<dead_circumflex> <I> : "Î" Icircumflex # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
<Multi_key> <asciicircum> <I> : "Î" Icircumflex # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
<dead_diaeresis> <I> : "Ï" Idiaeresis # LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
<Multi_key> <quotedbl> <I> : "Ï" Idiaeresis # LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
<dead_tilde> <N> : "Ñ" Ntilde # LATIN CAPITAL LETTER N WITH TILDE
|
||||
<Multi_key> <asciitilde> <N> : "Ñ" Ntilde # LATIN CAPITAL LETTER N WITH TILDE
|
||||
<combining_tilde> <N> : "Ñ" Ntilde # LATIN CAPITAL LETTER N WITH TILDE
|
||||
<dead_grave> <O> : "Ò" Ograve # LATIN CAPITAL LETTER O WITH GRAVE
|
||||
<Multi_key> <grave> <O> : "Ò" Ograve # LATIN CAPITAL LETTER O WITH GRAVE
|
||||
<combining_grave> <O> : "Ò" Ograve # LATIN CAPITAL LETTER O WITH GRAVE
|
||||
<dead_acute> <O> : "Ó" Oacute # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
<Multi_key> <acute> <O> : "Ó" Oacute # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
<Multi_key> <apostrophe> <O> : "Ó" Oacute # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
<combining_acute> <O> : "Ó" Oacute # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
<dead_circumflex> <O> : "Ô" Ocircumflex # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
<Multi_key> <asciicircum> <O> : "Ô" Ocircumflex # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
<dead_tilde> <O> : "Õ" Otilde # LATIN CAPITAL LETTER O WITH TILDE
|
||||
<Multi_key> <asciitilde> <O> : "Õ" Otilde # LATIN CAPITAL LETTER O WITH TILDE
|
||||
<combining_tilde> <O> : "Õ" Otilde # LATIN CAPITAL LETTER O WITH TILDE
|
||||
<dead_diaeresis> <O> : "Ö" Odiaeresis # LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
<Multi_key> <quotedbl> <O> : "Ö" Odiaeresis # LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
<Multi_key> <slash> <O> : "Ø" Oslash # LATIN CAPITAL LETTER O WITH STROKE
|
||||
<Multi_key> <KP_Divide> <O> : "Ø" Oslash # LATIN CAPITAL LETTER O WITH STROKE
|
||||
<dead_grave> <U> : "Ù" Ugrave # LATIN CAPITAL LETTER U WITH GRAVE
|
||||
<Multi_key> <grave> <U> : "Ù" Ugrave # LATIN CAPITAL LETTER U WITH GRAVE
|
||||
<combining_grave> <U> : "Ù" Ugrave # LATIN CAPITAL LETTER U WITH GRAVE
|
||||
<dead_acute> <U> : "Ú" Uacute # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
<Multi_key> <acute> <U> : "Ú" Uacute # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
<Multi_key> <apostrophe> <U> : "Ú" Uacute # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
<combining_acute> <U> : "Ú" Uacute # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
<dead_circumflex> <U> : "Û" Ucircumflex # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
<Multi_key> <asciicircum> <U> : "Û" Ucircumflex # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
<dead_diaeresis> <U> : "Ü" Udiaeresis # LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
<Multi_key> <quotedbl> <U> : "Ü" Udiaeresis # LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
<dead_acute> <Y> : "Ý" Yacute # LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
<Multi_key> <acute> <Y> : "Ý" Yacute # LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
<Multi_key> <apostrophe> <Y> : "Ý" Yacute # LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
<combining_acute> <Y> : "Ý" Yacute # LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
<dead_grave> <a> : "à" agrave # LATIN SMALL LETTER A WITH GRAVE
|
||||
<Multi_key> <grave> <a> : "à" agrave # LATIN SMALL LETTER A WITH GRAVE
|
||||
<combining_grave> <a> : "à" agrave # LATIN SMALL LETTER A WITH GRAVE
|
||||
<dead_acute> <a> : "á" aacute # LATIN SMALL LETTER A WITH ACUTE
|
||||
<Multi_key> <acute> <a> : "á" aacute # LATIN SMALL LETTER A WITH ACUTE
|
||||
<Multi_key> <apostrophe> <a> : "á" aacute # LATIN SMALL LETTER A WITH ACUTE
|
||||
<combining_acute> <a> : "á" aacute # LATIN SMALL LETTER A WITH ACUTE
|
||||
<dead_circumflex> <a> : "â" acircumflex # LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
<Multi_key> <asciicircum> <a> : "â" acircumflex # LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
<dead_tilde> <a> : "ã" atilde # LATIN SMALL LETTER A WITH TILDE
|
||||
<Multi_key> <asciitilde> <a> : "ã" atilde # LATIN SMALL LETTER A WITH TILDE
|
||||
<combining_tilde> <a> : "ã" atilde # LATIN SMALL LETTER A WITH TILDE
|
||||
<dead_diaeresis> <a> : "ä" adiaeresis # LATIN SMALL LETTER A WITH DIAERESIS
|
||||
<Multi_key> <quotedbl> <a> : "ä" adiaeresis # LATIN SMALL LETTER A WITH DIAERESIS
|
||||
<dead_abovering> <a> : "å" aring # LATIN SMALL LETTER A WITH RING ABOVE
|
||||
<Multi_key> <o> <a> : "å" aring # LATIN SMALL LETTER A WITH RING ABOVE
|
||||
<dead_cedilla> <c> : "ç" ccedilla # LATIN SMALL LETTER C WITH CEDILLA
|
||||
<Multi_key> <comma> <c> : "ç" ccedilla # LATIN SMALL LETTER C WITH CEDILLA
|
||||
<dead_grave> <e> : "è" egrave # LATIN SMALL LETTER E WITH GRAVE
|
||||
<Multi_key> <grave> <e> : "è" egrave # LATIN SMALL LETTER E WITH GRAVE
|
||||
<combining_grave> <e> : "è" egrave # LATIN SMALL LETTER E WITH GRAVE
|
||||
<dead_acute> <e> : "é" eacute # LATIN SMALL LETTER E WITH ACUTE
|
||||
<Multi_key> <acute> <e> : "é" eacute # LATIN SMALL LETTER E WITH ACUTE
|
||||
<Multi_key> <apostrophe> <e> : "é" eacute # LATIN SMALL LETTER E WITH ACUTE
|
||||
<combining_acute> <e> : "é" eacute # LATIN SMALL LETTER E WITH ACUTE
|
||||
<dead_circumflex> <e> : "ê" ecircumflex # LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
<Multi_key> <asciicircum> <e> : "ê" ecircumflex # LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
<dead_diaeresis> <e> : "ë" ediaeresis # LATIN SMALL LETTER E WITH DIAERESIS
|
||||
<Multi_key> <quotedbl> <e> : "ë" ediaeresis # LATIN SMALL LETTER E WITH DIAERESIS
|
||||
<dead_grave> <i> : "ì" igrave # LATIN SMALL LETTER I WITH GRAVE
|
||||
<Multi_key> <grave> <i> : "ì" igrave # LATIN SMALL LETTER I WITH GRAVE
|
||||
<combining_grave> <i> : "ì" igrave # LATIN SMALL LETTER I WITH GRAVE
|
||||
<dead_acute> <i> : "í" iacute # LATIN SMALL LETTER I WITH ACUTE
|
||||
<Multi_key> <acute> <i> : "í" iacute # LATIN SMALL LETTER I WITH ACUTE
|
||||
<Multi_key> <apostrophe> <i> : "í" iacute # LATIN SMALL LETTER I WITH ACUTE
|
||||
<combining_acute> <i> : "í" iacute # LATIN SMALL LETTER I WITH ACUTE
|
||||
<dead_circumflex> <i> : "î" icircumflex # LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
<Multi_key> <asciicircum> <i> : "î" icircumflex # LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
<dead_diaeresis> <i> : "ï" idiaeresis # LATIN SMALL LETTER I WITH DIAERESIS
|
||||
<Multi_key> <quotedbl> <i> : "ï" idiaeresis # LATIN SMALL LETTER I WITH DIAERESIS
|
||||
<dead_tilde> <n> : "ñ" ntilde # LATIN SMALL LETTER N WITH TILDE
|
||||
<Multi_key> <asciitilde> <n> : "ñ" ntilde # LATIN SMALL LETTER N WITH TILDE
|
||||
<combining_tilde> <n> : "ñ" ntilde # LATIN SMALL LETTER N WITH TILDE
|
||||
<dead_grave> <o> : "ò" ograve # LATIN SMALL LETTER O WITH GRAVE
|
||||
<Multi_key> <grave> <o> : "ò" ograve # LATIN SMALL LETTER O WITH GRAVE
|
||||
<combining_grave> <o> : "ò" ograve # LATIN SMALL LETTER O WITH GRAVE
|
||||
<dead_acute> <o> : "ó" oacute # LATIN SMALL LETTER O WITH ACUTE
|
||||
<Multi_key> <acute> <o> : "ó" oacute # LATIN SMALL LETTER O WITH ACUTE
|
||||
<Multi_key> <apostrophe> <o> : "ó" oacute # LATIN SMALL LETTER O WITH ACUTE
|
||||
<combining_acute> <o> : "ó" oacute # LATIN SMALL LETTER O WITH ACUTE
|
||||
<dead_circumflex> <o> : "ô" ocircumflex # LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
<Multi_key> <asciicircum> <o> : "ô" ocircumflex # LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
<dead_tilde> <o> : "õ" otilde # LATIN SMALL LETTER O WITH TILDE
|
||||
<Multi_key> <asciitilde> <o> : "õ" otilde # LATIN SMALL LETTER O WITH TILDE
|
||||
<combining_tilde> <o> : "õ" otilde # LATIN SMALL LETTER O WITH TILDE
|
||||
<dead_diaeresis> <o> : "ö" odiaeresis # LATIN SMALL LETTER O WITH DIAERESIS
|
||||
<Multi_key> <quotedbl> <o> : "ö" odiaeresis # LATIN SMALL LETTER O WITH DIAERESIS
|
||||
<Multi_key> <slash> <o> : "ø" oslash # LATIN SMALL LETTER O WITH STROKE
|
||||
<Multi_key> <KP_Divide> <o> : "ø" oslash # LATIN SMALL LETTER O WITH STROKE
|
||||
<dead_grave> <u> : "ù" ugrave # LATIN SMALL LETTER U WITH GRAVE
|
||||
<Multi_key> <grave> <u> : "ù" ugrave # LATIN SMALL LETTER U WITH GRAVE
|
||||
<combining_grave> <u> : "ù" ugrave # LATIN SMALL LETTER U WITH GRAVE
|
||||
<dead_acute> <u> : "ú" uacute # LATIN SMALL LETTER U WITH ACUTE
|
||||
<Multi_key> <acute> <u> : "ú" uacute # LATIN SMALL LETTER U WITH ACUTE
|
||||
<Multi_key> <apostrophe> <u> : "ú" uacute # LATIN SMALL LETTER U WITH ACUTE
|
||||
<combining_acute> <u> : "ú" uacute # LATIN SMALL LETTER U WITH ACUTE
|
||||
<dead_circumflex> <u> : "û" ucircumflex # LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
<Multi_key> <asciicircum> <u> : "û" ucircumflex # LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
<dead_diaeresis> <u> : "ü" udiaeresis # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
<Multi_key> <quotedbl> <u> : "ü" udiaeresis # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
<dead_acute> <y> : "ý" yacute # LATIN SMALL LETTER Y WITH ACUTE
|
||||
<Multi_key> <acute> <y> : "ý" yacute # LATIN SMALL LETTER Y WITH ACUTE
|
||||
<Multi_key> <apostrophe> <y> : "ý" yacute # LATIN SMALL LETTER Y WITH ACUTE
|
||||
<combining_acute> <y> : "ý" yacute # LATIN SMALL LETTER Y WITH ACUTE
|
||||
<dead_diaeresis> <y> : "ÿ" ydiaeresis # LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
<Multi_key> <quotedbl> <y> : "ÿ" ydiaeresis # 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
|
||||
|
|
@ -5517,25 +5521,25 @@ XCOMM group 1: cluster jamos made of three basic jamos
|
|||
<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
|
||||
<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
|
||||
|
|
|
|||
|
|
@ -150,6 +150,9 @@ _X11TransConnectDisplay (
|
|||
char* address = addrbuf;
|
||||
XtransConnInfo trans_conn = NULL; /* transport connection object */
|
||||
int connect_stat;
|
||||
#if defined(LOCALCONN) || defined(TCPCONN)
|
||||
Bool reset_hostname = False; /* Reset hostname? */
|
||||
#endif
|
||||
#ifdef LOCALCONN
|
||||
struct utsname sys;
|
||||
# ifdef UNIXCONN
|
||||
|
|
@ -245,6 +248,8 @@ _X11TransConnectDisplay (
|
|||
else
|
||||
tcphostname = copystring("localhost", 9);
|
||||
#endif
|
||||
if (!phostname)
|
||||
reset_hostname = True;
|
||||
Xfree (phostname);
|
||||
phostname = copystring ("unix", 4);
|
||||
}
|
||||
|
|
@ -429,6 +434,16 @@ _X11TransConnectDisplay (
|
|||
*
|
||||
* [host] : [:] dpy . scr \0
|
||||
*/
|
||||
#if defined(LOCALCONN) || defined(TCPCONN)
|
||||
/*
|
||||
* If we computed the host name, get rid of it so that
|
||||
* XDisplayString() and XDisplayName() agree.
|
||||
*/
|
||||
if (reset_hostname) {
|
||||
Xfree (phostname);
|
||||
phostname = NULL;
|
||||
}
|
||||
#endif
|
||||
len = ((phostname ? strlen(phostname) : 0) + 1 + (dnet ? 1 : 0) +
|
||||
strlen(pdpynum) + 1 + (pscrnum ? strlen(pscrnum) : 1) + 1);
|
||||
*fullnamep = (char *) Xmalloc (len);
|
||||
|
|
@ -478,6 +493,7 @@ _X11TransConnectDisplay (
|
|||
pprotocol = copystring("tcp", 3);
|
||||
phostname = tcphostname;
|
||||
tcphostname = NULL;
|
||||
reset_hostname = True;
|
||||
goto connect;
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
47
src/ErrDes.c
47
src/ErrDes.c
|
|
@ -71,25 +71,31 @@ SOFTWARE.
|
|||
* 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[] = {
|
||||
/* No error */ "no error",
|
||||
/* BadRequest */ "BadRequest",
|
||||
/* BadValue */ "BadValue",
|
||||
/* BadWindow */ "BadWindow",
|
||||
/* BadPixmap */ "BadPixmap",
|
||||
/* BadAtom */ "BadAtom",
|
||||
/* BadCursor */ "BadCursor",
|
||||
/* BadFont */ "BadFont",
|
||||
/* BadMatch */ "BadMatch",
|
||||
/* BadDrawable */ "BadDrawable",
|
||||
/* BadAccess */ "BadAccess",
|
||||
/* BadAlloc */ "BadAlloc",
|
||||
/* BadColor */ "BadColor",
|
||||
/* BadGC */ "BadGC",
|
||||
/* BadIDChoice */ "BadIDChoice",
|
||||
/* BadName */ "BadName",
|
||||
/* BadLength */ "BadLength",
|
||||
/* BadImplementation */ "BadImplementation",
|
||||
static const char _XErrorList[] =
|
||||
/* No error */ "no error\0"
|
||||
/* BadRequest */ "BadRequest\0"
|
||||
/* BadValue */ "BadValue\0"
|
||||
/* BadWindow */ "BadWindow\0"
|
||||
/* BadPixmap */ "BadPixmap\0"
|
||||
/* BadAtom */ "BadAtom\0"
|
||||
/* BadCursor */ "BadCursor\0"
|
||||
/* BadFont */ "BadFont\0"
|
||||
/* BadMatch */ "BadMatch\0"
|
||||
/* BadDrawable */ "BadDrawable\0"
|
||||
/* BadAccess */ "BadAccess\0"
|
||||
/* BadAlloc */ "BadAlloc\0"
|
||||
/* BadColor */ "BadColor\0"
|
||||
/* BadGC */ "BadGC\0"
|
||||
/* BadIDChoice */ "BadIDChoice\0"
|
||||
/* BadName */ "BadName\0"
|
||||
/* BadLength */ "BadLength\0"
|
||||
/* BadImplementation */ "BadImplementation"
|
||||
;
|
||||
|
||||
/* offsets into _XErrorList */
|
||||
static const unsigned char _XErrorOffsets[] = {
|
||||
0, 9, 20, 29, 39, 49, 57, 67, 75, 84, 96,
|
||||
106, 115, 124, 130, 142, 150, 160
|
||||
};
|
||||
|
||||
|
||||
|
|
@ -107,7 +113,8 @@ XGetErrorText(
|
|||
if (nbytes == 0) return 0;
|
||||
if (code <= BadImplementation && code > 0) {
|
||||
sprintf(buf, "%d", code);
|
||||
(void) XGetErrorDatabaseText(dpy, "XProtoError", buf, _XErrorList[code],
|
||||
(void) XGetErrorDatabaseText(dpy, "XProtoError", buf,
|
||||
_XErrorList + _XErrorOffsets[code],
|
||||
buffer, nbytes);
|
||||
} else
|
||||
buffer[0] = '\0';
|
||||
|
|
|
|||
|
|
@ -33,9 +33,9 @@ in this Software without prior written authorization from The Open Group.
|
|||
|
||||
XTimeCoord *XGetMotionEvents(
|
||||
register Display *dpy,
|
||||
Window w,
|
||||
Time start,
|
||||
Time stop,
|
||||
Window w,
|
||||
int *nEvents) /* RETURN */
|
||||
{
|
||||
xGetMotionEventsReply rep;
|
||||
|
|
|
|||
|
|
@ -413,6 +413,6 @@ ks_tables.h: $(KEYSYMDEF) $(top_builddir)/src/util/makekeys$(EXEEXT)
|
|||
mv ks_tables_h $@
|
||||
|
||||
$(top_builddir)/src/util/makekeys$(EXEEXT): force
|
||||
cd util; $(MAKE)
|
||||
cd util && $(MAKE)
|
||||
|
||||
force:
|
||||
|
|
|
|||
55
src/RdBitF.c
55
src/RdBitF.c
|
|
@ -56,43 +56,23 @@ from The Open Group.
|
|||
#define MAX_SIZE 255
|
||||
|
||||
/* shared data for the image read/parse logic */
|
||||
static short hexTable[256]; /* conversion value */
|
||||
static Bool initialized = False; /* easier to fill in at run time */
|
||||
static const short hexTable[256] = {
|
||||
['0'] = 0, ['1'] = 1,
|
||||
['2'] = 2, ['3'] = 3,
|
||||
['4'] = 4, ['5'] = 5,
|
||||
['6'] = 6, ['7'] = 7,
|
||||
['8'] = 8, ['9'] = 9,
|
||||
['A'] = 10, ['B'] = 11,
|
||||
['C'] = 12, ['D'] = 13,
|
||||
['E'] = 14, ['F'] = 15,
|
||||
['a'] = 10, ['b'] = 11,
|
||||
['c'] = 12, ['d'] = 13,
|
||||
['e'] = 14, ['f'] = 15,
|
||||
|
||||
|
||||
/*
|
||||
* Table index for the hex values. Initialized once, first time.
|
||||
* Used for translation value or delimiter significance lookup.
|
||||
*/
|
||||
static void initHexTable(void)
|
||||
{
|
||||
/*
|
||||
* We build the table at run time for several reasons:
|
||||
*
|
||||
* 1. portable to non-ASCII machines.
|
||||
* 2. still reentrant since we set the init flag after setting table.
|
||||
* 3. easier to extend.
|
||||
* 4. less prone to bugs.
|
||||
*/
|
||||
hexTable['0'] = 0; hexTable['1'] = 1;
|
||||
hexTable['2'] = 2; hexTable['3'] = 3;
|
||||
hexTable['4'] = 4; hexTable['5'] = 5;
|
||||
hexTable['6'] = 6; hexTable['7'] = 7;
|
||||
hexTable['8'] = 8; hexTable['9'] = 9;
|
||||
hexTable['A'] = 10; hexTable['B'] = 11;
|
||||
hexTable['C'] = 12; hexTable['D'] = 13;
|
||||
hexTable['E'] = 14; hexTable['F'] = 15;
|
||||
hexTable['a'] = 10; hexTable['b'] = 11;
|
||||
hexTable['c'] = 12; hexTable['d'] = 13;
|
||||
hexTable['e'] = 14; hexTable['f'] = 15;
|
||||
|
||||
/* delimiters of significance are flagged w/ negative value */
|
||||
hexTable[' '] = -1; hexTable[','] = -1;
|
||||
hexTable['}'] = -1; hexTable['\n'] = -1;
|
||||
hexTable['\t'] = -1;
|
||||
|
||||
initialized = True;
|
||||
}
|
||||
[' '] = -1, [','] = -1,
|
||||
['}'] = -1, ['\n'] = -1,
|
||||
['\t'] = -1
|
||||
};
|
||||
|
||||
/*
|
||||
* read next hex value in the input stream, return -1 if EOF
|
||||
|
|
@ -151,9 +131,6 @@ XReadBitmapFileData (
|
|||
int hx = -1; /* x hotspot */
|
||||
int hy = -1; /* y hotspot */
|
||||
|
||||
/* first time initialization */
|
||||
if (initialized == False) initHexTable();
|
||||
|
||||
#ifdef __UNIXOS2__
|
||||
filename = __XOS2RedirRoot(filename);
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ in this Software without prior written authorization from The Open Group.
|
|||
#include <X11/Xatom.h>
|
||||
|
||||
/* insulate predefined atom numbers from cut routines */
|
||||
static Atom n_to_atom[8] = {
|
||||
static const Atom n_to_atom[8] = {
|
||||
XA_CUT_BUFFER0,
|
||||
XA_CUT_BUFFER1,
|
||||
XA_CUT_BUFFER2,
|
||||
|
|
@ -48,6 +48,9 @@ XRotateBuffers (
|
|||
register Display *dpy,
|
||||
int rotate)
|
||||
{
|
||||
/* XRotateWindowProperties wants a non-const Atom*, but it doesn't
|
||||
* modify it, so this is safe.
|
||||
*/
|
||||
return XRotateWindowProperties(dpy, RootWindow(dpy, 0), n_to_atom, 8, rotate);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2926,6 +2926,16 @@ _XIOError (
|
|||
errno = WSAGetLastError();
|
||||
#endif
|
||||
|
||||
/* This assumes that the thread calling exit will call any atexit handlers.
|
||||
* If this does not hold, then an alternate solution would involve
|
||||
* registering an atexit handler to take over the lock, which would only
|
||||
* assume that the same thread calls all the atexit handlers. */
|
||||
#ifdef XTHREADS
|
||||
if (dpy->lock)
|
||||
(*dpy->lock->user_lock_display)(dpy);
|
||||
#endif
|
||||
UnlockDisplay(dpy);
|
||||
|
||||
if (_XIOErrorFunction != NULL)
|
||||
(*_XIOErrorFunction)(dpy);
|
||||
else
|
||||
|
|
|
|||
|
|
@ -808,6 +808,7 @@ void XrmCombineDatabase(
|
|||
}
|
||||
}
|
||||
(from->methods->destroy)(from->mbstate);
|
||||
_XUnlockMutex(&from->linfo);
|
||||
_XFreeMutex(&from->linfo);
|
||||
Xfree((char *)from);
|
||||
_XUnlockMutex(&(*into)->linfo);
|
||||
|
|
@ -2656,6 +2657,7 @@ void XrmDestroyDatabase(
|
|||
else
|
||||
DestroyNTable(table);
|
||||
}
|
||||
_XUnlockMutex(&db->linfo);
|
||||
_XFreeMutex(&db->linfo);
|
||||
(*db->methods->destroy)(db->mbstate);
|
||||
Xfree((char *)db);
|
||||
|
|
|
|||
|
|
@ -67,11 +67,11 @@ typedef int (*ucstocsConvProc)(
|
|||
);
|
||||
|
||||
struct SubstRec {
|
||||
const char* encoding_name;
|
||||
const char* charset_name;
|
||||
const char encoding_name[8];
|
||||
const char charset_name[12];
|
||||
};
|
||||
|
||||
static struct SubstRec SubstTable[] = {
|
||||
static const struct SubstRec SubstTable[] = {
|
||||
{"STRING", "ISO8859-1"},
|
||||
{"TIS620", "TIS620-0"},
|
||||
{"UTF-8", "ISO10646-1"}
|
||||
|
|
|
|||
111
src/xcb_io.c
111
src/xcb_io.c
|
|
@ -77,28 +77,6 @@ static void condition_wait(Display *dpy, xcondition_t cv)
|
|||
_XGetXCBBuffer(dpy);
|
||||
}
|
||||
|
||||
static void handle_event(Display *dpy, xcb_generic_event_t *e)
|
||||
{
|
||||
if(!e)
|
||||
_XIOError(dpy);
|
||||
dpy->last_request_read = e->full_sequence;
|
||||
if(e->response_type == X_Error)
|
||||
_XError(dpy, (xError *) e);
|
||||
else
|
||||
{
|
||||
/* GenericEvents may be > 32 bytes. In this case, the event struct
|
||||
* is trailed by the additional bytes. the xcb_generic_event_t
|
||||
* struct uses 4 bytes for internal numbering, so we need to
|
||||
* shift the trailing data to be after the first 32 bytes.
|
||||
*/
|
||||
if (e->response_type == GenericEvent && ((xcb_ge_event_t*)e)->length) {
|
||||
memmove(&e->full_sequence, &e[1], ((xcb_ge_event_t*)e)->length * 4);
|
||||
}
|
||||
_XEnq(dpy, (xEvent *) e);
|
||||
}
|
||||
free(e);
|
||||
}
|
||||
|
||||
static void call_handlers(Display *dpy, xcb_generic_reply_t *buf)
|
||||
{
|
||||
_XAsyncHandler *async, *next;
|
||||
|
|
@ -116,7 +94,7 @@ static xcb_generic_event_t * wait_or_poll_for_event(Display *dpy, int wait)
|
|||
{
|
||||
xcb_connection_t *c = dpy->xcb->connection;
|
||||
xcb_generic_event_t *event;
|
||||
if(wait && !dpy->head)
|
||||
if(wait)
|
||||
{
|
||||
UnlockDisplay(dpy);
|
||||
event = xcb_wait_for_event(c);
|
||||
|
|
@ -132,54 +110,78 @@ static void process_responses(Display *dpy, int wait_for_first_event, xcb_generi
|
|||
void *reply;
|
||||
xcb_generic_event_t *event = dpy->xcb->next_event;
|
||||
xcb_generic_error_t *error;
|
||||
PendingRequest *req;
|
||||
xcb_connection_t *c = dpy->xcb->connection;
|
||||
if(!event && dpy->xcb->event_owner == XlibOwnsEventQueue)
|
||||
event = wait_or_poll_for_event(dpy, wait_for_first_event);
|
||||
|
||||
while(1)
|
||||
{
|
||||
req = dpy->xcb->pending_requests;
|
||||
PendingRequest *req = dpy->xcb->pending_requests;
|
||||
assert(!(req && current_request && !XCB_SEQUENCE_COMPARE(req->sequence, <=, current_request)));
|
||||
if(event && (!req || XCB_SEQUENCE_COMPARE(event->full_sequence, <=, req->sequence)))
|
||||
{
|
||||
if(current_error && event->response_type == 0 && event->full_sequence == current_request)
|
||||
dpy->last_request_read = event->full_sequence;
|
||||
if(event->response_type != X_Error)
|
||||
{
|
||||
/* GenericEvents may be > 32 bytes. In this
|
||||
* case, the event struct is trailed by the
|
||||
* additional bytes. the xcb_generic_event_t
|
||||
* struct uses 4 bytes for internal numbering,
|
||||
* so we need to shift the trailing data to be
|
||||
* after the first 32 bytes. */
|
||||
if (event->response_type == GenericEvent &&
|
||||
((xcb_ge_event_t*)event)->length)
|
||||
{
|
||||
memmove(&event->full_sequence,
|
||||
&event[1],
|
||||
((xcb_ge_event_t*)event)->length * 4);
|
||||
}
|
||||
_XEnq(dpy, (xEvent *) event);
|
||||
wait_for_first_event = 0;
|
||||
}
|
||||
else if(current_error && event->full_sequence == current_request)
|
||||
{
|
||||
/* This can only occur when called from
|
||||
* _XReply, which doesn't need a new event. */
|
||||
*current_error = (xcb_generic_error_t *) event;
|
||||
event = 0;
|
||||
break;
|
||||
}
|
||||
handle_event(dpy, event);
|
||||
else
|
||||
_XError(dpy, (xError *) event);
|
||||
free(event);
|
||||
event = wait_or_poll_for_event(dpy, wait_for_first_event);
|
||||
}
|
||||
else if(req && req->waiters != -1)
|
||||
{
|
||||
if(req->sequence == current_request)
|
||||
break;
|
||||
if(!current_request && !(wait_for_first_event && !dpy->head))
|
||||
if(!current_request && !wait_for_first_event)
|
||||
break;
|
||||
dpy->xcb->next_event = event;
|
||||
req->waiters++;
|
||||
assert(req->waiters > 0);
|
||||
condition_wait(dpy, &req->condition);
|
||||
if(--req->waiters == 0)
|
||||
free(req);
|
||||
--req->waiters;
|
||||
event = dpy->xcb->next_event;
|
||||
}
|
||||
else if(req && xcb_poll_for_reply(dpy->xcb->connection, req->sequence, &reply, &error))
|
||||
{
|
||||
dpy->xcb->pending_requests = req->next;
|
||||
if(!dpy->xcb->pending_requests)
|
||||
dpy->xcb->pending_requests_tail = &dpy->xcb->pending_requests;
|
||||
unsigned int sequence = req->sequence;
|
||||
if(!reply)
|
||||
{
|
||||
dpy->xcb->pending_requests = req->next;
|
||||
if(!dpy->xcb->pending_requests)
|
||||
dpy->xcb->pending_requests_tail = &dpy->xcb->pending_requests;
|
||||
free(req);
|
||||
reply = error;
|
||||
}
|
||||
if(reply)
|
||||
{
|
||||
dpy->last_request_read = req->sequence;
|
||||
dpy->last_request_read = sequence;
|
||||
call_handlers(dpy, reply);
|
||||
free(reply);
|
||||
}
|
||||
free(req);
|
||||
free(reply);
|
||||
}
|
||||
else
|
||||
break;
|
||||
|
|
@ -191,11 +193,13 @@ static void process_responses(Display *dpy, int wait_for_first_event, xcb_generi
|
|||
_XIOError(dpy);
|
||||
|
||||
assert_sequence_less(dpy->last_request_read, dpy->request);
|
||||
assert(!wait_for_first_event || dpy->head);
|
||||
assert(!wait_for_first_event);
|
||||
}
|
||||
|
||||
int _XEventsQueued(Display *dpy, int mode)
|
||||
{
|
||||
if(dpy->flags & XlibDisplayIOError)
|
||||
return 0;
|
||||
if(dpy->xcb->event_owner != XlibOwnsEventQueue)
|
||||
return 0;
|
||||
|
||||
|
|
@ -212,6 +216,8 @@ int _XEventsQueued(Display *dpy, int mode)
|
|||
*/
|
||||
void _XReadEvents(Display *dpy)
|
||||
{
|
||||
if(dpy->flags & XlibDisplayIOError)
|
||||
return;
|
||||
_XSend(dpy, 0, 0);
|
||||
if(dpy->xcb->event_owner != XlibOwnsEventQueue)
|
||||
return;
|
||||
|
|
@ -229,6 +235,8 @@ void _XReadEvents(Display *dpy)
|
|||
void _XSend(Display *dpy, const char *data, long size)
|
||||
{
|
||||
xcb_connection_t *c = dpy->xcb->connection;
|
||||
if(dpy->flags & XlibDisplayIOError)
|
||||
return;
|
||||
|
||||
assert(!dpy->xcb->request_extra);
|
||||
dpy->xcb->request_extra = data;
|
||||
|
|
@ -339,17 +347,6 @@ static PendingRequest * insert_pending_request(Display *dpy)
|
|||
return *cur;
|
||||
}
|
||||
|
||||
static void remove_pending_request(Display *dpy, PendingRequest *node)
|
||||
{
|
||||
PendingRequest **cur = &dpy->xcb->pending_requests;
|
||||
while(*cur && *cur != node)
|
||||
cur = &((*cur)->next);
|
||||
if(*cur == node)
|
||||
*cur = node->next;
|
||||
if(!dpy->xcb->pending_requests)
|
||||
dpy->xcb->pending_requests_tail = &dpy->xcb->pending_requests;
|
||||
}
|
||||
|
||||
/*
|
||||
* _XReply - Wait for a reply packet and copy its contents into the
|
||||
* specified rep.
|
||||
|
|
@ -362,16 +359,19 @@ Status _XReply(Display *dpy, xReply *rep, int extra, Bool discard)
|
|||
xcb_connection_t *c = dpy->xcb->connection;
|
||||
char *reply;
|
||||
PendingRequest *current;
|
||||
unsigned int current_sequence;
|
||||
|
||||
assert(!dpy->xcb->reply_data);
|
||||
|
||||
if(dpy->flags & XlibDisplayIOError)
|
||||
return 0;
|
||||
|
||||
/* Internals of UnlockDisplay done by hand here, so that we can
|
||||
insert_pending_request *after* we _XPutXCBBuffer, but before we
|
||||
unlock the display. */
|
||||
_XPutXCBBuffer(dpy);
|
||||
current = insert_pending_request(dpy);
|
||||
xcb_xlib_unlock(dpy->xcb->connection);
|
||||
if(!dpy->lock || dpy->lock->locking_level == 0)
|
||||
xcb_xlib_unlock(dpy->xcb->connection);
|
||||
if(dpy->xcb->lock_fns.unlock_display)
|
||||
dpy->xcb->lock_fns.unlock_display(dpy);
|
||||
reply = xcb_wait_for_reply(c, current->sequence, &error);
|
||||
|
|
@ -380,18 +380,11 @@ Status _XReply(Display *dpy, xReply *rep, int extra, Bool discard)
|
|||
check_internal_connections(dpy);
|
||||
process_responses(dpy, 0, &error, current->sequence);
|
||||
|
||||
current_sequence = current->sequence;
|
||||
|
||||
remove_pending_request(dpy, current);
|
||||
if(current->waiters)
|
||||
{ /* The ConditionBroadcast macro contains an if; braces needed here. */
|
||||
ConditionBroadcast(dpy, ¤t->condition);
|
||||
}
|
||||
else
|
||||
{
|
||||
free(current);
|
||||
current = NULL;
|
||||
}
|
||||
--current->waiters;
|
||||
|
||||
if(error)
|
||||
{
|
||||
|
|
@ -446,7 +439,7 @@ Status _XReply(Display *dpy, xReply *rep, int extra, Bool discard)
|
|||
return 0;
|
||||
}
|
||||
|
||||
dpy->last_request_read = current_sequence;
|
||||
dpy->last_request_read = current->sequence;
|
||||
|
||||
/* there's no error and we have a reply. */
|
||||
dpy->xcb->reply_data = reply;
|
||||
|
|
|
|||
|
|
@ -17,21 +17,28 @@ static void _XCBLockDisplay(Display *dpy)
|
|||
{
|
||||
if(dpy->xcb->lock_fns.lock_display)
|
||||
dpy->xcb->lock_fns.lock_display(dpy);
|
||||
xcb_xlib_lock(dpy->xcb->connection);
|
||||
_XGetXCBBuffer(dpy);
|
||||
if(!dpy->lock || dpy->lock->locking_level == 0)
|
||||
xcb_xlib_lock(dpy->xcb->connection);
|
||||
if(!(dpy->flags & XlibDisplayIOError))
|
||||
_XGetXCBBuffer(dpy);
|
||||
}
|
||||
|
||||
/* XXX: If you change this function, update _XReply's copy of its guts! */
|
||||
static void _XCBUnlockDisplay(Display *dpy)
|
||||
{
|
||||
_XPutXCBBuffer(dpy);
|
||||
assert(dpy->xcb->partial_request == 0);
|
||||
assert(xcb_get_request_sent(dpy->xcb->connection) == dpy->request);
|
||||
if(!(dpy->flags & XlibDisplayIOError))
|
||||
{
|
||||
_XPutXCBBuffer(dpy);
|
||||
assert(dpy->xcb->partial_request == 0);
|
||||
assert(xcb_get_request_sent(dpy->xcb->connection) == dpy->request);
|
||||
|
||||
/* Traditional Xlib does this in _XSend; see the Xlib/XCB version
|
||||
* of that function for why we do it here instead. */
|
||||
_XSetSeqSyncFunction(dpy);
|
||||
/* Traditional Xlib does this in _XSend; see the Xlib/XCB version
|
||||
* of that function for why we do it here instead. */
|
||||
_XSetSeqSyncFunction(dpy);
|
||||
}
|
||||
|
||||
xcb_xlib_unlock(dpy->xcb->connection);
|
||||
if(!dpy->lock || dpy->lock->locking_level == 0)
|
||||
xcb_xlib_unlock(dpy->xcb->connection);
|
||||
if(dpy->xcb->lock_fns.unlock_display)
|
||||
dpy->xcb->lock_fns.unlock_display(dpy);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,11 +53,11 @@
|
|||
* Static representation of a character set that can be used in Compound Text.
|
||||
*/
|
||||
typedef struct _CTDataRec {
|
||||
const char *name;
|
||||
const char *ct_sequence; /* Compound Text encoding, ESC sequence */
|
||||
const char name[19];
|
||||
const char ct_sequence[5]; /* Compound Text encoding, ESC sequence */
|
||||
} CTDataRec, *CTData;
|
||||
|
||||
static CTDataRec default_ct_data[] =
|
||||
static const CTDataRec default_ct_data[] =
|
||||
{
|
||||
/* */
|
||||
/* X11 registry name MIME name ISO-IR ESC sequence */
|
||||
|
|
@ -1265,7 +1265,7 @@ Bool
|
|||
_XlcInitCTInfo()
|
||||
{
|
||||
if (ct_list == NULL) {
|
||||
CTData ct_data;
|
||||
const CTDataRec *ct_data;
|
||||
int num;
|
||||
XlcCharSet charset;
|
||||
|
||||
|
|
|
|||
|
|
@ -99,10 +99,7 @@ typedef enum {
|
|||
|
||||
typedef struct {
|
||||
Token token; /* token id */
|
||||
const char *name; /* token sequence */
|
||||
int len; /* length of token sequence */
|
||||
int (*parse_proc)(const char *str, Token token, Database *db);
|
||||
/* parsing procedure */
|
||||
} TokenTable;
|
||||
|
||||
static int f_newline (const char *str, Token token, Database *db);
|
||||
|
|
@ -116,20 +113,20 @@ 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 },
|
||||
{ T_COMMENT, "#", 1, f_comment },
|
||||
{ T_SEMICOLON, ";", 1, f_semicolon },
|
||||
{ T_DOUBLE_QUOTE, "\"", 1, f_double_quote },
|
||||
{ T_LEFT_BRACE, "{", 1, f_left_brace },
|
||||
{ T_RIGHT_BRACE, "}", 1, f_right_brace },
|
||||
{ T_SPACE, " ", 1, f_white },
|
||||
{ T_TAB, "\t", 1, f_white },
|
||||
{ T_BACKSLASH, "\\", 1, f_backslash },
|
||||
{ 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 */
|
||||
static const TokenTable token_tbl[] = {
|
||||
{ T_NEWLINE, 1 },
|
||||
{ T_COMMENT, 1 },
|
||||
{ T_SEMICOLON, 1 },
|
||||
{ T_DOUBLE_QUOTE, 1 },
|
||||
{ T_LEFT_BRACE, 1 },
|
||||
{ T_RIGHT_BRACE, 1 },
|
||||
{ T_SPACE, 1 },
|
||||
{ T_TAB, 1 },
|
||||
{ T_BACKSLASH, 1 },
|
||||
{ T_NUMERIC_HEX, 2 },
|
||||
{ T_NUMERIC_DEC, 2 },
|
||||
{ T_NUMERIC_OCT, 2 },
|
||||
{ T_DEFAULT, 1 } /* any character */
|
||||
};
|
||||
|
||||
#define SYM_CR '\r'
|
||||
|
|
@ -1093,8 +1090,48 @@ CreateDatabase(
|
|||
}
|
||||
p = line.str;
|
||||
while (*p) {
|
||||
int (*parse_proc)(const char *str, Token token, Database *db) = NULL;
|
||||
|
||||
token = get_token(p);
|
||||
len = (*token_tbl[token].parse_proc)(p, token, &db);
|
||||
|
||||
switch (token_tbl[token].token) {
|
||||
case T_NEWLINE:
|
||||
parse_proc = f_newline;
|
||||
break;
|
||||
case T_COMMENT:
|
||||
parse_proc = f_comment;
|
||||
break;
|
||||
case T_SEMICOLON:
|
||||
parse_proc = f_semicolon;
|
||||
break;
|
||||
case T_DOUBLE_QUOTE:
|
||||
parse_proc = f_double_quote;
|
||||
break;
|
||||
case T_LEFT_BRACE:
|
||||
parse_proc = f_left_brace;
|
||||
break;
|
||||
case T_RIGHT_BRACE:
|
||||
parse_proc = f_right_brace;
|
||||
break;
|
||||
case T_SPACE:
|
||||
case T_TAB:
|
||||
parse_proc = f_white;
|
||||
break;
|
||||
case T_BACKSLASH:
|
||||
parse_proc = f_backslash;
|
||||
break;
|
||||
case T_NUMERIC_HEX:
|
||||
case T_NUMERIC_DEC:
|
||||
case T_NUMERIC_OCT:
|
||||
parse_proc = f_numeric;
|
||||
break;
|
||||
case T_DEFAULT:
|
||||
parse_proc = f_default;
|
||||
break;
|
||||
}
|
||||
|
||||
len = parse_proc(p, token, &db);
|
||||
|
||||
if (len < 1) {
|
||||
error = 1;
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue