On Sun, May 24, 2015 at 11:17 AM, Hans Hagen <pragma@wxs.nl> wrote:
On 5/24/2015 1:39 AM, Alexander Shukaev wrote:
Hello,

Consider the following:

\definesynonyms
[ACRONYM]
[ACRONYMS]
[\FULL]
[\SHORT]

​​
\ACRONYM{DLL}{Dynamic-Link Librar\doifnextcharelse{s}{ie}{y}}

Why

\FULL{DLL}s

does not do what I expect it to do?  I assume that it's because
`\doifnextcharelse' expands before `\FULL'.  So how to achieve the
desired effect?  Thanks.

\FULL is doing a lot and it's unlikely that inside there the nest token seen is the 's' so your test fails

\ACRONYM{DLL}{\SelectFull{Dynamic-Link Library}{Dynamic-Link Libraries}}

\def\VeryFullSingular#1#2{\FULL{#1}}
\def\VeryFullPlural  #1#2{\FULL{#2}}

\unexpanded\def\VeryFull
  {
​​
\doifnextcharelse{s}
     {\let\SelectFull\VeryFullPlural}
     {\let\SelectFull\VeryFullSingular}}

test \VeryFull{DLL} or \VeryFull{DLL}s it is

if there is real need for this i can consider building something in but the check for a following 's' is not that common I think


-----------------------------------------------------------------
                                          Hans Hagen | PRAGMA ADE
              Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
    tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
                                             | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

​Hello Hans,

Thanks for your response.  It seems to me that a simple (and backward compatible) extension would be to add ​the 3rd optional parameter to `ACRONYM':

​\ACRONYM{DLL}{Dynamic-Link Library}[Dynamic-Link Libraries][s]
​             ​ ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^  ^
              <single>              <plural>                <trigger> (should of course be `s' by default, but let it be configurable just in case)

​and put

\doifnextcharelse{<trigger>}{<plural>}{<single>}​

​inside `FULL' properly so that it can indeed find <trigger> in case of `\FULL{DLL}<trigger>'.​

Regards,
Alexander