|
|
| version 1.33.2.19.2.7, 2003/03/24 17:52:19 | version 1.33.2.19.2.10, 2003/03/25 11:00:29 |
|---|---|
| Line 518 static int xml256CharEncodingInp | Line 518 static int xml256CharEncodingInp |
| int *inlen, | int *inlen, |
| void *info) { | void *info) { |
| return transcodeToUTF8( | return transcodeToUTF8( |
| in, *(size_t*)inlen, | in, *(size_t*)inlen, |
| out, *(size_t*)outlen, | out, *(size_t*)outlen, |
| *(const Charset::Tables *)info); | *(const Charset::Tables *)info); |
| } | } |
| static int xml256CharEncodingOutputFunc ( | static int xml256CharEncodingOutputFunc ( |
| Line 530 static int xml256CharEncodingOut | Line 530 static int xml256CharEncodingOut |
| int *inlen, | int *inlen, |
| void *info) { | void *info) { |
| return transcodeFromUTF8( | return transcodeFromUTF8( |
| in, *(size_t*)inlen, | in, *(size_t*)inlen, |
| out, *(size_t*)outlen, | out, *(size_t*)outlen, |
| *(const Charset::Tables *)info); | *(const Charset::Tables *)info); |
| } | } |
| void Charset::addEncoding(char *name_cstr) { | void Charset::addEncoding(char *name_cstr) { |
| xmlCharEncodingHandler* handler=new xmlCharEncodingHandler; | xmlCharEncodingHandler* handler=new(PointerFreeGC) xmlCharEncodingHandler; |
| handler->name=name_cstr; | handler->name=name_cstr; |
| handler->input=xml256CharEncodingInputFunc; handler->inputInfo=&tables; | handler->input=xml256CharEncodingInputFunc; handler->inputInfo=&tables; |
| handler->output=xml256CharEncodingOutputFunc; handler->outputInfo=&tables; | handler->output=xml256CharEncodingOutputFunc; handler->outputInfo=&tables; |
| Line 585 const char* Charset::transcode_cstr(xmlC | Line 585 const char* Charset::transcode_cstr(xmlC |
| return out; | return out; |
| } | } |
| const String& Charset::transcode(xmlChar* s) { | const String& Charset::transcode(xmlChar* s) { |
| return *new String(transcode_cstr(s), 0/*auto-size*/, String::L_CLEAN); | return *new String(transcode_cstr(s), 0/*auto-size*/, true); |
| } | } |
| const char* Charset::transcode_cstr(GdomeDOMString* s) { | const char* Charset::transcode_cstr(GdomeDOMString* s) { |
| return s?transcode_cstr(BAD_CAST s->str):""; | return s?transcode_cstr(BAD_CAST s->str):""; |
| } | } |
| const String& Charset::transcode(GdomeDOMString* s) { | const String& Charset::transcode(GdomeDOMString* s) { |
| return *new String(transcode_cstr(s), 0/*auto-size*/, String::L_CLEAN); | return *new String(transcode_cstr(s), 0/*auto-size*/, true); |
| } | } |
| /// @test less memory using -maybe- xmlParserInputBufferCreateMem | /// @test less memory using -maybe- xmlParserInputBufferCreateMem |
| void* Charset::transcode_buf2mchar(transcode_buf_malloc_func malloc_func, | void* Charset::transcode_buf2mchar(transcode_buf_malloc_func malloc_func, |
| const char* buf, size_t buf_size) { | const char* buf, size_t buf_size) { |
| unsigned char* out; | unsigned char* out; |
| int outlen; | int outlen; |
| int error; | int error; |
| Line 640 GdomeDOMString_auto_ptr Charset::transco | Line 640 GdomeDOMString_auto_ptr Charset::transco |
| return transcode_buf2dom(cstr, strlen(cstr)); | return transcode_buf2dom(cstr, strlen(cstr)); |
| } | } |
| GdomeDOMString_auto_ptr Charset::transcode(const StringBody s) { | |
| const char* cstr=s.cstr(); | |
| return transcode_buf2dom(cstr, s.length()); | |
| } | |
| #endif | #endif |