simplify macros

I'd love to generate the damned things but can't justify the time.
This commit is contained in:
Eric House 2024-12-02 14:44:50 -08:00
parent 3710277a65
commit e1ebba4d24
2 changed files with 124 additions and 147 deletions

View file

@ -140,77 +140,66 @@ void dutil_super_cleanup( XW_DUtilCtxt* dutil, XWEnv xwe );
/* This one cheats: direct access */ /* This one cheats: direct access */
#define dutil_getVTManager(duc) (duc)->vtMgr #define dutil_getVTManager(duc) (duc)->vtMgr
#define dutil_getCurSeconds(duc, e) \ #define dutil_getCurSeconds(duc, ...) \
(duc)->vtable.m_dutil_getCurSeconds((duc), (e)) (duc)->vtable.m_dutil_getCurSeconds((duc), __VA_ARGS__)
#define dutil_getUserString( duc, e, c ) \ #define dutil_getUserString( duc, ... ) \
(duc)->vtable.m_dutil_getUserString((duc),(e), (c)) (duc)->vtable.m_dutil_getUserString((duc), __VA_ARGS__)
#define dutil_getUserQuantityString( duc, e, c, q ) \ #define dutil_getUserQuantityString( duc, ... ) \
(duc)->vtable.m_dutil_getUserQuantityString((duc),(e), (c),(q)) (duc)->vtable.m_dutil_getUserQuantityString((duc), __VA_ARGS__)
#define dutil_storeStream(duc, e, k, s) \ #define dutil_storeStream(duc, ...) \
(duc)->vtable.m_dutil_storeStream((duc), (e), (k), (s)); (duc)->vtable.m_dutil_storeStream((duc), __VA_ARGS__)
#define dutil_storePtr(duc, e, k, p, l) \ #define dutil_storePtr(duc, ...) \
(duc)->vtable.m_dutil_storePtr((duc), (e), (k), (p), (l)) (duc)->vtable.m_dutil_storePtr((duc), __VA_ARGS__)
#define dutil_loadStream(duc, e, k, s) \ #define dutil_loadStream(duc, ...) \
(duc)->vtable.m_dutil_loadStream((duc), (e), (k), (s)) (duc)->vtable.m_dutil_loadStream((duc), __VA_ARGS__)
#define dutil_loadPtr(duc, e, k, p, l) \ #define dutil_loadPtr(duc, ...) \
(duc)->vtable.m_dutil_loadPtr((duc), (e), (k), (p), (l)) (duc)->vtable.m_dutil_loadPtr((duc), __VA_ARGS__)
# define dutil_forEach( duc, xwe, keys, proc, closure ) \ # define dutil_forEach( duc, ... ) \
(duc)->vtable.m_dutil_forEach((duc), (xwe), (keys), (proc), (closure) ) (duc)->vtable.m_dutil_forEach((duc), __VA_ARGS__ )
#define dutil_remove(duc, keys) \ #define dutil_remove(duc, ...) \
(duc)->vtable.m_dutil_remove((duc), (keys)) (duc)->vtable.m_dutil_remove((duc), __VA_ARGS__)
#ifdef XWFEATURE_SMS #ifdef XWFEATURE_SMS
# define dutil_phoneNumbersSame(duc,e,p1,p2) \ # define dutil_phoneNumbersSame(duc, ...) \
(duc)->vtable.m_dutil_phoneNumbersSame( (duc), (e), (p1), (p2) ) (duc)->vtable.m_dutil_phoneNumbersSame( (duc), __VA_ARGS__)
#endif
#if defined XWFEATURE_DEVID && defined XWFEATURE_RELAY
# define dutil_getDevID( duc, e, t ) \
(duc)->vtable.m_dutil_getDevID((duc), (e),(t))
# define dutil_deviceRegistered( duc, e, typ, id ) \
(duc)->vtable.m_dutil_deviceRegistered( (duc), (e), (typ), (id) )
#endif #endif
#ifdef DUTIL_TIMERS #ifdef DUTIL_TIMERS
# define dutil_setTimer( duc, xwe, when, key ) \ # define dutil_setTimer( duc, ... ) \
(duc)->vtable.m_dutil_setTimer((duc), (xwe), (when), (key)) (duc)->vtable.m_dutil_setTimer((duc), __VA_ARGS__)
# define dutil_clearTimer( duc, xwe, key ) \ # define dutil_clearTimer( duc, ... ) \
(duc)->vtable.m_dutil_clearTimer((duc), (xwe), (key) ) (duc)->vtable.m_dutil_clearTimer((duc), __VA_ARGS__)
#endif #endif
# define dutil_md5sum( duc, e, p, l, b ) \ # define dutil_md5sum( duc, ... ) \
(duc)->vtable.m_dutil_md5sum((duc), (e), (p), (l), (b)) (duc)->vtable.m_dutil_md5sum((duc), __VA_ARGS__)
#define dutil_getUsername(duc, ...) \
(duc)->vtable.m_dutil_getUsername((duc), __VA_ARGS__)
#define dutil_notifyPause( duc, ... ) \
(duc)->vtable.m_dutil_notifyPause( (duc), __VA_ARGS__)
#define dutil_getUsername(duc, xwe, num, isLocal, isRobot, buf, lenp) \ #define dutil_haveGame( duc, ... ) \
(duc)->vtable.m_dutil_getUsername((duc), (xwe), (num), (isLocal), \ (duc)->vtable.m_dutil_haveGame( (duc), __VA_ARGS__)
(isRobot), (buf), (lenp))
#define dutil_notifyPause( duc, e, id, ip, p, n, m ) \ #define dutil_onDupTimerChanged(duc, ...) \
(duc)->vtable.m_dutil_notifyPause( (duc), (e), (id), (ip), (p), (n), (m) ) (duc)->vtable.m_dutil_onDupTimerChanged( (duc), __VA_ARGS__)
#define dutil_onInviteReceived(duc, ...) \
(duc)->vtable.m_dutil_onInviteReceived( (duc), __VA_ARGS__)
#define dutil_onMessageReceived(duc, ...) \
(duc)->vtable.m_dutil_onMessageReceived((duc), __VA_ARGS__)
#define dutil_onCtrlReceived(duc, ... ) \
(duc)->vtable.m_dutil_onCtrlReceived((duc), __VA_ARGS__ )
#define dutil_onGameGoneReceived(duc, ...) \
(duc)->vtable.m_dutil_onGameGoneReceived((duc), __VA_ARGS__)
#define dutil_sendViaWeb( duc, ... ) \
(duc)->vtable.m_dutil_sendViaWeb((duc), __VA_ARGS__)
#define dutil_makeEmptyDict(duc, ...) \
(duc)->vtable.m_dutil_makeEmptyDict((duc), __VA_ARGS__)
#define dutil_getDict(duc, ...) \
(duc)->vtable.m_dutil_getDict((duc), __VA_ARGS__)
#define dutil_haveGame( duc, xwe, gameID, channel ) \ #define dutil_getRegValues( duc, ... ) \
(duc)->vtable.m_dutil_haveGame( (duc), (xwe), (gameID), (channel) ) (duc)->vtable.m_dutil_getRegValues( (duc), __VA_ARGS__)
#define dutil_onDupTimerChanged(duc, e, id, ov, nv) \
(duc)->vtable.m_dutil_onDupTimerChanged( (duc), (e), (id), (ov), (nv))
#define dutil_onInviteReceived(duc, xwe, nli) \
(duc)->vtable.m_dutil_onInviteReceived( (duc), (xwe), (nli) )
#define dutil_onMessageReceived(duc, xwe, gameID, from, buf, len) \
(duc)->vtable.m_dutil_onMessageReceived((duc),(xwe),(gameID),(from),(buf),(len))
#define dutil_onCtrlReceived(duc, xwe, buf, len ) \
(duc)->vtable.m_dutil_onCtrlReceived((duc),(xwe),(buf),(len))
#define dutil_onGameGoneReceived(duc, xwe, gameID, from) \
(duc)->vtable.m_dutil_onGameGoneReceived((duc),(xwe),(gameID),(from))
#define dutil_sendViaWeb( duc, xwe, resultKey, api, params ) \
(duc)->vtable.m_dutil_sendViaWeb((duc), (xwe), (resultKey), (api), (params))
#define dutil_makeEmptyDict(duc, xwe) \
(duc)->vtable.m_dutil_makeEmptyDict((duc), (xwe))
#define dutil_getDict(duc, xwe, isoCode, dictName) \
(duc)->vtable.m_dutil_getDict((duc), (xwe), (isoCode), (dictName))
#define dutil_getRegValues( duc, xwe ) \
(duc)->vtable.m_dutil_getRegValues( (duc), (xwe) )
#endif #endif

View file

@ -199,124 +199,112 @@ struct XW_UtilCtxt {
MPSLOT MPSLOT
}; };
#define util_makeStreamFromAddr(uc,e,a) \ #define util_makeStreamFromAddr(uc,...) \
(uc)->vtable->m_util_makeStreamFromAddr((uc), (e),(a)) (uc)->vtable->m_util_makeStreamFromAddr((uc), __VA_ARGS__)
#define util_userError(uc,...) \
(uc)->vtable->m_util_userError((uc), __VA_ARGS__)
#define util_notifyMove(uc,...) \
(uc)->vtable->m_util_notifyMove((uc), __VA_ARGS__)
#define util_notifyTrade(uc,...) \
(uc)->vtable->m_util_notifyTrade((uc), __VA_ARGS__)
#define util_notifyPickTileBlank( uc,...) \
(uc)->vtable->m_util_notifyPickTileBlank( (uc), __VA_ARGS__ )
#define util_userError(uc,e,err) \ #define util_informNeedPickTiles( uc, ...) \
(uc)->vtable->m_util_userError((uc),(e),(err)) (uc)->vtable->m_util_informNeedPickTiles( (uc), __VA_ARGS__ )
#define util_notifyMove(uc,e, str) \ #define util_informNeedPassword( uc, ... ) \
(uc)->vtable->m_util_notifyMove((uc), (e), (str)) (uc)->vtable->m_util_informNeedPassword( (uc), __VA_ARGS__ )
#define util_notifyTrade(uc,e, tx, nt) \ #define util_trayHiddenChange( uc, ...) \
(uc)->vtable->m_util_notifyTrade((uc), (e), (tx), (nt)) (uc)->vtable->m_util_trayHiddenChange((uc), __VA_ARGS__)
#define util_notifyPickTileBlank( uc,e, c, r, n, tx, nt ) \ #define util_yOffsetChange( uc, ...) \
(uc)->vtable->m_util_notifyPickTileBlank( (uc), (e), (c), (r), (n), (tx), (nt) ) (uc)->vtable->m_util_yOffsetChange((uc), __VA_ARGS__)
#define util_informNeedPickTiles( uc,e, ii, pl, np, nt, fc, cn ) \
(uc)->vtable->m_util_informNeedPickTiles( (uc), (e), (ii), (pl), (np), (nt), (fc), (cn) )
#define util_informNeedPassword( uc,e, pn, n ) \
(uc)->vtable->m_util_informNeedPassword( (uc), (e), (pn), (n) )
#define util_trayHiddenChange( uc,e, b, n ) \
(uc)->vtable->m_util_trayHiddenChange((uc), (e), (b), (n))
#define util_yOffsetChange( uc,e, m, o, n ) \
(uc)->vtable->m_util_yOffsetChange((uc), (e), (m), (o), (n) )
#ifdef XWFEATURE_TURNCHANGENOTIFY #ifdef XWFEATURE_TURNCHANGENOTIFY
# define util_turnChanged( uc,e, t ) \ # define util_turnChanged( uc, ... ) \
(uc)->vtable->m_util_turnChanged( (uc), (e), (t) ) (uc)->vtable->m_util_turnChanged( (uc), __VA_ARGS__)
#else #else
# define util_turnChanged( uc,e, t ) # define util_turnChanged( uc, ... )
#endif #endif
#define util_notifyDupStatus(uc,e, h, m) \ #define util_notifyDupStatus(uc,...) \
(uc)->vtable->m_util_notifyDupStatus( (uc), (e), (h), (m) ) (uc)->vtable->m_util_notifyDupStatus( (uc), __VA_ARGS__ )
#define util_informMove(uc,e,t,ex,w) \ #define util_informMove(uc,...) \
(uc)->vtable->m_util_informMove( (uc), (e), (t), (ex), (w)) (uc)->vtable->m_util_informMove( (uc), __VA_ARGS__)
#define util_informUndo(uc,e) \ #define util_informUndo(uc,...) \
(uc)->vtable->m_util_informUndo( (uc), (e)) (uc)->vtable->m_util_informUndo( (uc), __VA_ARGS__)
#define util_informNetDict(uc,e, cd, on, nn, ns, pa ) \ #define util_informNetDict(uc, ... ) \
(uc)->vtable->m_util_informNetDict( (uc), (e), (cd), (on), (nn), (ns), \ (uc)->vtable->m_util_informNetDict( (uc), __VA_ARGS__)
(pa) ) #define util_notifyGameOver( uc, ... ) \
#define util_notifyGameOver( uc,e, q ) \ (uc)->vtable->m_util_notifyGameOver((uc), __VA_ARGS__)
(uc)->vtable->m_util_notifyGameOver((uc), (e), (q))
#ifdef XWFEATURE_HILITECELL #ifdef XWFEATURE_HILITECELL
# define util_hiliteCell( uc,e, c, r ) \ # define util_hiliteCell( uc, ... ) \
(uc)->vtable->m_util_hiliteCell((uc), (e), (c), (r)) (uc)->vtable->m_util_hiliteCell((uc), __VA_ARGS__)
#endif #endif
#define util_engineProgressCallback( uc,e ) \ #define util_engineProgressCallback( uc, ... ) \
(uc)->vtable->m_util_engineProgressCallback((uc), (e)) (uc)->vtable->m_util_engineProgressCallback((uc), __VA_ARGS__)
#define util_setTimer( uc,e, why, when, proc, clos ) \ #define util_setTimer( uc, ... ) \
(uc)->vtable->m_util_setTimer((uc), (e),(why),(when),(proc),(clos)) (uc)->vtable->m_util_setTimer((uc), __VA_ARGS__ )
#define util_clearTimer( uc,e, why ) \ #define util_clearTimer( uc, ... ) \
(uc)->vtable->m_util_clearTimer((uc), (e),(why)) (uc)->vtable->m_util_clearTimer((uc), __VA_ARGS__)
#define util_requestTime( uc, ... ) \
(uc)->vtable->m_util_requestTime((uc), __VA_ARGS__)
#define util_requestTime( uc,e ) \ #define util_altKeyDown( uc, ... ) \
(uc)->vtable->m_util_requestTime((uc), (e)) (uc)->vtable->m_util_altKeyDown((uc), __VA_ARGS__)
#define util_notifyIllegalWords( uc, ... ) \
(uc)->vtable->m_util_notifyIllegalWords((uc), __VA_ARGS__)
#define util_remSelected( uc,... ) \
(uc)->vtable->m_util_remSelected((uc), __VA_ARGS__)
#define util_altKeyDown( uc,e ) \ #define util_timerSelected( uc, ... ) \
(uc)->vtable->m_util_altKeyDown((uc),(e)) (uc)->vtable->m_util_timerSelected((uc), __VA_ARGS__)
#define util_notifyIllegalWords( uc,e, w, d, p, b, k ) \
(uc)->vtable->m_util_notifyIllegalWords((uc), (e), (w), (d), (p), (b), (k))
#define util_remSelected( uc,e ) \
(uc)->vtable->m_util_remSelected((uc), (e))
#define util_timerSelected( uc,e, dm, cp ) \
(uc)->vtable->m_util_timerSelected((uc), (e), (dm), (cp))
#define util_formatPauseHistory( uc,e, s, typ, turn, secsPrev, secsCur, msg ) \
(uc)->vtable->m_util_formatPauseHistory( (uc), (e), (s), (typ), (turn), \
(secsPrev), (secsCur), (msg) )
#define util_formatPauseHistory( uc, ...) \
(uc)->vtable->m_util_formatPauseHistory( (uc), __VA_ARGS__)
#ifndef XWFEATURE_MINIWIN #ifndef XWFEATURE_MINIWIN
# define util_bonusSquareHeld( uc,e, b ) \ # define util_bonusSquareHeld( uc, ... ) \
(uc)->vtable->m_util_bonusSquareHeld( (uc), (e), (b) ) (uc)->vtable->m_util_bonusSquareHeld( (uc), __VA_ARGS__ )
# define util_playerScoreHeld( uc,e, player ) \ # define util_playerScoreHeld( uc, ... ) \
(uc)->vtable->m_util_playerScoreHeld( (uc), (e), (player) ) (uc)->vtable->m_util_playerScoreHeld( (uc), __VA_ARGS__ )
#endif #endif
#ifdef XWFEATURE_BOARDWORDS #ifdef XWFEATURE_BOARDWORDS
#define util_cellSquareHeld(uc,e, s) \ #define util_cellSquareHeld(uc, ...) \
(uc)->vtable->m_util_cellSquareHeld( (uc), (e), (s) ) (uc)->vtable->m_util_cellSquareHeld( (uc), __VA_ARGS__)
#endif #endif
#define util_informMissing( uc, e, is, ha, sa, nd, nm, ni, fr ) \ #define util_informMissing( uc, ...) \
(uc)->vtable->m_util_informMissing((uc), (e), (is), (ha), (sa), \ (uc)->vtable->m_util_informMissing((uc), __VA_ARGS__)
(nd), (nm), (ni), (fr) ) #define util_informWordsBlocked(uc, ...) \
(uc)->vtable->m_util_informWordsBlocked( (uc), __VA_ARGS__)
#define util_informWordsBlocked(uc,e, c, w, d) \ #define util_getInviteeName(uc, ... ) \
(uc)->vtable->m_util_informWordsBlocked( (uc), (e), (c), (w), (d) ) (uc)->vtable->m_util_getInviteeName( (uc), __VA_ARGS__ )
#define util_getInviteeName(uc, xwe, plyrNum, buf, len ) \
(uc)->vtable->m_util_getInviteeName( (uc), (xwe), (plyrNum), (buf), (len) )
#ifdef XWFEATURE_SEARCHLIMIT #ifdef XWFEATURE_SEARCHLIMIT
#define util_getTraySearchLimits(uc,e,min,max) \ #define util_getTraySearchLimits(uc, ...) \
(uc)->vtable->m_util_getTraySearchLimits((uc), (e), (min), (max)) (uc)->vtable->m_util_getTraySearchLimits((uc), __VA_ARGS__)
#endif #endif
#ifdef XWFEATURE_CHAT #ifdef XWFEATURE_CHAT
# define util_showChat( uc,e, m, f, ts ) (uc)->vtable->m_util_showChat((uc), (e),(m),(f), (ts)) # define util_showChat( uc, ... ) (uc)->vtable->m_util_showChat((uc), __VA_ARGS__)
#endif #endif
# ifdef SHOW_PROGRESS # ifdef SHOW_PROGRESS
# define util_engineStarting( uc,e, nb ) \ # define util_engineStarting( uc, ... ) \
(uc)->vtable->m_util_engineStarting((uc), (e),(nb)) (uc)->vtable->m_util_engineStarting((uc), __VA_ARGS__)
# define util_engineStopping( uc,e ) \ # define util_engineStopping( uc, ... ) \
(uc)->vtable->m_util_engineStopping((uc), (e)) (uc)->vtable->m_util_engineStopping((uc), __VA_ARGS__)
# else # else
# define util_engineStarting( uc,e, nb ) # define util_engineStarting( uc, ... )
# define util_engineStopping( uc,e ) # define util_engineStopping( uc, ... )
# endif # endif
# define util_getDevUtilCtxt(uc,e) \ # define util_getDevUtilCtxt(uc, ...) \
(uc)->vtable->m_util_getDevUtilCtxt( (uc), (e) ) (uc)->vtable->m_util_getDevUtilCtxt( (uc), __VA_ARGS__)
#endif #endif