<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">On Thu, Oct 14, 2021 at 7:57 PM Bart via lazarus <<a href="mailto:lazarus@lists.lazarus-ide.org">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">You have changed the existing interface for both TMask and the<br>
Matches(Windows)Mask(List) functions.<br>
TMaskOptions has been removed.<br></blockquote><div><br></div><div>It can be added for compatibility.</div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Noticable the ability to NOT interpret [] as a set in the mask has now<br>
disappeared.<br></blockquote><div><br></div><div>How should a range / set [] be interpreted?</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">This is not some cornercase: Suppose you have files that have<br>
filenames like foo[1].dat, foo[2].dat etc.<br>
Now you could specify a mask of 'foo[*].dat' with the moDisableSets<br>
option set and it would find those files.<br>
The new implementation won't.<br>
(This was the usecase of the person who reported the bug for<br>
TShellListView, which first was hacked by using [[] to mean a single<br>
'[', but later was properly fixed by adding the TMaskOptions.<br></blockquote><div><br></div><div>Now the same thing is done by passing MaskOpCodesDisableRange constant where type TMaskOpcodesSet parameter is used.</div><div>TMaskOptions can be restored for compatibility.<br></div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
This was discussed at length in february.<br>
<br>
Now you're doing it all over again.<br>
You have sacrificed consistent and reliable behaviour for gain of speed.<br></blockquote><div><br></div><div>No Bart, that is not true. This is not <b>only</b> about speed. The old Mask was buggy and limited.</div><div>Please run the test project testmasks.lpi. All current tests pass.</div><div>Now checkout a revision before my Mask changes, eg. e5ed5082d and run tests again. Many errors. Notably there was no support for Unicode.</div><div><br></div><div>Yes, there should be an option for backwards compatible syntax, like "[?]" . However the small changes in the syntax can be seen as improvements.</div><div>There already is a define for converting "[z-a]" to "[a-z]".</div><div><br></div><div><br></div><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">José's code also catered for some odd DOS behaviour where a mask like<br></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">'file.txt?' actually matches with the filename 'file.txt' and a mask<br>'file?.txt' would match 'file1234.txt' (but not 'file12345.txt').<br>That would be rather counter-intuitive to most users.<br>I did not test (it was in one of the "quirks" settings) if it behaves<br>like this by default, but that should IMHO not be the case.<br></blockquote><div><br></div><div>Yes it is counter-intuitive but it matches with Windows' behavior.</div><div>You can test it on a DOS/Windows cmd prompt.</div><div>That is why it is called TMaskWindows. The normal TMask behaves more logically.<br></div><div>The "quirks" prove that Jose has tested it a lot.</div><div><br></div><div>About the speed: TMask can also be used without disk file operations. Then the speed matters.</div><div>Disk operations are typically slow, yes.</div><div><br></div><div>I will look at the compatibility issues and possible bugs tomorrow.</div><div><br></div><div>Regards,</div><div>Juha</div><div><br></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>