diff options
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/almodule.c | 70 | ||||
-rw-r--r-- | Modules/flmodule.c | 225 | ||||
-rw-r--r-- | Modules/stdwinmodule.c | 276 |
3 files changed, 198 insertions, 373 deletions
diff --git a/Modules/almodule.c b/Modules/almodule.c index 806ad75..e6ba1b0 100644 --- a/Modules/almodule.c +++ b/Modules/almodule.c @@ -22,7 +22,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* AL module -- interface to Mark Calows' Auido Library (AL). */ +/* AL module -- interface to Mark Callows' Audio Library (AL). */ #include "audio.h" @@ -43,6 +43,10 @@ extern typeobject Configtype; /* Forward */ #define is_configobject(v) ((v)->ob_type == &Configtype) +/* Forward */ +static int getconfigarg PROTO((object *, ALconfig *)); +static int getstrstrconfigarg PROTO((object *, char **, char **, ALconfig *)); + static object * setConfig (self, args, func) configobject *self; @@ -51,7 +55,7 @@ setConfig (self, args, func) { long par; - if (!getlongarg(args, &par)) return NULL; + if (!getlongarg (args, &par)) return NULL; (*func) (self-> ob_config, par); @@ -67,7 +71,7 @@ getConfig (self, args, func) { long par; - if (!getnoarg(args)) return NULL; + if (!getnoarg (args)) return NULL; par = (*func) (self-> ob_config); @@ -192,7 +196,7 @@ al_closeport (self, args) portobject *self; object *args; { - if (!getnoarg(args)) return NULL; + if (!getnoarg (args)) return NULL; if (self->ob_port != NULL) { ALcloseport (self-> ob_port); @@ -211,7 +215,7 @@ al_getfd (self, args) { int fd; - if (!getnoarg(args)) return NULL; + if (!getnoarg (args)) return NULL; fd = ALgetfd (self-> ob_port); @@ -225,7 +229,7 @@ al_getfilled (self, args) { long count; - if (!getnoarg(args)) return NULL; + if (!getnoarg (args)) return NULL; count = ALgetfilled (self-> ob_port); @@ -239,7 +243,7 @@ al_getfillable (self, args) { long count; - if (!getnoarg(args)) return NULL; + if (!getnoarg (args)) return NULL; count = ALgetfillable (self-> ob_port); @@ -281,17 +285,16 @@ al_writesamps (self, args) object *args; { long count; - object *v; + char *buf; + int size, width; ALconfig c; - int width; - if (!getstrarg (args, &v)) return NULL; + if (!getargs (args, "s#", &buf, &size)) return NULL; c = ALgetconfig(self->ob_port); width = ALgetwidth(c); ALfreeconfig(c); - ALwritesamps (self-> ob_port, (void *) getstringvalue(v), - getstringsize(v) / width); + ALwritesamps (self-> ob_port, (void *) buf, (long) size / width); INCREF (None); return None; @@ -304,7 +307,7 @@ al_getfillpoint (self, args) { long count; - if (!getnoarg(args)) return NULL; + if (!getnoarg (args)) return NULL; count = ALgetfillpoint (self-> ob_port); @@ -318,7 +321,7 @@ al_setfillpoint (self, args) { long count; - if (!getlongarg(args, &count)) return NULL; + if (!getlongarg (args, &count)) return NULL; ALsetfillpoint (self-> ob_port, count); @@ -333,7 +336,7 @@ al_setconfig (self, args) { ALconfig config; - if (!getconfigarg(args, &config)) return NULL; + if (!getconfigarg (args, &config)) return NULL; ALsetconfig (self-> ob_port, config); @@ -348,7 +351,7 @@ al_getconfig (self, args) { ALconfig config; - if (!getnoarg(args)) return NULL; + if (!getnoarg (args)) return NULL; config = ALgetconfig (self-> ob_port); @@ -420,13 +423,13 @@ static object * al_openport (self, args) object *self, *args; { - object *name, *dir; + char *name, *dir; ALport port; ALconfig config = NULL; int size; if (args == NULL || !is_tupleobject(args)) { - err_badarg(); + err_badarg (); return NULL; } size = gettuplesize(args); @@ -439,11 +442,11 @@ al_openport (self, args) return NULL; } else { - err_badarg(); + err_badarg (); return NULL; } - port = ALopenport(getstringvalue(name), getstringvalue(dir), config); + port = ALopenport(name, dir, config); if (port == NULL) { err_errno(RuntimeError); @@ -481,7 +484,7 @@ al_queryparams(self, args) object *v; object *w; - if (!getlongarg(args, &device)) + if (!getlongarg (args, &device)) return NULL; length = ALqueryparams(device, PVdummy, 2L); PVbuffer = NEW(long, length); @@ -510,7 +513,7 @@ doParams(args, func, modified) long length; int i; - if (!getlongobjectarg(args, &device, &list)) + if (!getargs(args, "(lO)", &device, &list)) return NULL; if (!is_listobject(list)) { err_badarg(); @@ -572,31 +575,26 @@ inital() initmodule("al", al_methods); } -int -getconfigarg (o, conf) - configobject *o; +static int +getconfigarg(o, conf) + object *o; ALconfig *conf; { if (o == NULL || !is_configobject(o)) return err_badarg (); - *conf = o-> ob_config; + *conf = ((configobject *) o) -> ob_config; return 1; } -int +static int getstrstrconfigarg(v, a, b, c) object *v; - object **a; - object **b; + char **a; + char **b; ALconfig *c; { - if (v == NULL || !is_tupleobject(v) || gettuplesize(v) != 3) { - return err_badarg(); - } - - return getstrarg(gettupleitem(v, 0), a) && - getstrarg(gettupleitem(v, 1), b) && - getconfigarg (gettupleitem (v, 2), c); + object *o; + return getargs(v, "(ssO)", a, b, &o) && getconfigarg(o, c); } diff --git a/Modules/flmodule.c b/Modules/flmodule.c index 9237371..1fd9a2c 100644 --- a/Modules/flmodule.c +++ b/Modules/flmodule.c @@ -394,7 +394,7 @@ call_forms_INf (func, obj, args) { float parameter; - if (!getfloatarg (args, ¶meter)) return NULL; + if (!getargs(args, "f", ¶meter)) return NULL; (*func) (obj, parameter); @@ -411,7 +411,7 @@ call_forms_INfINf (func, obj, args) { float par1, par2; - if (!getfloatfloatarg (args, &par1, &par2)) return NULL; + if (!getargs(args, "(ff)", &par1, &par2)) return NULL; (*func) (obj, par1, par2); @@ -428,7 +428,7 @@ call_forms_INi (func, obj, args) { int parameter; - if (!getintarg (args, ¶meter)) return NULL; + if (!getintarg(args, ¶meter)) return NULL; (*func) (obj, parameter); @@ -443,11 +443,11 @@ call_forms_INc (func, obj, args) FL_OBJECT *obj; object *args; { - object *a; + char *a; - if (!getstrarg (args, &a)) return NULL; + if (!getstrarg(args, &a)) return NULL; - (*func) (obj, getstringvalue(a)[0]); + (*func) (obj, a[0]); INCREF(None); return None; @@ -460,11 +460,11 @@ call_forms_INstr (func, obj, args) FL_OBJECT *obj; object *args; { - object *a; + char *a; - if (!getstrarg (args, &a)) return NULL; + if (!getstrarg(args, &a)) return NULL; - (*func) (obj, getstringvalue (a)); + (*func) (obj, a); INCREF(None); return None; @@ -478,12 +478,12 @@ call_forms_INiINstr (func, obj, args) FL_OBJECT *obj; object *args; { - object *a; - int b; + char *b; + int a; - if (!getintstrarg (args, &b, &a)) return NULL; + if (!getintstrarg(args, &a, &b)) return NULL; - (*func) (obj, b, getstringvalue (a)); + (*func) (obj, a, b); INCREF(None); return None; @@ -499,7 +499,7 @@ call_forms_INiINi (func, obj, args) { int par1, par2; - if (!getintintarg (args, &par1, &par2)) return NULL; + if (!getintintarg(args, &par1, &par2)) return NULL; (*func) (obj, par1, par2); @@ -533,7 +533,7 @@ call_forms_Rstr (func, obj, args) { char *str; - if (!getnoarg (args)) return NULL; + if (!getnoarg(args)) return NULL; str = (*func) (obj); @@ -1034,7 +1034,7 @@ set_dial (g, args) { float f1, f2, f3; - if (!getfloatfloatfloatarg(args, &f1, &f2, &f3)) + if (!getargs(args, "(fff)", &f1, &f2, &f3)) return NULL; fl_set_dial (g->ob_generic, f1, f2, f3); INCREF(None); @@ -1192,7 +1192,7 @@ set_slider (g, args) { float f1, f2, f3; - if (!getfloatfloatfloatarg(args, &f1, &f2, &f3)) + if (!args(args, "(fff)", &f1, &f2, &f3)) return NULL; fl_set_slider (g->ob_generic, f1, f2, f3); INCREF(None); @@ -1402,10 +1402,10 @@ form_show_form(f, args) object *args; { int place, border; - object *name; - if (!getintintstrarg(args, &place, &border, &name)) + char *name; + if (!getargs(args, "(iis)", &place, &border, &name)) return NULL; - fl_show_form(f->ob_form, place, border, getstringvalue(name)); + fl_show_form(f->ob_form, place, border, name); INCREF(None); return None; } @@ -1489,15 +1489,15 @@ generic_add_object(f, args, func, internal_methods) { int type; float x, y, w, h; - object *name; + char *name; FL_OBJECT *obj; - if (!getintfloatfloatfloatfloatstrarg(args,&type,&x,&y,&w,&h,&name)) + if (!getargs(args,"(iffffs)", &type,&x,&y,&w,&h,&name)) return NULL; fl_addto_form (f-> ob_form); - obj = (*func) (type, x, y, w, h, getstringvalue(name)); + obj = (*func) (type, x, y, w, h, name); fl_end_form(); @@ -1671,10 +1671,10 @@ form_display_form(f, args) object *args; { int place, border; - object *name; - if (!getintintstrarg(args, &place, &border, &name)) + char *name; + if (!getargs(args, "(iis)", &place, &border, &name)) return NULL; - fl_show_form(f->ob_form, place, border, getstringvalue(name)); + fl_show_form(f->ob_form, place, border, name); INCREF(None); return None; } @@ -1747,7 +1747,7 @@ forms_find_first_or_last(func, f, args) FL_OBJECT *generic; genericobject *g; - if (!getintfloatfloatarg(args, &type, &mx, &my)) return NULL; + if (!getargs(args, "(iff)", &type, &mx, &my)) return NULL; generic = (*func) (f-> ob_form, type, mx, my); @@ -1921,7 +1921,7 @@ forms_make_form(dummy, args) int type; float w, h; FL_FORM *form; - if (!getintfloatfloatarg(args, &type, &w, &h)) + if (!getargs(args, "(iff)", &type, &w, &h)) return NULL; form = fl_bgn_form(type, w, h); if (form == NULL) { @@ -2184,7 +2184,7 @@ forms_mapcolor(self, args) { int arg0, arg1, arg2, arg3; - if (!getintintintintarg(args, &arg0, &arg1, &arg2, &arg3)) + if (!getargs(args, "(iiii)", &arg0, &arg1, &arg2, &arg3)) return NULL; fl_mapcolor(arg0, (short) arg1, (short) arg2, (short) arg3); @@ -2263,12 +2263,11 @@ forms_show_message(f, args) object *f; object *args; { - object *a, *b, *c; + char *a, *b, *c; - if (!getstrstrstrarg(args, &a, &b, &c)) return NULL; + if (!getargs(args, "(sss)", &a, &b, &c)) return NULL; - fl_show_message( - getstringvalue(a), getstringvalue(b), getstringvalue(c)); + fl_show_message(a, b, c); INCREF(None); return None; @@ -2279,13 +2278,12 @@ forms_show_question(f, args) object *f; object *args; { - int ret; - object *a, *b, *c; + int ret; + char *a, *b, *c; - if (!getstrstrstrarg(args, &a, &b, &c)) return NULL; + if (!getargs(args, "(sss)", &a, &b, &c)) return NULL; - ret = fl_show_question( - getstringvalue(a), getstringvalue(b), getstringvalue(c)); + ret = fl_show_question(a, b, c); return newintobject((long) ret); } @@ -2296,11 +2294,11 @@ forms_show_input(f, args) object *args; { char *str; - object *a, *b; + char *a, *b; if (!getstrstrarg(args, &a, &b)) return NULL; - str = fl_show_input(getstringvalue(a), getstringvalue(b)); + str = fl_show_input(a, b); if (str == NULL) { INCREF(None); @@ -2315,12 +2313,11 @@ forms_file_selector(f, args) object *args; { char *str; - object *a, *b, *c, *d; + char *a, *b, *c, *d; - if (!getstrstrstrstrarg(args, &a, &b, &c, &d)) return NULL; + if (!getargs(args, "(ssss)", &a, &b, &c, &d)) return NULL; - str = fl_show_file_selector(getstringvalue(a), getstringvalue(b), - getstringvalue(c), getstringvalue(d)); + str = fl_show_file_selector(a, b, c, d); if (str == NULL) { INCREF(None); @@ -2420,143 +2417,3 @@ initfl() fl_init(); #endif /* !FL_V15 */ } - - -/* Support routines */ - -int -getintintstrarg(args, a, b, c) - object *args; - int *a, *b; - object **c; -{ - if (args == NULL || !is_tupleobject(args) || gettuplesize(args) != 3) { - err_badarg(); - return NULL; - } - return getintarg(gettupleitem(args, 0), a) && - getintarg(gettupleitem(args, 1), b) && - getstrarg(gettupleitem(args, 2), c); -} - -int -getintfloatfloatarg(args, a, b, c) - object *args; - int *a; - float *b, *c; -{ - if (args == NULL || !is_tupleobject(args) || gettuplesize(args) != 3) { - err_badarg(); - return NULL; - } - return getintarg(gettupleitem(args, 0), a) && - getfloatarg(gettupleitem(args, 1), b) && - getfloatarg(gettupleitem(args, 2), c); -} - -int -getintintintintarg(args, a, b, c, d) - object *args; - int *a, *b, *c, *d; -{ - if (args == NULL || !is_tupleobject(args) || gettuplesize(args) != 4) { - err_badarg(); - return NULL; - } - return getintarg(gettupleitem(args, 0), a) && - getintarg(gettupleitem(args, 1), b) && - getintarg(gettupleitem(args, 2), c) && - getintarg(gettupleitem(args, 3), d); -} - -int -getfloatarg(args, a) - object *args; - float *a; -{ - double x; - if (!getdoublearg(args, &x)) - return 0; - *a = x; - return 1; -} - -int -getintfloatfloatfloatfloatstrarg(args, type, x, y, w, h, name) - object *args; - int *type; - float *x, *y, *w, *h; - object **name; -{ - if (args == NULL || !is_tupleobject(args) || gettuplesize(args) != 6) { - err_badarg(); - return NULL; - } - return getintarg(gettupleitem(args, 0), type) && - getfloatarg(gettupleitem(args, 1), x) && - getfloatarg(gettupleitem(args, 2), y) && - getfloatarg(gettupleitem(args, 3), w) && - getfloatarg(gettupleitem(args, 4), h) && - getstrarg(gettupleitem(args, 5), name); -} - -int -getfloatfloatfloatarg(args, f1, f2, f3) - object *args; - float *f1, *f2, *f3; -{ - if (args == NULL || !is_tupleobject(args) || gettuplesize(args) != 3) { - err_badarg(); - return NULL; - } - return getfloatarg(gettupleitem(args, 0), f1) && - getfloatarg(gettupleitem(args, 1), f2) && - getfloatarg(gettupleitem(args, 2), f3); -} - -int -getfloatfloatarg(args, f1, f2) - object *args; - float *f1, *f2; -{ - if (args == NULL || !is_tupleobject(args) || gettuplesize(args) != 2) { - err_badarg(); - return NULL; - } - return getfloatarg(gettupleitem(args, 0), f1) && - getfloatarg(gettupleitem(args, 1), f2); -} - -int -getstrstrstrarg(v, a, b, c) - object *v; - object **a; - object **b; - object **c; -{ - if (v == NULL || !is_tupleobject(v) || gettuplesize(v) != 3) { - return err_badarg(); - } - return getstrarg(gettupleitem(v, 0), a) && - getstrarg(gettupleitem(v, 1), b)&& - getstrarg(gettupleitem(v, 2), c); -} - - -int -getstrstrstrstrarg(v, a, b, c, d) - object *v; - object **a; - object **b; - object **c; - object **d; -{ - if (v == NULL || !is_tupleobject(v) || gettuplesize(v) != 4) { - return err_badarg(); - } - return getstrarg(gettupleitem(v, 0), a) && - getstrarg(gettupleitem(v, 1), b)&& - getstrarg(gettupleitem(v, 2), c) && - getstrarg(gettupleitem(v, 3),d); - -} diff --git a/Modules/stdwinmodule.c b/Modules/stdwinmodule.c index 179cfe8..5556f03 100644 --- a/Modules/stdwinmodule.c +++ b/Modules/stdwinmodule.c @@ -98,32 +98,17 @@ extern typeobject Menutype; /* Really static, forward */ /* Strongly stdwin-specific argument handlers */ static int -getmousedetail(v, ep) - object *v; - EVENT *ep; -{ - if (v == NULL || !is_tupleobject(v) || gettuplesize(v) != 4) - return err_badarg(); - return getintintarg(gettupleitem(v, 0), - &ep->u.where.h, &ep->u.where.v) && - getintarg(gettupleitem(v, 1), &ep->u.where.clicks) && - getintarg(gettupleitem(v, 2), &ep->u.where.button) && - getintarg(gettupleitem(v, 3), &ep->u.where.mask); -} - -static int getmenudetail(v, ep) object *v; EVENT *ep; { - object *mp; - if (v == NULL || !is_tupleobject(v) || gettuplesize(v) != 2) - return err_badarg(); - mp = gettupleitem(v, 0); - if (mp == NULL || !is_menuobject(mp)) + menuobject *mp; + if (!getargs(v, "(Oi)", &mp, &ep->u.m.item)) + return 0; + if (!is_menuobject(mp)) return err_badarg(); - ep->u.m.id = ((menuobject *)mp) -> m_id; - return getintarg(gettupleitem(v, 1), &ep->u.m.item); + ep->u.m.id = mp->m_id; + return 1; } static int @@ -133,24 +118,22 @@ geteventarg(v, ep) { object *wp, *detail; int a[4]; - if (v == NULL || !is_tupleobject(v) || gettuplesize(v) != 3) - return err_badarg(); - if (!getintarg(gettupleitem(v, 0), &ep->type)) + if (!getargs(v, "(iOO)", &ep->type, &wp, &detail)) return 0; - wp = gettupleitem(v, 1); - if (wp == None) + if (is_windowobject(wp)) + ep->window = ((windowobject *)wp) -> w_win; + else if (wp == None) ep->window = NULL; - else if (wp == NULL || !is_windowobject(wp)) - return err_badarg(); else - ep->window = ((windowobject *)wp) -> w_win; - detail = gettupleitem(v, 2); - switch (ep->type) { - case WE_CHAR: - if (!is_stringobject(detail) || getstringsize(detail) != 1) return err_badarg(); - ep->u.character = getstringvalue(detail)[0]; - return 1; + switch (ep->type) { + case WE_CHAR: { + char c; + if (!getargs(detail, "c", &c)) + return 0; + ep->u.character = c; + return 1; + } case WE_COMMAND: return getintarg(detail, &ep->u.command); case WE_DRAW: @@ -164,7 +147,11 @@ geteventarg(v, ep) case WE_MOUSE_DOWN: case WE_MOUSE_UP: case WE_MOUSE_MOVE: - return getmousedetail(detail, ep); + return getargs(detail, "((ii)iii)", + &ep->u.where.h, &ep->u.where.v, + &ep->u.where.clicks, + &ep->u.where.button, + &ep->u.where.mask); case WE_MENU: return getmenudetail(detail, ep); default: @@ -561,11 +548,11 @@ drawing_text(dp, args) drawingobject *dp; object *args; { - int a[2]; - object *s; - if (!getpointstrarg(args, a, &s)) + int h, v, size; + char *text; + if (!getargs(args, "((ii)s#)", &h, &v, &text, &size)) return NULL; - wdrawtext(a[0], a[1], getstringvalue(s), (int)getstringsize(s)); + wdrawtext(h, v, text, size); INCREF(None); return None; } @@ -597,11 +584,11 @@ drawing_textwidth(dp, args) drawingobject *dp; object *args; { - object *s; - if (!getstrarg(args, &s)) + char *text; + int size; + if (!getargs(args, "s#", &text, &size)) return NULL; - return newintobject( - (long)wtextwidth(getstringvalue(s), (int)getstringsize(s))); + return newintobject((long)wtextwidth(text, size)); } static object * @@ -609,12 +596,11 @@ drawing_textbreak(dp, args) drawingobject *dp; object *args; { - object *s; - int a; - if (!getstrintarg(args, &s, &a)) + char *text; + int size, width; + if (!getargs(args, "(s#i)", &text, &size, &width)) return NULL; - return newintobject( - (long)wtextbreak(getstringvalue(s), (int)getstringsize(s), a)); + return newintobject((long)wtextbreak(text, size, width)); } static object * @@ -622,53 +608,46 @@ drawing_setfont(self, args) drawingobject *self; object *args; { - object *font, *style; - int size; - if (args == NULL) { - err_badarg(); - return NULL; - } - if (is_stringobject(args)) { - font = args; - style = NULL; - size = 0; + char *font; + char style = '\0'; + int size = 0; + if (args == NULL || !is_tupleobject(args)) { + if (!getargs(args, "z", font)) + return NULL; } - else if (is_tupleobject(args)) { + else { int n = gettuplesize(args); if (n == 2) { - if (!getstrintarg(args, &font, &size)) + if (!getargs(args, "(zi)", &font, &size)) return NULL; - style = NULL; } - else if (!getstrstrintarg(args, &font, &style, &size)) - return NULL; - } - else { - err_badarg(); - return NULL; - } - wsetfont(getstringvalue(font)); - if (style != NULL) { - switch (*getstringvalue(style)) { - case 'b': - wsetbold(); - break; - case 'i': - wsetitalic(); - break; - case 'o': - wsetbolditalic(); - break; - case 'u': - wsetunderline(); - break; - default: - wsetplain(); - break; + else if (!getargs(args, "(zic)", &font, &size, &style)) { + err_clear(); + if (!getargs(args, "(zci)", &font, &style, &size)) + return NULL; } } + if (font != NULL) + wsetfont(font); if (size != 0) wsetsize(size); + switch (style) { + case 'b': + wsetbold(); + break; + case 'i': + wsetitalic(); + break; + case 'o': + wsetbolditalic(); + break; + case 'u': + wsetunderline(); + break; + case 'p': + wsetplain(); + break; + } INCREF(None); return None; } @@ -990,10 +969,10 @@ text_replace(self, args) textobject *self; object *args; { - object *text; + char *text; if (!getstrarg(args, &text)) return NULL; - tereplace(self->t_text, getstringvalue(text)); + tereplace(self->t_text, text); INCREF(None); return None; } @@ -1029,16 +1008,15 @@ text_settext(self, args) textobject *self; object *args; { - object *text; + char *text; char *buf; int size; - if (!getstrarg(args, &text)) + if (!getargs(args, "s#", &text, &size)) return NULL; - size = getstringsize(text); if ((buf = NEW(char, size)) == NULL) { return err_nomem(); } - memcpy(buf, getstringvalue(text), size); + memcpy(buf, text, size); tesetbuf(self->t_text, buf, size); /* Becomes owner of buffer */ INCREF(None); return None; @@ -1143,9 +1121,10 @@ typeobject Texttype = { #define MAXNMENU 200 /* Max #menus we allow */ static menuobject *menulist[MAXNMENU]; +static menuobject *newmenuobject PROTO((char *)); static menuobject * newmenuobject(title) - object *title; + char *title; { int id; MENU *menu; @@ -1158,7 +1137,7 @@ newmenuobject(title) err_setstr(StdwinError, "creating too many menus"); return NULL; } - menu = wmenucreate(id + IDOFFSET, getstringvalue(title)); + menu = wmenucreate(id + IDOFFSET, title); if (menu == NULL) return (menuobject *) err_nomem(); mp = NEWOBJ(menuobject, &Menutype); @@ -1214,24 +1193,17 @@ menu_additem(self, args) menuobject *self; object *args; { - object *text; - int shortcut; + char *text; + int shortcut = -1; if (is_tupleobject(args)) { - object *v; - if (!getstrstrarg(args, &text, &v)) - return NULL; - if (getstringsize(v) != 1) { - err_badarg(); - return NULL; - } - shortcut = *getstringvalue(v) & 0xff; - } - else { - if (!getstrarg(args, &text)) + char c; + if (!getargs(args, "(sc)", &text, &c)) return NULL; - shortcut = -1; + shortcut = c; } - wmenuadditem(self->m_menu, getstringvalue(text), shortcut); + else if (!getstrarg(args, &text)) + return NULL; + wmenuadditem(self->m_menu, text, shortcut); INCREF(None); return None; } @@ -1242,10 +1214,10 @@ menu_setitem(self, args) object *args; { int index; - object *text; + char *text; if (!getintstrarg(args, &index, &text)) return NULL; - wmenusetitem(self->m_menu, index, getstringvalue(text)); + wmenusetitem(self->m_menu, index, text); INCREF(None); return None; } @@ -1507,18 +1479,6 @@ window_scroll(wp, args) } static object * -window_setactive(wp, args) - windowobject *wp; - object *args; -{ - if (!getnoarg(args)) - return NULL; - wsetactive(wp->w_win); - INCREF(None); - return None; -} - -static object * window_setdocsize(wp, args) windowobject *wp; object *args; @@ -1550,7 +1510,7 @@ window_settitle(wp, args) object *args; { object *title; - if (!getstrarg(args, &title)) + if (!getStrarg(args, &title)) return NULL; DECREF(wp->w_title); INCREF(title); @@ -1592,7 +1552,7 @@ window_menucreate(self, args) object *args; { menuobject *mp; - object *title; + char *title; if (!getstrarg(args, &title)) return NULL; wmenusetdeflocal(1); @@ -1621,13 +1581,11 @@ window_setselection(self, args) windowobject *self; object *args; { - int sel; - object *str; - int ok; - if (!getintstrarg(args, &sel, &str)) + int sel, size, ok; + char *text; + if (!getargs(args, "(is#)", &sel, &text, &size)) return NULL; - ok = wsetselection(self->w_win, sel, - getstringvalue(str), (int)getstringsize(str)); + ok = wsetselection(self->w_win, sel, text, size); return newintobject(ok); } @@ -1636,11 +1594,11 @@ window_setwincursor(self, args) windowobject *self; object *args; { - object *str; + char *name; CURSOR *c; - if (!getstrarg(args, &str)) + if (!getstrarg(args, &name)) return NULL; - c = wfetchcursor(getstringvalue(str)); + c = wfetchcursor(name); if (c == NULL) { err_setstr(StdwinError, "no such cursor"); return NULL; @@ -1650,6 +1608,18 @@ window_setwincursor(self, args) return None; } +static object * +window_setactive(self, args) + windowobject *self; + object *args; +{ + if (!getnoarg(args)) + return NULL; + wsetactive(self->w_win); + INCREF(None); + return None; +} + #ifdef CWI_HACKS static object * window_getxwindowid(self, args) @@ -1754,7 +1724,7 @@ stdwin_open(sw, args) int tag; object *title; windowobject *wp; - if (!getstrarg(args, &title)) + if (!getStrarg(args, &title)) return NULL; for (tag = 0; tag < MAXNWIN; tag++) { if (windowlist[tag] == NULL) @@ -1988,7 +1958,7 @@ stdwin_menucreate(self, args) object *self; object *args; { - object *title; + char *title; if (!getstrarg(args, &title)) return NULL; wmenusetdeflocal(0); @@ -2000,14 +1970,14 @@ stdwin_askfile(self, args) object *self; object *args; { - object *prompt, *dflt; + char *prompt, *dflt; int new, ret; char buf[256]; if (!getstrstrintarg(args, &prompt, &dflt, &new)) return NULL; - strncpy(buf, getstringvalue(dflt), sizeof buf); + strncpy(buf, dflt, sizeof buf); buf[sizeof buf - 1] = '\0'; - ret = waskfile(getstringvalue(prompt), buf, sizeof buf, new); + ret = waskfile(prompt, buf, sizeof buf, new); if (!ret) { err_set(KeyboardInterrupt); return NULL; @@ -2020,11 +1990,11 @@ stdwin_askync(self, args) object *self; object *args; { - object *prompt; + char *prompt; int new, ret; if (!getstrintarg(args, &prompt, &new)) return NULL; - ret = waskync(getstringvalue(prompt), new); + ret = waskync(prompt, new); if (ret < 0) { err_set(KeyboardInterrupt); return NULL; @@ -2037,14 +2007,14 @@ stdwin_askstr(self, args) object *self; object *args; { - object *prompt, *dflt; + char *prompt, *dflt; int ret; char buf[256]; if (!getstrstrarg(args, &prompt, &dflt)) return NULL; - strncpy(buf, getstringvalue(dflt), sizeof buf); + strncpy(buf, dflt, sizeof buf); buf[sizeof buf - 1] = '\0'; - ret = waskstr(getstringvalue(prompt), buf, sizeof buf); + ret = waskstr(prompt, buf, sizeof buf); if (!ret) { err_set(KeyboardInterrupt); return NULL; @@ -2057,10 +2027,10 @@ stdwin_message(self, args) object *self; object *args; { - object *msg; + char *msg; if (!getstrarg(args, &msg)) return NULL; - wmessage(getstringvalue(msg)); + wmessage(msg); INCREF(None); return None; } @@ -2082,11 +2052,11 @@ stdwin_setcutbuffer(self, args) object *self; object *args; { - int i; - object *str; - if (!getintstrarg(args, &i, &str)) + int i, size; + char *str; + if (!getargs(args, "(is#)", &i, &str, &size)) return NULL; - wsetcutbuffer(i, getstringvalue(str), getstringsize(str)); + wsetcutbuffer(i, str, size); INCREF(None); return None; } @@ -2166,10 +2136,10 @@ stdwin_fetchcolor(self, args) object *self; object *args; { - object *colorname; + char *colorname; if (!getstrarg(args, &colorname)) return NULL; - return newintobject((long)wfetchcolor(getstringvalue(colorname))); + return newintobject((long)wfetchcolor(colorname)); } static object * |