On 6/10/05, Zoran Vasiljevic <[EMAIL PROTECTED]> wrote:
> 
> Am 10.06.2005 um 17:50 schrieb Vlad Seryakov:
> 
> > Second try :-)))
> 
> You'd get (probably) a sigsegv if somebody says:
> 
>    ns_return -binary 200
> 
> Yes, this arg parsing can be a PITA. Therefore I like
> Stephens tclobjv code :-)
> Unfortunately, it won't do the boolean flags, but we've
> discussed that already many times.


Yes it will!  ns_parseargs doesn't expose this, but it's avaialble to C code.


> I'd still strenghten out the parsing with objc checking.
> 
> Zoran
> 
> >
> > int
> > NsTclReturnObjCmd(ClientData arg, Tcl_Interp *interp, int objc,
> > Tcl_Obj *CONST objv[])
> > {
> >     Ns_Conn *conn;
> >     unsigned char *data = 0, *type = 0;
> >     int result, param = 1, status = 0, len = 0, binary = 0;
> >
> >     if (!strcmp(Tcl_GetString(objv[param]),"-binary")) {
> >         binary = 1;
> >         param++;
> >     }
> >     if (Tcl_GetIntFromObj(interp, objv[param++], &status) != TCL_OK) {
> >         return TCL_ERROR;
> >     }
> >     type = Tcl_GetString(objv[param++]);
> >     if (binary != 0) {
> >         data = Tcl_GetByteArrayFromObj(objv[param], &len);
> >     } else {
> >         data = Tcl_GetStringFromObj(objv[param], &len);
> >     }
> >     if (data == NULL || type == NULL || status == 0) {
> >         Tcl_WrongNumArgs(interp, 1, objv, "?-binary? status type
> > string");
> >         return TCL_ERROR;
> >     }
> >     if (GetConn(arg, interp, &conn) != TCL_OK) {
> >         return TCL_ERROR;
> >     }
> >     if(binary != 0) {
> >        result = Ns_ConnReturnData(conn, status, data, len, type);
> >     } else {
> >        result = Ns_ConnReturnCharData(conn, status, data, len, type);
> >     }
> >     return Result(interp, result);
> > }
> >
> >
> > Zoran Vasiljevic wrote:
> >
> >> Am 10.06.2005 um 17:23 schrieb Vlad Seryakov:
> >>
> >>> How about this, i tested it :
> >>>
> >>> int
> >>> NsTclReturnObjCmd(ClientData arg, Tcl_Interp *interp, int objc,
> >>> Tcl_Obj *CONST objv[])
> >>>
> >>>
> >> Hm... I would say, if somebody wanted to do:
> >>    ns_return 200 text/plain -binary
> >> you'd have a problem, right?
> >> Zoran
> >> -------------------------------------------------------
> >> This SF.Net email is sponsored by: NEC IT Guy Games.  How far can
> >> you shotput
> >> a projector? How fast can you ride your desk chair down the office
> >> luge track?
> >> If you want to score the big prize, get to know the little guy.
> >> Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20
> >> _______________________________________________
> >> naviserver-devel mailing list
> >> naviserver-devel@lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/naviserver-devel
> >>
> >
> > --
> > Vlad Seryakov
> > 571 262-8608 office
> > [EMAIL PROTECTED]
> > http://www.crystalballinc.com/vlad/
> >
> >
> > -------------------------------------------------------
> > This SF.Net email is sponsored by: NEC IT Guy Games.  How far can
> > you shotput
> > a projector? How fast can you ride your desk chair down the office
> > luge track?
> > If you want to score the big prize, get to know the little guy.
> > Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20
> > _______________________________________________
> > naviserver-devel mailing list
> > naviserver-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/naviserver-devel
> >
> 
> 
> 
> -------------------------------------------------------
> This SF.Net email is sponsored by: NEC IT Guy Games.  How far can you shotput
> a projector? How fast can you ride your desk chair down the office luge track?
> If you want to score the big prize, get to know the little guy.
> Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20
> _______________________________________________
> naviserver-devel mailing list
> naviserver-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/naviserver-devel
>

Reply via email to