UnArray* fiowrap_get_yarr(char* path){ UnArray* arr; int i,len; char* s; len = fio_get(path, &s); arr = arr_create(1,0,0,&len,ARR_BYTE_TYPE); for (i=0;i<len;i++){ *ysub(arr,i) = s[i]; } free(s); return arr; }
//-------------------------------------------------------------------------------- // // Unicode file io API // //-------------------------------------------------------------------------------- int EmacsFile::fio_get( EmacsChar_t *buf, int len ) { if( m_convert_size < CONVERT_BUFFER_SIZE ) { int size = fio_get( m_convert_buffer + m_convert_size, CONVERT_BUFFER_SIZE - m_convert_size ); if( size <= 0 ) return size; m_convert_size += size; } if( m_encoding_attr == FIO_Encoding_UTF_8 ) { int utf8_usable_len = 0; int unicode_len = length_utf8_to_unicode( m_convert_size, m_convert_buffer, // convert these bytes len, // upto this number of unicode chars utf8_usable_len ); // and return the number of bytes required // convert convert_utf8_to_unicode( m_convert_buffer, unicode_len, buf ); // remove converted chars from the buffer m_convert_size -= utf8_usable_len; memmove( m_convert_buffer, m_convert_buffer+utf8_usable_len, m_convert_size ); return unicode_len; } else { int utf16_usable_len = 0; int unicode_len = length_utf16_to_unicode( m_convert_size, m_convert_buffer, // convert these bytes len, // upto this number of unicode chars utf16_usable_len ); // and return the number of bytes required // convert convert_utf16_to_unicode( m_convert_buffer, unicode_len, buf ); // remove converted chars from the buffer m_convert_size -= utf16_usable_len; memmove( m_convert_buffer, m_convert_buffer+utf16_usable_len, m_convert_size ); return unicode_len; } }
char* fiowrap_get(char* path){ char* foo; fio_get(path, &foo); return foo;}