[F] $eql() scheint Schreibweise zu ignorieren

wie in diesem Thread beschrieben
Aktion Schreibweise in UNSYNCEDLYRICS
habe ich versucht, Schreibweisen zu vergleichen - eigentlich sollte rauskommen, wo reine Großschreibung vorkommt.
Als Ergebnis gibt es allerdings zu wenig oder zu viele Treffer, was darauf hindeutet, dass die Schachtelung von $eql($upper(...
nicht zu den erwarteten Umformungen führt.
In der Tag liefert als Spalte definiert der Ausdruck
$if($eql(%artist%,$upper(%artist%)),1,0)
für z.B. den Eintrag DARKNESS und genauso Darkness das Ergebnis 1
faszinierender Weise allerdings für den Eintrag "Ebba Grön" eine 0.

Das lässt sich für andere EInträge mit Umlauten oder Accents ebenfalls feststellen. Das ß fällt nicht darunter

Kurz und gut: ich glaube, dass die Handhabung der Schreibweisen und Sonderzeichen bei der Umstellung der Basisroutinen durcheinandergekommen ist und damit logische Vergleiche schwieriger sind.

So, ein paar mehr Tests:
Der Ausdruck
$if($eql(%artist%,$upper(%artist%)),1,0)
zeigt mit ARTIST = "Ebba Grön" 0 -> das hätte ich erwartet
zeigt mit ARTIST = "EBBA GRÖN" 1 -> das hätte ich erwartet
zeigt mit ARTIST = "America" 1 -> das habe ich nicht erwartet
zeigt mit ARTIST = "Culcha Candela" 1 -> das habe ich nicht erwartet

Modifiziere ich den Ausdruck zu
$if($eql('%artist%','$upper(%artist%)'),1,0)
werden alle obigen Beispiele als 0 gezeigt.
Allerdings wird auch "AMERICA" und "EBBA GRÖN" als 0 gezeigt.

Habe ich jetzt einen Denkfehler oder ist da doch ne Macke?

Danke für den Hinweis, ich werde mir das mal genauer ansehen!

Viele Grüße
Florian

Also, ich hab mir das jetzt mal angesehen und folgendes entdeckt:

  1. $eql() hat einen Fehler wenn die Zeichenketten Umlaute enthalten
  2. $eql() vergleicht ohne Berücksichtigung der Groß-/Kleinschreibung
Ich werde jetzt natürlich den Fehler mit den Umlauten in der $eql() Funktion beheben jedoch das bisherige Verhalten bzgl. Groß-/Kleinschreibung beibehalten und die Dokumentation entsprechend ergänzen.

Zusätzlich dazu werde ich noch eine Funktion $StrCmp() einbauen, die den Vergleich zweier Zeichenketten unter Berücksichtigung der Groß-/Kleinschreibung durchführt.

Viele Grüße
Florian

Das im letzten Beitrag beschriebene wurde mit der aktuellen Version Mp3tag v2.66 umgesetzt.

Viele Grüße
Florian