#include #include #include "proto.h" #include "proto.m" static int alt_nb; static char *alt_cls[50]; static char *alt_fname[50]; /* Enregistre un nom de fichier à générer plutot que le nom de la classe. Normalement on peut produire un fichier .pp par classe. Chaque fichier porte le nom de la classe. Pour MSDOS ce n'est pas approprié à cause de la limitation des noms de fichier. */ void cplus_setalt (const char *spec) { char buf[300]; char *pt; strcpy (buf,spec); pt = strchr(buf,'='); if (pt == NULL || strlen(pt+1) == 0 || pt - buf == 0){ fprintf (stderr,MSG_B(E_IVLDSPEC ,"Spécification invalide (-lclasse=fichier)\n-l%s\n" ,"Invalid spécification (-lclass=fname)\n-l%s\n") ,spec); }else{ *pt++ = '\0'; alt_cls[alt_nb] = strdup(buf); alt_fname[alt_nb] = strdup(pt); alt_nb++; } } /* Etablit le nom d'un header C++ à partir de la classe ou d'un nom choisit par l'usager */ void cplus_setname ( CPLUS *cp, const char *nomcls, const char *ext, char *buf) { int i; for (i=0; icls; for (i=0; inbcls; i++,cls++){ if (strcmp(buf,cls->nomf)==0){ fprintf (stderr,MSG_B(E_CLSCONFLICT ,"Conflit entre classes %s et %s\n%s == %s\n" ,"Conflicting class %s and %s\n%s == %s\n") ,cls->nom,nomcls,buf,buf); break; } } } }