44 #endif //UNICODE_CHARS
54 #if defined(WINDOWS) || defined(LINUX)
78 size_t len = wcslen( ws );
79 char* buffer = alloca( 4*(len+1) );
84 memset (&state,
'\0',
sizeof (state));
87 nbytes = wcrtomb (buf, *ws, &state);
96 memcpy( buf, buffer, len );
99 #endif //UNICODE_CHARS
120 size_t len = strlen(s);
122 wchar_t *buf = buffer;
125 memset (&state,
'\0',
sizeof (state));
128 nbytes = mbrtowc (buf, s, len, &state);
137 memcpy( buf, buffer, len );
141 #endif //UNICODE_CHARS
161 #ifndef UNICODE_CHARS
163 char* buf =
ALLOC( len );
164 memcpy( buf, s, len );
168 #endif //UNICODE_CHARS
188 int len =
STRLEN( source );
189 byte_t *buffer = alloca( len+1 );
202 else if( wc < 0x0800 )
206 *buf++ = 0xC0 | (
byte_t)(wc >> 6);
207 *buf++ = 0x80 | (
byte_t)(wc & 0x3F);
213 *buf++ = 0xE0 | (
byte_t)(wc >> 12);
214 *buf++ = 0x80 | (
byte_t)((wc >> 6) & 0x3F);
215 *buf++ = 0x80 | (
byte_t)(wc & 0x3F);
225 memcpy( buf, buffer, len );
232 int len = strlen ((
char*)source);
233 wchar_t *buffer = alloca(
CHAR_SIZE*(len+1) );
234 wchar_t *buf = buffer;
239 if( (*source & 0x80)==0x00 )
244 else if( (*source & 0xE0)==0xC0 )
248 wc = (wc<<6) + (*source & 0x3F);
252 else if( ((
byte_t)*source & 0xF0)==0xE0 )
256 wc = (wc<<6) + (*source & 0x3F);
258 wc = (wc<<6) + (*source & 0x3F);
266 wc = (wc<<6) + (*source & 0x3F);
268 wc = (wc<<6) + (*source & 0x3F);
270 wc = (wc<<6) + (*source & 0x3F);
274 *buf = (
unsigned short)wc;
282 memcpy( buf, buffer, len );
286 #endif //UNICODE_CHARS
310 char* filename =
FILENAME(wfilename);
315 file = fopen( filename,
"rb" );
320 char buf[PATH_MAX+1];
322 char* path = dirname(buf);
323 int pathlen = strlen(path);
324 strncpy(buf,path,pathlen);
326 int filelen = strlen(filename);
327 if( pathlen+filelen+6 > PATH_MAX ) filelen=0;
329 strncpy(buf+pathlen,
"\\lib\\",5);
331 strncpy(buf+pathlen,
"/lib/",5);
333 strncpy(buf+5+pathlen,filename,filelen);
334 buf[pathlen+5+filelen] =
'\0';
338 file = fopen( buf,
"rb" );
347 fstat( fileno(file), &st_info );
348 *filesize = st_info.st_size;
356 buffer =
ALLOC(*filesize+1);
367 if( *filesize && !fread(buffer,1,*filesize,file ) )