Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Journal : Emacs ma tuer

Posté par Benjamin (Jabber id, page perso, ) le 18 décembre 2005
Argh.

Plusieurs heures, cela fait plusieurs heures et depuis plusieurs fois que je bute sur un problème à la noix avec PHP sous emacs. j'ai ce morceau de code :
... if ($_REQUEST["action"]=="recalc") { ...
jusque là tout va bien. Je veux y ajouter une seconde condition :
... if ($_REQUEST["action"]=="recalc" || isset($_REQUEST["go"])) { ...
et là, c'est le drame :

Parse error: parse error, unexpected T_STRING in /var/alternc/html/i/ika/dev/panier.php on line 6

Le problème est que cela fait plusieurs fois que j'ai quelques problèmes avec le fait d'ajouter un ou logique ( || ) dans un if en php. Bizarre étrange et tout. Et ça n'est pas http://php.net/operators qui m'apprends grand chose, si ce n'est que je peux essayer "or" au lieu de "||", ce qui, une fois précédente, m'avais sauvé (sans que je sache pourquoi, j'ai peur quand l'informatique me fait ça hein ...) mais là, que dalle ...

Parse error: parse error, unexpected T_STRING in /var/alternc/html/i/ika/dev/panier.php on line 7

(mouaip, j'ai découpé mon if en plusieurs lignes, ca peut aider ...)

J'ai fini par trouver : sur mon clavier azerty, le | s'obtient avec Alt-gr+6 et après les 2 |, j'ai un espace à écrire, pour séparer le ou logique de la condition suivante. Cet espace a eu le malheur d'être composé avec emacs (que je continue à adorer cependant ...). Conséquence de cet acte inconsidéré, ledit espace (Alt-gr + espace) n'est pas un caractère hexa 0x20 mais un espace insécable : 0xA0 !!

donc, emacs ma tuer, plusieurs heures de prise de tête à essayer de comprendre pourquoi ce problème, accusant à nouveau PHP de tous les maux sans raison, et, je le sais maintenant, à tort.

> Lire le journal (45 commentaires, moyenne: 2,5).  

Vous avez demandé le commentaire #662225.

espace insécable = utile

Posté par Pierrick Le Gall (page perso, ) le 18/12/2005 à 20:43. (lien). Évalué à 1.

En lisant ton journal, je me suis dit "super, je vais enfin pouvoir écrire foo : bar et qu'Emacs ne coupe pas la ligne entre foo et :". Et bien non, déception, Emacs coupe quand même. Je continue à faire comme en anglais : pas d'espace avant le :.

PS : si quelqu'un a la solution, je suis à l'écoute :-)

  • [^]Re: espace insécable = utile

    Posté par divad () le 18/12/2005 à 21:38. (lien). Évalué à 10.

    Utilises:
    NEdit, vim, vi, joe, kate ou autre éditeur.

    Car on le sait bien emacs est un OS, pas un éditeur de texte

    --
    --
    make bzImage

    [^]Re: espace insécable = utile

    Posté par Matthieu Moy (page perso, ) le 19/12/2005 à 10:36. (lien). Évalué à 7.


    (defun my-fill-nobreak-predicate ()
    (save-match-data
    (or (looking-at "[ \t]*[])}»!?;:]")
    (looking-at "[ \t]*\\.\\.\\.")
    (save-excursion
    (skip-chars-backward " \t")
    (backward-char 1)
    (looking-at "[([{«]")))))

    (setq fill-nobreak-predicate 'my-fill-nobreak-predicate)


    Et pour voir les espaces insécables,


    (make-face 'nbsp-face)
    (require 'disp-table)
    (aset standard-display-table
    (make-char 'latin-iso8859-1 (- ?\240 128))
    (vector (+ ?\267 (* 524288 (face-id 'nbsp-face)))))


    puis définir la face 'nbsp-face.

    Sinon, j'ai pas compris le rapport entre l'espace insécable en faisant AltGr-ESPACE et Emacs. C'est défini par la keymap X, pas par l'éditeur. (l'éternel "foo | bar" ou on relache trop tard AltGr sur un azerty, ça marche aussi dans un shell !)