Nimf 2025.12.10 출시

안녕하세요. Nimf 2025.12.10 버전이 출시되었습니다.

변경 사항

코어 및 API (Core & API):

  • nimf_ic_set_callbacks 함수를 가변 인자(variable arguments) 대신 CimCallbacks 구조체를 사용하도록 리팩토링하여 타입 안전성과 코드의 명확성을 높였습니다.
  • CIM_NOTIFICATION_COMPOSE_CANCELLED와 같은 일반적인 알림을 처리할 수 있도록 NIM_BEEPNIM_NOTIFY로 이름을 변경하였습니다.
  • 데몬 (Daemon): 시작 시 표준 입력(stdin), 표준 출력(stdout), 표준 에러(stderr)를 /dev/null로 리다이렉트하도록 수정하였습니다. 이는 표준 파일 디스크립터가 닫혀 있을 수 있는 환경(예: Weston 9.0)에서 발생하는 크래시를 방지합니다.

모듈 및 언어 엔진 (Modules & Linguas):

  • 언어 엔진 (전체): 후보 창(Candidate) 테이블의 메모리 할당 방식을 리팩토링하였습니다. 메모리 관리를 단순화하고 누수를 방지하기 위해 기존의 포인터 배열(jagged arrays) 방식에서 단일 연속 메모리 블록(single contiguous memory block) 방식으로 변경하였습니다.
  • Qt5: QByteArray 데이터를 컨텍스트 내에 보존(persist)하도록 하여 cb_get_surround에서 발생하는 댕글링 포인터(dangling pointer) 문제를 수정하였습니다. 또한 테스트를 위한 간단한 에디터를 추가하였습니다.
  • Gtk4: graphene 라이브러리를 사용하여 set_cursor_pos를 구현, 클라이언트 위젯의 좌표를 화면 좌표로 올바르게 변환하도록 수정하였습니다.

알려진 버그

  • X 윈도우에서 가상 콘솔로 화면을 전환할 때 입력이 멈추거나 nimf-forward가 멈추는(freezes) 버그가 있습니다.
  • 콘솔 환경에서 nimf-forward 또는 nimf-cons를 실행할 때 입력이 멈추는 버그가 있습니다.

위 버그들은 수정하는 데 상당히 오랜 시간이 걸릴 것으로 보입니다.

최신 버전은 Nimf 페이지에서 다운로드하실 수 있습니다.

감사합니다.