Changeset 19

Show
Ignore:
Timestamp:
08/26/08 13:35:18 (5 months ago)
Author:
jms
Message:

[pgiac] Le source est en UTF8.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/pgiac/pgiac

    r18 r19  
    2121getopts("f:"); 
    2222 
    23 # La valeur ci-dessous dépend du système, elle doit être calculé
    24 # pour chaque système (programme fionread extérieur)
    25 our $FIONREAD   = 0x00541b;     # Valeur par défaut (linux) 
     23# La valeur ci-dessous dépend du systÚme, elle doit être déterminé
     24# pour chaque systÚme..
     25our $FIONREAD   = 0x00541b;     # Valeur par défaut (linux) 
    2626 
    2727our $EXECUTABLE = "giac --texmacs"; 
     
    3434 
    3535 
    36 my $VERSION     = "0.1.8";      # Mardi 26 août 2008 
     36my $VERSION     = "0.1.8";      # Mardi 26 août 2008 
    3737 
    3838my $OUT         = "";           # Contenu en sortie. 
    3939my $NBFIG       = 1;            # Compteur de figures. 
    4040my $COMPTEUR    = 0;            # Compteur de commandes. 
    41 my $NBCMD       = 0;            # Nombre de commandes successives traitées. 
     41my $NBCMD       = 0;            # Nombre de commandes successives traitées. 
    4242 
    4343my $FFIG        = "pdf";        # Format des figures. 
     
    4545 
    4646 
    47 my $STRING      = "verbatim";   # Sortie des chaînes de caractères 
     47my $STRING      = "verbatim";   # Sortie des chaînes de caractÚres 
    4848my $COMMANDE    = "verb";       # Affichage des commandes. 
    4949 
    50 # --- Caractères utilisés dans le balisage de la sortie de giac avec 
     50# --- CaractÚres utilisés dans le balisage de la sortie de giac avec 
    5151# l'option --texmacs. 
    5252my $chr2 = chr(2); 
     
    6262my $BLOC   = ""; 
    6363 
    64 # Commande pour déterminer la BoundingBox d'un fichier EPS via GS. 
     64# Commande pour déterminer la BoundingBox d'un fichier EPS via GS. 
    6565my $GSBBOX = "gs -q -sDEVICE=bbox -sPAPERSIZE=a4 -dNOPAUSE -dNOSAFER"; 
    6666 
     
    8282my $PIDF = fork(); 
    8383 
    84 # === Procédure principale ============================================= 
     84# === Procédure principale ============================================= 
    8585unless ($PIDF) { 
    8686    sleep 0.5; 
     
    9898    fcntl(INF,F_GETFL,$attributs); 
    9999    $attributs |= O_NONBLOCK; 
    100     fcntl(INF,F_SETFL,$attributs) or die "Problème: $!\n"; 
     100    fcntl(INF,F_SETFL,$attributs) or die "ProblÚme: $!\n"; 
    101101    &Init; 
    102102    while (<INGIAC>) { 
     
    133133 
    134134# === GetTaille ======================================================== 
    135 # Cette procédure scrute le descripteur INF en lecture jusqu'à ce qu'il  
    136 # contienne des données, la taille de ces données est alors retournée. 
     135# Cette procédure scrute le descripteur INF en lecture jusqu'à ce qu'il  
     136# contienne des données, la taille de ces données est alors retournée. 
    137137sub GetTaille { 
    138138    my $taille = 0; 
     
    141141        $taille = pack("L",0); 
    142142        ioctl(INF,$FIONREAD,$taille)  
    143             or die "Problème (ioctl dans GetTaille) : $!\n"; 
     143            or die "ProblÚme (ioctl dans GetTaille) : $!\n"; 
    144144        $taille = unpack("L",$taille); 
    145145    } 
     
    148148 
    149149# === GetTampon ======================================================== 
    150 # Récupérer les données dans le descripteur de sortie de giac. 
     150# Récupérer les données dans le descripteur de sortie de giac. 
    151151sub GetTampon { 
    152152    my $tampon = my $tmp = ""; 
     
    163163 
    164164# === Init ============================================================= 
    165 # Cette procédure vide le descripteur INF des données transmises au tout 
    166 # début de la séquence. 
     165# Cette procédure vide le descripteur INF des données transmises au tout 
     166# début de la séquence. 
    167167sub Init { 
    168168    my $t = &GetTampon(); 
    169169} 
    170170 
    171 # === Exécution ======================================================== 
     171# === Exécution ======================================================== 
    172172sub Executer { 
    173173    my ($t,$a) = @_; 
     
    189189 
    190190# === GetOutGiac ======================================================= 
    191 # Cette procédure analyse ce qui est récupéré dans le descripteur de  
    192 # sortie de giac. Au début, les procédures d'appui. 
     191# Cette procédure analyse ce qui est récupéré dans le descripteur de  
     192# sortie de giac. Au début, les procédures d'appui. 
    193193 
    194194## Option $COMMANDE = listing : Guillaume Connan - 9 juin 2008 
     
    251251 
    252252sub GetOutGiac { 
    253     # $c est le texte de la commande, $r est la réponse fournie par giac. 
     253    # $c est le texte de la commande, $r est la réponse fournie par giac. 
    254254    my ($c,$r) = @_; 
    255     # Incrémentation du compteur des commandes. 
     255    # Incrémentation du compteur des commandes. 
    256256    $COMPTEUR++; 
    257257    print LOG "Commande $COMPTEUR\n"; 
    258     # Segmentation de la réponse (un peu simpliste pour l'instant, cela ne 
    259     # tient pas compte des emboîtements...) 
     258    # Segmentation de la réponse (un peu simpliste pour l'instant, cela ne 
     259    # tient pas compte des emboîtements...) 
    260260    my @champs = split /$chr2/, $r; shift @champs; 
    261261    my %reponse = (); 
     
    271271            # Nettoyage 
    272272            $v =~ s/$chr5//g; $v =~ s/^\s*|\s*$//g; 
    273             # Affectation - La succession ds verbatim reste à règler, 
    274             # éventuellement... 
     273            # Affectation - La succession ds verbatim reste à rÚgler, 
     274            # éventuellement... 
    275275            $reponse{$n} = $v; 
    276276            print LOG "$n:\n$v\n"; 
     
    294294    $OUT .= &outCommande($c); 
    295295    $COMPTEUR++; 
    296     # Nettoyage de la réponse. Pour l'instant, suppression des deux 
    297     # première lignes (verbatim) et de la dernière (prompt). 
     296    # Nettoyage de la réponse. Pour l'instant, suppression des deux 
     297    # premiÚre lignes (verbatim) et de la derniÚre (prompt). 
    298298    my @l = split(/\n/,$r); pop @l; shift @l; shift @l; 
    299     # Suppression d'une séquence chr2verbatim: observée en tête de 
    300     # troisième ligne, curieux :) 
     299    # Suppression d'une séquence chr2verbatim: observée en tête de 
     300    # troisiÚme ligne, curieux :) 
    301301    $l[0] =~ s/^${chr2}verbatim://; 
    302     # Création du fichier MetaPost. 
     302    # Création du fichier MetaPost. 
    303303    open(MP,">giac-temp.mp"); print MP join("\n",@l); close MP;     
    304304    # Compilation... 
    305305    qx{mpost giac-temp.mp}; 
    306     # Inscription de la réponse dans la sortie. 
     306    # Inscription de la réponse dans la sortie. 
    307307    if (-f "giac-temp.1") { 
    308308        # Transformation au format PDF 
     
    316316        $OUT .= &outGraphics($v); 
    317317    } else { 
    318         $OUT .= &outVerbatim("Erreur, l'image n'est pas trouvée !"); 
     318        $OUT .= &outVerbatim("Erreur, l'image n'est pas trouvée !"); 
    319319    } 
    320320} 
     
    335335    unlink "pgiac-$f.ps" if -f "pgiac-$f.ps"; 
    336336} 
    337 # === Lire des paramètres ============================================== 
     337# === Lire des paramÚtres ============================================== 
    338338sub LireParametres { 
    339339    my $l = shift;