aboutsummaryrefslogtreecommitdiff
path: root/xorg-server
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server')
-rw-r--r--xorg-server/Xext/xselinux_hooks.c4
-rw-r--r--xorg-server/config/dbus-core.c4
-rw-r--r--xorg-server/configure.ac1
-rw-r--r--xorg-server/dix/devices.c5
-rw-r--r--xorg-server/dix/events.c6
-rw-r--r--xorg-server/hw/xfree86/int10/stub.c2
-rw-r--r--xorg-server/hw/xfree86/int10/xf86x86emu.c1
-rw-r--r--xorg-server/hw/xfree86/modes/xf86Crtc.h8
-rw-r--r--xorg-server/hw/xfree86/modes/xf86Cursors.c56
-rw-r--r--xorg-server/hw/xfree86/ramdac/IBM.c4
-rw-r--r--xorg-server/hw/xfree86/ramdac/TI.c2
-rw-r--r--xorg-server/hw/xfree86/ramdac/xf86Cursor.h36
-rw-r--r--xorg-server/hw/xfree86/ramdac/xf86HWCurs.c14
-rwxr-xr-x[-rw-r--r--]xorg-server/os/utils.c1
-rw-r--r--xorg-server/xkeyboard-config/docs/README.enhancing10
15 files changed, 107 insertions, 47 deletions
diff --git a/xorg-server/Xext/xselinux_hooks.c b/xorg-server/Xext/xselinux_hooks.c
index 376d57518..48219a9e0 100644
--- a/xorg-server/Xext/xselinux_hooks.c
+++ b/xorg-server/Xext/xselinux_hooks.c
@@ -812,9 +812,9 @@ SELinuxBlockHandler(void *data, struct timeval **tv, void *read_mask)
}
static void
-SELinuxWakeupHandler(void *data, int err, void *read_mask)
+SELinuxWakeupHandler(void *data, int num_fds, void *read_mask)
{
- if (FD_ISSET(netlink_fd, (fd_set *) read_mask))
+ if (num_fds > 0 && FD_ISSET(netlink_fd, (fd_set *) read_mask))
avc_netlink_check_nb();
}
diff --git a/xorg-server/config/dbus-core.c b/xorg-server/config/dbus-core.c
index b0fd92de4..8351ea4b3 100644
--- a/xorg-server/config/dbus-core.c
+++ b/xorg-server/config/dbus-core.c
@@ -48,11 +48,11 @@ static struct dbus_core_info bus_info;
static CARD32 reconnect_timer(OsTimerPtr timer, CARD32 time, void *arg);
static void
-wakeup_handler(void *data, int err, void *read_mask)
+wakeup_handler(void *data, int num_fds, void *read_mask)
{
struct dbus_core_info *info = data;
- if (info->connection && FD_ISSET(info->fd, (fd_set *) read_mask)) {
+ if (info->connection && num_fds > 0 && FD_ISSET(info->fd, (fd_set *) read_mask)) {
do {
dbus_connection_read_write_dispatch(info->connection, 0);
} while (info->connection &&
diff --git a/xorg-server/configure.ac b/xorg-server/configure.ac
index 0c8b5162d..e5387bffd 100644
--- a/xorg-server/configure.ac
+++ b/xorg-server/configure.ac
@@ -325,6 +325,7 @@ case $host_cpu in
;;
arm*)
ARM_VIDEO=yes
+ DEFAULT_INT10="stub"
;;
i*86)
I386_VIDEO=yes
diff --git a/xorg-server/dix/devices.c b/xorg-server/dix/devices.c
index 903417f77..106d2dfc7 100644
--- a/xorg-server/dix/devices.c
+++ b/xorg-server/dix/devices.c
@@ -1480,7 +1480,6 @@ InitPtrFeedbackClassDeviceStruct(DeviceIntPtr dev, PtrCtrlProcPtr controlProc)
PtrFeedbackPtr feedc;
BUG_RETURN_VAL(dev == NULL, FALSE);
- BUG_RETURN_VAL(dev->ptrfeed != NULL, FALSE);
feedc = malloc(sizeof(PtrFeedbackClassRec));
if (!feedc)
@@ -1524,7 +1523,6 @@ InitStringFeedbackClassDeviceStruct(DeviceIntPtr dev,
StringFeedbackPtr feedc;
BUG_RETURN_VAL(dev == NULL, FALSE);
- BUG_RETURN_VAL(dev->stringfeed != NULL, FALSE);
feedc = malloc(sizeof(StringFeedbackClassRec));
if (!feedc)
@@ -1561,7 +1559,6 @@ InitBellFeedbackClassDeviceStruct(DeviceIntPtr dev, BellProcPtr bellProc,
BellFeedbackPtr feedc;
BUG_RETURN_VAL(dev == NULL, FALSE);
- BUG_RETURN_VAL(dev->bell != NULL, FALSE);
feedc = malloc(sizeof(BellFeedbackClassRec));
if (!feedc)
@@ -1583,7 +1580,6 @@ InitLedFeedbackClassDeviceStruct(DeviceIntPtr dev, LedCtrlProcPtr controlProc)
LedFeedbackPtr feedc;
BUG_RETURN_VAL(dev == NULL, FALSE);
- BUG_RETURN_VAL(dev->leds != NULL, FALSE);
feedc = malloc(sizeof(LedFeedbackClassRec));
if (!feedc)
@@ -1606,7 +1602,6 @@ InitIntegerFeedbackClassDeviceStruct(DeviceIntPtr dev,
IntegerFeedbackPtr feedc;
BUG_RETURN_VAL(dev == NULL, FALSE);
- BUG_RETURN_VAL(dev->intfeed != NULL, FALSE);
feedc = malloc(sizeof(IntegerFeedbackClassRec));
if (!feedc)
diff --git a/xorg-server/dix/events.c b/xorg-server/dix/events.c
index d48ef3375..d606e727c 100644
--- a/xorg-server/dix/events.c
+++ b/xorg-server/dix/events.c
@@ -4264,12 +4264,6 @@ DeliverGrabbedEvent(InternalEvent *event, DeviceIntPtr thisDev,
thisDev);
}
if (!deliveries) {
- /* XXX: In theory, we could pass the internal events through to
- * everything and only convert just before hitting the wire. We can't
- * do that yet, so DGE is the last stop for internal events. From here
- * onwards, we deal with core/XI events.
- */
-
sendCore = (IsMaster(thisDev) && thisDev->coreEvents);
/* try core event */
if ((sendCore && grab->grabtype == CORE) || grab->grabtype != CORE)
diff --git a/xorg-server/hw/xfree86/int10/stub.c b/xorg-server/hw/xfree86/int10/stub.c
index 40e0ba719..4bbcddeda 100644
--- a/xorg-server/hw/xfree86/int10/stub.c
+++ b/xorg-server/hw/xfree86/int10/stub.c
@@ -63,7 +63,7 @@ xf86ExecX86int10(xf86Int10InfoPtr pInt)
}
void *
-xf86int10Addr(xf86Int10InfoPtr pInt, CARD32 addr)
+xf86int10Addr(xf86Int10InfoPtr pInt, uint32_t addr)
{
return 0;
}
diff --git a/xorg-server/hw/xfree86/int10/xf86x86emu.c b/xorg-server/hw/xfree86/int10/xf86x86emu.c
index b9a4d3603..4b0a13090 100644
--- a/xorg-server/hw/xfree86/int10/xf86x86emu.c
+++ b/xorg-server/hw/xfree86/int10/xf86x86emu.c
@@ -9,7 +9,6 @@
#include <x86emu.h>
#include "xf86.h"
-#include "compiler.h"
#include "xf86_OSproc.h"
#include "xf86Pci.h"
#define _INT10_PRIVATE
diff --git a/xorg-server/hw/xfree86/modes/xf86Crtc.h b/xorg-server/hw/xfree86/modes/xf86Crtc.h
index 5407deb0e..eebe6f472 100644
--- a/xorg-server/hw/xfree86/modes/xf86Crtc.h
+++ b/xorg-server/hw/xfree86/modes/xf86Crtc.h
@@ -186,14 +186,18 @@ typedef struct _xf86CrtcFuncs {
/**
* Load monochrome image
*/
- Bool
+ void
(*load_cursor_image) (xf86CrtcPtr crtc, CARD8 *image);
+ Bool
+ (*load_cursor_image_check) (xf86CrtcPtr crtc, CARD8 *image);
/**
* Load ARGB image
*/
- Bool
+ void
(*load_cursor_argb) (xf86CrtcPtr crtc, CARD32 *image);
+ Bool
+ (*load_cursor_argb_check) (xf86CrtcPtr crtc, CARD32 *image);
/**
* Clean up driver-specific bits of the crtc
diff --git a/xorg-server/hw/xfree86/modes/xf86Cursors.c b/xorg-server/hw/xfree86/modes/xf86Cursors.c
index 10ef6f6d4..379a27a76 100644
--- a/xorg-server/hw/xfree86/modes/xf86Cursors.c
+++ b/xorg-server/hw/xfree86/modes/xf86Cursors.c
@@ -209,6 +209,40 @@ set_bit(CARD8 *image, xf86CursorInfoPtr cursor_info, int x, int y, Bool mask)
}
/*
+ * Wrappers to deal with API compatibility with drivers that don't expose
+ * load_cursor_*_check
+ */
+static inline Bool
+xf86_driver_has_load_cursor_image(xf86CrtcPtr crtc)
+{
+ return crtc->funcs->load_cursor_image_check || crtc->funcs->load_cursor_image;
+}
+
+static inline Bool
+xf86_driver_has_load_cursor_argb(xf86CrtcPtr crtc)
+{
+ return crtc->funcs->load_cursor_argb_check || crtc->funcs->load_cursor_argb;
+}
+
+static inline Bool
+xf86_driver_load_cursor_image(xf86CrtcPtr crtc, CARD8 *cursor_image)
+{
+ if (crtc->funcs->load_cursor_image_check)
+ return crtc->funcs->load_cursor_image_check(crtc, cursor_image);
+ crtc->funcs->load_cursor_image(crtc, cursor_image);
+ return TRUE;
+}
+
+static inline Bool
+xf86_driver_load_cursor_argb(xf86CrtcPtr crtc, CARD32 *cursor_argb)
+{
+ if (crtc->funcs->load_cursor_argb_check)
+ return crtc->funcs->load_cursor_argb_check(crtc, cursor_argb);
+ crtc->funcs->load_cursor_argb(crtc, cursor_argb);
+ return TRUE;
+}
+
+/*
* Load a two color cursor into a driver that supports only ARGB cursors
*/
static Bool
@@ -244,7 +278,7 @@ xf86_crtc_convert_cursor_to_argb(xf86CrtcPtr crtc, unsigned char *src)
bits = 0;
cursor_image[y * cursor_info->MaxWidth + x] = bits;
}
- return crtc->funcs->load_cursor_argb(crtc, cursor_image);
+ return xf86_driver_load_cursor_argb(crtc, cursor_image);
}
/*
@@ -269,7 +303,7 @@ xf86_set_cursor_colors(ScrnInfoPtr scrn, int bg, int fg)
xf86CrtcPtr crtc = xf86_config->crtc[c];
if (crtc->enabled && !crtc->cursor_argb) {
- if (crtc->funcs->load_cursor_image)
+ if (xf86_driver_has_load_cursor_image(crtc))
crtc->funcs->set_cursor_colors(crtc, bg, fg);
else if (bits)
xf86_crtc_convert_cursor_to_argb(crtc, bits);
@@ -450,7 +484,7 @@ xf86_crtc_load_cursor_image(xf86CrtcPtr crtc, CARD8 *src)
set_bit(cursor_image, cursor_info, x, y, TRUE);
}
}
- return crtc->funcs->load_cursor_image(crtc, cursor_image);
+ return xf86_driver_load_cursor_image(crtc, cursor_image);
}
/*
@@ -466,10 +500,10 @@ xf86_load_cursor_image(ScrnInfoPtr scrn, unsigned char *src)
xf86CrtcPtr crtc = xf86_config->crtc[c];
if (crtc->enabled) {
- if (crtc->funcs->load_cursor_image) {
+ if (xf86_driver_has_load_cursor_image(crtc)) {
if (!xf86_crtc_load_cursor_image(crtc, src))
return FALSE;
- } else if (crtc->funcs->load_cursor_argb) {
+ } else if (xf86_driver_has_load_cursor_argb(crtc)) {
if (!xf86_crtc_convert_cursor_to_argb(crtc, src))
return FALSE;
} else
@@ -549,7 +583,7 @@ xf86_crtc_load_cursor_argb(xf86CrtcPtr crtc, CursorPtr cursor)
cursor_image[y * image_width + x] = bits;
}
- return crtc->funcs->load_cursor_argb(crtc, cursor_image);
+ return xf86_driver_load_cursor_argb(crtc, cursor_image);
}
static Bool
@@ -594,14 +628,14 @@ xf86_cursors_init(ScreenPtr screen, int max_width, int max_height, int flags)
cursor_info->SetCursorColors = xf86_set_cursor_colors;
cursor_info->SetCursorPosition = xf86_set_cursor_position;
- cursor_info->LoadCursorImage = xf86_load_cursor_image;
+ cursor_info->LoadCursorImageCheck = xf86_load_cursor_image;
cursor_info->HideCursor = xf86_hide_cursors;
cursor_info->ShowCursor = xf86_show_cursors;
cursor_info->UseHWCursor = xf86_use_hw_cursor;
#ifdef ARGB_CURSOR
if (flags & HARDWARE_CURSOR_ARGB) {
cursor_info->UseHWCursorARGB = xf86_use_hw_cursor_argb;
- cursor_info->LoadCursorARGB = xf86_load_cursor_argb;
+ cursor_info->LoadCursorARGBCheck = xf86_load_cursor_argb;
}
#endif
@@ -658,11 +692,11 @@ xf86_reload_cursors(ScreenPtr screen)
dixLookupScreenPrivate(&cursor->devPrivates, CursorScreenKey,
screen);
#ifdef ARGB_CURSOR
- if (cursor->bits->argb && cursor_info->LoadCursorARGB)
- (*cursor_info->LoadCursorARGB) (scrn, cursor);
+ if (cursor->bits->argb && xf86DriverHasLoadCursorARGB(cursor_info))
+ xf86DriverLoadCursorARGB(cursor_info, cursor);
else if (src)
#endif
- (*cursor_info->LoadCursorImage) (scrn, src);
+ xf86DriverLoadCursorImage(cursor_info, src);
x += scrn->frameX0 + cursor_screen_priv->HotX;
y += scrn->frameY0 + cursor_screen_priv->HotY;
diff --git a/xorg-server/hw/xfree86/ramdac/IBM.c b/xorg-server/hw/xfree86/ramdac/IBM.c
index 872d3d4e7..45876cfb7 100644
--- a/xorg-server/hw/xfree86/ramdac/IBM.c
+++ b/xorg-server/hw/xfree86/ramdac/IBM.c
@@ -622,7 +622,7 @@ IBMramdac526HWCursorInit(xf86CursorInfoPtr infoPtr)
HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_1;
infoPtr->SetCursorColors = IBMramdac526SetCursorColors;
infoPtr->SetCursorPosition = IBMramdac526SetCursorPosition;
- infoPtr->LoadCursorImage = IBMramdac526LoadCursorImage;
+ infoPtr->LoadCursorImageCheck = IBMramdac526LoadCursorImage;
infoPtr->HideCursor = IBMramdac526HideCursor;
infoPtr->ShowCursor = IBMramdac526ShowCursor;
infoPtr->UseHWCursor = IBMramdac526UseHWCursor;
@@ -638,7 +638,7 @@ IBMramdac640HWCursorInit(xf86CursorInfoPtr infoPtr)
HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_1;
infoPtr->SetCursorColors = IBMramdac640SetCursorColors;
infoPtr->SetCursorPosition = IBMramdac640SetCursorPosition;
- infoPtr->LoadCursorImage = IBMramdac640LoadCursorImage;
+ infoPtr->LoadCursorImageCheck = IBMramdac640LoadCursorImage;
infoPtr->HideCursor = IBMramdac640HideCursor;
infoPtr->ShowCursor = IBMramdac640ShowCursor;
infoPtr->UseHWCursor = IBMramdac640UseHWCursor;
diff --git a/xorg-server/hw/xfree86/ramdac/TI.c b/xorg-server/hw/xfree86/ramdac/TI.c
index 7d4e0d796..2492bb531 100644
--- a/xorg-server/hw/xfree86/ramdac/TI.c
+++ b/xorg-server/hw/xfree86/ramdac/TI.c
@@ -676,7 +676,7 @@ TIramdacHWCursorInit(xf86CursorInfoPtr infoPtr)
HARDWARE_CURSOR_SOURCE_MASK_NOT_INTERLEAVED;
infoPtr->SetCursorColors = TIramdacSetCursorColors;
infoPtr->SetCursorPosition = TIramdacSetCursorPosition;
- infoPtr->LoadCursorImage = TIramdacLoadCursorImage;
+ infoPtr->LoadCursorImageCheck = TIramdacLoadCursorImage;
infoPtr->HideCursor = TIramdacHideCursor;
infoPtr->ShowCursor = TIramdacShowCursor;
infoPtr->UseHWCursor = TIramdacUseHWCursor;
diff --git a/xorg-server/hw/xfree86/ramdac/xf86Cursor.h b/xorg-server/hw/xfree86/ramdac/xf86Cursor.h
index 1ecbdcd8d..a389a9988 100644
--- a/xorg-server/hw/xfree86/ramdac/xf86Cursor.h
+++ b/xorg-server/hw/xfree86/ramdac/xf86Cursor.h
@@ -12,7 +12,8 @@ typedef struct _xf86CursorInfoRec {
int MaxHeight;
void (*SetCursorColors) (ScrnInfoPtr pScrn, int bg, int fg);
void (*SetCursorPosition) (ScrnInfoPtr pScrn, int x, int y);
- Bool (*LoadCursorImage) (ScrnInfoPtr pScrn, unsigned char *bits);
+ void (*LoadCursorImage) (ScrnInfoPtr pScrn, unsigned char *bits);
+ Bool (*LoadCursorImageCheck) (ScrnInfoPtr pScrn, unsigned char *bits);
void (*HideCursor) (ScrnInfoPtr pScrn);
void (*ShowCursor) (ScrnInfoPtr pScrn);
unsigned char *(*RealizeCursor) (struct _xf86CursorInfoRec *, CursorPtr);
@@ -20,11 +21,42 @@ typedef struct _xf86CursorInfoRec {
#ifdef ARGB_CURSOR
Bool (*UseHWCursorARGB) (ScreenPtr, CursorPtr);
- Bool (*LoadCursorARGB) (ScrnInfoPtr, CursorPtr);
+ void (*LoadCursorARGB) (ScrnInfoPtr, CursorPtr);
+ Bool (*LoadCursorARGBCheck) (ScrnInfoPtr, CursorPtr);
#endif
} xf86CursorInfoRec, *xf86CursorInfoPtr;
+static inline Bool
+xf86DriverHasLoadCursorImage(xf86CursorInfoPtr infoPtr)
+{
+ return infoPtr->LoadCursorImageCheck || infoPtr->LoadCursorImage;
+}
+
+static inline Bool
+xf86DriverLoadCursorImage(xf86CursorInfoPtr infoPtr, unsigned char *bits)
+{
+ if(infoPtr->LoadCursorImageCheck)
+ return infoPtr->LoadCursorImageCheck(infoPtr->pScrn, bits);
+ infoPtr->LoadCursorImage(infoPtr->pScrn, bits);
+ return TRUE;
+}
+
+static inline Bool
+xf86DriverHasLoadCursorARGB(xf86CursorInfoPtr infoPtr)
+{
+ return infoPtr->LoadCursorARGBCheck || infoPtr->LoadCursorARGB;
+}
+
+static inline Bool
+xf86DriverLoadCursorARGB(xf86CursorInfoPtr infoPtr, CursorPtr pCursor)
+{
+ if(infoPtr->LoadCursorARGBCheck)
+ return infoPtr->LoadCursorARGBCheck(infoPtr->pScrn, pCursor);
+ infoPtr->LoadCursorARGB(infoPtr->pScrn, pCursor);
+ return TRUE;
+}
+
extern _X_EXPORT Bool xf86InitCursor(ScreenPtr pScreen,
xf86CursorInfoPtr infoPtr);
extern _X_EXPORT xf86CursorInfoPtr xf86CreateCursorInfoRec(void);
diff --git a/xorg-server/hw/xfree86/ramdac/xf86HWCurs.c b/xorg-server/hw/xfree86/ramdac/xf86HWCurs.c
index 0b5caa20a..953c86abc 100644
--- a/xorg-server/hw/xfree86/ramdac/xf86HWCurs.c
+++ b/xorg-server/hw/xfree86/ramdac/xf86HWCurs.c
@@ -87,7 +87,7 @@ xf86InitHardwareCursor(ScreenPtr pScreen, xf86CursorInfoPtr infoPtr)
/* These are required for now */
if (!infoPtr->SetCursorPosition ||
- !infoPtr->LoadCursorImage ||
+ !xf86DriverHasLoadCursorImage(infoPtr) ||
!infoPtr->HideCursor ||
!infoPtr->ShowCursor || !infoPtr->SetCursorColors)
return FALSE;
@@ -140,7 +140,7 @@ xf86SetCursor(ScreenPtr pScreen, CursorPtr pCurs, int x, int y)
y -= infoPtr->pScrn->frameY0 + ScreenPriv->HotY;
#ifdef ARGB_CURSOR
- if (!pCurs->bits->argb || !infoPtr->LoadCursorARGB)
+ if (!pCurs->bits->argb || !xf86DriverHasLoadCursorARGB(infoPtr))
#endif
if (!bits) {
bits = (*infoPtr->RealizeCursor) (infoPtr, pCurs);
@@ -152,13 +152,13 @@ xf86SetCursor(ScreenPtr pScreen, CursorPtr pCurs, int x, int y)
(*infoPtr->HideCursor) (infoPtr->pScrn);
#ifdef ARGB_CURSOR
- if (pCurs->bits->argb && infoPtr->LoadCursorARGB) {
- if (!(*infoPtr->LoadCursorARGB) (infoPtr->pScrn, pCurs))
+ if (pCurs->bits->argb && xf86DriverHasLoadCursorARGB(infoPtr)) {
+ if (!xf86DriverLoadCursorARGB (infoPtr, pCurs))
return FALSE;
} else
#endif
if (bits)
- if (!(*infoPtr->LoadCursorImage) (infoPtr->pScrn, bits))
+ if (!xf86DriverLoadCursorImage (infoPtr, bits))
return FALSE;
xf86RecolorCursor(pScreen, pCurs, 1);
@@ -185,8 +185,8 @@ xf86SetTransparentCursor(ScreenPtr pScreen)
(*infoPtr->HideCursor) (infoPtr->pScrn);
if (ScreenPriv->transparentData)
- (*infoPtr->LoadCursorImage) (infoPtr->pScrn,
- ScreenPriv->transparentData);
+ xf86DriverLoadCursorImage (infoPtr,
+ ScreenPriv->transparentData);
(*infoPtr->ShowCursor) (infoPtr->pScrn);
}
diff --git a/xorg-server/os/utils.c b/xorg-server/os/utils.c
index 1e25ddd53..153096aa0 100644..100755
--- a/xorg-server/os/utils.c
+++ b/xorg-server/os/utils.c
@@ -551,6 +551,7 @@ UseMsg(void)
ErrorF("-cc int default color visual class\n");
ErrorF("-nocursor disable the cursor\n");
ErrorF("-core generate core dump on fatal error\n");
+ ErrorF("-displayfd fd file descriptor to write display number to when ready to connect\n");
#ifdef _MSC_VER
ErrorF("-dpi [auto|int] screen resolution set to native or this dpi\n");
#else
diff --git a/xorg-server/xkeyboard-config/docs/README.enhancing b/xorg-server/xkeyboard-config/docs/README.enhancing
index dd972e76b..7587e68a1 100644
--- a/xorg-server/xkeyboard-config/docs/README.enhancing
+++ b/xorg-server/xkeyboard-config/docs/README.enhancing
@@ -20,7 +20,7 @@ configuration. Also it shows wise to understand how the X server and a client
digest their keyboard inputs (with and without xkb).
A useful source is also Ivan Pascal's text about xkb configuration
-<URL:http://www.tsu.ru/~pascal/en/xkb> often referenced throughout this docu-
+<URL:http://pascal.tsu.ru/en/xkb/> often referenced throughout this docu-
ment.
Note that this document covers only enhancements which are to be made to
@@ -170,12 +170,12 @@ defined symbol tables. To keep it fully functional you have to:
4. Defining New Layouts
-See Some Words About XKB internals <URL:http://www.tsu.ru/~pas-
-cal/en/xkb/internals.html> for explanation of used xkb terms and problems
-addressed by XKB extension.
+See Some Words About XKB internals
+<URL:http://pascal.tsu.ru/en/xkb/internals.html> for explanation of used xkb
+terms and problems addressed by XKB extension.
See Common notes about XKB configuration files language
-<URL:http://www.tsu.ru/~pascal/en/xkb/gram-common.html> for more precise
+<URL:http://pascal.tsu.ru/en/xkb/gram-common.html> for more precise
explanation of syntax of xkb configuration files.
4.1 Predefined XKB Symbol Sets