/[jscoverage]/trunk/encoding.c
ViewVC logotype

Diff of /trunk/encoding.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 178 by siliconforks, Sun Sep 21 18:33:41 2008 UTC revision 308 by siliconforks, Mon Oct 13 06:22:25 2008 UTC
# Line 22  Line 22 
22  #include "encoding.h"  #include "encoding.h"
23    
24  #include <assert.h>  #include <assert.h>
25    #include <limits.h>
26  #include <string.h>  #include <string.h>
27    
28  #ifdef HAVE_ICONV_H  #ifdef HAVE_ICONV_H
# Line 60  Line 61 
61  #ifdef HAVE_ICONV  #ifdef HAVE_ICONV
62    
63  #ifdef WORDS_BIGENDIAN  #ifdef WORDS_BIGENDIAN
64  #define UCS_2_INTERNAL "UCS-2BE"  #define UTF_16_INTERNAL "UTF-16BE"
65  #else  #else
66  #define UCS_2_INTERNAL "UCS-2LE"  #define UTF_16_INTERNAL "UTF-16LE"
67  #endif  #endif
68    
69  int jscoverage_bytes_to_characters(const char * encoding, const uint8_t * bytes, size_t num_bytes, jschar ** characters, size_t * num_characters) {  int jscoverage_bytes_to_characters(const char * encoding, const uint8_t * bytes, size_t num_bytes, jschar ** characters, size_t * num_characters) {
70    assert(encoding != NULL);    assert(encoding != NULL);
71    
72    iconv_t state = iconv_open(UCS_2_INTERNAL, encoding);    iconv_t state = iconv_open(UTF_16_INTERNAL, encoding);
73    if (state == (iconv_t) -1) {    if (state == (iconv_t) -1) {
74      return JSCOVERAGE_ERROR_ENCODING_NOT_SUPPORTED;      return JSCOVERAGE_ERROR_ENCODING_NOT_SUPPORTED;
75    }    }
# Line 277  Line 278 
278    
279    *characters = xnew(jschar, num_bytes);    *characters = xnew(jschar, num_bytes);
280    
281    int result = MultiByteToWideChar(code_page, 0, bytes, num_bytes, *characters, num_bytes);    int result = MultiByteToWideChar(code_page, MB_ERR_INVALID_CHARS, bytes, num_bytes, *characters, num_bytes);
282    if (result == 0) {    if (result == 0) {
283      free(*characters);      free(*characters);
284      return JSCOVERAGE_ERROR_INVALID_BYTE_SEQUENCE;      return JSCOVERAGE_ERROR_INVALID_BYTE_SEQUENCE;

Legend:
Removed from v.178  
changed lines
  Added in v.308

  ViewVC Help
Powered by ViewVC 1.1.24