OVH Cloud OVH Cloud

déformation des accents...

6 réponses
Avatar
Patrice Karatchentzeff
Salut,

J'ai un soucis depuis quelques jours... J'ai rebooté il y a quelques
jours et depuis, XEmacs merde à qui mieux mieux dès que j'ai des
accents... Chaque fois qu'il doit enregister quelque chose, les
accents que j'ai tapé dans le texte déconne (et ceux qui y étaient
sont OK). Mais seulement sur certains caractères, comme le ¤ ou
l'espace insécable.

Je ne me souviens absolument pas de ce que j'ai fait ces dernières
semaines... Je suis sûr de n'avoir pas touché à la configuration de
XEmacs, du moins pas directement... J'ai touché certainement aux
fontes (j'ai perdu la fonte par défaut de XEmacs et j'ai dû modifier
cela) et des bricoles sur le système (je ne me souviens pas avoir
touché aux locales mais je ne peux l'affirmer...).

Bref, quelqu'un peut-il me mettre sur une piste ? Cela m'embête
*énormément* et m'empêche de travailler...

Merci

PK

PS : XEmacs sur Woody... rien de modifier à l'installation de base. Ma
configuration :

(custom-set-variables
'(vm-netscape-program "galeon" t)
'(column-number-mode t)
'(vm-page-continuation-glyph "...press SPACE to see more..." t)
'(gnuserv-program (concat exec-directory "/gnuserv"))
'(canlock-password "65f59349451dc1568d32dc9e574d2a5501dbcf31")
'(vm-mime-8bit-text-transfer-encoding (quote 8bit) t)
'(browse-url-browser-function (quote browse-url-galeon));
'(browse-url-galeon-program "galeon")
'(browse-url-galeon-arguments '("-n"))
'(browse-url-generic-program "galeon -n")
'(browse-url-generic-args '("-n"))
'(toolbar-visible-p nil)
'(line-number-mode t)
'(vm-mime-uuencode-decoder-switches nil t)
'(font-lock-mode t nil (font-lock)))
(custom-set-faces
'(message-header-contents ((t (:foreground "" :background "" :size "14" :dim nil :bold t :italic t :inverse-video t))))
'(message-highlighted-header-contents ((t (:foreground "green4" :bold t :italic t)))))

(custom-set-variables
'(font-lock-mode t nil (font-lock)))

;; flyspell

(setq flyspell-default-dictionary "francais")
;;(flyspell-mode 1)
;; (setq flyspell-issue-welcome-flag nil)

(defun flyspell-mode-on () (flyspell-mode 1))
(add-hook 'text-mode-hook 'flyspell-mode-on)

;; redéfinition des touches

(defun my-french-guill ()
"Insère une paire de guillemets"
(interactive)
(insert "«  »");<-- deux espaces insécables
(backward-char 2))

(defun my-point-interrogation ()
"Insère un point d'interrogation précédé d'une espace insécable"
(interactive)
(if (eq (char-before) ?\ ) ; si espace classique
(progn
(backward-delete-char 1)
(insert " ?"));<-- 1 espace insécable
(insert " ?")));<-- itou

(defun my-point-exclamation ()
(interactive)
(if (eq (char-before) ?\ ) ; si espace classique
(progn
(backward-delete-char 1)
(insert " !"));<-- 1 espace insécable
(insert " !")));<-- itou

(defun my-double-point ()
(interactive)
(if (eq (char-before) ?\ ) ; si espace classique
(progn
(backward-delete-char 1)
(insert " :"));<-- 1 espace insécable
(insert " :")));<-- itou

(defun my-point-virgule ()
(interactive)
(if (eq (char-before) ?\ ) ; si espace classique
(progn
(backward-delete-char 1)
(insert " ;"));<-- 1 espace insécable
(insert " ;")));<-- itou

(defun my-double-parenthese ()
(interactive)
(insert "()")
(backward-char 1))

(defun my-double-crochet ()
(interactive)
(insert "[]")
(backward-char 1))

(defun my-double-accolade ()
(interactive)
(insert "{}")
(backward-char 1))

(defun my-double-keys ()
"Touches spécifiques"
(interactive)
;; [...]
(setq skeleton-pair t)
(define-key text-mode-map "$" 'skeleton-pair-insert-maybe)
(define-key text-mode-map "{" 'my-double-accolade)
(define-key text-mode-map "(" 'my-double-parenthese)
(define-key text-mode-map "[" 'my-double-crochet)
(define-key text-mode-map "?" 'my-point-interrogation)
(define-key text-mode-map "!" 'my-point-exclamation)
(define-key text-mode-map ":" 'my-double-point)
(define-key text-mode-map ";" 'my-point-virgule)
(define-key text-mode-map 'guillemotleft 'my-french-guill))
; pour Emacs
; (define-key text-mode-map "\253" 'my-french-guill))

(add-hook 'text-mode-hook 'my-double-keys)
;(add-hook 'tex-mode-hook 'my-double-keys)

;; se servir de galeon comme référence
;; en ouvrant un nouvel onglet à chaque fois
;;(setq browse-url-netscape-program "galeon")
;;(setq browse-url-netscape-arguments '("-n"))


--
      |\      _,,,---,,_       Patrice KARATCHENTZEFF
ZZZzz /,`.-'`'    -.  ;-;;,_   mailto:p.karatchentzeff@free.fr
     |,4-  ) )-,_. ,\ (  `'-'  http://p.karatchentzeff.free.fr
    '---''(_/--'  `-'\_)       

6 réponses

Avatar
lhabert
Patrice Karatchentzeff :

J'ai un soucis depuis quelques jours... J'ai rebooté il y a quelques
jours et depuis, XEmacs merde à qui mieux mieux dès que j'ai des
accents... Chaque fois qu'il doit enregister quelque chose, les
accents que j'ai tapé dans le texte déconne



C'est à dire?

(et ceux qui y étaient sont OK). Mais seulement sur certains caractères,
comme le ¤ ou l'espace insécable.



Faire un C-x = sur les caractères qui déconnent et sur ceux qui ne déconnent
pas peut donner des indications.

Pour l'espace insécable, s'agit-il de ceux entrés à la main ou avec les
fonctions citées? Ça pourrait être une histoie de .emacs lu comme du
latin-paskifo.

Que valent les LC_*?
Avatar
Patrice Karatchentzeff
--=-=- Content-Type: text/plain; charset=iso-8859-15
Content-Transfer-Encoding: 8bit

(Luc Habert) writes:

Patrice Karatchentzeff :

J'ai un soucis depuis quelques jours... J'ai rebooté il y a quelques
jours et depuis, XEmacs merde à qui mieux mieux dès que j'ai des
accents... Chaque fois qu'il doit enregister quelque chose, les
accents que j'ai tapé dans le texte déconne



C'est à dire?



voui... pardon, j'ai oublié de le dire :

J'ai une séquence d'échappement variable... Peux pas la mettre ici
sinon gnus hurle à la mort... en gros, cela ressemble à ^[-b devant le
¤ et ^[-A à la place de l'espace insécable...

(et ceux qui y étaient sont OK). Mais seulement sur certains caractères,





--=-=- Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit

comme le ¤ ou l'espace




--=-=- Content-Type: text/plain; charset=iso-8859-15
Content-Transfer-Encoding: 8bit

insécable.

Faire un C-x = sur les caractères qui déconnent et sur ceux qui ne déconnent
pas peut donner des indications.



Pour le premier cité, il semble que la chaîne ^[ soit un seul
caractère : cela me donne : (033, 27, 0x1b) et le -b est bien vu comme
ces deux caractères.

J'ai la même chose pour le ^[ du suivant...

Pour l'espace insécable, s'agit-il de ceux entrés à la main ou avec les
fonctions citées? Ça pourrait être une histoie de .emacs lu comme du



J'ai essayé les deux... cela déconne aléatoirement... Par exemple, en
mode texte, donc quand mes macros sont activées, cela fonctionne sauf
qu'il m'ajoute de temps un ~ (bien vu comme tel par C-x =) en plus
(les autres caractères sont bien présents).

latin-paskifo.



 ? Je n'ai rien positionné du tout pour XEmacs depuis un paquet
d'années... cela fonctionnait jusqu'à présent. Et j'ai cette version
installée depuis plus d'un an.


Que valent les LC_*?




# env | grep LANG
LANG=

# env | grep LC
LC_TYPE=ISO-8859-1
LC_ALL=fr_FR

À noter que je n'ai pas touché à cela depuis des mois...

$ cat /etc/locale.gen
fr_FR ISO-8859-1
ISO-8859-15
fr_FR.UTF-8 UTF-8

pour ceux que j'ai chez moi de fonctionnel.

Merci

PK

--
      |      _,,,---,,_       Patrice KARATCHENTZEFF
ZZZzz /,`.-'`'    -.  ;-;;,_   mailto:
     |,4-  ) )-,_. , (  `'-'  http://p.karatchentzeff.free.fr
    '---''(_/--'  `-'_)       

--=-=-=--
Avatar
Patrice Karatchentzeff
(Luc Habert) writes:

Patrice Karatchentzeff :

J'ai une séquence d'échappement variable... Peux pas la mettre ici
sinon gnus hurle à la mort... en gros, cela ressemble à ^[-b devant le
¤ et ^[-A à la place de l'espace insécable...



C'est peut-être encodé en iso2022 (enfin, je ne connais ce système de codage
qu'empiriquement). C'est un système de codage qu'emacs utilise quand il ne
sait vraiment pas quoi utiliser.

Que vaut la variable « buffer-file-coding-system » après avoir sauvegardé?



Bingo ! c'est bien iso-2022-8... du moins, ce que me renvoie M-? v sur
cette variable :

`buffer-file-coding-system' is a built-in buffer-local variable.

Value: #<coding_system raw-text-unix>

This value is specific to the current buffer.

Default-value: iso-2022-8

[...]

En fait, je voulais dire de faire le C-x = avant d'enregistrer, quand le
caractère accentué apparait encore en temps que lui même.



C'est OK avant et après sur l'espace insécable.

[...]

Déjà, le « LC_TYPE », ça n'existe pas à ma connaissance, c'est « LC_CTYPE ».



Exact : tu viens de mettre le doigt sur un truc que je trimballe
depuis des années ;-) Mon bashrc contient un débile LC_TYPE
complètement inutile...

extrait :

export LC_TYPE=ISO-8859-1
export LANG=fr_FR
export LINES
export COLUMNS
export LC_ALL=fr_FR
export LESSCHARSET=latin1
export PAGER=most
eval $(lesspipe)

Mais le « LC_ALL » a priorité sur tout le reste de toutes manières. Aussi,
le « LANG » est le moins prioritaire, donc il ne sert à rien non plus.



Dans tous les cas, c'était quand même placé à Fr...

Bon, comment je m'en sors maintenant pour XEmacs ? Il sait se
débrouiller tout seul ou il faut l'aider ?

Merci

PK

--
      |      _,,,---,,_       Patrice KARATCHENTZEFF
ZZZzz /,`.-'`'    -.  ;-;;,_   mailto:
     |,4-  ) )-,_. , (  `'-'  http://p.karatchentzeff.free.fr
    '---''(_/--'  `-'_)       
Avatar
lhabert
Patrice Karatchentzeff :

`buffer-file-coding-system' is a built-in buffer-local variable.

Value: #<coding_system raw-text-unix>

This value is specific to the current buffer.

Default-value: iso-2022-8



Bon, je viens d'essayer l'xemacs de la woody et ça a l'air normal. Il faut
croire qu'xemacs ne fait pas comme emacs. D'après ce qu'ils disent, avec ce
codage, ils enregistrent tel quel le latin-1, en revanche tout le reste est
enregistré avec des séquences d'echappement. Bref, il faut croire que
certains caractères accentués sont compris comme étant du latin-9, ou
peut-être du 8bit indéterminé. Tu les rentrer comment ces caractères?

En fait, je voulais dire de faire le C-x = avant d'enregistrer, quand le
caractère accentué apparait encore en temps que lui même.



C'est OK avant et après sur l'espace insécable.



Ça dit quoi?
Avatar
Patrice Karatchentzeff
(Luc Habert) writes:

[...]

Bon, je viens d'essayer l'xemacs de la woody et ça a l'air normal. Il faut
croire qu'xemacs ne fait pas comme emacs. D'après ce qu'ils disent, avec ce
codage, ils enregistrent tel quel le latin-1, en revanche tout le reste est
enregistré avec des séquences d'echappement. Bref, il faut croire que
certains caractères accentués sont compris comme étant du latin-9, ou
peut-être du 8bit indéterminé. Tu les rentrer comment ces caractères?



Je ne comprends pas ta question... je les entre évidemment au
clavier ;-)... soit directement, soit par mes fonctions automatiques
(comme le placement des espaces insécables par exemple).

C'est OK avant et après sur l'espace insécable.



Ça dit quoi?



Que c'est un espace insécable :

Char:   (0240, 160, 0xa0)

PK

--
      |      _,,,---,,_       Patrice KARATCHENTZEFF
ZZZzz /,`.-'`'    -.  ;-;;,_   mailto:
     |,4-  ) )-,_. , (  `'-'  http://p.karatchentzeff.free.fr
    '---''(_/--'  `-'_)       
Avatar
lhabert
Patrice Karatchentzeff :

Je ne comprends pas ta question... je les entre évidemment au
clavier ;-)... soit directement, soit par mes fonctions automatiques
(comme le placement des espaces insécables par exemple).



Ce que je voulais dire, c'est « Est-ce que tu utilises une touche compose,
ou un clavier azerty, ou un mapping de keysyms accentués avec altgr, ou des
dead keys, ou une méthode d'entrée d'emacs, ou que sais-je encore ? ».

Ça dit quoi?



Que c'est un espace insécable :

Char:   (0240, 160, 0xa0)



Argh, xemacs fait pas comme emacs (sous emacs, on a droit à « character:  
(04240, 2208, 0x8a0)) » pour un espace insécable latin-1), donc ça risque de
dépasser mes compétences. Mais ça, c'est sur un espace insécable qui déconne
ou sur un qui marche?