Skip to content
Snippets Groups Projects
Commit 18067c1a authored by Virgile Prevosto's avatar Virgile Prevosto
Browse files

Merge branch 'feature/michele/gtk-helper-filepath' into 'master'

[GUI] Make gtk-helper configuration module use Filepath instead of simple strings.

See merge request frama-c/frama-c!2542
parents bee62de0 4d8a3b01
No related branches found
No related tags found
No related merge requests found
......@@ -50,13 +50,6 @@ module H = Hashtbl
************************************************************************)
let absoluteFilename (fname: string) =
if Filename.is_relative fname then
Filename.concat (Sys.getcwd ()) fname
else
fname
(** The configuration data can be of several types **)
type configData =
ConfInt of int
......@@ -134,7 +127,7 @@ let useConfigurationList (key: string) (f: configData list -> unit) =
with Not_found -> ()
let saveConfiguration (fname: string) =
let saveConfiguration (fname : Datatype.Filepath.t) =
(** Convert configuration data to a string, for saving externally *)
let configToString (c: configData) : string =
let buff = Buffer.create 80 in
......@@ -171,15 +164,15 @@ let saveConfiguration (fname: string) =
Buffer.contents buff
in
try
let oc = open_out fname in
Kernel.debug "Saving configuration to %s@." (absoluteFilename fname);
let oc = open_out (fname :> string) in
Kernel.debug "Saving configuration to %s@." (fname :> string);
H.iter (fun k c ->
output_string oc (k ^ "\n");
output_string oc ((configToString c) ^ "\n"))
configurationData;
close_out oc
with _ ->
Kernel.warning "Cannot open configuration file %s\n" fname
Kernel.warning "Cannot open configuration file %s\n" (fname :> string)
(** Make some regular expressions early *)
......@@ -188,7 +181,7 @@ let floatRegexp = Str.regexp "f\\([^;]+\\);"
let boolRegexp = Str.regexp "b\\(\\(true\\)\\|\\(false\\)\\);"
let stringRegexp = Str.regexp "\"\\([^\"]*\\)\""
let loadConfiguration (fname: string) : unit =
let loadConfiguration (fname : Datatype.Filepath.t) : unit =
H.clear configurationData;
let stringToConfig (s: string) : configData =
......@@ -241,8 +234,8 @@ let loadConfiguration (fname: string) : unit =
getOne ()
in
(try
let ic = open_in fname in
Kernel.debug "Loading configuration from %s@." (absoluteFilename fname);
let ic = open_in (fname :> string) in
Kernel.debug "Loading configuration from %s@." (fname :> string);
(try
while true do
let k = input_line ic in
......
......@@ -59,10 +59,10 @@ type configData =
| ConfList of configData list
(** Load the configuration from a file *)
val loadConfiguration: string -> unit
val loadConfiguration: Datatype.Filepath.t -> unit
(** Save the configuration in a file. Overwrites the previous values *)
val saveConfiguration: string -> unit
val saveConfiguration: Datatype.Filepath.t -> unit
(** Clear all configuration data *)
val clearConfiguration: unit -> unit
......
......@@ -47,11 +47,11 @@ let framac_logo, framac_icon =
module Configuration = struct
include Cilconfig
let configuration_file () =
try (Gui_parameters.Config.file ~error:false "frama-c-gui.config" :> string)
with Gui_parameters.Config.No_dir -> ""
try (Gui_parameters.Config.file ~error:false "frama-c-gui.config")
with Gui_parameters.Config.No_dir -> Datatype.Filepath.dummy
let load () = loadConfiguration (configuration_file ())
let save () = saveConfiguration (configuration_file ())
let reset () = Extlib.safe_remove (configuration_file ());
let reset () = Extlib.safe_remove (configuration_file () :> string);
loadConfiguration (configuration_file ())
let () = Cmdline.at_normal_exit save
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment