aboutsummaryrefslogtreecommitdiff
path: root/xorg-server
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server')
-rw-r--r--xorg-server/Xext/security.c4
-rw-r--r--xorg-server/Xext/shm.c2
-rw-r--r--xorg-server/Xext/xselinux_hooks.c4
-rw-r--r--xorg-server/Xi/exevents.c35
-rw-r--r--xorg-server/Xi/xipassivegrab.c36
-rw-r--r--xorg-server/dix/dispatch.c23
-rw-r--r--xorg-server/dix/events.c25
-rw-r--r--xorg-server/dix/extension.c14
-rw-r--r--xorg-server/hw/xfree86/fbdevhw/fbdevhw.c2
-rw-r--r--xorg-server/include/dixstruct.h1
-rw-r--r--xorg-server/include/extension.h2
-rw-r--r--xorg-server/include/input.h2
-rw-r--r--xorg-server/include/inputstr.h2
-rw-r--r--xorg-server/include/misc.h7
-rw-r--r--xorg-server/record/record.c8
-rw-r--r--xorg-server/test/misc.c3
-rw-r--r--xorg-server/xkeyboard-config/Makefile.am2
-rw-r--r--xorg-server/xkeyboard-config/configure.in1
-rw-r--r--xorg-server/xkeyboard-config/rules/base.xml.in1
-rw-r--r--xorg-server/xkeyboard-config/symbols/cd2
-rw-r--r--xorg-server/xkeyboard-config/symbols/is20
-rw-r--r--xorg-server/xkeyboard-config/xkeyboard-config.spec.in45
22 files changed, 107 insertions, 134 deletions
diff --git a/xorg-server/Xext/security.c b/xorg-server/Xext/security.c
index 0a63aa280..6fc1eafdd 100644
--- a/xorg-server/Xext/security.c
+++ b/xorg-server/Xext/security.c
@@ -148,9 +148,7 @@ SecurityLabelInitial(void)
static _X_INLINE const char *
SecurityLookupRequestName(ClientPtr client)
{
- int major = ((xReq *)client->requestBuffer)->reqType;
- int minor = MinorOpcodeOfRequest(client);
- return LookupRequestName(major, minor);
+ return LookupRequestName(client->majorOp, client->minorOp);
}
diff --git a/xorg-server/Xext/shm.c b/xorg-server/Xext/shm.c
index 9c8beb27c..7ca027a90 100644
--- a/xorg-server/Xext/shm.c
+++ b/xorg-server/Xext/shm.c
@@ -481,7 +481,7 @@ doShmPutImage(DrawablePtr dst, GCPtr pGC,
{
PixmapPtr pPixmap;
- if (format == ZPixmap || depth == 1) {
+ if (format == ZPixmap || (format == XYPixmap && depth == 1)) {
pPixmap = GetScratchPixmapHeader(dst->pScreen, w, h, depth,
BitsPerPixel(depth),
PixmapBytePad(w, depth),
diff --git a/xorg-server/Xext/xselinux_hooks.c b/xorg-server/Xext/xselinux_hooks.c
index f1d8e5d2f..0d4c9ab11 100644
--- a/xorg-server/Xext/xselinux_hooks.c
+++ b/xorg-server/Xext/xselinux_hooks.c
@@ -263,8 +263,8 @@ SELinuxAudit(void *auditdata,
if (client) {
REQUEST(xReq);
if (stuff) {
- major = stuff->reqType;
- minor = MinorOpcodeOfRequest(client);
+ major = client->majorOp;
+ minor = client->minorOp;
}
}
if (audit->id)
diff --git a/xorg-server/Xi/exevents.c b/xorg-server/Xi/exevents.c
index 53db03629..20495e74d 100644
--- a/xorg-server/Xi/exevents.c
+++ b/xorg-server/Xi/exevents.c
@@ -1628,6 +1628,19 @@ SelectForWindow(DeviceIntPtr dev, WindowPtr pWin, ClientPtr client,
return Success;
}
+static void
+FreeInputClient(InputClientsPtr *other)
+{
+ free(*other);
+ *other = NULL;
+}
+
+static InputClientsPtr
+AllocInputClient(void)
+{
+ return calloc(1, sizeof(InputClients));
+}
+
int
AddExtensionClient(WindowPtr pWin, ClientPtr client, Mask mask, int mskidx)
{
@@ -1635,7 +1648,7 @@ AddExtensionClient(WindowPtr pWin, ClientPtr client, Mask mask, int mskidx)
if (!pWin->optional && !MakeWindowOptional(pWin))
return BadAlloc;
- others = calloc(1, sizeof(InputClients));
+ others = AllocInputClient();
if (!others)
return BadAlloc;
if (!pWin->optional->inputMasks && !MakeInputMasks(pWin))
@@ -1649,7 +1662,7 @@ AddExtensionClient(WindowPtr pWin, ClientPtr client, Mask mask, int mskidx)
return Success;
bail:
- free(others);
+ FreeInputClient(&others);
return BadAlloc;
}
@@ -1665,6 +1678,13 @@ MakeInputMasks(WindowPtr pWin)
return TRUE;
}
+static void
+FreeInputMask(OtherInputMasks **imask)
+{
+ free(*imask);
+ *imask = NULL;
+}
+
void
RecalculateDeviceDeliverableEvents(WindowPtr pWin)
{
@@ -1721,14 +1741,15 @@ InputClientGone(WindowPtr pWin, XID id)
if (other->resource == id) {
if (prev) {
prev->next = other->next;
- free(other);
+ FreeInputClient(&other);
} else if (!(other->next)) {
if (ShouldFreeInputMasks(pWin, TRUE)) {
- wOtherInputMasks(pWin)->inputClients = other->next;
- free(wOtherInputMasks(pWin));
+ OtherInputMasks *mask = wOtherInputMasks(pWin);
+ mask->inputClients = other->next;
+ FreeInputMask(&mask);
pWin->optional->inputMasks = (OtherInputMasks *) NULL;
CheckWindowOptionalNeed(pWin);
- free(other);
+ FreeInputClient(&other);
} else {
other->resource = FakeClientID(0);
if (!AddResource(other->resource, RT_INPUTCLIENT,
@@ -1737,7 +1758,7 @@ InputClientGone(WindowPtr pWin, XID id)
}
} else {
wOtherInputMasks(pWin)->inputClients = other->next;
- free(other);
+ FreeInputClient(&other);
}
RecalculateDeviceDeliverableEvents(pWin);
return Success;
diff --git a/xorg-server/Xi/xipassivegrab.c b/xorg-server/Xi/xipassivegrab.c
index 6be27f3d1..2f13a95e8 100644
--- a/xorg-server/Xi/xipassivegrab.c
+++ b/xorg-server/Xi/xipassivegrab.c
@@ -80,7 +80,6 @@ ProcXIPassiveGrabDevice(ClientPtr client)
DeviceIntPtr dev, mod_dev;
xXIPassiveGrabDeviceReply rep;
int i, ret = Success;
- uint8_t status;
uint32_t *modifiers;
xXIGrabModifierInfo *modifiers_failed;
GrabMask mask;
@@ -145,32 +144,36 @@ ProcXIPassiveGrabDevice(ClientPtr client)
if (stuff->cursor != None)
{
- status = dixLookupResourceByType(&tmp, stuff->cursor,
- RT_CURSOR, client, DixUseAccess);
- if (status != Success)
- {
- client->errorValue = stuff->cursor;
- return status;
- }
+ ret = dixLookupResourceByType(&tmp, stuff->cursor,
+ RT_CURSOR, client, DixUseAccess);
+ if (ret != Success)
+ {
+ client->errorValue = stuff->cursor;
+ goto out;
+ }
}
- status = dixLookupWindow((WindowPtr*)&tmp, stuff->grab_window, client, DixSetAttrAccess);
- if (status != Success)
- return status;
+ ret = dixLookupWindow((WindowPtr*)&tmp, stuff->grab_window, client, DixSetAttrAccess);
+ if (ret != Success)
+ goto out;
- status = CheckGrabValues(client, &param);
- if (status != Success)
- return status;
+ ret = CheckGrabValues(client, &param);
+ if (ret != Success)
+ goto out;
modifiers = (uint32_t*)&stuff[1] + stuff->mask_len;
modifiers_failed = calloc(stuff->num_modifiers, sizeof(xXIGrabModifierInfo));
- if (!modifiers_failed)
- return BadAlloc;
+ if (!modifiers_failed) {
+ ret = BadAlloc;
+ goto out;
+ }
mod_dev = (IsFloating(dev)) ? dev : GetMaster(dev, MASTER_KEYBOARD);
for (i = 0; i < stuff->num_modifiers; i++, modifiers++)
{
+ uint8_t status = Success;
+
param.modifiers = *modifiers;
switch(stuff->grab_type)
{
@@ -208,6 +211,7 @@ ProcXIPassiveGrabDevice(ClientPtr client)
WriteToClient(client, rep.length * 4, (char*)modifiers_failed);
free(modifiers_failed);
+out:
return ret;
}
diff --git a/xorg-server/dix/dispatch.c b/xorg-server/dix/dispatch.c
index 6e3361573..b39271fd9 100644
--- a/xorg-server/dix/dispatch.c
+++ b/xorg-server/dix/dispatch.c
@@ -337,8 +337,6 @@ DisableLimitedSchedulingLatency(void)
SmartScheduleLatencyLimited = 0;
}
-#define MAJOROP ((xReq *)client->requestBuffer)->reqType
-
void
Dispatch(void)
{
@@ -419,21 +417,28 @@ Dispatch(void)
}
client->sequence++;
+ client->majorOp = ((xReq *)client->requestBuffer)->reqType;
+ client->minorOp = 0;
+ if (client->majorOp >= EXTENSION_BASE) {
+ ExtensionEntry *ext = GetExtensionEntry(client->majorOp);
+ if (ext)
+ client->minorOp = ext->MinorOpcode(client);
+ }
#ifdef XSERVER_DTRACE
- XSERVER_REQUEST_START(LookupMajorName(MAJOROP), MAJOROP,
+ XSERVER_REQUEST_START(LookupMajorName(client->majorOp), client->majorOp,
((xReq *)client->requestBuffer)->length,
client->index, client->requestBuffer);
#endif
if (result > (maxBigRequestSize << 2))
result = BadLength;
else {
- result = XaceHookDispatch(client, MAJOROP);
+ result = XaceHookDispatch(client, client->majorOp);
if (result == Success)
- result = (* client->requestVector[MAJOROP])(client);
+ result = (* client->requestVector[client->majorOp])(client);
XaceHookAuditEnd(client, result);
}
#ifdef XSERVER_DTRACE
- XSERVER_REQUEST_DONE(LookupMajorName(MAJOROP), MAJOROP,
+ XSERVER_REQUEST_DONE(LookupMajorName(client->majorOp), client->majorOp,
client->sequence, client->index, result);
#endif
@@ -444,8 +449,8 @@ Dispatch(void)
}
else if (result != Success)
{
- SendErrorToClient(client, MAJOROP,
- MinorOpcodeOfRequest(client),
+ SendErrorToClient(client, client->majorOp,
+ client->minorOp,
client->errorValue, result);
break;
}
@@ -466,8 +471,6 @@ Dispatch(void)
SmartScheduleLatencyLimited = 0;
}
-#undef MAJOROP
-
static int VendorRelease = VENDOR_RELEASE;
static char *VendorString = VENDOR_NAME;
diff --git a/xorg-server/dix/events.c b/xorg-server/dix/events.c
index 5e0dc5f17..4847db005 100644
--- a/xorg-server/dix/events.c
+++ b/xorg-server/dix/events.c
@@ -469,10 +469,11 @@ GetXI2MaskByte(unsigned char xi2mask[][XI2MASKSIZE], DeviceIntPtr dev, int event
/**
- * Return the windows complete XI2 mask for the given XI2 event type.
+ * @return TRUE if the mask is set for this event from this device on the
+ * window, or FALSE otherwise.
*/
-Mask
-GetWindowXI2Mask(DeviceIntPtr dev, WindowPtr win, xEvent* ev)
+Bool
+WindowXI2MaskIsset(DeviceIntPtr dev, WindowPtr win, xEvent* ev)
{
OtherInputMasks *inputMasks = wOtherInputMasks(win);
int filter;
@@ -484,7 +485,7 @@ GetWindowXI2Mask(DeviceIntPtr dev, WindowPtr win, xEvent* ev)
evtype = ((xGenericEvent*)ev)->evtype;
filter = GetEventFilter(dev, ev);
- return (GetXI2MaskByte(inputMasks->xi2mask, dev, evtype) & filter);
+ return !!(GetXI2MaskByte(inputMasks->xi2mask, dev, evtype) & filter);
}
Mask
@@ -2075,7 +2076,7 @@ GetClientsForDelivery(DeviceIntPtr dev, WindowPtr win,
{
OtherInputMasks *inputMasks = wOtherInputMasks(win);
/* Has any client selected for the event? */
- if (!GetWindowXI2Mask(dev, win, events))
+ if (!WindowXI2MaskIsset(dev, win, events))
goto out;
*clients = inputMasks->inputClients;
} else {
@@ -3787,14 +3788,13 @@ CheckPassiveGrabsOnWindow(
}
if (!activate)
- {
- return grab;
- }
+ break;
else if (!GetXIType(event) && !GetCoreType(event))
{
ErrorF("Event type %d in CheckPassiveGrabsOnWindow is neither"
" XI 1.x nor core\n", event->any.type);
- return NULL;
+ grab = NULL;
+ break;
}
/* The only consumers of corestate are Xi 1.x and core events, which
@@ -3860,9 +3860,10 @@ CheckPassiveGrabsOnWindow(
}
free(xE);
- return grab;
+ break;
}
- return NULL;
+
+ return grab;
#undef CORE_MATCH
#undef XI_MATCH
#undef XI2_MATCH
@@ -4632,7 +4633,7 @@ DeviceEnterLeaveEvent(
TryClientEvents(rClient(grab), mouse, (xEvent*)event, 1, mask,
filter, grab);
} else {
- if (!GetWindowXI2Mask(mouse, pWin, (xEvent*)event))
+ if (!WindowXI2MaskIsset(mouse, pWin, (xEvent*)event))
goto out;
DeliverEventsToWindow(mouse, pWin, (xEvent*)event, 1, filter,
NullGrab);
diff --git a/xorg-server/dix/extension.c b/xorg-server/dix/extension.c
index 53aaf051f..cc516b6ba 100644
--- a/xorg-server/dix/extension.c
+++ b/xorg-server/dix/extension.c
@@ -228,20 +228,6 @@ StandardMinorOpcode(ClientPtr client)
return ((xReq *)client->requestBuffer)->data;
}
-unsigned short
-MinorOpcodeOfRequest(ClientPtr client)
-{
- unsigned char major;
-
- major = ((xReq *)client->requestBuffer)->reqType;
- if (major < EXTENSION_BASE)
- return 0;
- major -= EXTENSION_BASE;
- if (major >= NumExtensions)
- return 0;
- return (*extensions[major]->MinorOpcode)(client);
-}
-
void
CloseDownExtensions(void)
{
diff --git a/xorg-server/hw/xfree86/fbdevhw/fbdevhw.c b/xorg-server/hw/xfree86/fbdevhw/fbdevhw.c
index d7b4d3c20..2019741b2 100644
--- a/xorg-server/hw/xfree86/fbdevhw/fbdevhw.c
+++ b/xorg-server/hw/xfree86/fbdevhw/fbdevhw.c
@@ -98,8 +98,6 @@ fbdevHWFreeRec(ScrnInfoPtr pScrn)
{
if (fbdevHWPrivateIndex < 0)
return;
- if (FBDEVHWPTR(pScrn) == NULL)
- return;
free(FBDEVHWPTR(pScrn));
FBDEVHWPTRLVAL(pScrn) = NULL;
}
diff --git a/xorg-server/include/dixstruct.h b/xorg-server/include/dixstruct.h
index 6cc961478..0a85f40b6 100644
--- a/xorg-server/include/dixstruct.h
+++ b/xorg-server/include/dixstruct.h
@@ -122,6 +122,7 @@ typedef struct _Client {
DeviceIntPtr clientPtr;
ClientIdPtr clientIds;
+ unsigned short majorOp, minorOp;
} ClientRec;
/*
diff --git a/xorg-server/include/extension.h b/xorg-server/include/extension.h
index ee6260eb5..17accafd9 100644
--- a/xorg-server/include/extension.h
+++ b/xorg-server/include/extension.h
@@ -52,8 +52,6 @@ _XFUNCPROTOBEGIN
extern _X_EXPORT unsigned short StandardMinorOpcode(ClientPtr /*client*/);
-extern _X_EXPORT unsigned short MinorOpcodeOfRequest(ClientPtr /*client*/);
-
extern _X_EXPORT Bool EnableDisableExtension(const char *name, Bool enable);
extern _X_EXPORT void EnableDisableExtensionError(const char *name, Bool enable);
diff --git a/xorg-server/include/input.h b/xorg-server/include/input.h
index 87bb2aa01..8e7b47a4c 100644
--- a/xorg-server/include/input.h
+++ b/xorg-server/include/input.h
@@ -535,7 +535,7 @@ extern _X_EXPORT void FreeInputAttributes(InputAttributes *attrs);
/* misc event helpers */
extern Mask GetEventMask(DeviceIntPtr dev, xEvent* ev, InputClientsPtr clients);
extern Mask GetEventFilter(DeviceIntPtr dev, xEvent *event);
-extern Mask GetWindowXI2Mask(DeviceIntPtr dev, WindowPtr win, xEvent* ev);
+extern Bool WindowXI2MaskIsset(DeviceIntPtr dev, WindowPtr win, xEvent* ev);
void FixUpEventFromWindow(SpritePtr pSprite,
xEvent *xE,
WindowPtr pWin,
diff --git a/xorg-server/include/inputstr.h b/xorg-server/include/inputstr.h
index 0a2128732..f482a2294 100644
--- a/xorg-server/include/inputstr.h
+++ b/xorg-server/include/inputstr.h
@@ -72,7 +72,7 @@ extern _X_EXPORT int CountBits(const uint8_t *mask, int len);
* this number here is bumped.
*/
#define XI2LASTEVENT 17 /* XI_RawMotion */
-#define XI2MASKSIZE ((XI2LASTEVENT + 7)/8) /* no of bits for masks */
+#define XI2MASKSIZE ((XI2LASTEVENT >> 3) + 1) /* no of bytes for masks */
/**
* Scroll types for ::SetScrollValuator and the scroll type in the
diff --git a/xorg-server/include/misc.h b/xorg-server/include/misc.h
index 2e8dd1b89..ef86fa539 100644
--- a/xorg-server/include/misc.h
+++ b/xorg-server/include/misc.h
@@ -359,4 +359,11 @@ typedef struct _CharInfo *CharInfoPtr; /* also in fonts/include/font.h */
extern _X_EXPORT unsigned long globalSerialNumber;
extern _X_EXPORT unsigned long serverGeneration;
+#define BUG_WARN(cond) \
+ do { if (cond) { \
+ ErrorF("BUG: triggered 'if (" #cond ")'\nBUG: %s:%d in %s()\n", \
+ __FILE__, __LINE__, __func__); \
+ xorg_backtrace(); \
+ } } while(0)
+
#endif /* MISC_H */
diff --git a/xorg-server/record/record.c b/xorg-server/record/record.c
index db77b64f5..b956b4ab8 100644
--- a/xorg-server/record/record.c
+++ b/xorg-server/record/record.c
@@ -552,7 +552,7 @@ RecordARequest(ClientPtr client)
}
else /* extension, check minor opcode */
{
- int minorop = MinorOpcodeOfRequest(client);
+ int minorop = client->minorOp;
int numMinOpInfo;
RecordMinorOpPtr pMinorOpInfo = pRCAP->pRequestMinOpInfo;
@@ -609,12 +609,9 @@ RecordAReply(CallbackListPtr *pcbl, pointer nulldata, pointer calldata)
RecordContextPtr pContext;
RecordClientsAndProtocolPtr pRCAP;
int eci;
- int majorop;
ReplyInfoRec *pri = (ReplyInfoRec *)calldata;
ClientPtr client = pri->client;
- REQUEST(xReq);
- majorop = stuff->reqType;
for (eci = 0; eci < numEnabledContexts; eci++)
{
pContext = ppAllContexts[eci];
@@ -622,6 +619,7 @@ RecordAReply(CallbackListPtr *pcbl, pointer nulldata, pointer calldata)
NULL);
if (pRCAP)
{
+ int majorop = client->majorOp;
if (pContext->continuedReply)
{
RecordAProtocolElement(pContext, client, XRecordFromServer,
@@ -642,7 +640,7 @@ RecordAReply(CallbackListPtr *pcbl, pointer nulldata, pointer calldata)
}
else /* extension, check minor opcode */
{
- int minorop = MinorOpcodeOfRequest(client);
+ int minorop = client->minorOp;
int numMinOpInfo;
RecordMinorOpPtr pMinorOpInfo = pRCAP->pReplyMinOpInfo;
assert (pMinorOpInfo);
diff --git a/xorg-server/test/misc.c b/xorg-server/test/misc.c
index d98449ba0..1f6cb9a94 100644
--- a/xorg-server/test/misc.c
+++ b/xorg-server/test/misc.c
@@ -76,7 +76,6 @@ static void dix_update_desktop_dimensions(void)
#define assert_dimensions(_x, _y, _w, _h) \
update_desktop_dimensions(); \
- printf("%d %d %d %d\n", screenInfo.x, screenInfo.y, screenInfo.width, screenInfo.height); \
assert(screenInfo.x == _x); \
assert(screenInfo.y == _y); \
assert(screenInfo.width == _w); \
@@ -88,8 +87,6 @@ static void dix_update_desktop_dimensions(void)
screenInfo.screens[idx]->width = _w; \
screenInfo.screens[idx]->height = _h; \
- printf("Testing\n");
-
/* single screen */
screenInfo.numScreens = 1;
set_screen(0, x, y, w, h);
diff --git a/xorg-server/xkeyboard-config/Makefile.am b/xorg-server/xkeyboard-config/Makefile.am
index 943539fc6..fe8f08c84 100644
--- a/xorg-server/xkeyboard-config/Makefile.am
+++ b/xorg-server/xkeyboard-config/Makefile.am
@@ -8,8 +8,6 @@ pkgconfig_DATA = xkeyboard-config.pc
EXTRA_DIST=config.rpath COPYING CREDITS README \
autogen.sh \
xkeyboard-config.pc.in \
- xkeyboard-config.spec \
- xkeyboard-config.spec.in \
intltool-extract.in intltool-merge.in intltool-update.in
DISTCLEANFILES=intltool-extract intltool-merge intltool-update
diff --git a/xorg-server/xkeyboard-config/configure.in b/xorg-server/xkeyboard-config/configure.in
index fa4baef95..82b1e1d4f 100644
--- a/xorg-server/xkeyboard-config/configure.in
+++ b/xorg-server/xkeyboard-config/configure.in
@@ -111,7 +111,6 @@ symbols/sun_vndr/Makefile
symbols/xfree68_vndr/Makefile
types/Makefile
xkeyboard-config.pc
-xkeyboard-config.spec
docs/Makefile
man/Makefile
])
diff --git a/xorg-server/xkeyboard-config/rules/base.xml.in b/xorg-server/xkeyboard-config/rules/base.xml.in
index 8816034a3..47d160e30 100644
--- a/xorg-server/xkeyboard-config/rules/base.xml.in
+++ b/xorg-server/xkeyboard-config/rules/base.xml.in
@@ -4779,7 +4779,6 @@
<_description>Taiwanese</_description>
<languageList>
<iso639Id>trv</iso639Id>
- <iso639Id>pwn</iso639Id>
</languageList>
</configItem>
<variantList>
diff --git a/xorg-server/xkeyboard-config/symbols/cd b/xorg-server/xkeyboard-config/symbols/cd
index 938bf2b69..78803dbcc 100644
--- a/xorg-server/xkeyboard-config/symbols/cd
+++ b/xorg-server/xkeyboard-config/symbols/cd
@@ -30,7 +30,7 @@ xkb_symbols "basic" {
key <AD04> { [ r, R ] };
key <AD05> { [ t, T ] };
key <AD06> { [ y, Y ] };
- key <AD07> { [ u, U, 0x01000289, 0x01001d7e ] };
+ key <AD07> { [ u, U, 0x01000289, 0x01000244 ] };
key <AD08> { [ i, I, 0x01000268, 0x01000197 ] };
key <AD09> { [ o, O, oslash, Ooblique ] };
key <AD10> { [ p, P ] };
diff --git a/xorg-server/xkeyboard-config/symbols/is b/xorg-server/xkeyboard-config/symbols/is
index c40b8a965..f8e0ce133 100644
--- a/xorg-server/xkeyboard-config/symbols/is
+++ b/xorg-server/xkeyboard-config/symbols/is
@@ -2,6 +2,10 @@
// XKB keyboard by Hrafnkell Eiriksson - hkelle@rhi.hi.is
// fixes by Olafur Osvaldsson - oli@isnic.is
//
+// "basic" corrected according to the Icelandic standard for keyboards,
+// IST 125:1995 (some symbols substituted by a dead diacritic).
+// Some positions are according to IST ISO/IEC 9995-3:1994
+// Added nobreakspace
default partial alphanumeric_keys
xkb_symbols "basic" {
@@ -10,21 +14,27 @@ xkb_symbols "basic" {
name[Group1]="Icelandic";
+// <AE00> = <TLDE>
key <AE02> { [ 2, quotedbl, twosuperior, oneeighth ] };
key <AE04> { [ 4, dollar, onequarter, currency ] };
key <AE11> { [odiaeresis, Odiaeresis, backslash, questiondown ] };
- key <AE12> { [ minus, underscore, ccedilla, dead_ogonek ] };
+ key <AE12> { [ minus, underscore, dead_cedilla, dead_ogonek ] };
key <AD11> { [ eth, ETH, dead_diaeresis, dead_abovering ] };
- key <AD12> { [apostrophe, question, asciitilde, dead_macron ] };
+ key <AD12> { [apostrophe, question, dead_tilde, dead_macron ] };
key <AC10> { [ ae, AE, asciicircum, dead_doubleacute ] };
- key <AC11> { [dead_acute, dead_circumflex, dead_circumflex ] };
- key <TLDE> { [ degree, diaeresis, notsign, notsign ] };
+ key <AC11> { [dead_acute, dead_acute, dead_circumflex, dead_caron ] };
+ key <TLDE> { [dead_abovering, dead_diaeresis, notsign, hyphen ] };
- key <BKSL> { [ plus, asterisk, grave, dead_breve ] };
+// <AC12> = <BKSL>
+ key <BKSL> { [ plus, asterisk, dead_grave, dead_breve ] };
+
+// <AB00> = <LSGT>, is in file "pc": pc105
key <AB10> { [ thorn, THORN, dead_belowdot, dead_abovedot ] };
+ key <SPCE> { [ space, space, nobreakspace, nobreakspace ] };
+
include "level3(ralt_switch)"
};
diff --git a/xorg-server/xkeyboard-config/xkeyboard-config.spec.in b/xorg-server/xkeyboard-config/xkeyboard-config.spec.in
deleted file mode 100644
index 0b2082af7..000000000
--- a/xorg-server/xkeyboard-config/xkeyboard-config.spec.in
+++ /dev/null
@@ -1,45 +0,0 @@
-Name: xkeyboard-config
-Summary: XML-based XKB configuration registry
-Version: @VERSION@
-Release: 1
-License: X11/MIT
-Group: User Interface/X
-
-Url: http://gswitchit.sourceforge.net/
-
-Source: http://gswitchit.sourceforge.net/%{name}-%{version}.tar.gz
-Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root
-
-BuildArch: noarch
-
-%description
-Just XML stuff. Later hopefully will be part of XFree86
-
-%prep
-%setup -q
-
-%build
-
-if [ ! -f configure ]; then
- CFLAGS="$RPM_OPT_FLAGS" ./autogen.sh
-fi
-
-CFLAGS="$RPM_OPT_FLAGS" ./configure
-
-make
-
-%install
-rm -rf $RPM_BUILD_ROOT
-
-make prefix=$RPM_BUILD_ROOT%{_prefix} install
-rm -rf $RPM_BUILD_ROOT%{_prefix}/share/locale
-
-%clean
-rm -rf %{buildroot}
-rm -rf $RPM_BUILD_DIR/%{name}-%{version}
-
-%files
-%defattr(-, root, root)
-
-%doc AUTHORS CREDITS ChangeLog NEWS README COPYING docs/README.config docs/README.enhancing docs/README.symbols docs/HOWTO.transition docs/HOWTO.testing
-%{_prefix}/lib/X11/xkb/*