[Lazarus] TMask revisited

Juha Manninen juha.manninen62 at gmail.com
Sun Oct 17 09:08:29 CEST 2021

On Sun, Oct 17, 2021 at 1:10 AM Bart via lazarus <
lazarus at lists.lazarus-ide.org> wrote:

> I see you implemented the "old" constructors with the TMaskOptions
> parameter and deprecated them as suggested.
> Thanks for that.
> Maybe add: 'Will be removed in 2.4' or similar to the deprecated message?
> The corresponding Create in TMaskBase is not deprecated: is that by design?

Actually this will be published in 2.4 initially. After that the deprecated
stuff can be removed.
I added comments.

Thanks also for implementing MaskOpCodesDisableRange
> It needs to be apllied in the TShell* components, to presevere default
> behaviour.

ShellCtrls.pas was updated already in the initial commit d7036bb0009 last

The method TMask.MatchesWindowsMask still is not implemented, so it
> immediately causes compiler errors in my code.
> This also needs to be implemented an deprecated IMHO.

Ok, yes. I implemented it in c28cc988ec. It requires a
temporary TMaskUTF8Windows instance because the syntax is decided in

What does eMaskOpcodeOptionalChar do?
> It's not very clear to me from the comments in the code.

Good question. It is the one syntax I don't fully understand yet.
Below is an explanation from José himself. I will study this syntax later
and add more unit test cases.
eMaskOpcodeOptionalChar is the set "1[ab]2" matches "1a2" and "ab2" but not
I am not sure if it is correct. I will return to this later...

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20211017/13706b9a/attachment.html>

More information about the lazarus mailing list