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(*), char(32),
 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(*), char(32),
110         char(*), char(32), 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) change(2020-04-24,GDixon), approve(2021-02-22,MCR10088),
217      audit(2021-05-27,Swenson), install(2021-05-27,MR12.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