21Fermer23
Kevin KoflerLe 11/01/2009 à 21:21
Folco (./9) :
Je me suis trouvé avec une merde : impossible d'utiliser les fonctions de string.h ! En effet, dans le source, rien ne se termine par #0, c'est EOF... On peut donc avoir "|" (commentaires), ";" (équivalent à \n, mais on reste sur la même ligne), un espace, une tabulation, une virgule dans certains cas (xdef), EOL, etc... Donc une solution consiste à vérifier la présence de tous ces éléments pour détecter la fin de la chaine, un peu partout dans le code, à chaque fois qu'on doit vérifier une chaine (gros bordel bien chiant à écrire, sûrement très très drôle à débugguer). L'autre solution consiste à recopier dans un buffer (de quelle taille ?) et de faire terminer par un #0, puis d'utiliser des fonctions classiques de comparaisons ou de recherche. Bref, c'est la joie !!! grin

http://tigcc.ticalc.org/doc/string.html#strncmp
Lionel Debroux (./14) :
ReadLine: 
	cmpi.b	#0x0d,(%a3)				|EOL ? 
	bne.s	NoNewline				|no 
		addq.l	#1,%a3				|else get next char 
		addq.w	#1,%d4				|update line counter 
		bra.s	ReadLine			|and loop 
NoNewline:

Si ReadLine est (et c'est probable) un label de début de fonction, non

NewLine:
	addq.l	#1,%a3				| get next char 
	addq.w	#1,%d4				|update line counter 

ReadLine: 
	cmpi.b	#0x0d,(%a3)				|EOL ? 
	beq.s	Newline				|no 
NoNewline:

magic

sick
[ul][li]C'est moche de mettre du code d'une fonction en dehors de la fonction.[/li][li]La fonction (dans les 2 versions) n'est pas conforme à la convention d'appel (pas le droit de modifier %a3 et %d4 dans une fonction).[/li][/ul]