This is i missed, never thought it is available
Stephen Deasey wrote:
Tcl_ObjType byteArrayType = Tcl_GetObjType("bytearray");
On 6/10/05, Vlad Seryakov <[EMAIL PROTECTED]> wrote:
The problem is, there is no Public API to check object for ByteArray
type. You have to include tclInt.h for this which is not public.
Stephen Deasey wrote:
On 6/10/05, Vlad Seryakov <[EMAIL PROTECTED]> wrote:
I thought about ns_return -binary as well. first -binary flag is
optional so it will be compatible with the old API. Let me try this.
Zoran Vasiljevic wrote:
Am 10.06.2005 um 15:41 schrieb Vlad Seryakov:
* Tcl_GetByteArrayFromObj --
*
* Attempt to get the array of bytes from the Tcl object. If the
* object is not already a ByteArray object, an attempt will be
* made to convert it to one.
So, if i call ns_return from Tcl and pass data parameter, it will be
always type of String. ByteArrays are created from Tcl by binary
command only, other commands work with String types, so i need to
tell ns_return to treat data as bytearray. Tcl string
can contain binary data but it is still String and that check will
never work for binary data.
I'm afraid you are right. I also have my own (binary-aware) ns_return
somewhere
in my toolbox but never thought it would be of general interest.
OTOH, the "ns_return -binary" would look nicer but I do not
know if we'd be backwardly-compatible (guess not).
The *only* thing a Tcl string can contain is valid UTF8. If you're
putting something other than UTF8 in there, you've got big problems...
Now, sending a UTF8 string directly to the client as a bytearray is
effectively the same as sedinding it in the UTF8 encoding, i.e. the
client will recieve exactly what was in memory for that string,
because no transcoding to some other character set will be occur.
There is API for setting the encoding on a per connection basis.
The only way to pass a buffer of arbitrary (non-UTF8) bytes to a
command is as a bytearray object. You can create these with the
[binary] command, by opening a file with -translation binary, or from
some extension such as the image example I gave above. That being the
case, you should be able to check the type of the object given to
ns_return, and act accordingly
It's for these reasons that ns_returnbinary and ns_return -binary are
fundamentaly broken.
-------------------------------------------------------
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
_______________________________________________
naviserver-devel mailing list
[email protected]
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
[email protected]
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
_______________________________________________
naviserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/naviserver-devel
--
Vlad Seryakov
571 262-8608 office
[EMAIL PROTECTED]
http://www.crystalballinc.com/vlad/