This changes the log format to simple hex display, the server's signal-safe printf implementation doesn't handle %2.2x.
Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> --- The second line in hunk 2 is a whitespace removal, I got annoyed by the red blob (let c_space_errors=1 in vim) Alan: please test this on Solaris. src/at_scancode.c | 4 ++-- src/kbd.c | 4 ++-- src/sun_kbd.c | 20 +++++++++++--------- src/xf86OSKbd.h | 4 ++++ 4 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/at_scancode.c b/src/at_scancode.c index 7209c20..a519a6c 100644 --- a/src/at_scancode.c +++ b/src/at_scancode.c @@ -112,8 +112,8 @@ ATScancode(InputInfoPtr pInfo, int *scanCode) case 0x36: return TRUE; default: - xf86MsgVerb(X_INFO, 4, "Unreported Prefix0 scancode: 0x%02x\n", - *scanCode); + LogMessageVerbSigSafe(X_INFO, 4, "Unreported Prefix0 scancode: 0x%x\n", + *scanCode); *scanCode += 0x78; } break; diff --git a/src/kbd.c b/src/kbd.c index 94523aa..9a013b7 100644 --- a/src/kbd.c +++ b/src/kbd.c @@ -410,9 +410,9 @@ PostKbdEvent(InputInfoPtr pInfo, unsigned int scanCode, Bool down) int state; #ifdef DEBUG - ErrorF("kbd driver rec scancode: 0x02%x %s\n", scanCode, down?"down":"up"); + LogMessageVerbSigSafe(X_INFO, -1, "kbd driver rec scancode: 0x%x %s\n", scanCode, down ? "down" : "up"); #endif - + /* * First do some special scancode remapping ... */ diff --git a/src/sun_kbd.c b/src/sun_kbd.c index f1e530e..2e7add6 100644 --- a/src/sun_kbd.c +++ b/src/sun_kbd.c @@ -459,20 +459,22 @@ ReadInput(InputInfoPtr pInfo) case EINTR: /* Interrupted, try again */ break; case ENODEV: /* May happen when USB kbd is unplugged */ - /* We use X_NONE here because it doesn't alloc since we - may be called from SIGIO handler */ - xf86MsgVerb(X_NONE, 0, - "%s: Device no longer present - removing.\n", - pInfo->name); + /* We use X_NONE here because it didn't alloc since we + may be called from SIGIO handler. No longer true for + sigsafe logging, but matters for older servers */ + LogMessageVerbSigSafe(X_NONE, 0, + "%s: Device no longer present - removing.\n", + pInfo->name); xf86RemoveEnabledDevice(pInfo); priv->remove_timer = TimerSet(priv->remove_timer, 0, 1, RemoveKeyboard, pInfo); return; default: /* All other errors */ - /* We use X_NONE here because it doesn't alloc since we - may be called from SIGIO handler */ - xf86MsgVerb(X_NONE, 0, "%s: Read error: %s\n", pInfo->name, - strerror(errno)); + /* We use X_NONE here because it didn't alloc since we + may be called from SIGIO handler. No longer true for + sigsafe logging, but matters for older servers */ + LogMessageVerbSigSafe(X_NONE, 0, "%s: Read error: %s\n", pInfo->name, + strerror(errno)); return; } } else { /* nBytes == 0, so nothing more to read */ diff --git a/src/xf86OSKbd.h b/src/xf86OSKbd.h index cba049f..7349b1a 100644 --- a/src/xf86OSKbd.h +++ b/src/xf86OSKbd.h @@ -29,6 +29,10 @@ #include "xf86Xinput.h" +#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 18 +#define LogMessageVerbSigSafe xf86MsgVerb +#endif + Bool ATScancode(InputInfoPtr pInfo, int *scanCode); /* Public interface to OS-specific keyboard support. */ -- 1.7.11.2 _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel