Correction erreurs si uppercase n'est pas spécifié
authorHugo Villeneuve <hugo@hugovil.com>
Fri, 6 May 2022 02:12:38 +0000 (22:12 -0400)
committerHugo Villeneuve <hugo@hugovil.com>
Fri, 6 May 2022 03:02:13 +0000 (23:02 -0400)
gtx2tex.pl

index e505932..847cfed 100644 (file)
@@ -226,6 +226,11 @@ sub crdpro { # Bearbeitung der Zeile aus der Eingabedatei
        if ( $uppercase ) {
             $_ = uc($_); # Toutes les lettres en majuscule (incluant les accords).
         }
+       else {
+           # Seulement les accords en majuscule
+           # .*? -> shortest match (non-greedy)
+           $_ =~ s/(\[.*?\])/${\(uc $1)}/g;
+       }
 
         s/\s/$space/g;                                 # Remplace une séquence de plusieurs espaces par un seul
         s/(\^)(.*?)(\])/\\\(^\{\2\}\\\)\]/g;   # Place le texte suivant '^' en exposant
@@ -241,39 +246,38 @@ sub crdpro { # Bearbeitung der Zeile aus der Eingabedatei
 
         $verbose && print "    Étape1: $_\n";
 
-        if ( $uppercase ) {
-            # Accord Majeur7
-            s/(gtxchord\{[A-G][B#]?)MAJ7/\1$majeur_sept/g;
+        # Accord Majeur7
+       s/(gtxchord\{[A-G][B#]?)MAJ7/\1$majeur_sept/g;
 
-            # Accord suivi d'un bémol ou dièse optionel, suivi de 'sus' + 1 chiffre.
-            s/(gtxchord\{[A-G][B#]?[0-9]?)SUS([0-9]+)/\1\$^{sus\2}\$/g;
+        # Accord suivi d'un bémol ou dièse optionel, suivi de 'sus' + 1 chiffre.
+       s/(gtxchord\{[A-G][B#]?[0-9]?)SUS([0-9]+)/\1\$^{sus\2}\$/g;
 
-            # Accord demi-diminué
-            # Accord, suivi d'un bémol ou dièse optionel, suivi de 'm7b5'.
-            s/(gtxchord\{[A-G][B#]?)M7B5/\1$half_diminished/g;
+        # Accord demi-diminué
+        # Accord, suivi d'un bémol ou dièse optionel, suivi de 'm7b5'.
+       s/(gtxchord\{[A-G][B#]?)M7B5/\1$half_diminished/g;
 
-            # Accords diminués
-            # On recherche le nom de l'accord, suivi d'un bémol ou dièse optionel, suivi de 'mb5'.
-            s/(gtxchord\{[A-G][B#]?)MB5/\1$diminished/g;
-            s/(gtxchord\{[A-G][B#]?)DIM7/\1$diminished7/g;
-            s/(gtxchord\{[A-G][B#]?)DIM/\1$diminished/g;
+        # Accords diminués
+        # On recherche le nom de l'accord, suivi d'un bémol ou dièse optionel, suivi de 'mb5'.
+       s/(gtxchord\{[A-G][B#]?)MB5/\1$diminished/g;
+       s/(gtxchord\{[A-G][B#]?)DIM7/\1$diminished7/g;
+       s/(gtxchord\{[A-G][B#]?)DIM/\1$diminished/g;
 
-            # Accords mineurs
-            s/(gtxchord\{[A-G][B#]?)M7/\1$mineur7/g;
-            s/(gtxchord\{[A-G][B#]?)M/\1$mineur/g;
+        # Accords mineurs
+       s/(gtxchord\{[A-G][B#]?)M7/\1$mineur7/g;                 # Cm7
+       s/(gtxchord\{[A-G][B#]?)M([0-9]+)/\1$mineur\$^{\2}\$/g;  # Cm13
+       s/(gtxchord\{[A-G][B#]?)M/\1$mineur/g;                   # Cm (doit être en dernier)
 
-            # Accord A7b5
-            s/(gtxchord\{[A-G][B#]?)([0-9])B([0-9])/\1\$^{\2\\flat\3}\$/g;
+        # Accord A7b5
+       s/(gtxchord\{[A-G][B#]?)([0-9])B([0-9])/\1\$^{\2\\flat\3}\$/g;
 
-            # Accord A7 ou A6 ou Ab6
-            s/(gtxchord\{[A-G][B#]?)([0-9]?)/\1\$^{\2}\$/g;
+        # Accord A7 ou A6 ou Ab6
+       s/(gtxchord\{[A-G][B#]?)([0-9]?)/\1\$^{\2}\$/g;
 
-            s/(gtxchord\{[A-G])B/\1b/g;            # Remplace 'gtxchord{AB'  par 'gtxchord{Ab'
-            s/(\/[A-G])B/\1b/g;                    # Remplace '/AB'          par '/Ab'
-        }
+       s/(gtxchord\{[A-G])B/\1$flat/g;   # Remplace 'gtxchord{AB'  par 'gtxchord{Ab'
+
+       s/(\/[A-G])B/\1$flat/g;               # Remplace '/AB'          par '/Ab'
 
         s/#/$sharp/g;     # Remplace le symbole '#' par le symbole diese
-        s/b/$flat/g;      # Remplace le 'b' dans l'accord par le symbole bemol
 
         if ( $italian ) {
             s/gtxchord\{D/gtxchord{Re/g;