<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">On Fri, Feb 26, 2021 at 10:24 PM Bart via lazarus <<a href="mailto:lazarus@lists.lazarus-ide.org" target="_blank">lazarus@lists.lazarus-ide.org</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Fri, Feb 26, 2021 at 7:15 PM Bart <<a href="mailto:bartjunk64@gmail.com" target="_blank">bartjunk64@gmail.com</a>> wrote:<br>My backup and some related programs still compile, but instatly raise<br>
an exception when they start to perform their main task.<br>
Thank you very much.<br>
<br>
The normal way of doing this is:<br>
Deprecate the function in question, but d NOT kill it's functionality.<br>
Add a useful deprecated message.<br>
Remove the function in the next major release (deprecate in 2.1, and<br>
so 2.2, only remove in 2.3, si't be gone in 2.4).<br>
Simply removing functionality like you have done now will alienate<br>
users from Lazarus, since apparently "we" cannot be trusted.<br>
<br>
Juha: you seem to be obsessed with speeding up string handling code.<br>
This is not really a problem as long as you are not deaf to arguments<br>
against your changes.<br>
You introduce new bugs, remove old features, all for the sake of speed.<br>
All that when, in my perception, this code is mostly used in<br>
conjunction with file IO, which is orders of magnitude slower than<br>
even slopy string handling.<br></blockquote><div><br></div><div>True, it created more conflicts than I anticipated.</div><div>I reverted the new TMask in r64675. It must be worked later in trunk. Now a 2.2 fork will happen in few weeks.</div><div>Sorry for the hassle.</div><div><br></div><div><div>José and others. you can see my adaptation of your code in Lazarus trunk just before the revert, eg. r64674.</div><div>I also attach the unit here.</div><div>I fixed the case-insensitive Unicode match by simply replacing LowerCase() with UTF8LowerCase(). It is a well optimized function.</div><div>First I planned to use UTF8CompareLatinTextFast() but it did not fit here.</div></div><div>There is a unit test project in components/lazutils/test/.</div><div>The code passes all tests there!</div><div>Unicode is fully supported also in mask ranges.</div><div><br></div><div>Let's continue the integration later.</div><div><br></div><div>Regards,</div><div>Juha</div><div><br></div></div></div></div></div></div>