Closed GoogleCodeExporter closed 9 years ago
Alors pour decrire le mecanisme d'include dans elixir. Il est base sur le
principe
d'une pile et on peut trouver tous les fichiers actuellement ouvert dans la
variable
cid de elixir_id.c (Ce qui veut dire que retourner la stack des includes est
faisable
simplement). Ensuite chaque module va gerer a sa maniere la liste de parametre
qu'on
lui passe.
Pour le module eet, il peut recevoir entre 1 et 3 parametres. Si on ne lui
passe
qu'un parametre, il va, si c'est le premier fichier eet a etre ouvert, prendre
le
premier parametre pour le nom du fichier a ouvrir et automatiquement utiliser
"elixir/main" comme section. Mais si un fichier eet a deja ete ouvert, alors il
va
prendre le parametre donne comme nom de la section a ouvrir dans le precedent
fichier
eet. C'est une astuce quand on fait une lib. Pas la peine de se soucier ou se
trouve
le fichier, suffit de demander la section et ca va marcher :-).
Pour le argc/argv a la rigueur, je pourrais ajouter un elx.arg qui contiendrait
un
tableau de chaine de characteres, mais j'en vois assez peu l'utilite pour la
box.
Mais je veux bien que tu me decrives ton utilisation. Sinon autre astuce,
toutes les
variables d'environnement prefixe par ELX_ sont automatiquement charge dans
elx.env.*.
Original comment by moa.blue...@gmail.com
on 30 Nov 2009 at 4:17
Pour le elx.env du coup c'est parfait pour ce que je voulais faire :) (un
ELX_DEBUG=1
par exemple).
Pour le reste en effet il y a déjà presque tout ce qu'il faut dans le code
(merci
pour les explications). Par contre on ne va avoir accès qu'au nom du .edj;
pour eet
par exemple il n'y a rien pour récupérer le nom du fichier. Pour ça je
verrais bien
un params() dans Elixir_Loader.func en plus du filename().
Original comment by arnaud.lb
on 30 Nov 2009 at 5:29
J'ai pense au params en plus de filename, mais ca permettrait de retrouver
potentiellement les clefs de crypto utilise pour charger un include precedent.
Et je
ne sais pas si c'est un bien ou un mal. Ca pourrait etre un bien, en permettant
a une
lib qui fait des includes de recuperer le parametre du precedent appel et donc
de bien
s'integrer dans l'appli, mais ca pourrait etre aussi un mal en permettant de
l'exporter vers l'exterieur. Donc j'hesite. Je suis pour l'instant plutot pour
ajouter
une fonction section qui permet d'obtenir juste la section. Mais je n'ai pas
encore
d'avis arreter sur la question.
Original comment by moa.blue...@gmail.com
on 30 Nov 2009 at 5:45
Oui sinon juste section, ça permettrait de couvrir ce problème
Original comment by arnaud.lb
on 30 Nov 2009 at 5:54
Est-ce que quelque chose comme ceci conviendrait ?
- Ajout de section() dans Elixir_Loader.func, ajout de elixir_loader_section()
et
elixir_id_section().
- Support de section() dans les loaders eet et edje
- Fonctions utilisateur elx.filename() et elx.section(), qui retournent le
fichier/section courant
Original comment by arnaud.lb
on 1 Dec 2009 at 1:08
Attachments:
J'ai mis ton patch dans le SVN avec une petite modification, j'ai cree une
fonction
elx.current qui retourne un objet avec un parametre filename et section. Dans
l'idee,
c'est que si un jour on veut recuperer la liste de tous les includes on puisse
retourner le meme objet.
Original comment by moa.blue...@gmail.com
on 1 Dec 2009 at 1:48
Merci :)
Original comment by arnaud.lb
on 1 Dec 2009 at 2:00
Original issue reported on code.google.com by
arnaud.lb
on 30 Nov 2009 at 3:56