예전에도 한번 언급한 문제인데, 그 땐 그리 심각한 상태는 아니었다.

따옴표 안의 내용만 살짝 수정해서 제대로 지정하면 되기 때문이다.


하지만, Scintilla 3.3.4로 오면서 좀 심각해졌다.

아래와 같은 부분이 있는데…


const char *complexCaseConversions =

"µ|μ|Μ||"

"ß|ss|SS||"

"İ|i̇||i̇|"

"ı||I||"

"ʼn|ʼn|ʼN||"

"ſ|s|S||"

...


한국어 환경에서는 정상적으로 컴파일되지 않는다[각주:1].

아래와 같이 수정해야 정상적으로 동작한다.


const char *complexCaseConversions =

"\xc2\xb5|\xce\xbc|\xce\x9c||"

"\xc3\x9f|ss|SS||"

"\xc4\xb0|i\xcc\x87||i\xcc\x87|"

"\xc4\xb1||I||"

"\xc5\x89|\xca\xbcn|\xca\xbcN||"

"\xc5\xbf|s|S||"

...


문제는 이 부분이 무려 126행에 걸쳐 존재한다는 거다.


이 문제를 공식적으로 Scintilla에 제기했다: #1506 const char *complexCaseConversions cannot be compiled properly

그리고… 수정안이 커밋되었다: Commit [845df8]



※ 이 과정에서 친절한 J씨(@TOTORO_1203)님의 도움이 컸다. 다시 한 번 감사드립니다. 꾸벅.



  1. VS는 소스를 유니코드 형태로 읽었다가 ANSI로 변환하는데, 이 과정에서 처리할 수 없는 글자가 발견되면 이런 문제가 발생하는 것임 [본문으로]

+ Recent posts