|
[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] genx - string termination and bounding
I'm really sympathetic to the calls for counted rather than null-terminated strings, if only for the genxText() call. So I was thinking about this back before we nuked the codePoint * versions, and I realized that a "length" argument could be confusing because in the codePoint* version it would naturally be the number of characters, while in the utf8Byte * version it would naturally be the number of bytes. Blecch. So I thought it would be more natural to have something like genxText(genxWriter w, utf8Byte * start, utf8Byte * end) i.e. a pointer to the end of the string, which would have the same semantics in both versions of the call. Well, we're losing the codePoint * stuff (good riddance) but I'd kind of like to stay with the stop-here argument rather than the byte (or character) count argument. Of course if you want to null-terminate, you can, just do genxText(w, buf, NULL) Two questions: - if you have a zero byte in the string before you get to the end mark, should it just stop, or throw an error? The first is more consistent with C culture (cf strncpy) but the latter a bit more stringent. Moderately leaning to just stopping. - if the stop marker is stupidly in the middle of a UTF-8 character, genx should detect this and declare an error. The existence of this situation is the only good argument for a count rather than a stopper. But not quite good enough. -Tim
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|
|||||||||

Cart








