getting XI error codes - implicit declaration issue

Christian Beier beier at informatik.hu-berlin.de
Mon Sep 14 05:26:26 PDT 2009


On Mon, 14 Sep 2009 16:35:42 +1000
Peter Hutterer <peter.hutterer at who-t.net> wrote:

> On Fri, Sep 11, 2009 at 04:19:46PM +0200, Christian Beier wrote:
> > 
> > Hi there,
> > there seems to be a little issue with the way one registers for XInput
> > error codes: if i'm not totally wrong, these are defined nowhere, but
> > dynamically generated and one has to get the actual values via macros
> > like BadDevice(). But: (at least with git master xorg) this one
> > evaluates to _xibaddevice(), defined in libXi/src/XExtInt.c, which in
> > turn seems to be a private symbol in libxi, as i get 'implicit
> > declaration of function _xibaddevice' warnings while compiling my app.
> > while it seems to work okay, shouldn the _xibaddevice declaration made
> > public or the macro be turned into a function?
> 
> something like this should do?

yep, it does.

cheers,
   christian

> 
> >From 570af989a542621e94ca756a9bee09f4f04586cc Mon Sep 17 00:00:00 2001
> From: Peter Hutterer <peter.hutterer at who-t.net>
> Date: Mon, 14 Sep 2009 16:34:18 +1000
> Subject: [PATCH] Declare _xibad* functions before the Bad* macros.
> 
> Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
> ---
>  include/X11/extensions/XInput.h |    5 +++++
>  1 files changed, 5 insertions(+), 0 deletions(-)
> 
> diff --git a/include/X11/extensions/XInput.h b/include/X11/extensions/XInput.h
> index 561465c..b17f388 100644
> --- a/include/X11/extensions/XInput.h
> +++ b/include/X11/extensions/XInput.h
> @@ -159,6 +159,11 @@ SOFTWARE.
>  extern "C" {
>  #endif
>      extern int _XiGetDevicePresenceNotifyEvent(Display *);
> +    extern void _xibaddevice( Display *dpy, int *error);
> +    extern void _xibadclass( Display *dpy, int *error);
> +    extern void _xibadevent( Display *dpy, int *error);
> +    extern void _xibadmode( Display *dpy, int *error);
> +    extern void _xidevicebusy( Display *dpy, int *error);
>  #if defined(__cplusplus) || defined(c_plusplus)
>  }
>  #endif
> -- 
> 1.6.3.rc1.2.g0164.dirty
> 
> Cheers,
>   Peter


-- 
what is, is;
what is not is possible.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg/attachments/20090914/8cc650b0/attachment.pgp>


More information about the xorg mailing list