1

Ya un truc que je comprends pas avec ce ROM_CALL :
SymDel
;short SymDel (SYM_STR SymName);
SymDel:
	clr.w	-(a7)
	move.l	4+2(a7),-(a7)		; Push SYM_STR
	jsr	SymFindPtr		; Find SYM_ENTRY to delete
	addq.l	#6,a7

;short SymDel_SymEntry(SYM_ENTRY *name);
SymDel_SymEntry_reg:
	move.l	a0,d0
	beq.s	\End
		move.w	SYM_ENTRY.flags(a0),d0
		andi.w	#SF_FOLDER|SF_LOCKED|SF_HIDDEN|SF_INVIEW|SF_ARCHIVED,d0
		bne.s	\End2
			move.w	SYM_ENTRY.hVal(a0),-(a7)	; Push Handle to delete
			jsr	DeleteItem			; Delete SYM_ENTRY
			tst.w	(a7)				; Delete Handle ?
			beq.s	\NoFree
				jsr	HeapFree		; Free Handle
\NoFree			addq.l	#2,a7				
			moveq	#1,d0				; TRUE
\End:	rts
\End2	moveq	#0,d0
	rts

Pourquoi le flag SF_LOCKED est vérifié, alors que la doc dit :
Note that this routine will delete symbols even if they are locked or in use!

Et la doc ne précise pas que le handle associé doit être détruit. C'est comme ça que fait AMS ? Pour moi, c'est une surprise, et à priori EExec est bogué à ce niveau...



Et est-ce que techniquement, ça serait possible d'effacer un fichier archivé ? ie sans avoir à le rebalancer en RAM, ce qui est quand même vachement contraignant, et parfois impossible => on se retrouve avec la situation super intelligente où l'on ne peut pas effacaer un fichier en flash car la RAM est pleine. tritop

2

La doc peut etre fausse en meme temps
avatar
Proud to be CAKE©®™


GCC4TI importe qui a problème en Autriche, pour l'UE plus et une encore de correspours nucléaire, ce n'est pas ytre d'instérier. L'état très même contraire, toujours reconstruire un pouvoir une choyer d'aucrée de compris le plus mite de genre, ce n'est pas moins)
Stalin est l'élection de la langie.

3

D'où le topic, je suppose... idee.gif
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

4

Qu'entends-tu par effacer un fichier archivé ?
- effacer sa place dans la VAT
- effacer sa place dans l'archive
- les deux ?

(mais oui, on peut très bien faire un symdel pour effacer son entrée dans la VAT puis effacer sa trace en flash)
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

5

Flanker (./4) :
Qu'entends-tu par effacer un fichier archivé ?
- effacer sa place dans la VAT - effacer sa place dans l'archive

Les deux mon colonel, ie j'ai un nom de fichier, et je veux faire disparaitre à la fois le symbole et le handle associé.
Flanker (./4) :
(mais oui, on peut très bien faire un symdel pour effacer son entrée dans la VAT puis effacer sa trace en flash)

Ah ? D'après le code de SymDel, ça marchera pas si l'entrée est archivée. D'après la doc de GCC4TI, on ne peut pas non plus :
Do not call SymDel to delete a folder, or twin or archived symbols (for these purposes, see FolderDel and SymDelTwin).

6

Oui, parce que ça va faire des handles orphelins dans la mémoire archive ; même si tu effaces le handle associé (comme si c'était un handle classique et non une archive) et que tu fais un reset de la calc, le fichier va revenir. Mais si tu utilises la fonction kivabien pour également effacer l'archive, il n'y a pas de souci :-)

Si tu veux faire les choses « proprement », tu vires le flag archive (ou le flag locked ?), mais je ne crois pas que ça va changer grand-chose…
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

7

Nan mais justement, je veux faire ça très bien, pas à l'arrache. Et même si je vire le handle de l'archive, il restera le symbole dont j'ai pas trop envie de toucher au flag pour le dégager (d'après le code de SymDel en ./1, faut virer tous les flags en fait)

8

Bah, c'est propre, non ? #ange#
(et si tu regardes le code de l'AMS, je ne suis pas sûr qu'il fasse autre chose ^^)
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

9

Ouep, je crois comprendre pourquoi le fichier peut réapparaitre, peut-être parce que <path\iflename> est codé en dur dans l'archive pour chaque entrée. Mais effacer ça à la main... c'est une liste chainée, ça va pas être génial...

10

AMHA, c'est le code de PedroM qui est incorrect (non conforme à la doc et donc incompatible avec AMS).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

11

Folco (./1) :
Et la doc ne précise pas que le handle associé doit être détruit. C'est comme ça que fait AMS ? Pour moi, c'est une surprise, et à priori EExec est bogué à ce niveau...

Le handle associé est détruit sous PedroM. C'est un bug d'AMS.
Folco (./1) :
Et est-ce que techniquement, ça serait possible d'effacer un fichier archivé ?

EM_delSym
(Note ca marche aussi pour les fichiers non archivés, et il n'y a pas de vérification si le fichier est locké ou in use).
Folco (./1) :
Pourquoi le flag SF_LOCKED est vérifié

Parce qu'un fichier vérouillé ou en in-use ne doit pas être détruit. C'est un bug d'AMS.

12

Raaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaah !!!!!!!!!!!!!!!!!!!!!!! yéééééééééééééééééééééééééééééééééé !!!!!!!!!!!!!

Là t'as tout bon sur toute la ligne PpHd, pour la peine je me fends de réinstaller un Win XP ce soir pour finir les tests. grin smile neutral sad cry
Sisi, je le fais grin

Enorme cette gestion !

Me reste plus qu'à voir comment appeler EM_delSym qui est PedroM only. Rah purée c'est énorme !

Merci beaucul !

13

Folco (./12) :
Me reste plus qu'à voir comment appeler EM_delSym qui est PedroM only. Rah purée c'est énorme !


Ouppppssss.... Je l'ai pas exporté...

14

pedrom@00xx ^^

15

Ouin avec TiConnect ça veut toujours pas marcher, même avec ta dernière mouture. cry

16

Folco (./15) :
Ouin avec TiConnect ça veut toujours pas marcher, même avec ta dernière mouture. cry

Je vais leur envoyer un DMCA take down pour refus d'interropabilité superguerrier

17

Folco (./14) :
pedrom@00xx ^^

Done:

void pedrom_002F(SYM_STR symname)
aka EM_delSym
Doc: erase any file, once and for all.

To test.

18

PpHd (./16) :
Je vais leur envoyer un DMCA take down pour refus d'interropabilité superguerrier.gif

Yeah ! trifouet
PpHd (./17) :
Done:

void pedrom_002F(SYM_STR symname)
aka EM_delSym
Doc: erase any file, once and for all.
To test.

Merci \o/

J'ai pas testé encore, mais j'ai déjà relu le code et celui des fonctions utilisées hier soir (EM_Abandon par exemple). Je te tiendrai au courant. ^^

Au passage, je suis bon pour faire un bugfix à EExec sad

19

Folco (./18) :
PpHd (./17) :
Done:

void pedrom_002F(SYM_STR symname)
aka EM_delSym
Doc: erase any file, once and for all.
To test.

Merci \o/

J'ai pas testé encore, mais j'ai déjà relu le code et celui des fonctions utilisées hier soir (EM_Abandon par exemple). Je te tiendrai au courant. ^^

Au passage, je suis bon pour faire un bugfix à EExec frown.gif


Finalement je ne vais pas exporté cette fonction.
Je vais plutôt modifier pedrom_unlink pour qu'il utilise cette fonction au lieu de SymDel.

20

P****n, j'ai déjà fait les modifs et recompilé PedroM... grin

Ah... et faut passer un FILE à unlink... Ca sort de mes structures de données habituelles. Mais au final, c'est pas très grave, tant qu fopen ne bouffe pas un octet de mémoire je ne sais où pour ouvrir un fichier. smile

21

C'est un const char *, ie. un pointeur sur le nom du fichier.

22

Ah ok. J'avais vu ça dans le man :
SYNOPSIS
       unlink FICHIER...

Et je pensais que c'était un FILE *

C'est cool. smile

23

C'est un bogue de PedroM de ne pas être conforme à la doc de SymDel. roll
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

24

C'est pas parce que AMS a été codé avec les pieds qu'il fau tfaure exprès d'écrire de la merde non plus... En l'occurence, PedroM propose une fonctionnalité inexistante sur AMS.

25

Une "fonctionnalité" de ne pas permettre quelque chose, j'appellerais ça plutôt une limitation. roll
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

26

Kevin Kofler (./25) :
Une "fonctionnalité" de ne pas permettre quelque chose, j'appellerais ça plutôt une limitation. roll

Oooooh... elle est belle, celle-là grin

Martial pense que c'est bien, tu penses que ce n'est pas bien, et comme dans la grande majorité des cas, il y a des arguments pour défendre les deux positions...
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

27

Kevin Kofler (./25) :
Une "fonctionnalité" de ne pas permettre quelque chose, j'appellerais ça plutôt une limitation. roll

bigeyes

Effacer directement un fichier en flash c'est une limitation ? Ne pas pouvoir le faire sous AMS est une fonctionnalité ?

28

Pouvoir effacer directement un fichier archivés avec une fonction spécifique à PedroM est une fonctionnalité (mais à ma connaissance, SymDel de AMS 3.10 le permet aussi, en demandant confirmation à l'utilisateur par un dialogue), le fait que SymDel n'efface pas les fichiers verrouillés en RAM non.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité