Signed-off-by: Jeremy White <jwhite@xxxxxxxxxxxxxxx> --- This is the controversial patch; see previous conversation here: http://lists.freedesktop.org/archives/spice-devel/2012-September/010801.html I feel the benefit (nearly zero warnings) outweighs the harm (our moral outrage at what we have to do to the code). I don't think we would successfully get a change in upstream xorg (changing the type declaration of OptionInfoRec is the only other approach I could find that addressed this). Cheers, Jeremy src/qxl_driver.c | 22 +++++++++++++--------- src/spiceqxl_inputs.c | 26 +++++++++++++++++--------- 2 files changed, 30 insertions(+), 18 deletions(-) diff --git a/src/qxl_driver.c b/src/qxl_driver.c index ff58601..8e59b5f 100644 --- a/src/qxl_driver.c +++ b/src/qxl_driver.c @@ -62,6 +62,10 @@ extern void compat_init_scrn (ScrnInfoPtr); #define BREAKPOINT() do { __asm__ __volatile__ ("int $03"); } while (0) +static char filter_str[] = "filter"; +static char auto_str[] = "auto"; +static char auto_glz_str[] = "auto_glz"; +static char driver_name[] = QXL_DRIVER_NAME; const OptionInfoRec DefaultOptions[] = { { OPTION_ENABLE_IMAGE_CACHE, @@ -93,15 +97,15 @@ const OptionInfoRec DefaultOptions[] = { OPTION_SPICE_X509_KEY_FILE, "SpiceX509KeyFile", OPTV_STRING, {0}, FALSE}, { OPTION_SPICE_STREAMING_VIDEO, - "SpiceStreamingVideo", OPTV_STRING, {.str = "filter"}, FALSE}, + "SpiceStreamingVideo", OPTV_STRING, {.str = filter_str}, FALSE}, { OPTION_SPICE_PLAYBACK_COMPRESSION, "SpicePlaybackCompression", OPTV_BOOLEAN, {1}, FALSE}, { OPTION_SPICE_ZLIB_GLZ_WAN_COMPRESSION, - "SpiceZlibGlzWanCompression", OPTV_STRING, {.str = "auto"}, FALSE}, + "SpiceZlibGlzWanCompression", OPTV_STRING, {.str = auto_str}, FALSE}, { OPTION_SPICE_JPEG_WAN_COMPRESSION, - "SpiceJpegWanCompression", OPTV_STRING, {.str = "auto"}, FALSE}, + "SpiceJpegWanCompression", OPTV_STRING, {.str = auto_str}, FALSE}, { OPTION_SPICE_IMAGE_COMPRESSION, - "SpiceImageCompression", OPTV_STRING, {.str = "auto_glz"}, FALSE}, + "SpiceImageCompression", OPTV_STRING, {.str = auto_glz_str}, FALSE}, { OPTION_SPICE_DISABLE_COPY_PASTE, "SpiceDisableCopyPaste", OPTV_BOOLEAN, {0}, FALSE}, { OPTION_SPICE_IPV4_ONLY, @@ -1197,8 +1201,8 @@ static void qxl_init_scrn (ScrnInfoPtr pScrn) { pScrn->driverVersion = 0; - pScrn->driverName = QXL_DRIVER_NAME; - pScrn->name = QXL_DRIVER_NAME; + pScrn->driverName = driver_name; + pScrn->name = driver_name; pScrn->PreInit = qxl_pre_init; pScrn->ScreenInit = qxl_screen_init; pScrn->SwitchMode = qxl_switch_mode; @@ -1222,7 +1226,7 @@ qxl_probe (struct _DriverRec *drv, int flags) pScrn = xf86AllocateScreen (drv, flags); qxl_init_scrn (pScrn); - xf86MatchDevice (QXL_DRIVER_NAME, &device); + xf86MatchDevice (driver_name, &device); entityIndex = xf86ClaimNoSlot (drv, 0, device[0], TRUE); pEnt = xf86GetEntityInfo (entityIndex); pEnt->driver = drv; @@ -1314,7 +1318,7 @@ qxl_pci_probe (DriverPtr drv, int entity, struct pci_device *dev, intptr_t match static DriverRec qxl_driver = { 0, - QXL_DRIVER_NAME, + driver_name, qxl_identify, qxl_probe, qxl_available_options, @@ -1358,7 +1362,7 @@ qxl_setup (pointer module, pointer opts, int *errmaj, int *errmin) static XF86ModuleVersionInfo qxl_module_info = { - QXL_DRIVER_NAME, + driver_name, MODULEVENDORSTRING, MODINFOSTRING1, MODINFOSTRING2, diff --git a/src/spiceqxl_inputs.c b/src/spiceqxl_inputs.c index 3c22d00..2b8a15e 100644 --- a/src/spiceqxl_inputs.c +++ b/src/spiceqxl_inputs.c @@ -46,9 +46,10 @@ void XSpicePointerUnInit(InputDriverPtr drv, InputInfoPtr pInfo, int flags); static void XSpiceKeyboardUnInit(InputDriverPtr drv, InputInfoPtr pInfo, int flags); +static char xspice_pointer_name[] = "xspice pointer"; static InputDriverRec XSPICE_POINTER = { 1, - "xspice pointer", + xspice_pointer_name, NULL, XSpicePointerPreInit, XSpicePointerUnInit, @@ -56,9 +57,10 @@ static InputDriverRec XSPICE_POINTER = { NULL /* defaults */ }; +static char xspice_keyboard_name[] = "xspice keyboard"; static InputDriverRec XSPICE_KEYBOARD = { 1, - "xspice keyboard", + xspice_keyboard_name, NULL, XSpiceKeyboardPreInit, XSpiceKeyboardUnInit, @@ -149,15 +151,20 @@ static void xspice_keyboard_control(DeviceIntPtr device, KeybdCtrl *ctrl) } } +static char xspice_keyboard_rules[] = "evdev"; +static char xspice_keyboard_model[] = "pc105"; +static char xspice_keyboard_layout[] = "us"; +static char xspice_keyboard_variant[] = ""; +static char xspice_keyboard_options[] = ""; static int xspice_keyboard_proc(DeviceIntPtr pDevice, int onoff) { DevicePtr pDev = (DevicePtr)pDevice; XkbRMLVOSet rmlvo = { - .rules = "evdev", - .model = "pc105", - .layout = "us", - .variant = "", - .options = "", + .rules = xspice_keyboard_rules, + .model = xspice_keyboard_model, + .layout = xspice_keyboard_layout, + .variant = xspice_keyboard_variant, + .options = xspice_keyboard_options, }; switch (onoff) { @@ -350,6 +357,7 @@ static const SpiceTabletInterface tablet_interface = { .buttons = tablet_buttons, }; +static char unknown_type_string[] = "UNKNOWN"; static int XSpiceKeyboardPreInit(InputDriverPtr drv, InputInfoPtr pInfo, int flags) { @@ -360,7 +368,7 @@ XSpiceKeyboardPreInit(InputDriverPtr drv, InputInfoPtr pInfo, int flags) kbd->pInfo = pInfo; pInfo->private = kbd; - pInfo->type_name = "UNKNOWN"; + pInfo->type_name = unknown_type_string; pInfo->device_control = xspice_keyboard_proc; pInfo->read_input = NULL; pInfo->switch_mode = NULL; @@ -381,7 +389,7 @@ XSpicePointerPreInit(InputDriverPtr drv, InputInfoPtr pInfo, int flags) spice_pointer->pInfo = pInfo; pInfo->private = NULL; - pInfo->type_name = "UNKNOWN"; + pInfo->type_name = unknown_type_string; pInfo->device_control = xspice_pointer_proc; pInfo->read_input = NULL; pInfo->switch_mode = NULL; -- 1.7.10.4 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel