X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Fbase%2Flib_slk.c;h=d0407cec483d749d227a92956b05017ed6983185;hp=127c2990560dd7f2789672c28ce1ba0ccd6a832f;hb=3f5a74a97cf8d86a8a8a78c7b268f49ccdc4101c;hpb=5b7f4de105080e2a715b0564ede4bb7eb6767659 diff --git a/ncurses/base/lib_slk.c b/ncurses/base/lib_slk.c index 127c2990..d0407cec 100644 --- a/ncurses/base/lib_slk.c +++ b/ncurses/base/lib_slk.c @@ -47,7 +47,19 @@ #define CUR SP_TERMTYPE #endif -MODULE_ID("$Id: lib_slk.c,v 1.39 2009/07/04 18:37:57 tom Exp $") +MODULE_ID("$Id: lib_slk.c,v 1.42 2009/08/15 23:05:02 tom Exp $") + +#ifdef USE_TERM_DRIVER +#define NumLabels InfoOf(SP_PARM).numlabels +#define NoColorVideo InfoOf(SP_PARM).nocolorvideo +#define LabelWidth InfoOf(SP_PARM).labelwidth +#define LabelHeight InfoOf(SP_PARM).labelheight +#else +#define NumLabels num_labels +#define NoColorVideo no_color_video +#define LabelWidth label_width +#define LabelHeight label_height +#endif /* * Free any memory related to soft labels, return an error. @@ -67,11 +79,12 @@ NCURSES_EXPORT(int) _nc_format_slks(NCURSES_SP_DCLx int cols) { int gap, i, x; - unsigned max_length = SP_PARM->_slk->maxlen; + unsigned max_length; - if (!SP_PARM) + if (!SP_PARM || !SP_PARM->_slk) return ERR; + max_length = SP_PARM->_slk->maxlen; if (SP_PARM->slk_format >= 3) { /* PC style */ gap = (cols - 3 * (3 + 4 * max_length)) / 2; @@ -106,8 +119,9 @@ _nc_format_slks(NCURSES_SP_DCLx int cols) x += max_length; x += (i == 2 || i == 4) ? gap : 1; } - } else - returnCode(slk_failed(NCURSES_SP_ARG)); + } else { + return slk_failed(NCURSES_SP_ARG); + } } } SP_PARM->_slk->dirty = TRUE; @@ -140,7 +154,7 @@ _nc_slk_initialize(WINDOW *stwin, int cols) term = TerminalOf(SP_PARM); assert(term); - numlab = InfoOf(SP_PARM).numlabels; + numlab = NumLabels; if (SP_PARM->_slk) { /* we did this already, so simply return */ returnCode(OK); @@ -157,7 +171,7 @@ _nc_slk_initialize(WINDOW *stwin, int cols) * with colors. In that case, we're still guaranteed that "reverse" would * work. */ - if ((InfoOf(SP_PARM).nocolorvideo & 1) == 0) + if ((NoColorVideo & 1) == 0) SetAttr(SP_PARM->_slk->attr, A_STANDOUT); else SetAttr(SP_PARM->_slk->attr, A_REVERSE); @@ -166,7 +180,7 @@ _nc_slk_initialize(WINDOW *stwin, int cols) ? numlab : MAX_SKEY(SP_PARM->slk_format)); SP_PARM->_slk->maxlen = ((numlab > 0) - ? InfoOf(SP_PARM).labelwidth * InfoOf(SP_PARM).labelheight + ? LabelWidth * LabelHeight : MAX_SKEY_LEN(SP_PARM->slk_format)); SP_PARM->_slk->labcnt = ((SP_PARM->_slk->maxlab < MAX_SKEY(SP_PARM->slk_format)) ? MAX_SKEY(SP_PARM->slk_format)