Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier:
Aller au code source de ce fichier.
Macros | |
#define | BUFSIZE 4096 |
Fonctions | |
void | Projet_Nouveau () |
void | Projet_Choisir () |
void | Projet_Ouvrir (gchar *chem) |
void | Projet_Enregistrer () |
void | Projet_Generate_Makefile () |
void | Creer_Pipe (gchar *str) |
void | Projet_Executer () |
void | Projet_CompilExec () |
void | Projet_StopExec () |
void | Projet_Clean () |
|
Référencé par Creer_Pipe(). |
|
Définition à la ligne 303 du fichier Projet.h. Références BUFSIZE, et Liste_Add_Msg(). Référencé par Projet_Compiler(), et Projet_Executer(). 00304 { 00305 /* 00306 gint exit_status; 00307 gchar *sout = NULL; 00308 gchar *serr = NULL; 00309 GError *err = NULL; 00310 gchar **tab; 00311 gint n=1; 00312 //g_print("str: %s", str); 00313 if (g_spawn_command_line_sync ("ls", &sout, &serr, &exit_status, &err)) 00314 { 00315 if (exit_status==0) 00316 { 00317 g_print("%s", sout); 00318 tab = g_strsplit (sout, "\n", 0); 00319 while (tab[n-1]) 00320 { 00321 Liste_Add_Msg("%s", tab[n-1]); 00322 n++; 00323 } 00324 } 00325 else Liste_Add_Msg("Exit code: %d", exit_status); 00326 } 00327 */ 00328 00329 #define BUFSIZE 4096 00330 FILE * pip; 00331 gchar ligne[BUFSIZE]; 00332 gchar buf[BUFSIZE]; 00333 gint n=1, x=0, i; 00334 00335 //gtk_list_store_clear(GTK_LIST_STORE(model)); 00336 pip = popen(str, "r"); 00337 if (!pip) 00338 Liste_Add_Msg ("Probleme de pipe"); 00339 else 00340 { 00341 while(n) 00342 { 00343 n = fread (buf, 1, BUFSIZE, pip); 00344 for (i=0; i<=n; i++) // Splitte le retour: 1 ligne = 1 entrée. 00345 { 00346 if (buf[i]==0XA || i==n) 00347 { 00348 if (x) 00349 { 00350 Liste_Add_Msg (g_locale_to_utf8 (ligne, x, NULL, NULL, NULL)); 00351 x=0; 00352 } 00353 } 00354 else ligne[x++]=buf[i]; 00355 } 00356 } 00357 00358 // ferme le pipe et récupère son code de sortie 00359 i = pclose(pip); 00360 if (i==0) 00361 str = g_strdup("OK"); 00362 else 00363 str = g_strdup_printf("Exit code: %d", i); 00364 Liste_Add_Msg(str); 00365 g_free(str); 00366 } 00367 }
Voici le graphe d'appel pour cette fonction: |
|
Définition à la ligne 16 du fichier Projet.h. Références DLG_Open(), et Projet_Ouvrir(). Référencé par Creer_Menu(), et Creer_ToolBar(). 00017 { 00018 gchar *chem = DLG_Open(TRUE); 00019 if (strlen(chem)) Projet_Ouvrir(chem); 00020 g_free(chem); 00021 }
Voici le graphe d'appel pour cette fonction: |
|
Définition à la ligne 397 du fichier Projet.h. Références idACTIF, idOngletACTIF, NB, NBfichiersOuverts, ProjetARGS, ProjetCHEMIN, ProjetEXEname, ProjetINCS, ProjetLIBS, ProjetNOM, ProjetNOMssExt, ProjetOPT, et ProjetTYPE. Référencé par Creer_Menu(), Creer_ToolBar(), Projet_Nouveau(), et Projet_Ouvrir(). 00398 { 00399 guint i; 00400 00401 for (i=0; i<NB; i++) 00402 { 00403 g_free(nom[i]); 00404 g_free(chemin[i]); 00405 ext[i]=0; 00406 estModifie[i]=0; 00407 if (IDOnglet[i]>-1) 00408 gtk_notebook_remove_page (GTK_NOTEBOOK(Onglets), 0); 00409 IDOnglet[i]=-1; 00410 } 00411 00412 if (ProjetNOM) g_free(ProjetNOM); ProjetNOM=NULL; 00413 if (ProjetNOMssExt) g_free(ProjetNOMssExt); ProjetNOMssExt=NULL; 00414 if (ProjetCHEMIN) g_free(ProjetCHEMIN); ProjetCHEMIN=NULL; 00415 if (ProjetOPT) g_free(ProjetOPT); ProjetOPT=NULL; 00416 if (ProjetARGS) g_free(ProjetARGS); ProjetARGS=NULL; 00417 if (ProjetINCS) g_free(ProjetINCS); ProjetINCS=NULL; 00418 if (ProjetLIBS) g_free(ProjetLIBS); ProjetLIBS=NULL; 00419 if (ProjetEXEname) g_free(ProjetEXEname); ProjetEXEname=NULL; 00420 00421 NB = NBfichiersOuverts = 0; 00422 idACTIF = idOngletACTIF = ProjetTYPE = -1; 00423 00424 gtk_tree_store_clear(pTreeStore); 00425 gtk_list_store_clear(GTK_LIST_STORE(model)); 00426 00427 //Lister_Tableau(); 00428 }
|
|
Définition à la ligne 382 du fichier Projet.h. Références Projet_Compiler(), et Projet_Executer(). Référencé par Creer_Menu(), et Creer_ToolBar(). 00383 { 00384 Projet_Compiler(); 00385 Projet_Executer(); 00386 }
Voici le graphe d'appel pour cette fonction: |
|
Définition à la ligne 135 du fichier Projet.h. Références Fichier_Enregistrer_Tous_Les_Fichier(), Liste_Add_Msg(), NB, ProjetARGS, ProjetEXEname, ProjetICON, ProjetINCS, ProjetLIBS, ProjetNOM, ProjetOPT, et ProjetTYPE. Référencé par Creer_Menu(), et Creer_ToolBar(). 00136 { 00137 Fichier_Enregistrer_Tous_Les_Fichier(); 00138 00139 //Ecraser fichier projet 00140 FILE *pF; 00141 pF = fopen(ProjetNOM,"w"); 00142 00143 fprintf(pF, "TYPE:%d\n", ProjetTYPE); 00144 fprintf(pF, "EXE:%s\n", ProjetEXEname); 00145 if (ProjetICON) fprintf(pF, "ICON:%s\n", ProjetICON); 00146 if (ProjetOPT) fprintf(pF, "OPT:%s\n" , ProjetOPT); 00147 if (ProjetARGS) fprintf(pF, "ARGS:%s\n", ProjetARGS); 00148 if (ProjetINCS) fprintf(pF, "INCS:%s\n", ProjetINCS); 00149 if (ProjetLIBS) fprintf(pF, "LIBS:%s\n", ProjetLIBS); 00150 fprintf(pF, "\n"); 00151 00152 gshort n; 00153 for (n=1; n<NB; n++) 00154 if (ext[n]==-1) fprintf(pF, "\nDOSSIER:%s\n", chemin[n]); 00155 else fprintf(pF, "FILE:%s\n" , chemin[n]); 00156 00157 /* 00158 FILE:src/EdBx.c 00159 00160 DOSSIER:Editor 00161 FILE:src/Globals.h 00162 */ 00163 fclose(pF); 00164 Liste_Add_Msg ("Projet enregistré."); 00165 }
Voici le graphe d'appel pour cette fonction: |
|
Définition à la ligne 371 du fichier Projet.h. Références Creer_Pipe(), Liste_Add_Msg(), et ProjetEXEname. Référencé par Creer_Menu(), Creer_ToolBar(), et Projet_CompilExec(). 00372 { 00373 gchar *S=NULL; 00374 if (g_path_is_absolute(ProjetEXEname)) S = g_strdup(ProjetEXEname); 00375 else S = g_strdup_printf("./%s 2>&1", ProjetEXEname); 00376 Liste_Add_Msg ("Exécution de %s", S); 00377 Creer_Pipe(S); 00378 }
Voici le graphe d'appel pour cette fonction: |
|
Définition à la ligne 211 du fichier Projet.h. Références AppCOMPILER, AppLINKER, EXTs, getNomSansExtension(), Liste_Add_Msg(), NB, ProjetEXEname, ProjetINCS, ProjetLIBS, ProjetOPT, et ProjetTYPE. Référencé par Creer_Menu(), et Creer_ToolBar(). 00212 { 00213 gshort n,b=0; 00214 gchar *noms[100]; 00215 //gchar *chems[100]; 00216 FILE *pF; 00217 gint exit_status; 00218 gchar *serr = NULL; 00219 GError *err = NULL; 00220 gchar *INCS = NULL; 00221 gchar *LIBS = NULL; 00222 gchar *EXEname = g_path_get_basename(ProjetEXEname); 00223 00224 //Identify source files list 00225 for (n=0; n<NB; n++) 00226 { 00227 if (ext[n]==1) noms[b++] = g_strdup(getNomSansExtension(nom[n])); 00228 } 00229 00230 INCS = g_path_get_dirname (ProjetEXEname); 00231 if (INCS) INCS = g_strdup_printf("%s/makefile", INCS); 00232 00233 pF = fopen(INCS, "w"); 00234 if (!pF) return; 00235 00236 fprintf(pF, "# Generated by EdBx\n\n"); 00237 fprintf(pF, "CC=%s\n", AppCOMPILER); 00238 fprintf(pF, "OPT="); if (ProjetOPT) fprintf(pF, "%s", ProjetOPT); 00239 fprintf(pF, "\nLINKER=%s\n\n", AppLINKER); 00240 00241 // INCS --------------------- 00242 fprintf(pF, "INCS="); 00243 if (ProjetINCS) fprintf(pF, "%s", ProjetINCS); 00244 00245 if (ProjetTYPE==1) // EXE GTK 00246 { 00247 00248 if (g_spawn_command_line_sync ("pkg-config --cflags gtk+-2.0", 00249 &INCS, &serr, &exit_status, &err)) 00250 { 00251 if (exit_status!=0) Liste_Add_Msg( 00252 "Generate_Makefile: pkg-config Exit code: %d.\n", exit_status); 00253 else if (INCS) fprintf(pF, "%s", INCS); 00254 } 00255 else Liste_Add_Msg("Generate_Makefile: g_spawn_command_line_sync()" 00256 " retourne FALSE!\n"); 00257 } 00258 00259 00260 // LIBS ---------------------- 00261 fprintf(pF, "\n\nLIBS="); 00262 if (ProjetLIBS) fprintf(pF, "%s", ProjetLIBS); 00263 if (ProjetTYPE==1) // EXE GTK 00264 { 00265 if (g_spawn_command_line_sync ("pkg-config --libs gtk+-2.0", 00266 &LIBS, &serr, &exit_status, &err)) 00267 { 00268 if (exit_status!=0) Liste_Add_Msg( 00269 "Generate_Makefile: pkg-config Exit code: %d.\n", exit_status); 00270 else if (LIBS) fprintf(pF, "%s", LIBS); 00271 } 00272 else Liste_Add_Msg("Generate_Makefile: g_spawn_command_line_sync()" 00273 " retourne FALSE!\n"); 00274 } 00275 00276 00277 00278 fprintf(pF, "\n\n%s:", EXEname); 00279 for (n=0; n<b; n++) fprintf(pF, " %s.o", noms[n]); 00280 00281 fprintf(pF, "\n\t${LINKER} ${OPT} ${LIBS}"); 00282 for (n=0; n<b; n++) fprintf(pF, " %s.o", noms[n]); 00283 fprintf(pF, " -o %s\n\n", EXEname); 00284 00285 for (n=0; n<b; n++) 00286 { 00287 fprintf(pF, "%s.o: %s.%s\n", noms[n], noms[n], EXTs[1]); 00288 00289 if (g_strcasecmp(AppCOMPILER,"gcc")==0) 00290 fprintf(pF, "\t${CC} ${OPT} ${INCS} -c %s.c -o %s.o\n\n", noms[n], noms[n]); 00291 else if (g_strcasecmp(AppCOMPILER,"fasm")==0) 00292 fprintf(pF, "\t${CC} ${OPT} ${INCS} %s.%s %s.o\n\n", noms[n], EXTs[1], noms[n]); 00293 00294 g_free(noms[n]); 00295 } 00296 00297 fclose(pF); 00298 Liste_Add_Msg("Makefile créé."); 00299 }
Voici le graphe d'appel pour cette fonction: |
|
Définition à la ligne 4 du fichier Projet.h. Références Ajouter_TreeviewItem(), AppICONs, Projet_Clean(), ProjetARGS, ProjetNOMssExt, et ProjetTYPE. Référencé par Creer_Menu(), et Creer_ToolBar(). 00005 { 00006 Projet_Clean(); 00007 00008 ProjetTYPE = 0; 00009 ProjetNOMssExt = g_strdup("Projet"); 00010 ProjetARGS = g_strdup("-Wall -s"); 00011 iterProj = Ajouter_TreeviewItem(NULL,ProjetNOMssExt,NULL,AppICONs[1]); 00012 }
Voici le graphe d'appel pour cette fonction: |
|
Définition à la ligne 25 du fichier Projet.h. Références Ajouter_ELEMENT(), Ajouter_TreeviewItem(), App_Lister_Tableau(), AppICONs, AppUNDOLEVELS, DLG_error(), getNomSansExtension(), NB, Projet_Clean(), ProjetARGS, ProjetCHEMIN, ProjetEXEname, ProjetICON, ProjetINCS, ProjetLIBS, ProjetNOM, ProjetNOMssExt, ProjetOPT, ProjetTYPE, et ProjetUseMAKEFILE. Référencé par main(), et Projet_Choisir(). 00026 { 00027 FILE *pF=NULL; 00028 gchar c, mot[200], *tmp=NULL; 00029 guchar flag=0, b=0; 00030 GtkTreeIter pere; 00031 00032 g_print("Ouverture projet : %s\n", chem); 00033 if ( !(pF = fopen (chem,"r")) ) 00034 { 00035 DLG_error (NULL, "Impossible d'ouvrir %s", chem); 00036 return; 00037 } 00038 00039 // cleanup de tous les onglets 00040 Projet_Clean(); 00041 memset(mot,0,200); 00042 00043 // récupère le nom du projet ouvert 00044 ProjetNOM = g_locale_to_utf8 (g_path_get_basename(chem), -1, NULL, NULL, NULL); 00045 // en déduit nom sans extension 00046 ProjetNOMssExt = getNomSansExtension(ProjetNOM); 00047 // récupère le chemin complet du projet 00048 ProjetCHEMIN = g_locale_to_utf8 (chem, -1, NULL, NULL, NULL); 00049 if (chem) g_free(chem); 00050 00051 //(1) Insérer nouvelle entrée dans le tableau 00052 Ajouter_ELEMENT(ProjetNOM, ProjetCHEMIN, -1); 00053 //(2) Insérer nouvelle entrée dans le treeview 00054 iterProj = Ajouter_TreeviewItem(NULL, ProjetNOMssExt, ProjetCHEMIN, AppICONs[1]); 00055 pere = iterProj; // Pour projet sans sous-dossier :) 00056 00057 // parcourt le fichier pour insérer les autres entrées au TreeView 00058 while ((c = fgetc (pF)) != EOF) 00059 { 00060 if (c == ':') 00061 { 00062 if (g_strcasecmp(mot, "TYPE" )==0) flag=1; 00063 else if (g_strcasecmp(mot, "OPT" )==0) flag=2; 00064 else if (g_strcasecmp(mot, "DOSSIER" )==0) flag=3; 00065 else if (g_strcasecmp(mot, "FILE" )==0) flag=4; 00066 else if (g_strcasecmp(mot, "EXE" )==0) flag=5; 00067 else if (g_strcasecmp(mot, "ARGS" )==0) flag=6; 00068 else if (g_strcasecmp(mot, "INCS" )==0) flag=7; 00069 else if (g_strcasecmp(mot, "LIBS" )==0) flag=8; 00070 else if (g_strcasecmp(mot, "MAKEFILE" )==0) flag=9; 00071 else if (g_strcasecmp(mot, "UNDOLEVELS")==0) flag=10; 00072 else if (g_strcasecmp(mot, "ICON" )==0) flag=11; 00073 else flag=0; 00074 memset(mot,0,b); b=0; 00075 } 00076 else if (c ==0XA) 00077 { 00078 if (flag==1) // TYPE PROJET //////////////////////////////////////// 00079 { 00080 tmp = g_locale_to_utf8 (mot, -1, NULL, NULL, NULL); 00081 ProjetTYPE = g_ascii_strtod(tmp,NULL); 00082 } 00083 else if (flag==2) // OPTIONS //////////////////////////////////////////// 00084 ProjetOPT = g_locale_to_utf8 (mot, -1, NULL, NULL, NULL); 00085 else if (flag==3) // DOSSIER //////////////////////////////////////////// 00086 { 00087 tmp = g_locale_to_utf8 (mot, -1, NULL, NULL, NULL); 00088 //(1) Insérer nouvelle entrée dans le tableau 00089 Ajouter_ELEMENT(tmp, tmp, -1); 00090 //(2) Insérer nouvelle entrée dans le treeview 00091 pere = Ajouter_TreeviewItem(&iterProj, tmp, tmp, AppICONs[1]); 00092 } 00093 else if (flag==4) // FICHIER //////////////////////////////////////////// 00094 { 00095 tmp = g_locale_to_utf8 (mot, -1, NULL, NULL, NULL); 00096 //(1) Insérer nouvelle entrée dans le tableau 00097 Ajouter_ELEMENT(g_path_get_basename(tmp), tmp, -1); 00098 //(2) Insérer nouvelle entrée dans le treeview 00099 Ajouter_TreeviewItem(&pere, nom[NB], tmp, NULL); 00100 //Ouvrir_Fichier_Ou_Le_Passer_Au_Premier_Plan(NB-1); 00101 } 00102 else if (flag==5) // NOM EXE //////////////////////////////////////////// 00103 ProjetEXEname = g_locale_to_utf8 (mot, -1, NULL, NULL, NULL); 00104 else if (flag==6) // EXEC ARGS ////////////////////////////////////////// 00105 ProjetARGS = g_locale_to_utf8 (mot, -1, NULL, NULL, NULL); 00106 else if (flag==7) // INCLUDES /////////////////////////////////////////// 00107 ProjetINCS = g_locale_to_utf8 (mot, -1, NULL, NULL, NULL); 00108 else if (flag==8) // LIBS /////////////////////////////////////////////// 00109 ProjetLIBS = g_locale_to_utf8 (mot, -1, NULL, NULL, NULL); 00110 else if (flag==9) // USE MAKEFILE /////////////////////////////////////// 00111 { 00112 tmp = g_locale_to_utf8 (mot, -1, NULL, NULL, NULL); 00113 ProjetUseMAKEFILE = (g_ascii_strtod(tmp,NULL))?TRUE:FALSE; 00114 } 00115 else if (flag==10) // UNDO LEVELS /////////////////////////////////////// 00116 { 00117 tmp = g_locale_to_utf8 (mot, -1, NULL, NULL, NULL); 00118 AppUNDOLEVELS = (g_ascii_strtod(tmp,NULL))?TRUE:FALSE; 00119 } 00120 else if (flag==11) // ICON ////////////////////////////////////////////// 00121 ProjetICON = g_locale_to_utf8 (mot, -1, NULL, NULL, NULL); 00122 00123 memset(mot,0,b); b=flag=0; 00124 } 00125 else if (c !=0XD) mot[b++] = c; 00126 } //while (c = fgetc) 00127 00128 fclose (pF); 00129 if (tmp) g_free(tmp); 00130 App_Lister_Tableau(); 00131 }
Voici le graphe d'appel pour cette fonction: |
|
Définition à la ligne 390 du fichier Projet.h. 00391 { 00392 00393 }
|