The global variable holding the native address of the I/O page is spelled "IOPage"
The global variable "IOPage" is declared extern by "lspglob.h"
The structure pointed to by IOPage is named IOPAGE and is defined in "iopage.h"
If there is no direct reference to the IOPAGE struct do not include "iopage.h"
* Update struct DevRec methods to take a "void *" parameter
since they get called with different xxxInterface records
depending on whether they are a keyboard, mouse, or display.
Introduce GenericReturnVoid method implementation for use
where needed with DevRec methods. (see mouseif.c)
* Cast functions implementing DevRec methods as appropriate to match
the method signature.
* Update struct DspInterfaceRec methods cleardisplay,
bitblt_to_screen, mouse_invisible, and mouse_visible to declare
the parameters they require and all return unsigned long results
(though it's not clear that this is actually the correct type).
Requires updating dosmouse.c method implementations.
* Update GenericReturnT and GenericPanic method implementations
to have the signature required by the method slots they
are used in.
* Correct DOS-only section with incorrect arguments to device.exit
call for the mouse.
* Use include "dspifdefs.h" for prototypes for GenericReturnXXX method
implementations.
devif.h, mnxdefs.h:
Update MRegion to reflect that width/height are unsigned.
Update ...EventMask fields in XWINDOW section of DspInterfaceRec to match parameter
type used in XSelectInput() to which they are passed.
Add padding to explicitly align colors field (short among longs)
xbitmaps.h:
Reorder fields in LISP_CURSOR struct to avoid requiring padding for alignment
constraints, and adjust initialization to match.
Declare cursors static const.
Move Lisp_Icon from xbitmaps.h to xmkicon.c
xinit.c, xinitdefs.h
Replace bound() (xwinmandefs.h) with static inline unsigned ubound() in xinit.c
Change signature of X_init() to use unsigned values for width, height, depth.
Add casts where necessary to avoid implicit signedness conversions.
Add extern declarations for all globals defined in xinit.c
xwinman.c, xwinmandefs.h
Remove bound() from xwinmandefs.h and use static inline unsigned ubound() in xwinman.c
Change signature of lisp_Xconfigure() to use unsigned width and height parameters.
Make GravSize unsigned to match its usage context.
Add casts where necessary to avoid implicit signedness conversions.
Add missing break to correct switch case fall-through warning.
dspif.c
Change LispDisplayRequestedWidth/Height to unsigned to reflect context of use.
xlspwin.c
Eliminate declaration for unused XEvent report.
Move global variable gcv, used only locally, to local variable in the procedures where needed.
Change various variables used in width/height calculation to unsigned to match usage context.
Add casts where necessary to avoid implicit signedness conversions.
xmkicon.c
Move Lisp_Icon from xbitmaps.h to xmkicon.c.
Move global XImage IconImage to local in function where it is required.
Add cast where necessary to avoid implicit signedness conversions.
xrdopt.c
Remove incorrect casts for signedness causing implicit sign conversion warnings.
Add extern declarations for all globals defined in xrdopt.c
xscroll.c
Replace bound() (xwinmandefs.h) with static inline signed sbound() in xscroll.c
initdsp.c, initdspdefs.h
Change signedness of various display variables from int to unsigned.
Change signature of init_display2() to unsigned display_max.
Add extern declarations for some globals defined in initdsp.c
xbbt.c
Add explicit casts for type warnings from MRegion width/height change.
Add explicit casts for type warnings in arguments to XPutImage().
* Remove unnecessary calls to XLOCK/XUNLOCK
The X methods called by flush_display_region() and flush_display_lineregion() handle the
locking/unlocking, therefore it is unnecessary to invoke the locking here.
* Remove explict signals when doing XUNLOCK()
Call getXsignaldata() directly if a signal happened while X code
was locked, instead of generating a signal and then handling it.
Some macros and functions needed to pass the DspInterface instead of
extracting the X display and window and passing those so that the
correct structure was available for the XUNLOCK() call.
Except where the expansion would be syntactically invalid,
for example "goto macroarg;" detection of which is a bug in clang-tidy,
so warn it off with a NOLINT...(bugprone-macro-parentheses)