- Issue 51 should be fixed.

- Patched 2 segfaults in Save_PKM() which were due to the packing routine accessing a byte of a picture beyond the allocated memory block.

git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@333 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
Franck Charlet 2008-11-12 12:55:54 +00:00
parent 02bdbd4627
commit f5d45ade8e
6 changed files with 67 additions and 29 deletions

View File

@ -165,8 +165,8 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
PBXPerProjectTemplateStateSaveDate = 248029954;
PBXWorkspaceStateSaveDate = 248029954;
PBXPerProjectTemplateStateSaveDate = 248180012;
PBXWorkspaceStateSaveDate = 248180012;
};
sourceControlManager = F5B19B690EA4BD79003F4BA4 /* Source Control */;
userBuildSettings = {

View File

@ -258,16 +258,14 @@
<dict>
<key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
<array>
<string>29B97314FDCFA39411CA2CEA</string>
<string>1C37FBAC04509CD000000102</string>
<string>F51CBD120EC8A302005C06AC</string>
<string>F51CBD3B0EC8AB35005C06AC</string>
</array>
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
<integer>9</integer>
<integer>2</integer>
<integer>1</integer>
<integer>0</integer>
</array>
</array>
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
@ -413,11 +411,11 @@
</array>
<key>TableOfContents</key>
<array>
<string>F51CBD140EC8A305005C06AC</string>
<string>F5368CFF0EC8ADDF00444B30</string>
<string>1CA23ED40692098700951B8B</string>
<string>F51CBD150EC8A305005C06AC</string>
<string>F5368D000EC8ADDF00444B30</string>
<string>F5A33EBD0EC89C3000F8052D</string>
<string>F51CBD160EC8A305005C06AC</string>
<string>F5368D010EC8ADDF00444B30</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@ -483,7 +481,7 @@
</array>
</array>
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
<string>{{0, 0}, {193, 604}}</string>
<string>{{0, 0}, {0, 0}}</string>
</dict>
<key>PBXTopSmartGroupGIDs</key>
<array/>
@ -544,7 +542,7 @@
</dict>
<dict>
<key>Proportion</key>
<string>617pt</string>
<string>0pt</string>
<key>Tabs</key>
<array>
<dict>
@ -562,7 +560,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
<string>{{10, 27}, {762, 590}}</string>
<string>{{10, 27}, {0, -27}}</string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@ -624,7 +622,7 @@
</dict>
</array>
<key>Proportion</key>
<string>762pt</string>
<string>0pt</string>
</dict>
</array>
<key>Name</key>
@ -642,14 +640,14 @@
</array>
<key>TableOfContents</key>
<array>
<string>F51CBD1B0EC8A347005C06AC</string>
<string>F5368D020EC8ADDF00444B30</string>
<string>1CA23EE50692099D00951B8B</string>
<string>F51CBD1C0EC8A347005C06AC</string>
<string>F5368D030EC8ADDF00444B30</string>
<string>F5A33EC20EC89C3000F8052D</string>
<string>F51CBD1D0EC8A347005C06AC</string>
<string>F5368D040EC8ADDF00444B30</string>
<string>XCMainBuildResultsModuleGUID</string>
<string>1CA23EE80692099D00951B8B</string>
<string>F51CBD1E0EC8A347005C06AC</string>
<string>F5368D050EC8ADDF00444B30</string>
</array>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.buildAndRun</string>

View File

@ -2697,6 +2697,7 @@ byte Bouton_Load_ou_Save(byte Load, byte Image)
break;
case 8 : // Saisie du nom de fichier
Effacer_curseur();
Principal_Nom_fichier[0] = '\0';
if (Readline(13+9*8,90,Principal_Nom_fichier,27,2))
{
// On regarde s'il faut rajouter une extension. C'est-à-dire s'il
@ -2706,10 +2707,43 @@ byte Bouton_Load_ou_Save(byte Load, byte Image)
Bidon=1;
if (!Bidon)
{
strcat(Principal_Nom_fichier,".");
if (Principal_Format)
{
if(!Repertoire_existe(Principal_Nom_fichier))
{
strcat(Principal_Nom_fichier,".");
strcat(Principal_Nom_fichier,Format_Extension[Principal_Format-1]);
}
}
else
{
// put default extension
// (but maybe we should browse through all available ones until we find
// something suitable ?)
if(!Repertoire_existe(Principal_Nom_fichier))
{
strcat(Principal_Nom_fichier, ".pkm");
}
}
}
if(Load)
{
// Determine the type
if(Fichier_existe(Principal_Nom_fichier))
{
Type_selectionne = 0;
if(Repertoire_existe(Principal_Nom_fichier)) Type_selectionne = 1;
}
else
{
Type_selectionne = 1;
}
}
else
{
if(Repertoire_existe(Principal_Nom_fichier)) Type_selectionne = 1;
else Type_selectionne = 0;
}
On_a_clicke_sur_OK=1;
}
Afficher_curseur();

View File

@ -466,10 +466,6 @@ const char * Nom_touche(word Touche)
// Renvoie 0 s'il n'y a pas de caractère associé (shift, backspace, etc)
word Conversion_ANSI(SDL_keysym Sym)
{
if ( Sym.unicode == 0)
{
return Sym.sym;
}
if ( Sym.unicode > 32 && Sym.unicode < 127)
{
return Sym.unicode; // Pas de souci, on est en ASCII standard
@ -546,9 +542,15 @@ word Conversion_ANSI(SDL_keysym Sym)
{
return(SDLK_BACKSPACE);
}
// We make to difference between return & enter in the app context.
if(Sym.unicode == 3)
{
return(SDLK_RETURN);
}
#endif
return Sym.unicode;
}
// Sinon c'est une touche spéciale, on retourne son scancode
return Sym.sym;
}

View File

@ -1225,13 +1225,17 @@ void Save_PKM(void)
Compteur_de_pixels++;
Compteur_de_repetitions=1;
Derniere_couleur=Valeur_pixel;
if(Compteur_de_pixels<Taille_image)
{
Valeur_pixel=Lit_pixel_de_sauvegarde(Compteur_de_pixels % Principal_Largeur_image,Compteur_de_pixels / Principal_Largeur_image);
}
while ( (Valeur_pixel==Derniere_couleur)
&& (Compteur_de_pixels<Taille_image)
&& (Compteur_de_repetitions<65535) )
{
Compteur_de_repetitions++;
Compteur_de_pixels++;
Compteur_de_repetitions++;
if(Compteur_de_pixels>=Taille_image) break;
Valeur_pixel=Lit_pixel_de_sauvegarde(Compteur_de_pixels % Principal_Largeur_image,Compteur_de_pixels / Principal_Largeur_image);
}