xserver-xorg-input-acecad: Changes to 'debian-unstable'
ChangeLog | 11 ++++++
configure | 20 ++++++------
configure.ac | 2 -
debian/changelog | 6 ++-
src/acecad.c | 89 +++++++++++++++++++++++++++++++++++--------------------
5 files changed, 84 insertions(+), 44 deletions(-)
New commits:
commit 0cc9c1d817fa653bc80c8e21b49b154fe532d248
Author: Brice Goglin <Brice.Goglin@ens-lyon.org>
Date: Fri Apr 27 18:40:14 2007 +0200
Add closer for #420531
diff --git a/debian/changelog b/debian/changelog
index a2ac447..8210181 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -7,6 +7,7 @@ xserver-xorg-input-acecad (1:1.1.1-1) UNRELEASED; urgency=low
[ Brice Goglin ]
* New upstream release.
+ * Support for 2.6 kernels (closes: #420531).
* Install the upstream changelog.
* Bump Build-Depends: xserver-xorg-dev to >= 2:1.2.99.902
(needed to let xsfbs get access to serverminver).
@@ -15,7 +16,7 @@ xserver-xorg-input-acecad (1:1.1.1-1) UNRELEASED; urgency=low
module in the long description.
* Remove Fabio from uploaders with his permission. He's always welcome back.
- -- Brice Goglin <Brice.Goglin@ens-lyon.org> Tue, 24 Apr 2007 23:14:10 +0200
+ -- Brice Goglin <Brice.Goglin@ens-lyon.org> Fri, 27 Apr 2007 18:38:11 +0200
xserver-xorg-input-acecad (1:1.1.0-1) unstable; urgency=low
commit 8732f233fa88821debad0a30f73dabce8b9a759f
Author: Brice Goglin <Brice.Goglin@ens-lyon.org>
Date: Fri Apr 27 18:35:44 2007 +0200
autoreconf
diff --git a/configure b/configure
index 332586a..2f96983 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61 for xf86-input-acecad 1.1.0.
+# Generated by GNU Autoconf 2.61 for xf86-input-acecad 1.1.1.
#
# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
#
@@ -728,8 +728,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='xf86-input-acecad'
PACKAGE_TARNAME='xf86-input-acecad'
-PACKAGE_VERSION='1.1.0'
-PACKAGE_STRING='xf86-input-acecad 1.1.0'
+PACKAGE_VERSION='1.1.1'
+PACKAGE_STRING='xf86-input-acecad 1.1.1'
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
ac_unique_file="Makefile.am"
@@ -1412,7 +1412,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures xf86-input-acecad 1.1.0 to adapt to many kinds of systems.
+\`configure' configures xf86-input-acecad 1.1.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1482,7 +1482,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of xf86-input-acecad 1.1.0:";;
+ short | recursive ) echo "Configuration of xf86-input-acecad 1.1.1:";;
esac
cat <<\_ACEOF
@@ -1594,7 +1594,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-xf86-input-acecad configure 1.1.0
+xf86-input-acecad configure 1.1.1
generated by GNU Autoconf 2.61
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1608,7 +1608,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by xf86-input-acecad $as_me 1.1.0, which was
+It was created by xf86-input-acecad $as_me 1.1.1, which was
generated by GNU Autoconf 2.61. Invocation command line was
$ $0 $@
@@ -2280,7 +2280,7 @@ fi
# Define the identity of the package.
PACKAGE='xf86-input-acecad'
- VERSION='1.1.0'
+ VERSION='1.1.1'
cat >>confdefs.h <<_ACEOF
@@ -21060,7 +21060,7 @@ exec 6>&1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by xf86-input-acecad $as_me 1.1.0, which was
+This file was extended by xf86-input-acecad $as_me 1.1.1, which was
generated by GNU Autoconf 2.61. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -21113,7 +21113,7 @@ Report bugs to <bug-autoconf@gnu.org>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-xf86-input-acecad config.status 1.1.0
+xf86-input-acecad config.status 1.1.1
configured by $0, generated by GNU Autoconf 2.61,
with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
commit bce94b7f83ebcc01bdbe895cc96cef3b51082e4f
Author: Brice Goglin <Brice.Goglin@ens-lyon.org>
Date: Fri Apr 27 18:35:37 2007 +0200
New upstream release 1.1.1
diff --git a/debian/changelog b/debian/changelog
index 7b43654..a2ac447 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xserver-xorg-input-acecad (1:1.1.0-2) UNRELEASED; urgency=low
+xserver-xorg-input-acecad (1:1.1.1-1) UNRELEASED; urgency=low
[ Julien Cristau ]
* Add link to xserver-xorg-core bug script, so that bugreports contain
@@ -6,6 +6,7 @@ xserver-xorg-input-acecad (1:1.1.0-2) UNRELEASED; urgency=low
* Generate the dependency on xserver-xorg-core automatically.
[ Brice Goglin ]
+ * New upstream release.
* Install the upstream changelog.
* Bump Build-Depends: xserver-xorg-dev to >= 2:1.2.99.902
(needed to let xsfbs get access to serverminver).
commit 7fe06dc37595a39e0298d9123a669d06df934c35
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Date: Tue Apr 24 15:28:51 2007 +0200
Bump to 1.1.1.
diff --git a/ChangeLog b/ChangeLog
index 7399bd0..0db03e6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2007-04-24 Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
+
+ * configure.ac:
+ Bump to 1.1.1.
+
+ * src/acecad.c:
+ Bump to 1.1.1.
+ Support 2.6.x kernels.
+ Use the proper MessageType for probed, default, info and error messages.
+ Clean up defines, and add an include to fix compilation when LINUX_INPUT is defined
+
2006-04-06 Adam Jackson <ajax@freedesktop.org>
* configure.ac:
diff --git a/configure.ac b/configure.ac
index c0ff6ad..f93f430 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
AC_PREREQ(2.57)
AC_INIT([xf86-input-acecad],
- 1.1.0,
+ 1.1.1,
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
xf86-input-acecad)
diff --git a/src/acecad.c b/src/acecad.c
index abe8bf8..c10aaf4 100644
--- a/src/acecad.c
+++ b/src/acecad.c
@@ -105,7 +105,7 @@ static XF86ModuleVersionInfo VersionRec =
MODINFOSTRING1,
MODINFOSTRING2,
XORG_VERSION_CURRENT,
- 1, 1, 0,
+ 1, 1, 1,
ABI_CLASS_XINPUT,
ABI_XINPUT_VERSION,
MOD_CLASS_XINPUT,
commit 7665457d70a37c3187b3dfcc54a7f15058e8acba
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Date: Tue Apr 24 13:35:52 2007 +0200
Support 2.6.x kernels.
diff --git a/src/acecad.c b/src/acecad.c
index 145bb48..abe8bf8 100644
--- a/src/acecad.c
+++ b/src/acecad.c
@@ -37,6 +37,10 @@
#ifdef LINUX_INPUT
#include <asm/types.h>
#include <linux/input.h>
+#ifndef EV_SYN
+#define EV_SYN EV_RST
+#define SYN_REPORT 0
+#endif
#ifdef BUS_PCI
#undef BUS_PCI
#endif
@@ -663,6 +667,10 @@ USBReadInput (LocalDevicePtr local)
event<(struct input_event *)(eventbuf+len); event++) {
switch (event->type) {
+ case EV_SYN: /* 2.6.x */
+ if (event->code != SYN_REPORT)
+ xf86Msg(X_ERROR, "UNKNOWN EV_SYN code %d\n", event->code);
+ break;
case EV_ABS:
switch (event->code) {
case ABS_X:
@@ -703,12 +711,16 @@ USBReadInput (LocalDevicePtr local)
}
break; /* EV_KEY */
default:
- xf86Msg(X_ERROR, "UNKNOWN event type/code=%d/%d\n", event->type, event->code);
+ xf86Msg(X_ERROR, "UNKNOWN event type/code %d/%d\n", event->type, event->code);
} /* switch event->type */
- /* ABS_MISC is the event terminator */
- if (event->type != EV_ABS || event->code != ABS_MISC) {
- continue;
+ /* Linux Kernel 2.6.x sends EV_SYN/SYN_REPORT as an event terminator,
+ * whereas 2.4.x sends EV_ABS/ABS_MISC. We have to support both.
+ */
+ if (!( (event->type == EV_SYN && event->code == SYN_REPORT) ||
+ (event->type == EV_ABS && event->code == ABS_MISC)
+ )) {
+ continue;
}
if (prox)
commit 1eae0e35655ffddb8a203a51bb1e2aa53928a87e
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Date: Tue Apr 24 12:44:58 2007 +0200
Use the proper MessageType for probed, default, info and error messages.
diff --git a/src/acecad.c b/src/acecad.c
index 9d85a9e..145bb48 100644
--- a/src/acecad.c
+++ b/src/acecad.c
@@ -169,10 +169,11 @@ IsUSBLine(int fd)
SYSCALL(err = ioctl(fd, EVIOCGVERSION, &version));
if (!err) {
- xf86Msg(X_CONFIG,"Kernel Input driver version is %d.%d.%d\n",
+ xf86Msg(X_PROBED, "Kernel Input driver version is %d.%d.%d\n",
version >> 16, (version >> 8) & 0xff, version & 0xff);
return 1;
} else {
+ xf86Msg(X_PROBED, "No Kernel Input driver found\n");
return 0;
}
}
@@ -184,6 +185,7 @@ AceCadPreInit(InputDriverPtr drv, IDevPtr dev, int flags)
LocalDevicePtr local = xf86AllocateInput(drv, 0);
AceCadPrivatePtr priv = xcalloc (1, sizeof (AceCadPrivateRec));
int speed;
+ int msgtype;
char *s;
if ((!local) || (!priv))
@@ -216,7 +218,7 @@ AceCadPreInit(InputDriverPtr drv, IDevPtr dev, int flags)
local->fd = xf86OpenSerial (local->options);
if (local->fd == -1)
{
- xf86Msg(X_ERROR,"AceCad driver unable to open device\n");
+ xf86Msg(X_ERROR, "AceCad driver unable to open device\n");
goto SetupProc_fail;
}
xf86ErrorFVerb( 6, "tty port opened successfully\n" );
@@ -239,7 +241,13 @@ AceCadPreInit(InputDriverPtr drv, IDevPtr dev, int flags)
local->read_input = ReadInput;
- speed = xf86SetIntOption(local->options, "ReportSpeed", 85 );
+ msgtype = X_DEFAULT;
+ if (xf86FindOptionValue(local->options, "ReportSpeed")) {
+ msgtype = X_CONFIG;
+ speed = xf86SetIntOption(local->options, "ReportSpeed", 85 );
+ } else {
+ speed = 85;
+ }
switch (speed)
{
@@ -258,10 +266,11 @@ AceCadPreInit(InputDriverPtr drv, IDevPtr dev, int flags)
default:
priv->acecadReportSpeed = 'R';
speed = 85;
- xf86Msg(X_CONFIG, "Acecad Tablet: ReportSpeed possible values:\n 120, 85, 10, 2 \n");
+ xf86Msg(X_ERROR, "Acecad Tablet: ReportSpeed value %d invalid. Possible values: 120, 85, 10, 2. Defaulting to 85\n", speed);
+ msgtype = X_DEFAULT;
}
- xf86Msg(X_CONFIG, "Acecad Tablet report %d points/s\n", speed);
+ xf86Msg(msgtype, "Acecad Tablet report %d points/s\n", speed);
priv->buffer = XisbNew (local->fd, 200);
@@ -270,12 +279,13 @@ AceCadPreInit(InputDriverPtr drv, IDevPtr dev, int flags)
*/
if (QueryHardware(priv) != Success)
{
- xf86Msg(X_ERROR,"Unable to query/initialize AceCad hardware.\n");
+ xf86Msg(X_ERROR, "Unable to query/initialize AceCad hardware.\n");
goto SetupProc_fail;
}
}
s = xf86FindOptionValue(local->options, "Mode");
+ msgtype = s ? X_CONFIG : X_DEFAULT;
if (s && (xf86NameCmp(s, "Relative") == 0))
{
priv->flags = priv->flags & ~ABSOLUTE_FLAG;
@@ -285,7 +295,7 @@ AceCadPreInit(InputDriverPtr drv, IDevPtr dev, int flags)
priv->flags = priv->flags | ABSOLUTE_FLAG;
}
- xf86Msg(X_CONFIG, "Acecad Tablet is in %s mode\n",(priv->flags & ABSOLUTE_FLAG) ? "absolute" : "relative");
+ xf86Msg(msgtype, "Acecad Tablet is in %s mode\n", (priv->flags & ABSOLUTE_FLAG) ? "absolute" : "relative");
DBG (9, XisbTrace (priv->buffer, 1));
local->history_size = xf86SetIntOption(local->options , "HistorySize", 0);
@@ -355,7 +365,7 @@ DeviceOn (DeviceIntPtr dev)
LocalDevicePtr local = (LocalDevicePtr) dev->public.devicePrivate;
AceCadPrivatePtr priv = (AceCadPrivatePtr) (local->private);
- xf86Msg(X_CONFIG, "Acecad Tablet Device On\n");
+ xf86Msg(X_INFO, "Acecad Tablet Device On\n");
local->fd = xf86OpenSerial(local->options);
if (local->fd == -1)
@@ -375,7 +385,7 @@ DeviceOn (DeviceIntPtr dev)
}
/*Rets qu'a l'envoyer a la tablette */
- sprintf(buffer, "%s%c%c%c%c", acecad_initstr, priv->acecadReportSpeed ,ACECAD_INCREMENT, 32 + priv->acecadInc, (priv->flags & ABSOLUTE_FLAG)? ACECAD_ABSOLUTE: ACECAD_RELATIVE);
+ sprintf(buffer, "%s%c%c%c%c", acecad_initstr, priv->acecadReportSpeed, ACECAD_INCREMENT, 32 + priv->acecadInc, (priv->flags & ABSOLUTE_FLAG)? ACECAD_ABSOLUTE: ACECAD_RELATIVE);
XisbWrite (priv->buffer, (unsigned char *)buffer, strlen(buffer));
}
@@ -412,7 +422,7 @@ DeviceOff (DeviceIntPtr dev)
static Bool
DeviceClose (DeviceIntPtr dev)
{
- xf86Msg(X_CONFIG, "Acecad Tablet Device Close\n");
+ xf86Msg(X_INFO, "Acecad Tablet Device Close\n");
return (Success);
}
@@ -420,7 +430,7 @@ static void
ControlProc(DeviceIntPtr device,
PtrCtrl *ctrl)
{
- xf86Msg(X_CONFIG, "Acecad Tablet Control Proc\n");
+ xf86Msg(X_INFO, "Acecad Tablet Control Proc\n");
}
static Bool
@@ -432,7 +442,7 @@ DeviceInit (DeviceIntPtr dev)
unsigned char map[] =
{0, 1, 2, 3};
- xf86Msg(X_CONFIG, "Acecad Tablet Device Init\n");
+ xf86Msg(X_INFO, "Acecad Tablet Device Init\n");
/* 3 boutons */
if (InitButtonClassDeviceStruct (dev, 3, map) == FALSE)
@@ -517,7 +527,7 @@ DeviceInit (DeviceIntPtr dev)
priv->acecadInc = 1;
}
- xf86Msg(X_CONFIG, "Acecad Tablet Increment: %d\n",priv->acecadInc);
+ xf86Msg(X_INFO, "Acecad Tablet Increment: %d\n", priv->acecadInc);
return (Success);
}
@@ -530,7 +540,7 @@ ReadInput (LocalDevicePtr local)
int is_core_pointer, is_absolute;
AceCadPrivatePtr priv = (AceCadPrivatePtr) (local->private);
- /*xf86Msg(X_CONFIG, "Acecad Tablet Read Input\n");*/
+ /*xf86Msg(X_INFO, "Acecad Tablet Read Input\n");*/
is_absolute = (priv->flags & ABSOLUTE_FLAG);
is_core_pointer = xf86IsCorePointer(local->dev);
@@ -573,7 +583,7 @@ ReadInput (LocalDevicePtr local)
if (!(priv->acecadOldProximity))
if (!is_core_pointer)
{
- /*xf86Msg(X_CONFIG, "Acecad Tablet ProxIN %d %d %d\n",x, y, z);*/
+ /*xf86Msg(X_INFO, "Acecad Tablet ProxIN %d %d %d\n",x, y, z);*/
xf86PostProximityEvent(local->dev, 1, 0, 3 , x, y, z);
}
@@ -582,7 +592,7 @@ ReadInput (LocalDevicePtr local)
{
if (is_absolute || priv->acecadOldProximity)
{
- /*xf86Msg(X_CONFIG, "Acecad Tablet Motion %d %d %d\n", x, y, z);*/
+ /*xf86Msg(X_INFO, "Acecad Tablet Motion %d %d %d\n", x, y, z);*/
xf86PostMotionEvent(local->dev, is_absolute, 0, 3, x, y, z);
}
}
@@ -599,7 +609,7 @@ ReadInput (LocalDevicePtr local)
id=ffs(delta);
delta &= ~(1 << (id-1));
- /*xf86Msg(X_CONFIG, "Acecad Tablet Button %d 0x%x\n",id,(buttons&(1<<(id-1))));*/
+ /*xf86Msg(X_INFO, "Acecad Tablet Button %d 0x%x\n",id,(buttons&(1<<(id-1))));*/
xf86PostButtonEvent(local->dev, is_absolute, id, (buttons&(1<<(id-1))), 0, 3, x, y,z);
}
}
@@ -615,13 +625,13 @@ ReadInput (LocalDevicePtr local)
if (!is_core_pointer)
if (priv->acecadOldProximity)
{
- /*xf86Msg(X_CONFIG, "Acecad Tablet ProxOUT %d %d %d\n",x, y, z);*/
+ /*xf86Msg(X_INFO, "Acecad Tablet ProxOUT %d %d %d\n",x, y, z);*/
xf86PostProximityEvent(local->dev, 0, 0, 3, x,y,z);
}
priv->acecadOldProximity = 0;
}
}
- /*xf86Msg(X_CONFIG, "Acecad Tablet Sortie Read Input\n");*/
+ /*xf86Msg(X_INFO, "Acecad Tablet Sortie Read Input\n");*/
}
#ifdef LINUX_INPUT
@@ -693,7 +703,7 @@ USBReadInput (LocalDevicePtr local)
}
break; /* EV_KEY */
default:
- xf86Msg(X_ERROR, "UNKNOWN event->code=%d\n", event->code);
+ xf86Msg(X_ERROR, "UNKNOWN event type/code=%d/%d\n", event->type, event->code);
} /* switch event->type */
/* ABS_MISC is the event terminator */
@@ -744,7 +754,7 @@ USBReadInput (LocalDevicePtr local)
priv->acecadOldZ = z;
priv->acecadOldProximity = prox;
}
- /*xf86Msg(X_CONFIG, "Acecad Tablet Sortie Read Input\n");*/
+ /*xf86Msg(X_INFO, "Acecad Tablet Sortie Read Input\n");*/
}
#endif
@@ -828,12 +838,12 @@ QueryHardware (AceCadPrivatePtr priv)
priv->acecadMaxX = (int)priv->packet[1] + ((int)priv->packet[2] << 7);
priv->acecadMaxY = (int)priv->packet[3] + ((int)priv->packet[4] << 7);
priv->acecadMaxZ = 512;
- xf86Msg(X_CONFIG, "Acecad Tablet MaxX:%d MaxY:%d\n",priv->acecadMaxX,priv->acecadMaxY);
+ xf86Msg(X_INFO, "Acecad Tablet MaxX:%d MaxY:%d\n",priv->acecadMaxX,priv->acecadMaxY);
}
else
return (!Success);
- /*xf86Msg(X_CONFIG, "Acecad Tablet query hardware fini \n");*/
+ /*xf86Msg(X_INFO, "Acecad Tablet query hardware fini \n");*/
return (Success);
}
@@ -854,7 +864,7 @@ USBQueryHardware (LocalDevicePtr local)
char name[256] = "Unknown";
ioctl(local->fd, EVIOCGNAME(sizeof(name)), name);
- xf86Msg(X_CONFIG, "Kernel Input device name: \"%s\"\n", name);
+ xf86Msg(X_PROBED, "Kernel Input device name: \"%s\"\n", name);
memset(bit, 0, sizeof(bit));
ioctl(local->fd, EVIOCGBIT(0, EV_MAX), bit[0]);
@@ -883,7 +893,7 @@ USBQueryHardware (LocalDevicePtr local)
}
}
- xf86Msg(X_CONFIG, "Acecad Tablet MaxX:%d MaxY:%d MaxZ:%d\n",priv->acecadMaxX,priv->acecadMaxY,priv->acecadMaxZ);
+ xf86Msg(X_PROBED, "Acecad Tablet MaxX:%d MaxY:%d MaxZ:%d\n", priv->acecadMaxX, priv->acecadMaxY,priv->acecadMaxZ);
return (Success);
}
#endif
@@ -923,7 +933,7 @@ AceCadGetPacket (AceCadPrivatePtr priv)
count=ACECAD_PACKET_SIZE-1;
while(count-- && (c = XisbRead(priv->buffer))>=0)
{
- /*xf86Msg(X_CONFIG, "Push %2.2x\n",(char) c);*/
+ /*xf86Msg(X_INFO, "Push %2.2x\n",(char) c);*/
priv->packet[priv->packeti++] = c;
}
XisbBlockDuration (priv->buffer, 0);
commit 9ab58ae1001a399907458d236b1f725e3503ee90
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Date: Tue Apr 24 12:38:38 2007 +0200
Clean up defines, and add an include to fix compilation when LINUX_INPUT is defined
diff --git a/src/acecad.c b/src/acecad.c
index 43ac644..9d85a9e 100644
--- a/src/acecad.c
+++ b/src/acecad.c
@@ -47,7 +47,9 @@
#include <misc.h>
#include <xf86.h>
+#ifndef NEED_XF86_TYPES
#define NEED_XF86_TYPES
+#endif
#include <xf86_OSproc.h>
#include <xisb.h>
#include <xf86Xinput.h>
@@ -57,6 +59,10 @@
#include <string.h>
#include <stdio.h>
+#ifdef LINUX_INPUT
+#include <errno.h>
+#endif
+
/*****************************************************************************
* Local Headers
****************************************************************************/
@@ -70,7 +76,6 @@
* Local Variables
****************************************************************************/
-#define SYSCALL(call) while(((call) == -1) && (errno == EINTR))
#undef read
#define read(a,b,c) xf86ReadSerial((a),(b),(c))
Reply to: