Fixed all warnings, some little bugs, and improved compatibility with >1GB RAM
git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@54 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
parent
750e68ed35
commit
272506e850
11
Makefile
11
Makefile
@ -1,10 +1,15 @@
|
|||||||
CC = distcc powerpc-linux-gnu-gcc
|
CC = gcc
|
||||||
COPT = -Wall -Os -c
|
COPT = -Wall -Os -c -g
|
||||||
LOPT = -lSDL -o grafx2
|
LOPT = -lSDL -o grafx2
|
||||||
|
|
||||||
|
debug: grafx2
|
||||||
|
@echo --- Everything OK.
|
||||||
|
|
||||||
|
release: grafx2
|
||||||
|
strip grafx2
|
||||||
|
|
||||||
grafx2 : main.o init.o graph.o sdlscreen.o divers.o special.o boutons.o palette.o aide.o operatio.o loadsave.o readline.o moteur.o files.o op_c.o linux.o op_asm.o
|
grafx2 : main.o init.o graph.o sdlscreen.o divers.o special.o boutons.o palette.o aide.o operatio.o loadsave.o readline.o moteur.o files.o op_c.o linux.o op_asm.o
|
||||||
$(CC) $(LOPT) main.o graph.o divers.o init.o files.o linux.o loadsave.o boutons.o moteur.o sdlscreen.o aide.o palette.o operatio.o op_c.o readline.o special.o op_asm.o
|
$(CC) $(LOPT) main.o graph.o divers.o init.o files.o linux.o loadsave.o boutons.o moteur.o sdlscreen.o aide.o palette.o operatio.o op_c.o readline.o special.o op_asm.o
|
||||||
strip grafx2
|
|
||||||
|
|
||||||
main.o : graph.o const.h struct.h global.h graph.h divers.h init.h boutons.h moteur.h files.h loadsave.h main.c readini.h saveini.h
|
main.o : graph.o const.h struct.h global.h graph.h divers.h init.h boutons.h moteur.h files.h loadsave.h main.c readini.h saveini.h
|
||||||
$(CC) $(COPT) main.c
|
$(CC) $(COPT) main.c
|
||||||
|
|||||||
2
aide.c
2
aide.c
@ -220,7 +220,7 @@ void Bouton_Stats(void)
|
|||||||
|
|
||||||
// Affichage de la m‚moire restante
|
// Affichage de la m‚moire restante
|
||||||
Print_dans_fenetre(10,35,"Free memory:",STATS_COULEUR_TITRES,CM_Noir);
|
Print_dans_fenetre(10,35,"Free memory:",STATS_COULEUR_TITRES,CM_Noir);
|
||||||
sprintf(Buffer,"%ld bytes",Memoire_libre());
|
sprintf(Buffer,"%d bytes",Memoire_libre());
|
||||||
Print_dans_fenetre(114,35,Buffer,STATS_COULEUR_DONNEES,CM_Noir);
|
Print_dans_fenetre(114,35,Buffer,STATS_COULEUR_DONNEES,CM_Noir);
|
||||||
|
|
||||||
// Affichage de l'espace disque libre
|
// Affichage de l'espace disque libre
|
||||||
|
|||||||
@ -2957,7 +2957,7 @@ void Load_picture(byte Image)
|
|||||||
char Nom_fichier_initial[13];
|
char Nom_fichier_initial[13];
|
||||||
byte Format_fichier_initial;
|
byte Format_fichier_initial;
|
||||||
byte Ne_pas_restaurer;
|
byte Ne_pas_restaurer;
|
||||||
byte Utiliser_palette_brosse;
|
byte Utiliser_palette_brosse = 0;
|
||||||
struct Composantes * Palette_initiale=NULL;
|
struct Composantes * Palette_initiale=NULL;
|
||||||
byte Ancienne_forme_curseur;
|
byte Ancienne_forme_curseur;
|
||||||
short Principal_Largeur_image_initiale=Principal_Largeur_image;
|
short Principal_Largeur_image_initiale=Principal_Largeur_image;
|
||||||
@ -5464,9 +5464,9 @@ void Bouton_Effets(void)
|
|||||||
Afficher_curseur();
|
Afficher_curseur();
|
||||||
break;
|
break;
|
||||||
case 13 : // Feedback (pour Colorize et Shade)
|
case 13 : // Feedback (pour Colorize et Shade)
|
||||||
if (Config.FX_Feedback=!Config.FX_Feedback) //???
|
// if (Config.FX_Feedback=!Config.FX_Feedback) //???
|
||||||
FX_Feedback_Ecran=Principal_Ecran;
|
// FX_Feedback_Ecran=Principal_Ecran;
|
||||||
else
|
// else
|
||||||
FX_Feedback_Ecran=Ecran_backup;
|
FX_Feedback_Ecran=Ecran_backup;
|
||||||
Effacer_curseur();
|
Effacer_curseur();
|
||||||
Afficher_etat_feedback();
|
Afficher_etat_feedback();
|
||||||
|
|||||||
9
divers.c
9
divers.c
@ -3,6 +3,7 @@
|
|||||||
#include "sdlscreen.h"
|
#include "sdlscreen.h"
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "graph.h" //Afficher_curseur
|
#include "graph.h" //Afficher_curseur
|
||||||
|
#include "erreurs.h"
|
||||||
|
|
||||||
// Gestion du mode texte de départ (pour pouvoir y retourner en cas de problème
|
// Gestion du mode texte de départ (pour pouvoir y retourner en cas de problème
|
||||||
byte Recuperer_nb_lignes(void)
|
byte Recuperer_nb_lignes(void)
|
||||||
@ -48,16 +49,14 @@ word Palette_Compter_nb_couleurs_utilisees(dword* Tableau)
|
|||||||
|
|
||||||
void Set_palette(T_Palette Palette)
|
void Set_palette(T_Palette Palette)
|
||||||
{
|
{
|
||||||
SDL_Color PaletteSDL[255];
|
register int i;
|
||||||
byte i=0;
|
SDL_Color PaletteSDL[256];
|
||||||
do
|
for(i=0;i<256;i++)
|
||||||
{
|
{
|
||||||
PaletteSDL[i].r=Palette[i].R*4; //Les couleurs VGA ne vont que de 0 à 63
|
PaletteSDL[i].r=Palette[i].R*4; //Les couleurs VGA ne vont que de 0 à 63
|
||||||
PaletteSDL[i].g=Palette[i].V*4;
|
PaletteSDL[i].g=Palette[i].V*4;
|
||||||
PaletteSDL[i].b=Palette[i].B*4;
|
PaletteSDL[i].b=Palette[i].B*4;
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
while(i!=0);
|
|
||||||
SDL_SetPalette(Ecran_SDL,SDL_PHYSPAL|SDL_LOGPAL,PaletteSDL,0,256);
|
SDL_SetPalette(Ecran_SDL,SDL_PHYSPAL|SDL_LOGPAL,PaletteSDL,0,256);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
61
files.c
61
files.c
@ -64,7 +64,7 @@ int Fichier_existe(char * Fichier)
|
|||||||
// D‚termine si un fichier pass‚ en paramŠtre existe ou non dans le
|
// D‚termine si un fichier pass‚ en paramŠtre existe ou non dans le
|
||||||
// r‚pertoire courant.
|
// r‚pertoire courant.
|
||||||
{
|
{
|
||||||
struct stat* buf;
|
struct stat* buf = NULL;
|
||||||
int Resultat;
|
int Resultat;
|
||||||
|
|
||||||
Resultat=stat(Fichier,buf);
|
Resultat=stat(Fichier,buf);
|
||||||
@ -161,15 +161,12 @@ void Lire_liste_des_fichiers(byte Format_demande)
|
|||||||
// Cette proc‚dure charge dans la liste chain‚e les fichiers dont l'extension
|
// Cette proc‚dure charge dans la liste chain‚e les fichiers dont l'extension
|
||||||
// correspond au format demand‚.
|
// correspond au format demand‚.
|
||||||
{
|
{
|
||||||
int Attribut; // Attribut des fichiers/r‚pertoires … lire
|
|
||||||
DIR* Repertoire_Courant; //Répertoire courant
|
DIR* Repertoire_Courant; //Répertoire courant
|
||||||
struct dirent* Enreg; // Structure de lecture des ‚l‚ments
|
struct dirent* Enreg; // Structure de lecture des éléments
|
||||||
char Filtre[6]="*."; // Place pour ‚crire "*.XXX" et un '\0'
|
char Filtre[6]="*."; // Place pour écrire "*.XXX" et un '\0'
|
||||||
|
|
||||||
char Chaine[20];
|
// Tout d'abord, on déduit du format demandé un filtre à utiliser:
|
||||||
|
if (Format_demande) // Format (extension) spécifique
|
||||||
// Tout d'abord, on d‚duit du format demand‚ un filtre … utiliser:
|
|
||||||
if (Format_demande) // Format (extension) sp‚cifique
|
|
||||||
strcat(Filtre,Format_Extension[Format_demande-1]);
|
strcat(Filtre,Format_Extension[Format_demande-1]);
|
||||||
else // *.*
|
else // *.*
|
||||||
strcat(Filtre,"*");
|
strcat(Filtre,"*");
|
||||||
@ -177,54 +174,38 @@ void Lire_liste_des_fichiers(byte Format_demande)
|
|||||||
|
|
||||||
// Ensuite, on vide la liste actuelle:
|
// Ensuite, on vide la liste actuelle:
|
||||||
Detruire_liste_du_fileselect();
|
Detruire_liste_du_fileselect();
|
||||||
// AprŠs effacement, il ne reste ni fichier ni r‚pertoire dans la liste
|
// Après effacement, il ne reste ni fichier ni répertoire dans la liste
|
||||||
Liste_Nb_fichiers=0;
|
Liste_Nb_fichiers=0;
|
||||||
Liste_Nb_repertoires=0;
|
Liste_Nb_repertoires=0;
|
||||||
|
|
||||||
// On lit tous les r‚pertoires:
|
// On lit tous les répertoires:
|
||||||
|
|
||||||
Repertoire_Courant=opendir(getcwd(NULL,0));
|
Repertoire_Courant=opendir(getcwd(NULL,0));
|
||||||
/*
|
|
||||||
Ceci est à revoir... pas tout à fait géré pareil sous linux...
|
|
||||||
Attribut=(_A_NORMAL|_A_SUBDIR|//_A_RDONLY|_A_ARCH|
|
|
||||||
(_A_HIDDEN & Config.Lire_les_repertoires_caches)|
|
|
||||||
(_A_SYSTEM & Config.Lire_les_repertoires_systemes));
|
|
||||||
*/
|
|
||||||
Enreg=readdir(Repertoire_Courant);
|
Enreg=readdir(Repertoire_Courant);
|
||||||
while (Enreg)
|
while (Enreg)
|
||||||
{
|
{
|
||||||
// Si l'‚l‚ment n'est pas le r‚pertoire courant
|
// Si l'élément n'est pas le répertoire courant
|
||||||
if ( (strcmp(Enreg->d_name,".")!=0) &&
|
if ( (Enreg->d_name[0]!='.') && (Enreg->d_name[1] != 0))
|
||||||
// et que l'‚l‚ment trouv‚ est r‚ellement un r‚pertoire
|
|
||||||
(Enreg->d_type == DT_DIR) )
|
|
||||||
{
|
{
|
||||||
// On rajoute le r‚pertore … la liste
|
// et que l'élément trouvé est un répertoire
|
||||||
|
if( (Enreg->d_type == DT_DIR) &&
|
||||||
|
// et qu'il n'est pas caché
|
||||||
|
(Enreg->d_name[0]!='.' || Config.Lire_les_repertoires_caches))
|
||||||
|
{
|
||||||
|
// On rajoute le répertore à la liste
|
||||||
Ajouter_element_a_la_liste(Enreg);
|
Ajouter_element_a_la_liste(Enreg);
|
||||||
Liste_Nb_repertoires++;
|
Liste_Nb_repertoires++;
|
||||||
}
|
}
|
||||||
// On cherche l'‚l‚ment suivant
|
else if ((Enreg->d_type==DT_REG) //Il s'agit d'un fichier
|
||||||
Enreg=readdir(Repertoire_Courant);
|
&& (Enreg->d_name[0]!='.' || Config.Lire_les_fichiers_caches)) //Il n'est pas caché
|
||||||
}
|
|
||||||
|
|
||||||
// Enfin, on lit les fichiers du format demand‚:
|
|
||||||
|
|
||||||
/*
|
|
||||||
Ici aussi, à revoir...
|
|
||||||
Attribut=(_A_NORMAL|_A_SYSTEM|//_A_RDONLY|_A_ARCH|
|
|
||||||
(_A_HIDDEN & Config.Lire_les_fichiers_caches));
|
|
||||||
*/
|
|
||||||
|
|
||||||
rewinddir(Repertoire_Courant);
|
|
||||||
Enreg=readdir(Repertoire_Courant);
|
|
||||||
while (Enreg)
|
|
||||||
{
|
{
|
||||||
if (Enreg->d_type==DT_REG) //Il s'agit bien d'un fichier
|
// On rajoute le fichier à la liste
|
||||||
{
|
|
||||||
// On rajoute le fichier … la liste
|
|
||||||
Ajouter_element_a_la_liste(Enreg);
|
Ajouter_element_a_la_liste(Enreg);
|
||||||
Liste_Nb_fichiers++;
|
Liste_Nb_fichiers++;
|
||||||
}
|
}
|
||||||
// On cherche l'‚l‚ment suivant
|
}
|
||||||
|
|
||||||
|
// On cherche l'élément suivant
|
||||||
Enreg=readdir(Repertoire_Courant);
|
Enreg=readdir(Repertoire_Courant);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
48
graph.c
48
graph.c
@ -11,7 +11,8 @@
|
|||||||
#include "boutons.h"
|
#include "boutons.h"
|
||||||
#include "pages.h"
|
#include "pages.h"
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
#include "struct.h"
|
||||||
|
#include "erreurs.h"
|
||||||
|
|
||||||
// On déclare méchamment le prototype de Erreur pour éviter de faire un
|
// On déclare méchamment le prototype de Erreur pour éviter de faire un
|
||||||
// fichier "main.h":
|
// fichier "main.h":
|
||||||
@ -837,8 +838,6 @@ void Initialiser_mode_video(int Numero)
|
|||||||
{
|
{
|
||||||
int Sensibilite_X;
|
int Sensibilite_X;
|
||||||
int Sensibilite_Y;
|
int Sensibilite_Y;
|
||||||
//int Indice_VESA;
|
|
||||||
|
|
||||||
|
|
||||||
if (Resolution_actuelle != Numero)
|
if (Resolution_actuelle != Numero)
|
||||||
{
|
{
|
||||||
@ -899,41 +898,8 @@ void Initialiser_mode_video(int Numero)
|
|||||||
Clear_brush_zoom = Clear_brush_zoom_SDL;
|
Clear_brush_zoom = Clear_brush_zoom_SDL;
|
||||||
Set_Mode_SDL();
|
Set_Mode_SDL();
|
||||||
break;
|
break;
|
||||||
/*
|
|
||||||
switch(Mode_video[Numero].Mode_VESA_de_base)
|
|
||||||
{
|
|
||||||
case 0x100 : Indice_VESA=0; // 640x400
|
|
||||||
break;
|
|
||||||
case 0x101 : Indice_VESA=1; // 640x480
|
|
||||||
break;
|
|
||||||
case 0x103 : Indice_VESA=2; // 800x600
|
|
||||||
break;
|
|
||||||
default : Indice_VESA=3; // 1024x768
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// On regarde si le mode supporte le LFB
|
|
||||||
if (VESA_Mode_Infos[Indice_VESA].Adresse_physique_LFB!=0)
|
|
||||||
{
|
|
||||||
// C'est le cas => on va s'en servir
|
|
||||||
|
|
||||||
Set_VESA_mode(Mode_video[Numero].Mode_VESA_de_base | 0x4000);
|
|
||||||
Initialiser_le_LFB(VESA_Mode_Infos[Indice_VESA].Adresse_physique_LFB,
|
|
||||||
VESA_Mode_Infos[Indice_VESA].Taille_LFB);
|
|
||||||
if (Mode_X_Ptr!=NULL)
|
|
||||||
Retoucher_CRTC();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Ce n'est pas le cas, on continue comme si de rien n'était
|
|
||||||
Granularite =VESA_Mode_Infos[Indice_VESA].Granularite;
|
|
||||||
VESA_WinFuncPtr=VESA_Mode_Infos[Indice_VESA].WinFuncPtr;
|
|
||||||
|
|
||||||
Initialiser_mode_video_VESA(Mode_video[Numero].Mode_VESA_de_base);
|
|
||||||
if (Mode_X_Ptr!=NULL)
|
|
||||||
Retoucher_CRTC();
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
Set_palette(Principal_Palette);
|
Set_palette(Principal_Palette);
|
||||||
|
|
||||||
Resolution_actuelle = Numero;
|
Resolution_actuelle = Numero;
|
||||||
@ -3804,13 +3770,13 @@ void Remplir(byte Couleur_de_remplissage)
|
|||||||
fonction_afficheur Pixel_figure;
|
fonction_afficheur Pixel_figure;
|
||||||
|
|
||||||
// Affichage d'un point de façon définitive (utilisation du pinceau)
|
// Affichage d'un point de façon définitive (utilisation du pinceau)
|
||||||
void Pixel_figure_Definitif(short Pos_X,short Pos_Y,byte Couleur)
|
void Pixel_figure_Definitif(word Pos_X,word Pos_Y,byte Couleur)
|
||||||
{
|
{
|
||||||
Afficher_pinceau(Pos_X,Pos_Y,Couleur,0);
|
Afficher_pinceau(Pos_X,Pos_Y,Couleur,0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Affichage d'un point pour une preview
|
// Affichage d'un point pour une preview
|
||||||
void Pixel_figure_Preview(short Pos_X,short Pos_Y,byte Couleur)
|
void Pixel_figure_Preview(word Pos_X,word Pos_Y,byte Couleur)
|
||||||
{
|
{
|
||||||
if ( (Pos_X>=Limite_Gauche) &&
|
if ( (Pos_X>=Limite_Gauche) &&
|
||||||
(Pos_X<=Limite_Droite) &&
|
(Pos_X<=Limite_Droite) &&
|
||||||
@ -3820,7 +3786,7 @@ void Remplir(byte Couleur_de_remplissage)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Affichage d'un point pour une preview en xor
|
// Affichage d'un point pour une preview en xor
|
||||||
void Pixel_figure_Preview_xor(short Pos_X,short Pos_Y,byte Couleur)
|
void Pixel_figure_Preview_xor(word Pos_X,word Pos_Y,byte Couleur)
|
||||||
{
|
{
|
||||||
if ( (Pos_X>=Limite_Gauche) &&
|
if ( (Pos_X>=Limite_Gauche) &&
|
||||||
(Pos_X<=Limite_Droite) &&
|
(Pos_X<=Limite_Droite) &&
|
||||||
@ -3831,7 +3797,7 @@ void Remplir(byte Couleur_de_remplissage)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Effacement d'un point de preview
|
// Effacement d'un point de preview
|
||||||
void Pixel_figure_Effacer_preview(short Pos_X,short Pos_Y,byte Couleur)
|
void Pixel_figure_Effacer_preview(word Pos_X,word Pos_Y,byte Couleur)
|
||||||
{
|
{
|
||||||
if ( (Pos_X>=Limite_Gauche) &&
|
if ( (Pos_X>=Limite_Gauche) &&
|
||||||
(Pos_X<=Limite_Droite) &&
|
(Pos_X<=Limite_Droite) &&
|
||||||
@ -3841,7 +3807,7 @@ void Remplir(byte Couleur_de_remplissage)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Affichage d'un point dans la brosse
|
// Affichage d'un point dans la brosse
|
||||||
void Pixel_figure_Dans_brosse(short Pos_X,short Pos_Y,byte Couleur)
|
void Pixel_figure_Dans_brosse(word Pos_X,word Pos_Y,byte Couleur)
|
||||||
{
|
{
|
||||||
Pos_X-=Brosse_Decalage_X;
|
Pos_X-=Brosse_Decalage_X;
|
||||||
Pos_Y-=Brosse_Decalage_Y;
|
Pos_Y-=Brosse_Decalage_Y;
|
||||||
|
|||||||
6
graph.h
6
graph.h
@ -98,8 +98,8 @@ void Nibble_brush(void);
|
|||||||
void Remplir(byte Couleur_de_remplissage);
|
void Remplir(byte Couleur_de_remplissage);
|
||||||
void Remplacer(byte Nouvelle_couleur);
|
void Remplacer(byte Nouvelle_couleur);
|
||||||
|
|
||||||
void Pixel_figure_Preview (short Pos_X,short Pos_Y,byte Couleur);
|
void Pixel_figure_Preview (word Pos_X,word Pos_Y,byte Couleur);
|
||||||
void Pixel_figure_Preview_xor(short Pos_X,short Pos_Y,byte Couleur);
|
void Pixel_figure_Preview_xor(word Pos_X,word Pos_Y,byte Couleur);
|
||||||
|
|
||||||
void Tracer_cercle_vide_Definitif(short Centre_X,short Centre_Y,short Rayon,byte Couleur);
|
void Tracer_cercle_vide_Definitif(short Centre_X,short Centre_Y,short Rayon,byte Couleur);
|
||||||
void Tracer_cercle_vide_Preview (short Centre_X,short Centre_Y,short Rayon,byte Couleur);
|
void Tracer_cercle_vide_Preview (short Centre_X,short Centre_Y,short Rayon,byte Couleur);
|
||||||
@ -142,7 +142,7 @@ void Upload_infos_page_principal(S_Page * Page);
|
|||||||
void Download_infos_page_brouillon(S_Page * Page);
|
void Download_infos_page_brouillon(S_Page * Page);
|
||||||
void Upload_infos_page_brouillon(S_Page * Page);
|
void Upload_infos_page_brouillon(S_Page * Page);
|
||||||
void Download_infos_backup(S_Liste_de_pages * Liste);
|
void Download_infos_backup(S_Liste_de_pages * Liste);
|
||||||
int Initialiser_les_listes_de_backups_en_debut_de_programme(int Taille,int Largeur,int Hauteur);
|
// int Initialiser_les_listes_de_backups_en_debut_de_programme(int Taille,int Largeur,int Hauteur); // pages.h
|
||||||
void Detruire_les_listes_de_backups_en_fin_de_programme(void);
|
void Detruire_les_listes_de_backups_en_fin_de_programme(void);
|
||||||
void Nouveau_nombre_de_backups(int Nouveau);
|
void Nouveau_nombre_de_backups(int Nouveau);
|
||||||
int Backup_avec_nouvelles_dimensions(int Upload,int Largeur,int Hauteur);
|
int Backup_avec_nouvelles_dimensions(int Upload,int Largeur,int Hauteur);
|
||||||
|
|||||||
@ -451,7 +451,7 @@ void Modif_Erreur_fichier(int Nouvelle_valeur)
|
|||||||
void Charger_image(byte Image)
|
void Charger_image(byte Image)
|
||||||
{
|
{
|
||||||
int Indice; // Indice de balayage des formats
|
int Indice; // Indice de balayage des formats
|
||||||
int Format; // Format du fichier à charger
|
int Format=0; // Format du fichier à charger
|
||||||
|
|
||||||
|
|
||||||
// On place par défaut Erreur_fichier à vrai au cas o— on ne sache pas
|
// On place par défaut Erreur_fichier à vrai au cas o— on ne sache pas
|
||||||
@ -2168,7 +2168,7 @@ void Load_BMP(void)
|
|||||||
byte * Buffer;
|
byte * Buffer;
|
||||||
word Indice;
|
word Indice;
|
||||||
byte Palette_locale[256][4]; // R,V,B,0
|
byte Palette_locale[256][4]; // R,V,B,0
|
||||||
word Nb_Couleurs;
|
word Nb_Couleurs = 0;
|
||||||
short Pos_X;
|
short Pos_X;
|
||||||
short Pos_Y;
|
short Pos_Y;
|
||||||
word Taille_ligne;
|
word Taille_ligne;
|
||||||
|
|||||||
6
main.c
6
main.c
@ -21,6 +21,7 @@
|
|||||||
#include "files.h"
|
#include "files.h"
|
||||||
#include "loadsave.h"
|
#include "loadsave.h"
|
||||||
#include "sdlscreen.h"
|
#include "sdlscreen.h"
|
||||||
|
#include "erreurs.h"
|
||||||
|
|
||||||
byte Ancien_nb_lignes; // Ancien nombre de lignes de l'écran
|
byte Ancien_nb_lignes; // Ancien nombre de lignes de l'écran
|
||||||
|
|
||||||
@ -503,17 +504,18 @@ void Initialisation_du_programme(int argc,char * argv[])
|
|||||||
Mode_dans_lequel_on_demarre=Resolution_actuelle;
|
Mode_dans_lequel_on_demarre=Resolution_actuelle;
|
||||||
Buffer_de_ligne_horizontale=NULL;
|
Buffer_de_ligne_horizontale=NULL;
|
||||||
Resolution_actuelle=-1; // On n'était pas dans un mode graphique
|
Resolution_actuelle=-1; // On n'était pas dans un mode graphique
|
||||||
|
|
||||||
Initialiser_mode_video(Mode_dans_lequel_on_demarre);
|
Initialiser_mode_video(Mode_dans_lequel_on_demarre);
|
||||||
|
|
||||||
Principal_Largeur_image=Largeur_ecran;
|
Principal_Largeur_image=Largeur_ecran;
|
||||||
Principal_Hauteur_image=Hauteur_ecran;
|
Principal_Hauteur_image=Hauteur_ecran;
|
||||||
Brouillon_Largeur_image=Largeur_ecran;
|
Brouillon_Largeur_image=Largeur_ecran;
|
||||||
Brouillon_Hauteur_image=Hauteur_ecran;
|
Brouillon_Hauteur_image=Hauteur_ecran;
|
||||||
|
DEBUG("Avant init",0);
|
||||||
// Allocation de mémoire pour les différents écrans virtuels (et brosse)
|
// Allocation de mémoire pour les différents écrans virtuels (et brosse)
|
||||||
if (Initialiser_les_listes_de_backups_en_debut_de_programme(Config.Nb_pages_Undo+1,Largeur_ecran,Hauteur_ecran)==0)
|
if (Initialiser_les_listes_de_backups_en_debut_de_programme(Config.Nb_pages_Undo+1,Largeur_ecran,Hauteur_ecran)==0)
|
||||||
Erreur(ERREUR_MEMOIRE);
|
Erreur(ERREUR_MEMOIRE);
|
||||||
|
DEBUG("Apres init",1);
|
||||||
// On remet le nom par défaut pour la page de brouillon car il été modifié
|
// On remet le nom par défaut pour la page de brouillon car il été modifié
|
||||||
// par le passage d'un fichier en paramètre lors du traitement précédent.
|
// par le passage d'un fichier en paramètre lors du traitement précédent.
|
||||||
// Note: le fait que l'on ne modifie que les variables globales Brouillon_*
|
// Note: le fait que l'on ne modifie que les variables globales Brouillon_*
|
||||||
|
|||||||
2
moteur.c
2
moteur.c
@ -426,7 +426,7 @@ void Gestion_principale(void)
|
|||||||
int Indice_bouton_precedent=0; // Numéro de bouton de menu sur lequel on était précédemment
|
int Indice_bouton_precedent=0; // Numéro de bouton de menu sur lequel on était précédemment
|
||||||
byte Blink; // L'opération demande un effacement du curseur
|
byte Blink; // L'opération demande un effacement du curseur
|
||||||
int Bouton_Touche; // Bouton à enclencher d'après la touche de raccourci enfoncée
|
int Bouton_Touche; // Bouton à enclencher d'après la touche de raccourci enfoncée
|
||||||
byte Bouton_Cote; // C“té du bouton à enclencher d'après la touche de raccourci enfoncée
|
byte Bouton_Cote = 0; // Côté du bouton à enclencher d'après la touche de raccourci enfoncée
|
||||||
int Indice_Touche; // Indice du tableau de touches spéciales correspondant à la touche enfoncée
|
int Indice_Touche; // Indice du tableau de touches spéciales correspondant à la touche enfoncée
|
||||||
char Chaine[25];
|
char Chaine[25];
|
||||||
byte Temp;
|
byte Temp;
|
||||||
|
|||||||
3
op_c.c
3
op_c.c
@ -1,4 +1,4 @@
|
|||||||
|
#include <unistd.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@ -290,7 +290,6 @@ void Cluster_Analyser(Cluster * c,Table_occurence * to)
|
|||||||
{
|
{
|
||||||
int rmin,rmax,vmin,vmax,bmin,bmax;
|
int rmin,rmax,vmin,vmax,bmin,bmax;
|
||||||
int r,v,b;
|
int r,v,b;
|
||||||
int nbocc;
|
|
||||||
|
|
||||||
// On cherche les mins et les maxs de chaque composante sur la couverture
|
// On cherche les mins et les maxs de chaque composante sur la couverture
|
||||||
|
|
||||||
|
|||||||
40
pages.c
40
pages.c
@ -416,12 +416,12 @@ void Avancer_dans_une_liste_de_pages(S_Liste_de_pages * Liste)
|
|||||||
|
|
||||||
int Nouvelle_page_possible(S_Page * Nouvelle_page,S_Liste_de_pages * Liste_courante,S_Liste_de_pages * Liste_secondaire)
|
int Nouvelle_page_possible(S_Page * Nouvelle_page,S_Liste_de_pages * Liste_courante,S_Liste_de_pages * Liste_secondaire)
|
||||||
{
|
{
|
||||||
int Taille_immediatement_disponible;
|
unsigned int Taille_immediatement_disponible;
|
||||||
int Taille_liste_courante;
|
unsigned int Taille_liste_courante;
|
||||||
int Taille_liste_brouillon;
|
unsigned int Taille_liste_brouillon;
|
||||||
int Taille_page_courante;
|
unsigned int Taille_page_courante;
|
||||||
int Taille_page_brouillon;
|
unsigned int Taille_page_brouillon;
|
||||||
int Taille_nouvelle_page;
|
unsigned int Taille_nouvelle_page;
|
||||||
|
|
||||||
Taille_immediatement_disponible=Memoire_libre()-QUANTITE_MINIMALE_DE_MEMOIRE_A_CONSERVER;
|
Taille_immediatement_disponible=Memoire_libre()-QUANTITE_MINIMALE_DE_MEMOIRE_A_CONSERVER;
|
||||||
Taille_liste_courante =Taille_d_une_liste_de_pages(Liste_courante);
|
Taille_liste_courante =Taille_d_une_liste_de_pages(Liste_courante);
|
||||||
@ -434,7 +434,10 @@ int Nouvelle_page_possible(S_Page * Nouvelle_page,S_Liste_de_pages * Liste_coura
|
|||||||
// courante, en conservant au pire la 1ère page de brouillon.
|
// courante, en conservant au pire la 1ère page de brouillon.
|
||||||
if ((Taille_immediatement_disponible+Taille_liste_courante+
|
if ((Taille_immediatement_disponible+Taille_liste_courante+
|
||||||
Taille_liste_brouillon-Taille_page_brouillon)<(2*Taille_nouvelle_page))
|
Taille_liste_brouillon-Taille_page_brouillon)<(2*Taille_nouvelle_page))
|
||||||
|
{
|
||||||
|
DEBUG("A",0);
|
||||||
return 0;
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
// Il faut pouvoir loger le brouillon et son backup dans la page de
|
// Il faut pouvoir loger le brouillon et son backup dans la page de
|
||||||
// brouillon, en conservant au pire un exemplaire de la nouvelle page dans
|
// brouillon, en conservant au pire un exemplaire de la nouvelle page dans
|
||||||
@ -442,7 +445,10 @@ int Nouvelle_page_possible(S_Page * Nouvelle_page,S_Liste_de_pages * Liste_coura
|
|||||||
// brouillon)
|
// brouillon)
|
||||||
if ((Taille_immediatement_disponible+Taille_liste_courante+
|
if ((Taille_immediatement_disponible+Taille_liste_courante+
|
||||||
Taille_liste_brouillon-Taille_nouvelle_page)<(2*Taille_page_brouillon))
|
Taille_liste_brouillon-Taille_nouvelle_page)<(2*Taille_page_brouillon))
|
||||||
|
{
|
||||||
|
DEBUG("B",1);
|
||||||
return 0;
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -677,26 +683,18 @@ int Initialiser_les_listes_de_backups_en_debut_de_programme(int Taille,int Large
|
|||||||
Retour=1;
|
Retour=1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{DEBUG("Il n'est pas possible de démarrer le programme avec la page principale et la page de brouillon aux dimensions demandée par l'utilisateur. ==> On l'envoie ballader",0);
|
||||||
// Il n'est pas possible de démarrer le programme avec la page
|
Retour=0;
|
||||||
// principale et la page de brouillon aux dimensions demandée par
|
}
|
||||||
// l'utilisateur. ==> On l'envoie ballader
|
}
|
||||||
|
else
|
||||||
|
{DEBUG("On ne peut pas démarrer le programme avec ne serait-ce qu'une page de la dimension souhaitée, donc on laisse tout tomber et on le renvoie chier.",0);
|
||||||
Retour=0;
|
Retour=0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// On ne peut pas démarrer le programme avec ne serait-ce qu'une page
|
DEBUG("On n'a même pas réussi à créer les listes. Donc c'est même pas la peine de continuer : l'utilisateur ne pourra jamais rien faire, autant avorter le chargement du programme.",0);
|
||||||
// de la dimension souhaitée, donc on laisse tout tomber et on le
|
|
||||||
// renvoie chier.
|
|
||||||
Retour=0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// On n'a mˆme pas réussi à créer les listes. Donc c'est mˆme pas la
|
|
||||||
// peine de continuer : l'utilisateur ne pourra jamais rien faire, autant
|
|
||||||
// avorter le chargement du programme.
|
|
||||||
Retour=0;
|
Retour=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -35,7 +35,7 @@ void Charger_INI_Clear_string(char * String)
|
|||||||
{
|
{
|
||||||
// Suppression d'un espace ou d'un tab:
|
// Suppression d'un espace ou d'un tab:
|
||||||
|
|
||||||
strcpy(String+Indice,String+Indice+1);
|
memmove(String+Indice,String+Indice+1,strlen(String+Indice));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if ((String[Indice]==';') ||
|
if ((String[Indice]==';') ||
|
||||||
|
|||||||
22
readline.c
22
readline.c
@ -1,29 +1,29 @@
|
|||||||
|
/************************************************************************
|
||||||
|
* *
|
||||||
|
* READLINE (proc‚dure permettant de saisir une chaŒne de caractŠres) *
|
||||||
|
* *
|
||||||
|
************************************************************************/
|
||||||
|
|
||||||
#include "const.h"
|
#include "const.h"
|
||||||
#include "struct.h"
|
#include "struct.h"
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "graph.h"
|
#include "graph.h"
|
||||||
#include "divers.h"
|
#include "divers.h"
|
||||||
|
#include "linux.h"
|
||||||
//ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
void Erreur(int code);
|
||||||
//Û Û°
|
|
||||||
//Û READLINE (proc‚dure permettant de saisir une chaŒne de caractŠres) Û°
|
|
||||||
//Û Û°
|
|
||||||
//ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ°
|
|
||||||
// °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
|
|
||||||
|
|
||||||
#define COULEUR_TEXTE CM_Noir
|
#define COULEUR_TEXTE CM_Noir
|
||||||
#define COULEUR_FOND CM_Clair
|
#define COULEUR_FOND CM_Clair
|
||||||
#define COULEUR_TEXTE_CURSEUR CM_Noir
|
#define COULEUR_TEXTE_CURSEUR CM_Noir
|
||||||
#define COULEUR_FOND_CURSEUR CM_Fonce
|
#define COULEUR_FOND_CURSEUR CM_Fonce
|
||||||
|
|
||||||
|
// Vérification de la validité d'un nom de fichier
|
||||||
// V‚rification de la validit‚ d'un nom de fichier
|
|
||||||
byte Chaine_valide(char * Chaine)
|
byte Chaine_valide(char * Chaine)
|
||||||
{
|
{
|
||||||
byte Point_trouve=0; // Bool‚en "on a trouv‚ un point dans la chaine"
|
byte Point_trouve=0; // Booléen "on a trouvé un point dans la chaine"
|
||||||
byte Taille_racine=0; // Taille de la racine du nom de fichier
|
byte Taille_racine=0; // Taille de la racine du nom de fichier
|
||||||
byte Taille_extension=0; // Taille de l'extension du nom de fichier
|
byte Taille_extension=0; // Taille de l'extension du nom de fichier
|
||||||
byte Position; // Position du caractŠre dans la chaŒne en cours d'‚tude
|
byte Position; // Position du caractère dans la chaîne en cours d'étude
|
||||||
|
|
||||||
for (Position=0;Chaine[Position]!='\0';Position++)
|
for (Position=0;Chaine[Position]!='\0';Position++)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -193,6 +193,6 @@ void Clear_brush_zoom_SDL (word Pos_X,word Pos_Y,word Decalage_X,word Dec
|
|||||||
void Set_Mode_SDL()
|
void Set_Mode_SDL()
|
||||||
/* On règle la résolution de l'écran */
|
/* On règle la résolution de l'écran */
|
||||||
{
|
{
|
||||||
Ecran_SDL=SDL_SetVideoMode(Largeur_ecran,Hauteur_ecran,8,SDL_HWSURFACE|SDL_FULLSCREEN);
|
Ecran_SDL=SDL_SetVideoMode(Largeur_ecran,Hauteur_ecran,8,SDL_HWSURFACE/*|SDL_FULLSCREEN*/);
|
||||||
Ecran=Ecran_SDL->pixels;
|
Ecran=Ecran_SDL->pixels;
|
||||||
}
|
}
|
||||||
|
|||||||
7
struct.h
7
struct.h
@ -1,13 +1,14 @@
|
|||||||
#ifndef _STRUCT_H_
|
#ifndef _STRUCT_H_
|
||||||
#define _STRUCT_H_
|
#define _STRUCT_H_
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
#include "const.h"
|
#include "const.h"
|
||||||
|
|
||||||
// Déclaration des types de base /////////////////////////////////////////////
|
// Déclaration des types de base /////////////////////////////////////////////
|
||||||
|
|
||||||
typedef unsigned char byte;
|
typedef uint8_t byte;
|
||||||
typedef unsigned short word;
|
typedef uint16_t word;
|
||||||
typedef unsigned long dword;
|
typedef uint32_t dword;
|
||||||
|
|
||||||
typedef void (* fonction_action) (void);
|
typedef void (* fonction_action) (void);
|
||||||
typedef void (* fonction_afficheur) (word,word,byte);
|
typedef void (* fonction_afficheur) (word,word,byte);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user