Hi, Rik. If it helps, flags are explained in lowlevel-security manual:

https://www.pragma-ade.com/general/manuals/lowlevel-security.pdf

Jairo :)

El dom, 24 de ene. de 2021 a la(s) 16:16, Rik Kabel (ConTeXt@rik.users.panix.com) escribió:
On 1/24/2021 04:33, Wolfgang Schuster wrote:
> Rik Kabel schrieb am 24.01.2021 um 05:13:
>> Hans and all,
>>
>> Preparing my standard environments for future strict enforcement of
>> overloading prevention, I have run into one issue.
>>
>> I had been using the following construction to change the formatting
>> of URLs:
>>
>>     \let\OrigHyphenatedurl\hyphenatedurl
>>     \starttexdefinition hyphenatedurl #URL
>>        \begingroup
>>          \URLfont\OrigHyphenatedurl{#URL}
>>        \endgroup
>>     \stoptexdefinition
>
>
> You can use a hook to change the font for \hyphenatedurl.
>
> \starttext
>
> \hyphenatedurl{https://wiki.contextgarden.net/Main_Page}
>
> \appendtoks
>   \it
> \to \everyhyphenatedurl
>
> \hyphenatedurl{https://wiki.contextgarden.net/Main_Page}
>
> \stoptext
>
>
>> This results in the following warning about overloading \hyphenatedurl:
>>
>>     csname overload > warning, protection level 3, control sequence
>>     'hyphenatedurl', properties 'permanent protected', file
>>     'env_layout.mkvi', line 1
>>
>> I have tried adding \overloaded to indicate the intentional
>> overloading, but \overloaded cannot be used with \starttexdefinition,
>> so I rewrote it as:
>>
>>     \let\OrigHyphenatedurl\hyphenatedurl
>>     \overloaded\define[1]\hyphenatedurl{%
>>        \begingroup%
>>          \URLfont\OrigHyphenatedurl{#1}%
>>        \endgroup}%
>>
>> but that (and also with \overloaded\def\hyphenatedurl#1...) gives the
>> same (except for the line number) warning:
>>
>>     csname overload > warning, protection level 3, control sequence
>>     'hyphenatedurl', properties 'permanent protected', file
>>     'env_layout.mkvi', line 822
>>
>> So, what is the proper way to indicate intentional overloading? Or
>> should this redefinition be done in another way?
>
>
> The best solution is *to not* overload commands because there are either
> alternative ways to achieve the desired result or other commands which
> can be used.
>
>
> \overloadmode=4
>
> \starttext
>
> \permanent\def\mycommand#1{[#1]}
>
> \mycommand{Old definition}
>
> \pushoverloadmode
>
> \aliased\let\originalmycommand\mycommand
>
> \permanent\def\mycommand#1%
>   {{\it\originalmycommand{#1}}}
>
> \popoverloadmode
>
> \mycommand{New definition}
>
> \stoptext
>
>
> Wolfgang

Thank you, Wolfgang (and Hans),

The hook is perfect for this. I had avoided that construction for a long
time thinking that it is too low-level, but looking at it again it seems
to be the right thing here.

I can find no information on \aliased and the push/pop for overloademode
and such, so will leave documenting that in the wiki to somebody with a
few more clues.

--
Rik

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________