[转载]修补SynEdit CVS 中文问题
- 作者:zhaozj
- 发表时间:2020-12-23 11:01
- 来源:未知
SynEdit是SourceForge.net上顶级的语法高亮度显示组件。
Open Source,Delphi的源码。质量和效果都没得说。很多商业和非商业的软件包中都有使用。
用它你可以非常方便的实现一个自己的代码编辑器来。支持众多的语法,支持RTF和HTML输出。非常的方便。
http://community.csdn.net/Expert/TopicView.asp?id=3068979
的Freicin雪客最近发布的一个小软件,估计就是基于SynEdit的.(纯粹猜测啊!)
美中不足的是中文的处理上有些瑕疵。但凡国外的东西都有这样的毛病,只好自己动手丰衣足食!
经过简短的追踪,调试。很快就找到了问题的关键所在!
source/SynEditExport.pas 的450行左右,下面这个函数的实现有点问题。
function TSynCustomExporter.ReplaceReservedChars(AToken: string;
var IsSpace: boolean): string;
var
I, ISrc, IDest, SrcLen, DestLen: integer;
Replace: string;
c: char; //mh 2000-10-10