The NARROWPROTO macro NARROWPROTO used in Xfuncproto.h to define another macro.
#ifdef NARROWPROTO #define NeedWidePrototypes 0 #else #define NeedWidePrototypes 1 #endif
NeedWidePrototypes , which in turn is used in Xlib.h , for example, as follows:
extern XModifierKeymap *XInsertModifiermapEntry( XModifierKeymap* , #if NeedWidePrototypes unsigned int , #else KeyCode , #endif int );
KeyCode is a typedef of Xh
typedef unsigned char KeyCode;
so I think narrow here refers to the width of the type used for KeyCode .
The same construct for the same typedef can be found in other files, for example XKBlib.h
source share