[gtkada] GPS confusing GTKAda.

Pascal p.p14 at orange.fr
Sun Dec 27 10:10:54 CET 2015


Hello,

I discover that before executing GPS executable, the gps script saves GTK env var in GPS_STARTUP env var.
So came up the idea to restore the original values before doing Gtk.Main.Init as:

<...>
with Ada.Environment_Variables;
with Ada.Strings.Fixed;

procedure Restore_GPS_Startup_Values is
   procedure Internal_RGSV (Saved_Var_Name, Saved_Var_Value : String) is
      GPS_STARTUP : constant String  := "GPS_STARTUP_";
      Ind         : constant Natural :=
        Ada.Strings.Fixed.Index (Saved_Var_Name, GPS_STARTUP);
      Oringinal_Var_Name : constant String :=
        Saved_Var_Name (Ind + GPS_STARTUP'Length .. Saved_Var_Name'Last);
   begin
      if Ind > 0
        and then Ada.Environment_Variables.Exists (Oringinal_Var_Name)
      then
         if Saved_Var_Value /= "" then
            Ada.Environment_Variables.Set
              (Oringinal_Var_Name,
               Saved_Var_Value);
         else
            Ada.Environment_Variables.Clear (Oringinal_Var_Name);
         end if;
      end if;
   end Internal_RGSV;
begin
   Ada.Environment_Variables.Iterate (Internal_RGSV'Access);
end Restore_GPS_Startup_Values;

procedure Testgtk is
   Win     : Main_Windows.Main_Window;
begin
   Restore_GPS_Startup_Values;
   Gtk.Main.Init;
<...>

Now I can launch and debug my GTKAda programs from GPS 8-)

Shouldn't GPS do that directly?

Season greetings, Pascal.
http://blady.pagesperso-orange.fr


> Le 6 avr. 2015 à 17:36, Pascal <p.p14 at orange.fr> a écrit :
> 
> Hello,
> 
> With some GTKAda programs built with XAdaLib on MacOS, setting environment variables as GDK_PIXBUF_MODULEDIR may puzzle execution, for instance issuing errors as:
> "Couldn't recognize the image file format for file"
> 
> Now GPS sets many of them in execution script, so execution of GTKAda program from GPS may produce these kind of errors.
> 
> The workaround is to execute the program from Terminal, same for debugging with GDB.
> 
> HTH, Pascal.
> http://blady.pagesperso-orange.fr
> 
> 



More information about the gtkada mailing list