aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/grt/grt-options.adb8
-rw-r--r--src/grt/grt-wave_opt_file-parse.adb7
2 files changed, 9 insertions, 6 deletions
diff --git a/src/grt/grt-options.adb b/src/grt/grt-options.adb
index 31bd3b45c..6c3f333d3 100644
--- a/src/grt/grt-options.adb
+++ b/src/grt/grt-options.adb
@@ -165,6 +165,7 @@ package body Grt.Options is
P (" --no-run do not simulate, only elaborate");
P (" --unbuffered disable buffering on stdout, stderr and");
P (" files opened in write or append mode (TEXTIO).");
+ P (" --wave-opt-file=FILENAME read a wave option file");
-- P (" --threads=N use N threads for simulation");
P ("Additional features:");
P (" --has-feature=X test presence of feature X");
@@ -481,14 +482,13 @@ package body Grt.Options is
end if;
Last_Generic_Override := Over;
end;
- elsif Option'Length >= 19
- and then Option (1 .. 19) = "--wave-option-file="
- then
- Wave_Opt_File.Parse.Start (Option (20 .. Option'Last));
elsif Option = "--unbuffered" then
Unbuffered_Writes := True;
setbuf (stdout, NULL_voids);
setbuf (stderr, NULL_voids);
+ elsif Option'Length >= 16 and then Option (1 .. 16) = "--wave-opt-file="
+ then
+ Wave_Opt_File.Parse.Start (Option (17 .. Option'Last));
elsif not Grt.Hooks.Call_Option_Hooks (Option) then
Error_C ("unknown option '");
Error_C (Option);
diff --git a/src/grt/grt-wave_opt_file-parse.adb b/src/grt/grt-wave_opt_file-parse.adb
index 18d29fe37..7c6537b4f 100644
--- a/src/grt/grt-wave_opt_file-parse.adb
+++ b/src/grt/grt-wave_opt_file-parse.adb
@@ -330,11 +330,14 @@ package body Grt.Wave_Opt_File.Parse is
is
Mode : constant String := "rt" & ASCII.Nul;
Stream : FILEs;
+ Option_File_C : String (1 .. Option_File'Length + 1);
begin
- Stream := fopen (Option_File'Address, Mode'Address);
+ Option_File_C (1 .. Option_File'Length) := Option_File;
+ Option_File_C (Option_File_C'Last) := ASCII.Nul;
+ Stream := fopen (Option_File_C'Address, Mode'Address);
if Stream = NULL_Stream then
Error_C ("cannot open '");
- Error_C (Option_File (Option_File'First .. Option_File'Last - 1));
+ Error_C (Option_File);
Error_E ("'");
end if;
return Stream;