X-Git-Url: http://lists.indexdata.dk/cgi-bin?a=blobdiff_plain;f=www%2Fwtcl.c;h=a5c0e71e7db3d0af5115d1fd513dff72e0007d42;hb=8c79355b57f8798be827a2e67d00ac30606e742c;hp=c75f8a418d95a29a2de3feb1c586978e162bb7b2;hpb=eabbad76c996dd29295d07df3111f0797624b42e;p=egate.git diff --git a/www/wtcl.c b/www/wtcl.c index c75f8a4..a5c0e71 100644 --- a/www/wtcl.c +++ b/www/wtcl.c @@ -41,7 +41,13 @@ * USE OR PERFORMANCE OF THIS SOFTWARE. * * $Log: wtcl.c,v $ - * Revision 1.13 1996/03/14 11:48:40 adam + * Revision 1.15 1996/05/22 16:50:27 adam + * Bug fix. + * + * Revision 1.14 1996/05/21 14:53:04 adam + * Tcl command wform extented; options -raw and -exists added. + * + * Revision 1.13 1996/03/14 11:48:40 adam * New function egw_prog that returns name of shell. * * Revision 1.12 1996/03/07 12:45:34 adam @@ -173,17 +179,49 @@ static int proc_wform_invoke (ClientData clientData, Tcl_Interp *interp, int argc, char **argv) { struct tcl_info *p = (struct tcl_info*) clientData; + const char *arg = NULL; + int failFlag = 0; int i; - if (argc == 2) + + if (argc == 3) + { + if (!strcmp (argv[1], "-raw")) + { + interp->result = p->wcl->raw_data; + return TCL_OK; + } + else if (!strcmp (argv[1], "-exists")) + { + failFlag = 1; + arg = argv[2]; + } + else + { + Tcl_AppendResult (p->interp, "bad option to ", argv[0], + " \"", argv[1], "\"", NULL); + return TCL_ERROR; + } + } + else if (argc == 2) + arg = argv[1]; + if (arg) { for (i = 0; *p->wcl->wf_data[i].name; i++) - if (!strcmp (argv[1], p->wcl->wf_data[i].name) && - *p->wcl->wf_data[i].value) - Tcl_AppendElement (p->interp, p->wcl->wf_data[i].value); + if (!strcmp (arg, p->wcl->wf_data[i].name)) + { + failFlag = 0; + if (*p->wcl->wf_data[i].value) + Tcl_AppendElement (p->interp, p->wcl->wf_data[i].value); + } + if (failFlag) + { + Tcl_AppendResult (p->interp, arg, " doesn't exist", NULL); + return TCL_ERROR; + } return TCL_OK; } for (i = 0; *p->wcl->wf_data[i].name; i++) - { + { Tcl_AppendResult (p->interp, "{ ", NULL); Tcl_AppendElement (p->interp, p->wcl->wf_data[i].name); Tcl_AppendElement (p->interp, p->wcl->wf_data[i].value);