1 :Info: get_equal_name_: 2020-04-27 get_equal_name_
2
3
4 The get_equal_name_ subroutine accepts an entryname and an equal
5 name as its input and constructs a target name by combining
6 components and subcomponents from an entry name and an equal name,
7 according to the Multics equal convention. Refer to "Constructing
8 and Interpreting Names" in the Programmer's Reference Manual for a
9 description of the equal convention and for the rules used to
10 construct and interpret equal names.
11
12
13 Entry points in get_equal_name_:
14 List is generated by the help command
15
16
17 :Entry: get_equal_name_: 1990-08-22 get_equal_name_
18
19 Function: constructs a target name by combining components and
20 subcomponents from an entry name and an equal name which are supplied
21 as arguments according to the Multics equal convention.
22
23
24 Syntax:
25 declare get_equal_name_ entry char* char* char32
26 fixed bin 35;
27 call get_equal_name_ entryname equal_name target_name code;
28
29
30 Arguments:
31 entryname
32 is the entryname from which the target is to be constructed.
33 Trailing blanks in the entryname character string are ignored.
34 Input
35 equal_name
36 is the equal string from which the target is to be constructed.
37 Trailing blanks in the equal name character string are ignored.
38 Input
39 target_name
40 is the target name that is constructed. Output
41
42
43 code
44 is a standard system error code. Output It can have one of the
45 following values:
46 0
47 the target name was constructed without error.
48 error_table_$bad_equal_name
49 the equal name has a bad format.
50
51
52 error_table_$badequal
53 there was no letter or component in the entryname that
54 corresponds to a percent character % or an equal sign =
55 in the equal name.
56
57 error_table_$longeql
58 the target name to be constructed is longer than 32 characters.
59 Only the first 32 characters are returned.
60
61
62 Notes:
63
64 If the error_table_$badequal status code is returned, then a
65 target_name is returned in which null character strings are used to
66 represent the missing letter or component of entryname.
67
68 If the error_table_$longeql status code is returned, then the first
69 32 characters of the target name to be constructed are returned as
70 target_name.
71
72 The entryname argument that is passed to get_equal_name_ can also be
73 used as the target_name argument, as long as the argument has a
74 length of 32 characters.
75
76
77 :Entry: check_equal_name_: 2020-04-27 get_equal_name_$check_equal_name_
78
79
80 Function: This entrypoint checks the validity of the equal name
81 based on the equal convention.
82
83
84 Syntax:
85 declare get_equal_name_$check_equal_name_ entry char*
86 fixed bin 35;
87 call get_equal_name_$check_equal_name_ equalname code;
88
89
90 Arguments:
91 equalname
92 is the equal string to be checked. Input
93 code
94 is a standard system error code. Output It can have the same
95 values described for get_equal_name_.
96
97
98 :Entry: component: 1990-08-22 get_equal_name_$component
99
100 Function: constructs a target archive and component name by
101 substituting components and or characters from the archive and
102 component name into the equal names, according to the Multics archive
103 component pathname equal convention. Refer to the Programmer's
104 Reference Manual for a description of archive component pathnames and
105 the equal convention.
106
107
108 Syntax:
109 declare get_equal_name_$component entry char* char* char32
110 char* char32 fixed bin 35;
111 call get_equal_name_$component entryname equal_entryname
112 equal_component target_entryname target_component code;
113
114
115 Arguments:
116 entryname
117 is the archive name from which the target archive name is
118 constructed, or is the entryname from which the target component
119 name is constructed if the source pathname is not an archive
120 component pathname. Input
121 component
122 is the component name from which the target component name is
123 constructed, or is a null string if the source pathname is not an
124 archive component pathname. Input
125 equal_entryname
126 is the equal name from which the target archive name is
127 constructed or is the equal name from which the target entryname
128 is constructed if the target pathname is not an archive component
129 pathname. Input
130
131
132 equal_component
133 is the equal name from which the target component name is
134 constructed or is a null string if the target pathname is not an
135 archive component pathname. Input
136 target_entryname
137 is the target archive name that is constructed or is the target
138 entryname that is constructed if the target pathname is not an
139 archive component pathname. Output
140 target_component
141 is the target component name that is constructed or is a null
142 string if the target pathname is not an archive component
143 pathname. Output
144
145
146 code
147 is a standard system error code. Output It can have one of the
148 following:
149
150 error_table_$bad_equal_name
151 either the equal_entryname or equal_component has a bad format.
152
153 error_table_$badequal
154 there was no letter or component in the archive or component
155 name that corresponds to a percent character % or an equal
156 sign = in the appropriate equal name.
157
158
159 error_table_$longeql
160 the target archive or component name to be constructed is
161 longer than 32 characters.
162
163 error_table_$no_archive_for_equal
164 the target pathname has an equal name in the archive name
165 position but the source pathname is not an archive component
166 pathname.
167
168
169 Notes:
170
171 If the error_table_$badequal status code is returned, the name
172 returned in the appropriate output argument is constructed using null
173 character strings to represent the letter or component names missing
174 from the source name.
175
176 If the error_table_$longequal status code is returned, then the first
177 32 characters of the constructed name are returned in the appropriate
178 output argument.
179
180 The two parts of input arguments to this subroutine are expected to
181 be the output arguments from two calls to expand_pathname_$component,
182 one call for the source pathname and one for the pathname containing
183 the equal names.
184
185
186 The output arguments of this subroutine should be used in a call to
187 the initiate _file_$component subroutine. For example:
188
189 call expand_pathname_$component arg1 source_dir source_ename
190 source_comp code;
191 if code ^= 0 then ...
192
193 call expand_pathname_$component arg2 target_dir equal_entry
194 equal_component code;
195 if code ^= 0 then ...
196
197 call get_equal_name_$component source_ename source_comp
198 equal_entry equal_component target_ename target_comp code;
199 if code ^= 0 then ...
200
201
202 call initiate_file_$component source_dir source_ename source_comp
203 R_ACCESS source_ptr source_bit_count code;
204 if code ^= 0 then ...
205
206 call initiate_file_$component target_dir target_ename target_comp
207 R_ACCESS target_ptr target_bit_count code;
208 if code ^= 0 then ...
209
210
211 :hcom:
212
213
214
215 /****^ HISTORY COMMENTS:
216 1) change2020-04-24GDixon, approve2021-02-22MCR10088,
217 audit2021-05-27Swenson, install2021-05-27MR12.6g-0056:
218 A) Correct entrypoint name for get_equal_name_$check_equal_name_. It
219 was documented as get_equal_name_$check_equal_name w/o final _.
220 B) Change dates for other headings to iso_date format.
221 END HISTORY COMMENTS */
222
223
224