Re: [hatari-devel] Seeing Hatari help on Windows?

[ Thread Index | Date Index | More lists.tuxfamily.org/hatari-devel Archives ]


Hello Eero,

> Am 10.06.2025 um 01:30 schrieb Eero Tamminen <oak@xxxxxxxxxxxxxx>:
> 
> Hi Andreas,
> 
> On 7.6.2025 9.25, Andreas Grabher wrote:
>>>> Am 07.06.2025 um 08:19 schrieb Andreas Grabher <andreas_g86@xxxxxxxxxx>:
>>> In screen.c after "if (!sdlscrn)" SDL_Quit() is called before SDL_GetError(). That clears the error before reporting and SDL_GetError() returns an empty string. I tested this by calling SDL_Quit() after failing to create a renderer (it was easier to force a failure in renderer creation, than in surface creation). I get this message without calling SDL_Quit():
>>> ERROR: Failed to create renderer:
>>>    testrenderer not available
>>> 
>>> And this message with calling SDL_Quit() right before Main_ErrorExit():
>>> ERROR: Failed to create renderer:
>>> 
>>> I suggest this fix:
>>> Call SDL_Quit() from Main_ErrorExit() right before exit(errval) and remove the call from screen.c. The documentation for SDL_Quit() states: "It is safe to call this function even in the case of errors in initialization.“. So this should always work.
> 
> Thanks for testing!  I applied/pushed your suggestion.
> 
> (Another alternative would have been just using a temporary variable for he error message, but SDL_Quit() usage was quite inconsistent, so I think just doing it unconditionally on error exit is better.)

Thank you for the patch! But are did you test this? I think the error message from SDL_GetError() is still deleted.  SDL_Quit() needs to be called after printing the message (mgs2 in this case). 

I can test later, but can‘t imagine this is going to work because order is still the same as before (note that msg2 is a pointer). 
> 
> 
>> btw.
>> Please also fix these messages (you use "initialise" everywhere else, missing semicolon, other error messages start with capital letters):
>> "logging/tracing initialization failed" -> "Logging/tracing initialisation failed:“
>> "could not initialize the SDL library:" -> "Could not initialise the SDL library:"
> 
> I fixed the capitalization, but the semicolon is used only when there's a second (details) message given.
> 
> And the American spelling is used much more than the British one:
> $ for i in initialise initialize; do
>  echo "$i: $(git grep $i | wc -l)";
> done
> initialise: 17
> initialize: 94
> 
> => not going to change that either.
> 
Thank you for fixing the capitalisation and sorry for my misinderstanding with the semicolon. American vs. British English is a matter of taste. Of course both is correct.  

Andreas


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/