annotate gcc/ada/libgnat/a-dirval.adb @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children 84e7813d76e9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 ------------------------------------------------------------------------------
kono
parents:
diff changeset
2 -- --
kono
parents:
diff changeset
3 -- GNAT RUN-TIME COMPONENTS --
kono
parents:
diff changeset
4 -- --
kono
parents:
diff changeset
5 -- A D A . D I R E C T O R I E S . V A L I D I T Y --
kono
parents:
diff changeset
6 -- --
kono
parents:
diff changeset
7 -- B o d y --
kono
parents:
diff changeset
8 -- (POSIX Version) --
kono
parents:
diff changeset
9 -- --
kono
parents:
diff changeset
10 -- Copyright (C) 2004-2017, Free Software Foundation, Inc. --
kono
parents:
diff changeset
11 -- --
kono
parents:
diff changeset
12 -- GNAT is free software; you can redistribute it and/or modify it under --
kono
parents:
diff changeset
13 -- terms of the GNU General Public License as published by the Free Soft- --
kono
parents:
diff changeset
14 -- ware Foundation; either version 3, or (at your option) any later ver- --
kono
parents:
diff changeset
15 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
kono
parents:
diff changeset
16 -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
kono
parents:
diff changeset
17 -- or FITNESS FOR A PARTICULAR PURPOSE. --
kono
parents:
diff changeset
18 -- --
kono
parents:
diff changeset
19 -- As a special exception under Section 7 of GPL version 3, you are granted --
kono
parents:
diff changeset
20 -- additional permissions described in the GCC Runtime Library Exception, --
kono
parents:
diff changeset
21 -- version 3.1, as published by the Free Software Foundation. --
kono
parents:
diff changeset
22 -- --
kono
parents:
diff changeset
23 -- You should have received a copy of the GNU General Public License and --
kono
parents:
diff changeset
24 -- a copy of the GCC Runtime Library Exception along with this program; --
kono
parents:
diff changeset
25 -- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
kono
parents:
diff changeset
26 -- <http://www.gnu.org/licenses/>. --
kono
parents:
diff changeset
27 -- --
kono
parents:
diff changeset
28 -- GNAT was originally developed by the GNAT team at New York University. --
kono
parents:
diff changeset
29 -- Extensive contributions were provided by Ada Core Technologies Inc. --
kono
parents:
diff changeset
30 -- --
kono
parents:
diff changeset
31 ------------------------------------------------------------------------------
kono
parents:
diff changeset
32
kono
parents:
diff changeset
33 -- This is the POSIX version of this package
kono
parents:
diff changeset
34
kono
parents:
diff changeset
35 package body Ada.Directories.Validity is
kono
parents:
diff changeset
36
kono
parents:
diff changeset
37 ---------------------------------
kono
parents:
diff changeset
38 -- Is_Path_Name_Case_Sensitive --
kono
parents:
diff changeset
39 ---------------------------------
kono
parents:
diff changeset
40
kono
parents:
diff changeset
41 function Is_Path_Name_Case_Sensitive return Boolean is
kono
parents:
diff changeset
42 begin
kono
parents:
diff changeset
43 return True;
kono
parents:
diff changeset
44 end Is_Path_Name_Case_Sensitive;
kono
parents:
diff changeset
45
kono
parents:
diff changeset
46 ------------------------
kono
parents:
diff changeset
47 -- Is_Valid_Path_Name --
kono
parents:
diff changeset
48 ------------------------
kono
parents:
diff changeset
49
kono
parents:
diff changeset
50 function Is_Valid_Path_Name (Name : String) return Boolean is
kono
parents:
diff changeset
51 begin
kono
parents:
diff changeset
52 -- A path name cannot be empty and cannot contain any NUL character
kono
parents:
diff changeset
53
kono
parents:
diff changeset
54 if Name'Length = 0 then
kono
parents:
diff changeset
55 return False;
kono
parents:
diff changeset
56
kono
parents:
diff changeset
57 else
kono
parents:
diff changeset
58 for J in Name'Range loop
kono
parents:
diff changeset
59 if Name (J) = ASCII.NUL then
kono
parents:
diff changeset
60 return False;
kono
parents:
diff changeset
61 end if;
kono
parents:
diff changeset
62 end loop;
kono
parents:
diff changeset
63 end if;
kono
parents:
diff changeset
64
kono
parents:
diff changeset
65 -- If Name does not contain any NUL character, it is valid
kono
parents:
diff changeset
66
kono
parents:
diff changeset
67 return True;
kono
parents:
diff changeset
68 end Is_Valid_Path_Name;
kono
parents:
diff changeset
69
kono
parents:
diff changeset
70 --------------------------
kono
parents:
diff changeset
71 -- Is_Valid_Simple_Name --
kono
parents:
diff changeset
72 --------------------------
kono
parents:
diff changeset
73
kono
parents:
diff changeset
74 function Is_Valid_Simple_Name (Name : String) return Boolean is
kono
parents:
diff changeset
75 begin
kono
parents:
diff changeset
76 -- A file name cannot be empty and cannot contain a slash ('/') or
kono
parents:
diff changeset
77 -- the NUL character.
kono
parents:
diff changeset
78
kono
parents:
diff changeset
79 if Name'Length = 0 then
kono
parents:
diff changeset
80 return False;
kono
parents:
diff changeset
81
kono
parents:
diff changeset
82 else
kono
parents:
diff changeset
83 for J in Name'Range loop
kono
parents:
diff changeset
84 if Name (J) = '/' or else Name (J) = ASCII.NUL then
kono
parents:
diff changeset
85 return False;
kono
parents:
diff changeset
86 end if;
kono
parents:
diff changeset
87 end loop;
kono
parents:
diff changeset
88 end if;
kono
parents:
diff changeset
89
kono
parents:
diff changeset
90 -- If Name does not contain any slash or NUL, it is valid
kono
parents:
diff changeset
91
kono
parents:
diff changeset
92 return True;
kono
parents:
diff changeset
93 end Is_Valid_Simple_Name;
kono
parents:
diff changeset
94
kono
parents:
diff changeset
95 -------------
kono
parents:
diff changeset
96 -- Windows --
kono
parents:
diff changeset
97 -------------
kono
parents:
diff changeset
98
kono
parents:
diff changeset
99 function Windows return Boolean is
kono
parents:
diff changeset
100 begin
kono
parents:
diff changeset
101 return False;
kono
parents:
diff changeset
102 end Windows;
kono
parents:
diff changeset
103
kono
parents:
diff changeset
104 end Ada.Directories.Validity;