More work on endianness,

fixed the save/load box to display names in 8+3 format,
files can now be loaded in command-line.

git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@142 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
Yves Rizoud 2008-09-13 20:05:16 +00:00
parent 0eaba7e952
commit 37ca8d13aa
3 changed files with 34 additions and 12 deletions

View File

@ -3,7 +3,7 @@ ifdef COMSPEC
DELCOMMAND = del
BIN = grafx2.exe
COPT = -Wall -O -g -ggdb -Dmain=SDL_main $(SCREEN)
LOPT = -mwindows -lmingw32 -lSDLmain -lSDL
LOPT = -mwindows -lmingw32 -lSDLmain -lSDL -lshlwapi
else
# Linux specific
DELCOMMAND = rm -rf

14
files.c
View File

@ -121,6 +121,7 @@ char * Nom_formate(char * Nom)
static char Resultat[13];
int Curseur;
int Autre_curseur;
int Pos_DernierPoint;
if (strcmp(Nom,"..")==0)
{
@ -131,12 +132,19 @@ char * Nom_formate(char * Nom)
strcpy(Resultat," . ");
// On commence par recopier la partie prcdent le point:
for (Curseur=0;( (Nom[Curseur]!='.') && (Nom[Curseur]!='\0') );Curseur++)
Resultat[Curseur]=Nom[Curseur];
{
if (Curseur < 8)
Resultat[Curseur]=Nom[Curseur];
}
// On recherche le dernier point dans le reste du nom
for (Pos_DernierPoint = Curseur; Nom[Curseur]!='\0'; Curseur++)
if (Nom[Curseur]=='.')
Pos_DernierPoint = Curseur;
// Ensuite on recopie la partie qui suit le point (si ncessaire):
if (Nom[Curseur])
if (Nom[Pos_DernierPoint])
{
for (Curseur++,Autre_curseur=9;Nom[Curseur]!='\0';Curseur++,Autre_curseur++)
for (Curseur = Pos_DernierPoint+1,Autre_curseur=9;Nom[Curseur]!='\0' && Autre_curseur < 12;Curseur++,Autre_curseur++)
Resultat[Autre_curseur]=Nom[Curseur];
}
}

30
main.c
View File

@ -26,7 +26,7 @@
#ifdef __linux__
#include "linux.h" //Fichier avec diverses fonctions qui existaient sous dos mais pas sous linux...
#elif __WATCOMC__
#else
#include <windows.h>
#include <shlwapi.h>
#define chdir(dir) SetCurrentDirectory(dir)
@ -215,14 +215,28 @@ void Analyse_de_la_ligne_de_commande(int argc,char * argv[])
#ifdef __linux__
Buffer=realpath(argv[1],NULL);
_splitpath(Buffer,Principal_Repertoire_fichier,Principal_Nom_fichier);
#elif __WATCOMC__
#else
Buffer = malloc(MAX_PATH);
PathCanonicalize(Buffer,argv[1]);
_splitpath(Buffer,
Principal_Repertoire_fichier,
Principal_Repertoire_fichier+3,
Principal_Nom_fichier,
Principal_Nom_fichier+8);
_fullpath(Buffer,argv[1],MAX_PATH);
{
// Découpage du nom canonique de fichier en chemin + nom.
// On croirait que c'est du classique pour la LibC, mais non...
int i;
int PosDernierSeparateur = 0;
for (i=0; Buffer[i]!='\0'; i++)
{
Principal_Repertoire_fichier[i] = Buffer[i];
if (Buffer[i]=='\\')
PosDernierSeparateur = i;
}
Principal_Repertoire_fichier[PosDernierSeparateur]='\0';
for (i=0; Buffer[PosDernierSeparateur + i + 1]!='\0'; i++)
{
Principal_Nom_fichier[i] = Buffer[PosDernierSeparateur + i + 1];
}
Principal_Nom_fichier[i]='\0';
}
free(Buffer);
#endif