summaryrefslogtreecommitdiff
path: root/shell/command_line_arguments.ads
diff options
context:
space:
mode:
Diffstat (limited to 'shell/command_line_arguments.ads')
-rw-r--r--shell/command_line_arguments.ads25
1 files changed, 25 insertions, 0 deletions
diff --git a/shell/command_line_arguments.ads b/shell/command_line_arguments.ads
new file mode 100644
index 0000000..4c54bab
--- /dev/null
+++ b/shell/command_line_arguments.ads
@@ -0,0 +1,25 @@
+with Interfaces.C; use Interfaces.C;
+with Interfaces.C.Strings; use Interfaces.C.Strings;
+with Interfaces.C.Pointers;
+with Ada.Strings.Unbounded; use Ada.Strings.Unbounded;
+
+package Command_Line_Arguments is
+
+ type Argument_Array is array (ptrdiff_t range <>) of aliased chars_ptr;
+
+ package Argument_Vector_Package is new Pointers (
+ Index => ptrdiff_t,
+ Element => chars_ptr,
+ Element_Array => Argument_Array,
+ Default_Terminator => Null_Ptr
+ );
+
+ subtype Argument_Count_Type is ptrdiff_t;
+ subtype Argument_Vector_Type is Argument_Vector_Package.Pointer;
+
+ function Get_Argument(
+ Argv : in Argument_Vector_Type;
+ Index : Argument_Count_Type
+ ) return String;
+
+end Command_Line_Arguments;