On Aug 4, 4:13 pm, Sébastien Kirche
wrote:
> Le 4 août 2009 à 15:37, nic o. vraute :
>
> > Explorations en cours, est-ce qu'il y a moyen de récupérer les
> > infos dans une variable au lieu de les afficher dans un buffer ?
> > On dirait pas, d'après la doc. Donc créer un buffer exprès pour et
> > travailler dedans puis le fermer.
>
> C'est comme ça que travaille tramp (où j'ai trouvé un autre cas
> d'appel de reg.exe), voici un extrait plus large qui parse le
> résultat d'un appel à reg (c'est dans tramp.el) : il crée un buffer
> temp, appelle reg et parse ce qui a été renvoyé.
J'ai un problème avec reg.exe parce que la seconde clé dont je veux
lire la valeur a un espace dans le nom. Sont vraiment cons chez MS...
Du coup je n'utilise que la première valeur lue, c'est plus simple :
(call-process "reg" nil "tmp" nil "QUERY" "HKLMSYSTEM
CurrentControlSetControlIDConfigDB" "/v" "CurrentConfig")
(save-current-buffer
(set-buffer "tmp")
(goto-char (point-min))
(re-search-forward "0x(.+)")
(if (eq (string-to-number (match-string 1) 16) 2)
(setq default-frame-alist
'((top . 0) (left . 1280)
(width . 100) (height . 72)
;; (pointer-color . "yellow")
(cursor-color . "white")
(cursor-type . box)
(foreground-color . "white")
(background-color . "black")
(font . "-*-courier new-medium-r-*-*-11-*-*-*-*-*-*-*")
))
(setq default-frame-alist
'((top . 0) (left . 0)
(width . 100) (height . 54)
;; (pointer-color . "yellow")
(cursor-color . "white")
(cursor-type . box)
(foreground-color . "white")
(background-color . "black")
(font . "-*-courier new-medium-r-*-*-11-*-*-*-*-*-*-*")
))))
(kill-buffer "tmp")
Depuis le temps que je m'agaçais de devoir déplacer la fenêtre sur le
second écran à chaque ouverture d'emacs...
On Aug 4, 4:13 pm, Sébastien Kirche
<sebastien.kirche...@spam.free.fr.invalid> wrote:
> Le 4 août 2009 à 15:37, nic o. vraute :
>
> > Explorations en cours, est-ce qu'il y a moyen de récupérer les
> > infos dans une variable au lieu de les afficher dans un buffer ?
> > On dirait pas, d'après la doc. Donc créer un buffer exprès pour et
> > travailler dedans puis le fermer.
>
> C'est comme ça que travaille tramp (où j'ai trouvé un autre cas
> d'appel de reg.exe), voici un extrait plus large qui parse le
> résultat d'un appel à reg (c'est dans tramp.el) : il crée un buffer
> temp, appelle reg et parse ce qui a été renvoyé.
J'ai un problème avec reg.exe parce que la seconde clé dont je veux
lire la valeur a un espace dans le nom. Sont vraiment cons chez MS...
Du coup je n'utilise que la première valeur lue, c'est plus simple :
(call-process "reg" nil "tmp" nil "QUERY" "HKLM\SYSTEM
CurrentControlSet\Control\IDConfigDB" "/v" "CurrentConfig")
(save-current-buffer
(set-buffer "tmp")
(goto-char (point-min))
(re-search-forward "0x\(.+\)")
(if (eq (string-to-number (match-string 1) 16) 2)
(setq default-frame-alist
'((top . 0) (left . 1280)
(width . 100) (height . 72)
;; (pointer-color . "yellow")
(cursor-color . "white")
(cursor-type . box)
(foreground-color . "white")
(background-color . "black")
(font . "-*-courier new-medium-r-*-*-11-*-*-*-*-*-*-*")
))
(setq default-frame-alist
'((top . 0) (left . 0)
(width . 100) (height . 54)
;; (pointer-color . "yellow")
(cursor-color . "white")
(cursor-type . box)
(foreground-color . "white")
(background-color . "black")
(font . "-*-courier new-medium-r-*-*-11-*-*-*-*-*-*-*")
))))
(kill-buffer "tmp")
Depuis le temps que je m'agaçais de devoir déplacer la fenêtre sur le
second écran à chaque ouverture d'emacs...
On Aug 4, 4:13 pm, Sébastien Kirche
wrote:
> Le 4 août 2009 à 15:37, nic o. vraute :
>
> > Explorations en cours, est-ce qu'il y a moyen de récupérer les
> > infos dans une variable au lieu de les afficher dans un buffer ?
> > On dirait pas, d'après la doc. Donc créer un buffer exprès pour et
> > travailler dedans puis le fermer.
>
> C'est comme ça que travaille tramp (où j'ai trouvé un autre cas
> d'appel de reg.exe), voici un extrait plus large qui parse le
> résultat d'un appel à reg (c'est dans tramp.el) : il crée un buffer
> temp, appelle reg et parse ce qui a été renvoyé.
J'ai un problème avec reg.exe parce que la seconde clé dont je veux
lire la valeur a un espace dans le nom. Sont vraiment cons chez MS...
Du coup je n'utilise que la première valeur lue, c'est plus simple :
(call-process "reg" nil "tmp" nil "QUERY" "HKLMSYSTEM
CurrentControlSetControlIDConfigDB" "/v" "CurrentConfig")
(save-current-buffer
(set-buffer "tmp")
(goto-char (point-min))
(re-search-forward "0x(.+)")
(if (eq (string-to-number (match-string 1) 16) 2)
(setq default-frame-alist
'((top . 0) (left . 1280)
(width . 100) (height . 72)
;; (pointer-color . "yellow")
(cursor-color . "white")
(cursor-type . box)
(foreground-color . "white")
(background-color . "black")
(font . "-*-courier new-medium-r-*-*-11-*-*-*-*-*-*-*")
))
(setq default-frame-alist
'((top . 0) (left . 0)
(width . 100) (height . 54)
;; (pointer-color . "yellow")
(cursor-color . "white")
(cursor-type . box)
(foreground-color . "white")
(background-color . "black")
(font . "-*-courier new-medium-r-*-*-11-*-*-*-*-*-*-*")
))))
(kill-buffer "tmp")
Depuis le temps que je m'agaçais de devoir déplacer la fenêtre sur le
second écran à chaque ouverture d'emacs...
On Aug 4, 4:13 pm, Sébastien Kirche
wrote:
> Le 4 août 2009 à 15:37, nic o. vraute :
>
> > Explorations en cours, est-ce qu'il y a moyen de récupérer les
> > infos dans une variable au lieu de les afficher dans un buffer ?
> > On dirait pas, d'après la doc. Donc créer un buffer exprès pour et
> > travailler dedans puis le fermer.
>
> C'est comme ça que travaille tramp (où j'ai trouvé un autre cas
> d'appel de reg.exe), voici un extrait plus large qui parse le
> résultat d'un appel à reg (c'est dans tramp.el) : il crée un buffer
> temp, appelle reg et parse ce qui a été renvoyé.
J'ai un problème avec reg.exe parce que la seconde clé dont je veux
lire la valeur a un espace dans le nom. Sont vraiment cons chez MS...
Du coup je n'utilise que la première valeur lue, c'est plus simple :
(call-process "reg" nil "tmp" nil "QUERY" "HKLMSYSTEM
CurrentControlSetControlIDConfigDB" "/v" "CurrentConfig")
(save-current-buffer
(set-buffer "tmp")
(goto-char (point-min))
(re-search-forward "0x(.+)")
(if (eq (string-to-number (match-string 1) 16) 2)
(setq default-frame-alist
'((top . 0) (left . 1280)
(width . 100) (height . 72)
;; (pointer-color . "yellow")
(cursor-color . "white")
(cursor-type . box)
(foreground-color . "white")
(background-color . "black")
(font . "-*-courier new-medium-r-*-*-11-*-*-*-*-*-*-*")
))
(setq default-frame-alist
'((top . 0) (left . 0)
(width . 100) (height . 54)
;; (pointer-color . "yellow")
(cursor-color . "white")
(cursor-type . box)
(foreground-color . "white")
(background-color . "black")
(font . "-*-courier new-medium-r-*-*-11-*-*-*-*-*-*-*")
))))
(kill-buffer "tmp")
Depuis le temps que je m'agaçais de devoir déplacer la fenêtre sur le
second écran à chaque ouverture d'emacs...
On Aug 4, 4:13 pm, Sébastien Kirche
<sebastien.kirche...@spam.free.fr.invalid> wrote:
> Le 4 août 2009 à 15:37, nic o. vraute :
>
> > Explorations en cours, est-ce qu'il y a moyen de récupérer les
> > infos dans une variable au lieu de les afficher dans un buffer ?
> > On dirait pas, d'après la doc. Donc créer un buffer exprès pour et
> > travailler dedans puis le fermer.
>
> C'est comme ça que travaille tramp (où j'ai trouvé un autre cas
> d'appel de reg.exe), voici un extrait plus large qui parse le
> résultat d'un appel à reg (c'est dans tramp.el) : il crée un buffer
> temp, appelle reg et parse ce qui a été renvoyé.
J'ai un problème avec reg.exe parce que la seconde clé dont je veux
lire la valeur a un espace dans le nom. Sont vraiment cons chez MS...
Du coup je n'utilise que la première valeur lue, c'est plus simple :
(call-process "reg" nil "tmp" nil "QUERY" "HKLM\SYSTEM
CurrentControlSet\Control\IDConfigDB" "/v" "CurrentConfig")
(save-current-buffer
(set-buffer "tmp")
(goto-char (point-min))
(re-search-forward "0x\(.+\)")
(if (eq (string-to-number (match-string 1) 16) 2)
(setq default-frame-alist
'((top . 0) (left . 1280)
(width . 100) (height . 72)
;; (pointer-color . "yellow")
(cursor-color . "white")
(cursor-type . box)
(foreground-color . "white")
(background-color . "black")
(font . "-*-courier new-medium-r-*-*-11-*-*-*-*-*-*-*")
))
(setq default-frame-alist
'((top . 0) (left . 0)
(width . 100) (height . 54)
;; (pointer-color . "yellow")
(cursor-color . "white")
(cursor-type . box)
(foreground-color . "white")
(background-color . "black")
(font . "-*-courier new-medium-r-*-*-11-*-*-*-*-*-*-*")
))))
(kill-buffer "tmp")
Depuis le temps que je m'agaçais de devoir déplacer la fenêtre sur le
second écran à chaque ouverture d'emacs...
On Aug 4, 4:13 pm, Sébastien Kirche
wrote:
> Le 4 août 2009 à 15:37, nic o. vraute :
>
> > Explorations en cours, est-ce qu'il y a moyen de récupérer les
> > infos dans une variable au lieu de les afficher dans un buffer ?
> > On dirait pas, d'après la doc. Donc créer un buffer exprès pour et
> > travailler dedans puis le fermer.
>
> C'est comme ça que travaille tramp (où j'ai trouvé un autre cas
> d'appel de reg.exe), voici un extrait plus large qui parse le
> résultat d'un appel à reg (c'est dans tramp.el) : il crée un buffer
> temp, appelle reg et parse ce qui a été renvoyé.
J'ai un problème avec reg.exe parce que la seconde clé dont je veux
lire la valeur a un espace dans le nom. Sont vraiment cons chez MS...
Du coup je n'utilise que la première valeur lue, c'est plus simple :
(call-process "reg" nil "tmp" nil "QUERY" "HKLMSYSTEM
CurrentControlSetControlIDConfigDB" "/v" "CurrentConfig")
(save-current-buffer
(set-buffer "tmp")
(goto-char (point-min))
(re-search-forward "0x(.+)")
(if (eq (string-to-number (match-string 1) 16) 2)
(setq default-frame-alist
'((top . 0) (left . 1280)
(width . 100) (height . 72)
;; (pointer-color . "yellow")
(cursor-color . "white")
(cursor-type . box)
(foreground-color . "white")
(background-color . "black")
(font . "-*-courier new-medium-r-*-*-11-*-*-*-*-*-*-*")
))
(setq default-frame-alist
'((top . 0) (left . 0)
(width . 100) (height . 54)
;; (pointer-color . "yellow")
(cursor-color . "white")
(cursor-type . box)
(foreground-color . "white")
(background-color . "black")
(font . "-*-courier new-medium-r-*-*-11-*-*-*-*-*-*-*")
))))
(kill-buffer "tmp")
Depuis le temps que je m'agaçais de devoir déplacer la fenêtre sur le
second écran à chaque ouverture d'emacs...
Le 4 août 2009 à 17:06, nic o. a dit :
> J'ai un problème avec reg.exe parce que la seconde clé dont je veux
> lire la valeur a un espace dans le nom. Sont vraiment cons chez MS...
Dans la console, ça marche si on utilise des doubles quotes autour du
nom de clé. Du coup dans Emacs ça donne un truc du genre (en échapp ant
les quotes)
(call-process "reg" nil t nil "query" ""HKLMsoftwareJava GDS Plugin"")
Euh, (save-current-buffer) / (set-buffer "tmp) / (kill-buffer "tmp")
c'est un peu moche :o)
Pourquoi pas comme dans l'exemple avec with-temp-buffer (histoire de
chipoter) ?
Ça donne (note le changement des paramètre du call-process) :
C'est un peu plus beau comme code :)
> Depuis le temps que je m'agaçais de devoir déplacer la fenêtre su r le
> second écran à chaque ouverture d'emacs...
Ben suffisait de demander ;)
Ça fait du bien de refaire une peu d'elisp...
Le 4 août 2009 à 17:06, nic o. a dit :
> J'ai un problème avec reg.exe parce que la seconde clé dont je veux
> lire la valeur a un espace dans le nom. Sont vraiment cons chez MS...
Dans la console, ça marche si on utilise des doubles quotes autour du
nom de clé. Du coup dans Emacs ça donne un truc du genre (en échapp ant
les quotes)
(call-process "reg" nil t nil "query" ""HKLM\software\Java GDS Plugin"")
Euh, (save-current-buffer) / (set-buffer "tmp) / (kill-buffer "tmp")
c'est un peu moche :o)
Pourquoi pas comme dans l'exemple avec with-temp-buffer (histoire de
chipoter) ?
Ça donne (note le changement des paramètre du call-process) :
C'est un peu plus beau comme code :)
> Depuis le temps que je m'agaçais de devoir déplacer la fenêtre su r le
> second écran à chaque ouverture d'emacs...
Ben suffisait de demander ;)
Ça fait du bien de refaire une peu d'elisp...
Le 4 août 2009 à 17:06, nic o. a dit :
> J'ai un problème avec reg.exe parce que la seconde clé dont je veux
> lire la valeur a un espace dans le nom. Sont vraiment cons chez MS...
Dans la console, ça marche si on utilise des doubles quotes autour du
nom de clé. Du coup dans Emacs ça donne un truc du genre (en échapp ant
les quotes)
(call-process "reg" nil t nil "query" ""HKLMsoftwareJava GDS Plugin"")
Euh, (save-current-buffer) / (set-buffer "tmp) / (kill-buffer "tmp")
c'est un peu moche :o)
Pourquoi pas comme dans l'exemple avec with-temp-buffer (histoire de
chipoter) ?
Ça donne (note le changement des paramètre du call-process) :
C'est un peu plus beau comme code :)
> Depuis le temps que je m'agaçais de devoir déplacer la fenêtre su r le
> second écran à chaque ouverture d'emacs...
Ben suffisait de demander ;)
Ça fait du bien de refaire une peu d'elisp...
N'est-ce pas ? :-)
Bon je retourne m'amuser avec la lecture de la base de registre
N'est-ce pas ? :-)
Bon je retourne m'amuser avec la lecture de la base de registre
N'est-ce pas ? :-)
Bon je retourne m'amuser avec la lecture de la base de registre
Je n'aime pas trop l'extension du numéro ("left padding" en VO) avec
la double conversion string->number->string, y a-t-il plus élégant ?
Je n'aime pas trop l'extension du numéro ("left padding" en VO) avec
la double conversion string->number->string, y a-t-il plus élégant ?
Je n'aime pas trop l'extension du numéro ("left padding" en VO) avec
la double conversion string->number->string, y a-t-il plus élégant ?
Tu peux t'épargner le concat et utiliser directement le format du nombr e
avec le nom de clé pour avoir
(call-process "reg" nil t nil "QUERY"
(format
""HKLMSYSTEMCurrentControlSe tControlIDConfigDBHardware Profiles%04X""
(string-to-number (match-string 1 ))) "/v"
"FriendlyName")
Mais je ne crois pas qu'on puisse faire plus court. Peut-être qu'un
autre elispien pourra me corriger ?
Tu peux t'épargner le concat et utiliser directement le format du nombr e
avec le nom de clé pour avoir
(call-process "reg" nil t nil "QUERY"
(format
""HKLM\SYSTEM\CurrentControlSe t\Control\IDConfigDB\Hardware Profiles\%04X""
(string-to-number (match-string 1 ))) "/v"
"FriendlyName")
Mais je ne crois pas qu'on puisse faire plus court. Peut-être qu'un
autre elispien pourra me corriger ?
Tu peux t'épargner le concat et utiliser directement le format du nombr e
avec le nom de clé pour avoir
(call-process "reg" nil t nil "QUERY"
(format
""HKLMSYSTEMCurrentControlSe tControlIDConfigDBHardware Profiles%04X""
(string-to-number (match-string 1 ))) "/v"
"FriendlyName")
Mais je ne crois pas qu'on puisse faire plus court. Peut-être qu'un
autre elispien pourra me corriger ?
On Aug 5, 1:15 am, Sébastien Kirche
wrote:Tu peux t'épargner le concat et utiliser directement le format du nombre
avec le nom de clé pour avoir
(call-process "reg" nil t nil "QUERY"
(format
""HKLMSYSTEMCurrentControlSetControlIDConfigDBHardware Profiles%04X""
(string-to-number (match-string 1))) "/v"
"FriendlyName")
Mais je ne crois pas qu'on puisse faire plus court. Peut-être qu'un
autre elispien pourra me corriger ?
Bon sang mais c'est bien sûr.
Je suis vraiment rouillé; Déjà que je suis un petit joueur en
lisp... :-)
Nicolas
On Aug 5, 1:15 am, Sébastien Kirche
<sebastien.kirche...@spam.free.fr.invalid> wrote:
Tu peux t'épargner le concat et utiliser directement le format du nombre
avec le nom de clé pour avoir
(call-process "reg" nil t nil "QUERY"
(format
""HKLM\SYSTEM\CurrentControlSet\Control\IDConfigDB\Hardware Profiles\%04X""
(string-to-number (match-string 1))) "/v"
"FriendlyName")
Mais je ne crois pas qu'on puisse faire plus court. Peut-être qu'un
autre elispien pourra me corriger ?
Bon sang mais c'est bien sûr.
Je suis vraiment rouillé; Déjà que je suis un petit joueur en
lisp... :-)
Nicolas
On Aug 5, 1:15 am, Sébastien Kirche
wrote:Tu peux t'épargner le concat et utiliser directement le format du nombre
avec le nom de clé pour avoir
(call-process "reg" nil t nil "QUERY"
(format
""HKLMSYSTEMCurrentControlSetControlIDConfigDBHardware Profiles%04X""
(string-to-number (match-string 1))) "/v"
"FriendlyName")
Mais je ne crois pas qu'on puisse faire plus court. Peut-être qu'un
autre elispien pourra me corriger ?
Bon sang mais c'est bien sûr.
Je suis vraiment rouillé; Déjà que je suis un petit joueur en
lisp... :-)
Nicolas
Le désavantage de `format' c'est que tu dois convertir s en entier,
donc c'est pas si trivial si s n'est pas en notation décimal, ou bien
représente un nombre supérieur à 2^28-1
Le désavantage de `format' c'est que tu dois convertir s en entier,
donc c'est pas si trivial si s n'est pas en notation décimal, ou bien
représente un nombre supérieur à 2^28-1
Le désavantage de `format' c'est que tu dois convertir s en entier,
donc c'est pas si trivial si s n'est pas en notation décimal, ou bien
représente un nombre supérieur à 2^28-1
Chez moi:
C-h v most-positive-fixnum <ret>
most-positive-fixnum is a variable defined in `C source code'.
Its value is 268435455
Documentation:
The largest value that is representable in a Lisp integer.
Chez moi:
C-h v most-positive-fixnum <ret>
most-positive-fixnum is a variable defined in `C source code'.
Its value is 268435455
Documentation:
The largest value that is representable in a Lisp integer.
Chez moi:
C-h v most-positive-fixnum <ret>
most-positive-fixnum is a variable defined in `C source code'.
Its value is 268435455
Documentation:
The largest value that is representable in a Lisp integer.
Salut,
Pour étendre à gauche sur 4 caractères une string s avec des zéro s tu peux
faire aussi (mais c'est un peu plus longuet):
(concat (make-string (- 4 (length s)) ?0) s)
ce qui causera une erreur si s fait plus de 4 caractère.
ou encore
(substring (concat "0000" s) -4)
Ce qui tronquera s, si s fait plus de 4 caractère.
Si tu utilises format avec %04X, si s fait plus de 4 caractères ça ne causera
pas d'erreur.
Le désavantage de `format' c'est que tu dois convertir s en entier, don c c'est
pas si trivial si s n'est pas en notation décimal, ou bien représente un
nombre supérieur à 2^28-1
Salut,
Pour étendre à gauche sur 4 caractères une string s avec des zéro s tu peux
faire aussi (mais c'est un peu plus longuet):
(concat (make-string (- 4 (length s)) ?0) s)
ce qui causera une erreur si s fait plus de 4 caractère.
ou encore
(substring (concat "0000" s) -4)
Ce qui tronquera s, si s fait plus de 4 caractère.
Si tu utilises format avec %04X, si s fait plus de 4 caractères ça ne causera
pas d'erreur.
Le désavantage de `format' c'est que tu dois convertir s en entier, don c c'est
pas si trivial si s n'est pas en notation décimal, ou bien représente un
nombre supérieur à 2^28-1
Salut,
Pour étendre à gauche sur 4 caractères une string s avec des zéro s tu peux
faire aussi (mais c'est un peu plus longuet):
(concat (make-string (- 4 (length s)) ?0) s)
ce qui causera une erreur si s fait plus de 4 caractère.
ou encore
(substring (concat "0000" s) -4)
Ce qui tronquera s, si s fait plus de 4 caractère.
Si tu utilises format avec %04X, si s fait plus de 4 caractères ça ne causera
pas d'erreur.
Le désavantage de `format' c'est que tu dois convertir s en entier, don c c'est
pas si trivial si s n'est pas en notation décimal, ou bien représente un
nombre supérieur à 2^28-1