package provide stead 2.0

# fichier accents7bitsLatex2Iso.tcl
# 
# maj par 
#   06/05/96 (diam)
#   15/12/00 (diam) : 
#       - correction de regsub pour utiliser ***= dans les 
#         pour stead83 (i.e expression literale dans regsub)
#       - coor bug dans les min circ (transformé en Maj circ) 
# 
# procédure permettant de transformer les caracteres 7 bits Latex 
# en 8bits ISO. 


# EN COURS DE DÉVELOPPEMENET...

proc accents7bitsLatex2Iso {} {
   ########################################################################
   # 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
   ########################################################################
   
 
   set {tex2iso(\'e)}     é
   set {tex2iso(\'{e})}   é
   set {tex2iso(\`e)}     è
   set {tex2iso(\`{e})}   è
   set {tex2iso(\^e)}     ê
   set {tex2iso(\^{e})}   ê
   set {tex2iso(\"e)}     ë
   set {tex2iso(\"{e})}   ë
   set {tex2iso(\`a)}     à
   set {tex2iso(\`{a})}   à
   set {tex2iso(\^a)}     â
   set {tex2iso(\^{a})}   â
   set {tex2iso(\^\i)}    î
   set {tex2iso(\^{\i})}  î
   set {tex2iso(\"\i)}    ï
   set {tex2iso(\"{\i})}  ï
   set {tex2iso(\`u)}     ù
   set {tex2iso(\`{u})}   ù
   set {tex2iso(\^u)}     û
   set {tex2iso(\^{u})}   û
   set {tex2iso(\^o)}     ô
   set {tex2iso(\^{o})}   ô
   set {tex2iso(\cc)}     ç
   set {tex2iso(\c{c})}   ç
   set {tex2iso(\'E)}     É
   set {tex2iso(\'{E})}   É
   set {tex2iso(\`E)}     È
   set {tex2iso(\`{E})}   È
   set {tex2iso(\^E)}     Ê
   set {tex2iso(\^{E})}   Ê
   set {tex2iso(\"E)}     Ë
   set {tex2iso(\"{E})}   Ë
   set {tex2iso(\`A)}     À
   set {tex2iso(\`{A})}   À
   set {tex2iso(\^A)}     Â
   set {tex2iso(\^{A})}   Â
   set {tex2iso(\^\I)}    Î
   set {tex2iso(\^{\I})}  Î
   set {tex2iso(\"\I)}    Ï
   set {tex2iso(\"{\I})}  Ï
   set {tex2iso(\`u)}     Ù
   set {tex2iso(\`{u})}   Ù
   set {tex2iso(\^u)}     Û
   set {tex2iso(\^{u})}   Û
   set {tex2iso(\^O)}     Ô
   set {tex2iso(\^{o})}   Ô
   set {tex2iso(\cC)}     Ç
   set {tex2iso(\c{C})}   Ç


   foreach TexString [array names tex2iso] {
   
       # # # on commence par inhiber les caracteres spéciaux pour regexp :
       # # # (i.e on remplace "\'e" par "\\'e"...)
       # # regsub -all {[][()+*?\^$]} $TexString {\\&} ModTexString
       # # 
       # # # on remplace chaque occurence de "\'e" par "é" :
       # # regsub -all -- "$ModTexString" $text $tex2iso($TexString) text

       # Utilise le remplacement literal dees nouvelles regexp (>= tcl8.1) 
       regsub -all -- "***=$TexString" $text $tex2iso($TexString) 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 accents7bitsLatex2Iso

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

return
########################################################################
########################################################################
########################################################################
