[PATCH:xf86-input-keyboard 07/21] Add translation table for AT/PS2 pseudo XT scancodes.
Thomas Klausner
wiz at NetBSD.org
Mon Jul 29 00:03:05 PDT 2013
On Sun, Jul 28, 2013 at 06:13:05PM +0200, walter harms wrote:
>
>
> Am 28.07.2013 15:50, schrieb Thomas Klausner:
> > On Sat, Jul 27, 2013 at 11:27:59AM +0200, walter harms wrote:
> >>> +#define WS_XT_MAP_SIZE (sizeof(wsXtMap)/sizeof(unsigned char))
> >>> +
> >>
> >> I would be careful here, the type is CARD8, that may be or not
> >> size of unsigned char. I prefer using *wsXtMap or wsXtMap[0]
> >> that circumvents the problem very nicely.
> >
> > I just followed the other examples in the file:
> > #define WS_USB_MAP_SIZE (sizeof(wsUsbMap)/sizeof(unsigned char))
> > #define WS_XT_MAP_SIZE (sizeof(wsXtMap)/sizeof(unsigned char))
> > #define WS_ADB_MAP_SIZE (sizeof(wsAdbMap)/sizeof(unsigned char))
> > #define WS_LK201_MAP_SIZE (sizeof(wsLk201Map)/sizeof(unsigned char))
> > #define WS_SUN_MAP_SIZE (sizeof(wsSunMap)/sizeof(unsigned char))
> >
> > I agree your suggestion is more stable, if something changes.
> >
> > Should I change them all to use sizeof(*wsFOOMap) instead?
> > Thomas
>
> I am not the maintainer, i simply review patches.
> so i suggest:
> 1. Go for sizeof(*wsXtMap) in your patch first.
Ok, new patch for that attached.
> 2. check if there is a macro like ARRAY_SIZE(x) (sizeof(x)/sizeof(*x)) (i have no idea ARRAY_SIZE if from linux kernel)
There are lots of places defining such a macro.
rendercheck/tests.c:#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
xf86-video-ati/src/radeon.h:#define RADEON_ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
xcb/util-image/image/test_swap.c:#define SIZE(a) (sizeof (a) / sizeof (a[0]))
xf86-video-geode/src/lx_exa.c:#define ARRAY_SIZE(a) (sizeof((a)) / (sizeof(*(a))))
xf86-video-geode/src/lx_video.c:#define ARRAY_SIZE(a) (sizeof((a)) / (sizeof(*(a))))
xf86-video-intel/src/intel.h:#define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0]))
...
I'll leave it as-is for now.
Thomas
-------------- next part --------------
>From 4f5426f70abf7bb0b3cba0c3e3a711b782cb4e44 Mon Sep 17 00:00:00 2001
From: Thomas Klausner <wiz at NetBSD.org>
Date: Mon, 29 Jul 2013 08:59:00 +0200
Subject: [PATCH:xf86-input-keyboard 22/22] Do not assume type in WS_*_MAP_SIZE
macros.
Suggested by Walter Harms <wharms at bfs.de>.
Signed-off-by: Thomas Klausner <wiz at NetBSD.org>
---
src/bsd_KbdMap.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/bsd_KbdMap.c b/src/bsd_KbdMap.c
index 8016a25..06f5b0e 100644
--- a/src/bsd_KbdMap.c
+++ b/src/bsd_KbdMap.c
@@ -443,7 +443,7 @@ static CARD8 wsUsbMap[] = {
/* 230 */ KEY_AltLang, /* Right Alt, AKA AltGr */
/* 231 */ KEY_LMeta, /* Right Meta XXX */
};
-#define WS_USB_MAP_SIZE (sizeof(wsUsbMap)/sizeof(unsigned char))
+#define WS_USB_MAP_SIZE (sizeof(wsUsbMap)/sizeof(*wsUsbMap))
static
TransMapRec wsUsb = {
@@ -676,7 +676,7 @@ static CARD8 wsXtMap[] = {
/* 220 */ KEY_RMeta,
/* 221 */ KEY_Menu,
};
-#define WS_XT_MAP_SIZE (sizeof(wsXtMap)/sizeof(unsigned char))
+#define WS_XT_MAP_SIZE (sizeof(wsXtMap)/sizeof(*wsXtMap))
static
TransMapRec wsXt = {
@@ -816,7 +816,7 @@ static CARD8 wsAdbMap[] = {
/* 126 */ KEY_NOTUSED,
/* 127 */ KEY_Power
};
-#define WS_ADB_MAP_SIZE (sizeof(wsAdbMap)/sizeof(unsigned char))
+#define WS_ADB_MAP_SIZE (sizeof(wsAdbMap)/sizeof(*wsAdbMap))
static
TransMapRec wsAdb = {
@@ -1080,7 +1080,7 @@ static CARD8 wsLk201Map[] = {
/* 250 */ KEY_NOTUSED,
/* 251 */ KEY_NOTUSED,
};
-#define WS_LK201_MAP_SIZE (sizeof(wsLk201Map)/sizeof(unsigned char))
+#define WS_LK201_MAP_SIZE (sizeof(wsLk201Map)/sizeof(*wsLk201Map))
static
TransMapRec wsLk201 = {
@@ -1219,7 +1219,7 @@ static CARD8 wsSunMap[] = {
/* 0x7e */ KEY_NOTUSED,
/* 0x7f */ KEY_NOTUSED
};
-#define WS_SUN_MAP_SIZE (sizeof(wsSunMap)/sizeof(unsigned char))
+#define WS_SUN_MAP_SIZE (sizeof(wsSunMap)/sizeof(*wsSunMap))
static
TransMapRec wsSun = {
--
1.8.3.3
More information about the xorg-devel
mailing list