[Kos-dev] Re: [Kos-cvs] [kos] Modification CVS par mejj

d2 kos-dev@enix.org
18 Apr 2002 15:48:02 +0200


[ J'espere cette fois-ci que ca va passer sur la ml ]

>>>>> "Julien" == KOS CVS <kos@kos.enix.org> writes:
    Julien> Détails : j'ai teste l'argument de David, mais bon, en
    Julien> attendant, ce bout de code, propriefie deja un peu , reste
    Julien> le cas particulier des liens symboliques, avec lesquels
    Julien> j'ai pas encore trouve quoi faire.

Je ne pense pas que ce code doive faire partie de babel. Il semblerait
plus correct de partir du principe que babel recoit des versions
correctes des noms de ressources, genre '/toto/../tata/bip' ou
'tata/../bip'. C'est a dire, bbl_open autorise '..', '.', les
adressages relatifs, les adresses absolues, mais pas les
'/////'. C'est plutot au syscall open de faire les filtrages de
'/////' qui vont bien avant d'appeler bbl_open. Bon, ca c'est parce
que je suis chiant. Quant aux '..' et '.', on verra ca ce WE (strcmp
dans le parcours de l'arbre, avec les pbs de lock pour '..') ; en
attendant ce code fait tres bien l'affaire.

Encore un detail d'emmerdeur sur le code : a mon avis, les patterns
sans '/' au debut (ie adressage relatif) sont tout aussi valides : il
suffirait de partir de la ressource (la SR en fait) qui sert de base a
l'adressage relatif, plutot que de la racine de l'arbre (=> ie
rajouter un parametre base_sr a bbl_open). C'est a mon avis une
meilleure solution que celle qui consiste à reconstruire le nom du CWD
en partant de la ressource (avec les pbs de lock dus au parcours de
l'arbre en sens fils->parent), avant de faire le strcat pour recoller
cette chaine de caractere CWD et le nom relatif fourni.

Autre detail de chieur : strdup() existe dans lib/string.h.

-- 
d2