Opened 13 years ago

Closed 13 years ago

#1 closed bogue (fixed)

Erreur interne Trac avec le navigateur de source

Reported by: guillaume Owned by: guillaume
Priority: majeur Milestone: TracEnFrancais-0.10.4
Component: TracEnFrancais Version: 0.10.4
Keywords: Cc:

Description

Voir exemple: http://source.pkg.fr/browser/A2P/a2p/a2p.pl

Pile d'appel Python affichée:

Pile d'appel Python

Traceback (most recent call last):
  File "/usr/lib/python2.5/site-packages/trac/web/main.py", line 415, in dispatch_request
    dispatcher.dispatch(req)
  File "/usr/lib/python2.5/site-packages/trac/web/main.py", line 245, in dispatch
    resp = chosen_handler.process_request(req)
  File "/usr/lib/python2.5/site-packages/trac/versioncontrol/web_ui/browser.py", line 145, in process_request
    self._render_file(req, repos, node, rev)
  File "/usr/lib/python2.5/site-packages/trac/versioncontrol/web_ui/browser.py", line 282, in _render_file
    node.created_path, raw_href, annotations=['lineno'])
  File "/usr/lib/python2.5/site-packages/trac/mimeview/api.py", line 596, in preview_to_hdf
    url, annotations),
  File "/usr/lib/python2.5/site-packages/trac/mimeview/api.py", line 467, in render
    % (renderer, e), exc_info=True)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 4: ordinal not in range(128)

Résultat: impossibilité de voir les sources

Change History (3)

comment:1 Changed 13 years ago by guillaume

  • Status changed from new to assigned

Les sources sont en UTF-8.

Il faut que l'API fautive en tienne compte.

comment:2 Changed 13 years ago by guillaume

Remarque :

  • en principe seules les sources contenant des caractères ascii comme les caractères accentués sont concernées

comment:3 Changed 13 years ago by guillaume

  • Resolution set to fixed
  • Status changed from assigned to closed

Le problème survient dans /trac/mimeview/enscript.py quand la commande enscript n'est pas trouvée. Le texte de l'exception retourné est dans un mauvais encodage et c'est le log de l'exception qui génère l'erreur.

  • Installer le package enscript permet d'éviter l'exception et l'affichage correct du fichier mis en couleur par la commande enscript
  • Utiliser la fonction to_unicode() sur le texte de l'exception dans /trac/mimeview/api.py corrige le problème au cas où la commande enscript n'est pas disponible
  • Le patch va être mis à jour, je vais prendre le temps de contrôler que le problème ne survienne potentiellement pas ailleurs
Note: See TracTickets for help on using tickets.