diff --git a/include/X11/Xfuncproto.h b/include/X11/Xfuncproto.h index 89bc96fddb5557cfa7424b10df20a995441dd973..f689073602310eccafe6c5b1b39f40f2a47f6ade 100644 --- a/include/X11/Xfuncproto.h +++ b/include/X11/Xfuncproto.h @@ -218,4 +218,12 @@ in this Software without prior written authorization from The Open Group. # define _X_NOTSAN #endif +/* Mark a char array/pointer as not containing a NUL-terminated string */ +/* requires xproto >= 7.0.33 */ +#if __has_attribute(nonstring) +# define _X_NONSTRING __attribute__((nonstring)) +#else +# define _X_NONSTRING +#endif + #endif /* _XFUNCPROTO_H_ */ diff --git a/include/X11/extensions/XKBproto.h b/include/X11/extensions/XKBproto.h index 43b18d8b5427db479664ffed479fc9678e9fb9c4..6eaec952f59e62db10d25fb643acb2ffb9c014c1 100644 --- a/include/X11/extensions/XKBproto.h +++ b/include/X11/extensions/XKBproto.h @@ -28,6 +28,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #define _XKBPROTO_H_ #include +#include #include #define Window CARD32 @@ -675,7 +676,7 @@ typedef struct _xkbRowWireDesc { #define sz_xkbRowWireDesc 8 typedef struct _xkbKeyWireDesc { - CARD8 name[XkbKeyNameLength]; + CARD8 name[XkbKeyNameLength] _X_NONSTRING; INT16 gap; CARD8 shapeNdx; CARD8 colorNdx; @@ -698,8 +699,8 @@ typedef struct _xkbOverlayRowWireDesc { #define sz_xkbOverlayRowWireDesc 4 typedef struct _xkbOverlayKeyWireDesc { - CARD8 over[XkbKeyNameLength]; - CARD8 under[XkbKeyNameLength]; + CARD8 over[XkbKeyNameLength] _X_NONSTRING; + CARD8 under[XkbKeyNameLength] _X_NONSTRING; } xkbOverlayKeyWireDesc; #define sz_xkbOverlayKeyWireDesc 8 diff --git a/include/X11/extensions/XKBstr.h b/include/X11/extensions/XKBstr.h index ef26911f94e15368f1bedea06459ae9fdbbf7fc5..eaefae8220de72a391a05f41980fac34b9194547 100644 --- a/include/X11/extensions/XKBstr.h +++ b/include/X11/extensions/XKBstr.h @@ -27,6 +27,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #ifndef _XKBSTR_H_ #define _XKBSTR_H_ +#include #include #define XkbCharToInt(v) ((v)&0x80?(int)((v)|(~0xff)):(int)((v)&0x7f)) @@ -401,12 +402,12 @@ typedef struct _XkbIndicatorRec { } XkbIndicatorRec,*XkbIndicatorPtr; typedef struct _XkbKeyNameRec { - char name[XkbKeyNameLength]; + char name[XkbKeyNameLength] _X_NONSTRING; } XkbKeyNameRec,*XkbKeyNamePtr; typedef struct _XkbKeyAliasRec { - char real[XkbKeyNameLength]; - char alias[XkbKeyNameLength]; + char real[XkbKeyNameLength] _X_NONSTRING; + char alias[XkbKeyNameLength] _X_NONSTRING; } XkbKeyAliasRec,*XkbKeyAliasPtr; /* diff --git a/xproto.pc.in b/xproto.pc.in index 927423675a9a4ebc613b772e4fe634f48df72a2d..9e288c717b1b5e27775637c05d6f94e25716d7e2 100644 --- a/xproto.pc.in +++ b/xproto.pc.in @@ -4,5 +4,5 @@ includex11dir=@includedir@/X11 Name: Xproto Description: Xproto headers -Version: 7.0.32 +Version: 7.0.33 Cflags: -I${includedir}