Similar actions get mixed up when using abbreviated function name

This comes straight from this discussion: Removing a specific value - but only for a specific fileformat - #7 by Zerow


To recreate the bug:

1] Create a new Action Group

2] Add one-by-one these four Format Value actions

$if($eql('TTA',$upper(%_EXTENSION%)),$repl(%TITLE%,' tta',' '),)
$if($eql('TTA',$upper(%_EXTENSION%)),$repl(%TITLE%,' TTA',' '),)
$if($eql('TTA',$lower(%_EXTENSION%)),$repl(%TITLE%,' tta',' '),)
$if($eql('TTA',$lower(%_EXTENSION%)),$repl(%TITLE%,' TTA',' '),)

3] OK the creation

4] Go back to that new group

5] Double left-click or Edit from the button these two actions

$if($eql('TTA',$upper(%_EXTENSION%)),$repl(%TITLE%,' TTA',' '),)
$if($eql('TTA',$lower(%_EXTENSION%)),$repl(%TITLE%,' TTA',' '),)

and see if the TTA near the end is capitalized or in lower case


I on the list of actions within that group see them differentiated - but when I try to edit them, I do not get exactly what is visible on the list. And this also is true for other fragments of this code, e.g. when one of 4 actions had on the list _extension but when I was editing I got _EXTENSION - as if I was clicking the wrong action or it loaded up the wrong code

This group action still works as intended - it is just the editing of it that is messed up. I tried re-opening Mp3tag [3.12], but this bug is still there

Action 1&3 and 2&4 look the same to me ...
I created 4 action groups like that:

When I doubleclick the action, with all lower case I get this edit dialogue:
zac1

Fascinatingly, I could reproduce the stange case conversion with another action:

But as soon as I spelled out $repl to $replace, the edit dialogue showed all parameters as they should.
So: please use complete function names.

There is something really fishy going on here

Because before doing what you suggested I created a backup copy of this glitched action group consisting of those 4 actions. And only then have I replaced the $repl with $replace, while leaving the copy intact


The result is that in the backup copy instead of 2 wrong actions I now have just 1, as only the

$if($eql('TTA',$lower(%_EXTENSION%)),$repl(%TITLE%,' TTA',' '),)

is now [wrongly] displayed in the edit sub-window as

$if($eql('TTA',$lower(%_EXTENSION%)),$repl(%TITLE%,' tta',' '),)



And in the original action group I still have the same number of glitched actions - but now the opposite ones i.e. the ones that were A-OK before I created the backup group and replaced the $repl with $replace. And so now the

$if($eql('TTA',$upper(%_EXTENSION%)),$replace(%TITLE%,' tta',' '),)

when clicked to edit opens up as

$if($eql('TTA',$upper(%_EXTENSION%)),$replace(%TITLE%,' TTA',' '),)

while

$if($eql('TTA',$lower(%_EXTENSION%)),$replace(%TITLE%,' tta',' '),)

becomes wrongly

$if($eql('TTA',$lower(%_EXTENSION%)),$replace(%TITLE%,' TTA',' '),)

I think there is something wrong with the way the incremental search works for strings from the input history.
It looks to me as though the strings are all converted to the same case and then the first one from the list is taken - and which one that is depends on which the last input was.
So if you input "tta" last but you want to edit "TTA" next, you get the display "tta".
The observation with the function's full name was coincidental.

What I did to test:
Entered all 4 actions,
Deleted the input history.
Entered the string "lower ...tta"
Checked the input history: only the string "lower ... tta" was available.
Closed the action.
Doubleclicked the action with "lower ...TTA" and the edit window showed "lower ...tta" which was also the selected string in the input history.

I restored my settings and did it the way you said - thus without creating a backup group action


All in all I managed to achieve a state where when edited this one

$if($eql('TTA',$upper(%_extension%)),$replace(%TITLE%,' TTA',' '),)

turn its TTA into tta, while this one

$if($eql('TTA',$lower(%_EXTENSION%)),$replace(%TITLE%,' tta',' '),)

turn its tta into TTA - but when clicked for editing once more, that second one goes back to the correct state and. And so that first one I have to correct with a keyboard, while that second one I can correct with a mouse by simply repeating editing and clicking just OK [and then I can make it wrong just by clicking and once again repair also by clicking]


This is some Matrix-loop stuff