Add sj4_ime_length

This commit is contained in:
Nishi 2026-07-05 04:25:55 +09:00
commit 4f5463b884
5 changed files with 125 additions and 19 deletions

View file

@ -5,18 +5,50 @@
#define CHARSET SJ4SJIS
#else
#define CHARSET SJ4UTF8
#include <termios.h>
#define getch getchar
#endif
static void ime_packet(Sj4Ime* ime, int type, void* data) {
printf("%d %p\n", type, data);
}
int main() {
Sj4Ime* ime = sj4_ime(CHARSET, "sj4main.dic");
Sj4Ime* ime = sj4_ime(CHARSET, "sj4main.dic", ime_packet);
char b;
char* conv = sj4_ime_convbuf(ime);
char* kouho = sj4_ime_kouho(ime);
if(ime == NULL) {
fprintf(stderr, "Failed to create context\n");
return 1;
}
while(fread(&b, 1, sizeof(b), stdin)) {
#ifdef _WIN32
#else
{
struct termios new;
tcgetattr(0, &new);
new.c_lflag &= ~(ICANON | ECHO);
tcsetattr(0, TCSANOW, &new);
}
#endif
while((b = getch()) != EOF) {
sj4_ime_key(ime, b);
if(conv[0]) {
printf("[%s]\n", conv);
conv[0] = 0;
} else if(kouho[0]) {
printf("<%s>", kouho);
}
if(b != '\n' && b != '\n') {
putchar(b);
}
}
}