Main Page | Class List | File List | Class Members | File Members | Related Pages

Bug List

Member expend_lang_sys (UtLangSys *lang_sys)
EC Il n'y a pas de test du retour de realloc ! La fonction pouvant planter (realloc), elle doit renvoyer un code d'erreur. AC corrigé.

Member parse_string_line (char **scan_in, char **dst)
EC Dans le cas ou la premiere ligne d'un buffer lu en mémoire ne contienne pas de données pertinantes (ligne vide, ligne d'espace, etc.), la fin de ligne serait touvée, puis lors de la boucle de recherche du dernier caractère espace ou tabulation, on remonterait à *(buffer-1) ce qui entrainerait une segmentation fault (lors de la commande ou lors du free). AC La fonction n'est appelé que sur une ligne débutant par une commande, donc de la mémoire lisible.

EC le retour de strndup() n'est pas testé ! AC pfff... pour un dizaine d'octet max... c'est de la diptèrophilie...

Member ut_size_char (char **src_p, UtCharsetIndex src_charset, UtCharsetIndex dst_charset)
AC voir ut_size_unicode() quand retour = 0

Member ut_size_difference (UtText *src_text, UtText *dst_text)
AC voir ut_size_unicode() quand retour = 0

Member ut_size_unicode (ulong unicode)
EC Il n'y a pas de gestion de l'ordre des octets dans le long, ceci ne fonctionne donc pas sous mac (à moins que cela soit fait en amont ?). AC On teste ici la valeur scalaire, c'est à dire un long et rien d'autre, donc pas de prb d'endian.

EC Que ce passe-t-il si unicode>0x10FFFF ? La fonction renvoi 0... si la fonction appelant ne le test pas, on obtiendra une boucle sans fin. Il vaut mieux un programme qui plante qu'un programme qui freeze, la valeur 0 n'est donc pas indiquée. AC Pas de freeze possible! Par contre les carctères illégaux peuvent être remplacé par un carctère au choix de l'utilisateur, il faudrait donc renvoyer la taille de ce caractère d'erreur, afin qu'un éventuel malloc ne soit pas trop court. Mais il faudrait peut être plutôt gérer ça dans les autres fonctions pour ne pas avoir à rajouter une structure UtText en argument.

Member ut_unicode_to_utf8c (ulong unicode, char **dst_p)
EC il y a des cas d'erreur, donc il faut un retour, si l'on tombe dans le cas d'erreur vu qu'il n'y a plus d'incrémentation de dst_p on risque une boucle sans fin. AC Pas de boucle sans fin, et erreur peu grave.

Member ut_utf8c_to_unicode (char **src_p)
EC Dans le cas d'un caractère invalide, si c'est le premier il est comptabilisé, mais si ce n'est pas le premier, il ne l'est pas. C'est vraiment ce que l'on veut ? AC ??? Si il est compatibilisé! (voir "while (size--) {...}")

Member ut_load_charset_file (const char *filename, char **buffer)
EC il n'y a qu'un appel à read or lorsque read!=size ce n'est pas une erreur si errno vaut EAGAIN. AC read() ne peut pas renvoyer EAGAIN si le fichier n'a pas été open() en mode EAGAIN (norme POSIX)

Member ut_print_binary (ulong src)
pas de gestion big/little endian

Member ut_load_stdin_pass (UtText *text)
EC read() peut renvoyer 0 sans indiquer une fin de fichier (errno==EAGAIN) et le test while (code && cont); est donc faux ! AC read() ne peut pas renvoyer EAGAIN si le fichier n'a pas été open() en mode EAGAIN (norme POSIX)

Generated on Fri Feb 25 18:30:18 2005 for Utrac by  doxygen 1.3.9