$header "const char *chkr_message[]"
$declare "extern const char *chkr_message[];"
$hformat "#define %1	chkr_message[%n]"

######### pour parse-args.c
M_COPYRIGHT		"Checker %s (%s) Copyright (C) 1996 Tristan Gingold.\n"
M_IS_RUNNING		"`%s' s'éxécute "
M_UNKNOWN_OP		"Checker ne connaît pas cette option: %s\n"
M_UNKNOWN_DISABLE	"Checker ne connaît pas cette option `disable': %s\n"
M_LOPTION_NEED_ARG	"L'option `%s' nécessite un argument.\n"
M_SOPTION_NEED_ARG	"L'option `%s' (forme courte utilisée) nécessite un argument.\n"
M_LOPTION_NALLOW_ARG	"L'option `%s' ne permet pas d'argument.\n"
M_SOPTION_NALLOW_ARG	"L'option `%s' (forme courte utilisée) ne permet pas d'argument.\n"
M_OPTION_ILLEGAL	"Illégale option `%s'.\n"
M_PRGNAME_NOT_FOUND	"Checker ne peut trouver le nom du programme.\n"
M_ARGV0_IS		"Mon nom (argv[0]) est %s\n"
M_STOPPING_MYSELF	"Arrêt avant main(). Pour continuer, `fg' ou `kill -%d %d'\n"
M_ALREADY_INIT		"Crt0.o a déjà été exécuté: bouclage erroné. Arrêt\n"
M_TOTAL_GARBAGE_TIME	"Temps total pour la detection des blocs orphelins: %d sec(s) %d usecs.\n"
######### pour chkr-syscall.c
M_IOCTL_UNIMPLEMENT	"Désolé, cet ioctl (0x%x) n'est pas implémenté.\n"
M_FCNTL_UNIMPLEMENT	"Désolé, ce fcntl (0x%x) n'est pas implémenté.\n"
M_SYSCALL_UNIMPLEMT	"Désolé, cet appel système (0x%x) n'est pas implémenté.\n"
M_IPC_UNIMPLEMENT	"Désolé, cet appel ipc (0x%x) n'est pas disponible.\n"
M_SEND_DESCRIPTION	"Envoyez une description à l'auteur de Checker, SVP.\n"
######### pour symtab.c
M_STACK_FRAMES_ARE	"L'historique des fonctions en cours est:\n"
M_CANT_FIND_MAIN	"N'arrive pas à trouver main() dans la pile, raté!\n"
M_CANT_OPEN_BINARY	"Ne peut ouvrir le fichier binaire `%s'.\nAbort\n"
M_CANT_F_GOOD_INFO	"Ne peut trouver les bonnes informations dans le fichier image.\n"
M_PC__NOSYMTAB		"$\tpc=0x%08x\n"
M_PC___IN___AT_		"\tpc=0x%08x dans %s() dans %s:%d\n"
M_UNKNOWN		"Inconnu"
M_BAD_STR		"<Mauvais index>"
######### pour utils.c
M_UNKNOWN_MALLOC0	"L' argument %s pour l'option `--malloc0=' est inconnu.\n"
M_MALLOC0_WARNING	"Warning: vous utilisez %s avec une taille de 0\n"
M_C_BAD_MPLINK		"Le lien 'prev' du mdesc 0x%x est mauvais.\n"
M_C_BAD_LAST_MDESC	"Le dernier mdesc n'est pas vraiment le dernier...\n"
M_C_CHECK_MDESC		"Vérification du mdesc 0x%08x:\n"
M_C_FB_OR_LB_BAD	"_firstblock ou _lastblock est mauvais.\n"
M_C_FM_OR_LM_BAD	"_firstmdesc ou _lastmdesc est mauvais.\n"
M_C_NO_BLOCKS		"Pas de blocs. Désolé.\n"
M_C_FBLOCK_BAD		"_firstblock est mauvais.\n"
M_C_LBLOCK_BAD		"_lastblock est mauvais.\n"
M_C_BAD_LINEARITY	"Détection d'une mauvaise linéarité entre les blocs %u et %u.\n"
M_C_BAD_PLINK		"Le lien `prev' du bloc %u est mauvais.\n"
M_C_BAD_BLOCK_SIZE	"La taille du bloc 0x%x est mauvaise.\n"
M_C_BAD_LAST_BLOCK	"Le dernier bloc n'est pas vraiment le dernier...\n"
M_C_STOP_HERE		"Arrêt.\n"
M_C_U_AGED_BLOCK	"Le bloc %u est un bloc âgé non répertorié.\n"
M_C_BAD_PL_YOUNGB	"Mauvais lien `prev' pour le plus jeune bloc %u.\n"
M_C_NON_AGED_BLOCK	"Le bloc %u non âgé est dans la liste des blocs agés.\n"
M_C_BAD_NUM_AGED_B	"Mauvais nombre de blocs âgés (%d au lieu de %d).\n"
M_C_TOO_AGED_BLOCK	"Il y a trop de blocs âgés (%d au lieu de %d).\n"
M_C_BAD_PL_F_FREEB	"Mauvais lien `prev' dans le premier bloc libre %u.\n"
M_C_FREEB_BAD_STAT	"Bloc libre 0x%x a un mauvais état.\nArrêt.\n"
M_C_BLOCK_BAD_LIST	"Bloc 0x%x dans une mauvaise liste.\n"
M_C_BAD_PLIN_FREEB	"Mauvais lien `prev' dans le bloc libre %u.\n"
M_C_BAD_HEAPINDEX	"_heapindex est mauvais.\n"
M_C_UNKNOWN_FREEB	"Le bloc %u est un bloc libre inconnu.\n"
M_C_FREE_AND_FREE	"Le bloc libre 0x%x est suivi par un autre bloc libre.\n"
M_C_NO_BUSY_BLOCK	"Il n'y a pas de blocs utilisés.\n"
M_C_BUSY_BLOCK_ARE	"Les blocs utilisés sont:\n"
M_C_BLOC_N_IS_BUSY	"Bloc (adr: 0x%x, taille: %uKb) utilisé.\n"
M_C_BLOCK_SIZ_LESS	"Bloc de taille inférieure à %d octets.\n"
M_C_BLOCK_AT_SIZE	"Bloc en 0x%x, taille %dKb\n"
######### pour free.c
M_BAD_NLINK_4BLOCK	"Mauvais lien `next' pour le bloc %u.\n"
M_FOUND_AGED_BLOCK	"Il y a un bloc %u non âgé dans la liste des blocs âgés.\n"
######### pour garbage.c
M_GARBAGE_TIME		"Temps pour la détection des blocs orphelins: %d sec(s) %d usecs.\n"
M_NO_LEAK		"Il n'y a pas de pertes de mémoire.\n"
M_ONE_LEAK		"Il y a une perte de mémoire dont %d potentielle.\n"
M_NBR_LEAKS		"Il y a %d pertes de mémoire dont %d potentielle(s).\n"
M_LEAKS_USE_N_BYTE	"La perte totalise %u octets (%u Ko / %u Ko).\n"
M_P_MEM_IS_LOST		"Ainsi, %2d.%02d%% de la mémoire est perdue.\n"
M_FOUND_N2_BYTES	"Checker a trouvé %u * %u octets.\n"
M_LOST_IS_PTR		"La perte est en ptr=0x%x\n"
M_BYTES_NOT_DISPLAYED	"Il y a %d octets non affichés.\n"
M_NO_INUSE		"Il n'y a pas de blocs utilisés.\n"
M_ONE_INUSE		"Il y a 1 bloc utilisé.\n"
M_NBR_INUSE		"Il y a %d blocs utilisés.\n"
M_INUSE_USE_N_BYTE	"Les blocs utilisés utilisent %u octets (%u KO) / %u KO.\n"
M_CANT_USE_SYMTAB	"Ne peut accéder à la table des symboles.\n"
######### for maccess.c
M_NO_BM_4ADDRESS	"Pas de bitmap pour cette adresse.\n"
M_TRY_TO_EXECUTE	"Tentative d'éxécuter une fonction en 0x%x dans %s.\n"
M_BO_NOT_ALIGNED	"Hmmm, bit_offset n'est pas aligné!!! Ignoré.\n"
M_ERR_SET_RIGHT		"Erreur dans `chkr_set_right'\n"
M_BAD_LEN_IN_SR		"len > bitmem. length or len == 0\n"
M_ACC_DATA_ALIGN	"Lors d'un accès à 0x%08x, taille: %d, alignement: %d.\n"
M_PROD_BUS_ERR		"CECI VA PRODUIRE UNE ERREUR DE BUS.\n"
M_SRC_IN_CP_BM		"Erreur avec `src' dans `chkr_copy_bm'\n"
M_DEST_IN_CP_BM		"Erreur avec `dest' dans `chkr_copy_bm'\n"
M_ALIGN_IN_CP_BM	"Mauvais alignement dans `chkr_copy_bm'\n"
M_PROF_INFO_HERE	"Informations de profil:\n"
M_HANDLED_N_TIME	"Le %s a été adressé %d foi.\n"	# pas de s
M_HANDLED_MEM		"Votre programme a adressé %u fois la mémoire.\n"
M_BM_CALLED		"La limite de la pile a été réajustée %u fois.\n"
M_ACC_ERR_REP		"%u erreurs (reportées) d'accès à la mémoire.\n"
M_ACC_ERR_TOT		"%u erreurs d'accès à la mémoire.\n"
M_ACC_MALLOC_CALLS	"%u appels à malloc/mmalloc.\n"
M_ACC_FREE_CALLS	"%u appels à free/mfree.\n"
M_ACC_REALLOC_CALLS	"%u appels à realloc/mrealloc.\n"
M_NULL_ZONE		"la zone NULL"
M_TEXT_SEGMENT		"le segment de texte"
M_DATA_SEGMENT		"le segment de données"
M_HEAP_BRK_SEGMENT	"le tas (sbrk)"
M_HEAP_MAP_SEGMENT	"le tas (mmap)"
M_STACK_SEGMENT		"la pile"
M_MMAP_SEGMENT		"une zone mmap"
M_SHM_SEGMENT		"une mémoire partagée"
M_MAPPED_BY		"La région a été mappée par:\n"
M_ATTACHED_BY		"La mémoire partagée a été attachée par:\n"
M_BLOCK_ALLO_FRM	"Le bloc a été alloué par:\n"
M_KNOW_STACK_LIM	"limite de pile connue= %08p\n"
M_AFTER_LAST_BLOCK	"après le dernier bloc.\n"
M_INSIDE_FBLOCK		"dans un bloc libre.\n"
M_BLOCK_ID		" (debut: 0x%x, taille: %u, mdesc: 0x%x).\n"
M_BEFORE_BLOCK		"%d octets avant le bloc"
M_INSIDE_BLOCK		"%d octets dans le bloc"
M_AFTER_BLOCK		"%d octets après le bloc"
M_N_FREE_CALLED		"free() a été appelé %d fois depuis que ce bloc a été libéré par:\n"
M_MDESC_CREATED_BY	"Ce tas mmalloc a été créé par:\n"
M_MEM_ACCESS_ERR	"Erreur d'accès à la mémoire: %s\n"
M_ACC_ERR_WHERE		"Lors d'une %s de %d octet(s) à l'adresse %08p, dans %s.\n"
M_USE_NULL_PTR		"Vous avez certainement utilisé un pointeur NULL.\n"
M_PROD_SEG_FAULT	"CECI VA PRODUIRE UNE FAUTE DE SEGMENTATION.\n"
M_CANT_MODIFY_IT	"Vous ne pouvez pas la modifier.\n"
M_SIZES_FOR_OOM		"Taille totale de la mémoire: %u Kb;\ntaille des blocs agés: %uKb;\ntaille demandée: %d b\n"
############# for fd.c
M_FILE_OPENED_BY	"Ce fichier a été créé par:\n"
M_FILE_CLOSED_BY	"Ce fichier a été fermé par:\n"
############# for vprintf.c
M_FROM_CHECKER		"De Checker: (pid:%s)\n"
############# for signal.c
M_REC_SIGNAL		"Signal %d (%s) reçu: "
M_SIG_IGNORED		"(ignoré).\n"
M_SIG_DEFAULT		"(action par défaut: "
M_SIG_TERMINATE		"termine "
M_SIG_CORE		"core "
M_SIG_STOP		"stop "
M_SIG_IGNORE		"ignoré "
M_SIG_FORCED		"forcé "
M_SIG_SYNCHRON		"synchrone "
M_SIG_CAUGHT		"(pris).\n"
M_UNKNOWN_SIG		"Signal `%s' inconnu.\n"
M_BAD_REC_SIG		"Le signal %d reçu est totalement inconnu! Abort\n"
M_SYN_REC_SIG		"Le signal synchrone %s a été reçu dans Checker. Anort\n"
