So far this is how I'm declaring my custom versions:
Code:
typedef struct _PAWBUF PAWSTR;
typedef struct _PAW_PUTF PAW_PUTF;
typedef struct _PAW_GETF PAW_GETF;
struct _PAW_PUTF
{
pawzu sizeof_ud;
pawd (*test)( void *ud, va_list va );
pawd (*take)( void *ud, PAWSTR *str );
pawzu (*size)( void *ud );
};
struct _PAW_GETF
{
pawzu sizeof_ud;
pawd (*test)( void *ud, va_list va );
pawd (*take)( void *ud, PAWSTR const *str );
};
/* Defaults used if NULL is given */
extern PAW_PUTF const *pawStdPutf;
extern PAW_GETF const *pawStdGetf;
PAW_API pawd pawPutf( PAW_PUTF const *use, PAWSTR *str, paws format, ... );
PAW_API pawd pawPutv
( PAW_PUTF const *use, PAWSTR *str, paws format, va_list va );
PAW_API pawd pawGetf
( PAW_GETF const *use, PAWSTR const *str, paws format, ... );
PAW_API pawd pawGetv
( PAW_GETF const *use, PAWSTR const *str, paws format, va_list va );
Besides declaring externs for %s etc what suggestions does anyone have for more flexibility?