package provide stead 2.0

# fichier stripAccentsIso.tcl
# 
# maj par diam le 26/01/96 16h10 (merci à Patrick Grelier)
# 
# procédure permettant de transformer les caracteres 8bits ISO en 
# caracteres ASCII les plus proches (=> perte d'information)


proc stripAccentsIso {} {
   ########################################################################
   # Récupération du texte à modifier et sauvegarde du contexte.
   ########################################################################
   
   # on récupère le texte complet dans la variable text:
   set text [.main.t get 1.0 end]
   
   # On mémorise la position courante dans le texte :
   # # .main.t mark set old_insert [.main.t index insert]
   # # old_insert est détruit par .main.t delete ... => inexploitable
   set oldIdx  [.main.t index insert]
   
   # On sauvegarde l'état de l'éditeur (en RAM) pour le undo éventuel
   xtext_pushState
   xtext_markDirty .main.t
   
   ########################################################################
   # Début de modif de la variable text
   ########################################################################
   
   regsub -all -- {[áàâä]} $text "a" text   ;# 
   regsub -all -- {[éèêë]} $text "e" text   ;# 
   regsub -all -- {[íîï]}  $text "i" text   ;# 
   regsub -all -- {[óôö]}  $text "o" text   ;# 
   regsub -all -- {[ùúûü]} $text "u" text   ;# 
   regsub -all -- {[ç]}    $text "c" text   ;# 
   regsub -all -- {[ñ]}    $text "n" text   ;# 
   regsub -all -- {[ß]}    $text "ss" text  ;# 

   regsub -all -- {[ÁÄÀÂ]} $text "A" text   ;# 
   regsub -all -- {[ÉÈÊË]} $text "E" text   ;#
   regsub -all -- {[ÍÎÏ]}  $text "I" text   ;# 
   regsub -all -- {[ÓÔÖ]}  $text "O" text   ;# 
   regsub -all -- {[ÙÚÛÜ]} $text "U" text   ;# 
   regsub -all -- {[Ç]}    $text "C" text   ;# 
   regsub -all -- {[Ñ]}    $text "N" text   ;# 

   
   ########################################################################
   # fin des modification de la variable "text"
   ########################################################################
   
   # On supprime l'ancien texte et on le remplace par le nouveau :
   .main.t delete 1.0 end
   .main.t insert insert $text
   
   # on essaie de restituer la position initiale
   # # .main.t mark set insert old_insert
   # # .main.t mark unset old_insert
   .main.t mark set insert $oldIdx
   .main.t yview -pickplace insert
   
   ########################################################################

} ;# end stripAccentsIso

# # # Exécution de la procédure de remplacement globale
# # stripAccentsIso