This commit is contained in:
Nishi 2026-09-23 11:39:32 +09:00
commit da26434f0e
4 changed files with 13 additions and 5 deletions

View file

@ -49,6 +49,9 @@ endif()
if(NOT SJ4_GLOBAL) if(NOT SJ4_GLOBAL)
sj4_library(sj4ime) sj4_library(sj4ime)
target_link_libraries(sj4ime PUBLIC sj4lib) target_link_libraries(sj4ime PUBLIC sj4lib)
if(NOT SJ4_NO_UNICODE)
target_compile_definitions(sj4ime PRIVATE UCS)
endif()
endif() endif()
if(SJ4_BUILD_TOOLS OR (NOT CMAKE_BINARY_DIR MATCHES CMAKE_CURRENT_SOURCE_DIR AND NOT SJ4_BUILD_ONLY_LIB)) if(SJ4_BUILD_TOOLS OR (NOT CMAKE_BINARY_DIR MATCHES CMAKE_CURRENT_SOURCE_DIR AND NOT SJ4_BUILD_ONLY_LIB))

View file

@ -23,6 +23,7 @@ int sj4_ime_length(Sj4Ime* ime);
void* sj4_ime_kouho(Sj4Ime* ime); void* sj4_ime_kouho(Sj4Ime* ime);
void* sj4_ime_kanabuf(Sj4Ime* ime); void* sj4_ime_kanabuf(Sj4Ime* ime);
void* sj4_ime_convbuf(Sj4Ime* ime); void* sj4_ime_convbuf(Sj4Ime* ime);
void sj4_ime_close(Sj4Ime*);
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -81,13 +81,12 @@ static void concat(int charset, u_char* out, u_char* in) {
w_out[i + sj4_charset_to(charset, (u_char*)(w_out + i), in, strlen(in))] = 0; w_out[i + sj4_charset_to(charset, (u_char*)(w_out + i), in, strlen(in))] = 0;
} else } else
#else #endif
{ {
i = strlen(out); i = strlen(out);
out[i + sj4_charset_to(charset, out + i, in, strlen(in))] = 0; out[i + sj4_charset_to(charset, out + i, in, strlen(in))] = 0;
} }
#endif
} }
static void concat_nc(int charset, u_char* out, u_char* in) { static void concat_nc(int charset, u_char* out, u_char* in) {
@ -103,7 +102,7 @@ static void concat_nc(int charset, u_char* out, u_char* in) {
memcpy(w_out + i, in, j * sizeof(wchar_t)); memcpy(w_out + i, in, j * sizeof(wchar_t));
w_out[i + j] = 0; w_out[i + j] = 0;
} else } else
#else #endif
{ {
i = strlen(out); i = strlen(out);
j = strlen(in); j = strlen(in);
@ -111,7 +110,6 @@ static void concat_nc(int charset, u_char* out, u_char* in) {
memcpy(out + i, in, j); memcpy(out + i, in, j);
out[i + j] = 0; out[i + j] = 0;
} }
#endif
} }
#define ZEROBUF memset(&ime->kouho.buffer, 0, sizeof(ime->kouho.buffer)) #define ZEROBUF memset(&ime->kouho.buffer, 0, sizeof(ime->kouho.buffer))
@ -235,3 +233,8 @@ void* sj4_ime_kanabuf(Sj4Ime* ime) {
void* sj4_ime_convbuf(Sj4Ime* ime) { void* sj4_ime_convbuf(Sj4Ime* ime) {
return ime->convbuf; return ime->convbuf;
} }
void sj4_ime_close(Sj4Ime* ime) {
sj4_close(ime->lib);
free(ime);
}

View file

@ -104,6 +104,7 @@ readchar() {
} }
if((cod = unicode_to_eucjp(n)) == -1) { if((cod = unicode_to_eucjp(n)) == -1) {
code = n;
return '['; return '[';
} }
@ -259,7 +260,7 @@ int* readline() {
c = skip_blank(); c = skip_blank();
if(c == '#') { if(c == '#') {
while(c != '\n') while(c != '\n' && c != EOF)
c = skip_blank(); c = skip_blank();
} }