Notepad2-mod r940은 Scintilla 3.5.3을 반영한 버전이다.
Scintilla 3.5.3은 Windows 95/98/Me를 지원하던 코드를 제거했다.
이 과정에서 글꼴 이름을 ANSI로 넘기지 않고 UTF-8로 넘기도록 바꿨다.
문제는 Notepad2(및 Notepad2-mod)는 글꼴 이름을 ANSI로 넘긴다는 것.
한글 글꼴을 지정하면 아래와 같이 시스템 기본 글꼴이 적용된다.
굴려라 굴려, 굴림…
이 문제를 수정하려면 Styles.c에서 아래 함수를 찾아서
void Style_SetStyles(HWND hwnd,int iStyle,LPCWSTR lpszStyle) { }
아래 내용을…
WideCharToMultiByte(CP_ACP,0,tch,-1,mch,COUNTOF(mch),NULL,NULL);
아래와 같이 수정한다.
WideCharToMultiByte(CP_UTF8, 0, tch, -1, mch, COUNTOF(mch), NULL, NULL);
즉, 글꼴 이름을 ANSI로 바꿔 전송하던 것을 UTF-8로 바꿔 전송하도록 수정한 것이다.
이렇게 수정하면 아래와 같이 정상적으로 한글 글꼴이 표시된다.
덧. 이 내용을 Notepad2-mod에 issue로 제기했는데, 씹힌 것 같다:Font names interpretation is changed in Scintilla v3.5.3 #105
Scintilla의 개발자 Neil Hodgson이 설명한 내용을 알려주고, 수정하는 방법까지 설명했는데, "Well, I don't need to read anything."라니…
어휴… 이 답답한 그리스 놈아…