1 10/31/92 AG93 Multics Subroutines and I/O Modules
2 Errata Information for MR12.5
3
4
5 pg 2-40: for the "ask_$ask_cnf" entry point, change the sentence |
6 beginning with "This entry point works like..." with the |
7 following: |
8 |
9 This entry point works like the ask_$ask_cint entry point |
10 except that it returns a value of 'on' or 'off' if a |
11 character string of either 'on' or 'off' is available. |
12
13
14 pg 2-40: for the "ask_$ask_cyn" entry point, change the sentence |
15 beginning with "This entry point works like..." with the |
16 following: |
17 |
18 This entry point works like the ask_$ask_cint entry point |
19 except that it returns a value of 'yes' or 'y' or 'no' or |
20 'n' if a character string of either 'on' or 'off' is |
21 available. |
22
23
24 pg 2-42: for the "ask_$ask_line" entry point, under the "ctl" |
25 argument, delete the sentence "If a period is typed, zero is |
26 returned." |
27
28
29 pg 2-43: for the "ask_$ask_nf" entry point, under the "ctl" |
30 argument, delete the sentence "If a period is typed, zero is |
31 returned." |
32
33
34 pg 2-44; for the "ask_$ask_nflo" entry point, add the following |
35 to the description of the "flo" argument: |
36 |
37 If a period is typed, zero is returned. |
38
39
40 pg 2-44; for the "ask_$ask_nint" entry point, add the following |
41 to the description of the "flo" argument: |
42 |
43 If a period is typed, zero is returned. |
44
45
46 pg 2-123: for the "copy_" subroutine, under NOTES add the
47 following.
48
49 If copying a non-empty mailbox requires that the max_length
50 characteristic of the source be applied to the target, then
51 the target max_length value will take on the default value
52 that was given to it when created.
53
54
55 pg 2-130: for the "copy_dir_" subroutine, under NOTES add the
56 following.
57
58 If copying a non-empty mailbox requires that the max_length
59 characteristic of the source be applied to the target, then
60 the target max_length value will take on the default value
61 that was given to it when created.
62
63
64 pg 2-196: for the 'date_time_$from_clock' entry point, change |
65 the call under USAGE to the following: |
66 |
67 call date_time_$from_clock clock zone addrtime_value |
68 code; |
69
70
71 pg 2-205: for the 'date_time_$set_lang' entrypoint, change the |
72 declaration under USAGE to the following: |
73 |
74 declare date_time_$set_lang entry char* fixed bin35; |
75
76
77 pg 2-206: for the 'date_time_$to_clock' entrypoint, change the |
78 declaration under USAGE to the following: |
79 |
80 declare date_time_$to_clock entry ptr fixed bin71 |
81 fixed bin35; |
82
83
84 pg 2-207: for the 'date_time_$valid_format' entrypoint, change |
85 the declaration under USAGE to the following: |
86 |
87 declare date_time_$valid_format entry char* fixed bin |
88 fixed bin35; |
89
90
91 pgs 2-208.8 to 2-210: Make the following changes for the
92 "decode_definition_" subroutine.
93
94 Replace the paragraph that begins "The decode_definition_
95 subroutine, given a pointer to..." with the following.
96
97 The decode_definition_ subroutine returns the decoded
98 information of an object segment definition in a directly
99 accessible structure. This subroutine can be used on only
100 one segment at a time because it uses internal static
101 storage for information about the current segment.
102
103
104 Under ARGUMENTS, replace the description of "def_ptr" with
105 the following.
106
107 def_ptr
108 is a pointer to the selected definition, or to the base
109 of the object segment. Input. If def_ptr points to
110 the base of the object segment, decode_definition_
111 returns the first acceptable definition in the
112 definition section see Notes. Otherwise, it is
113 expected to be pointing to a definition.
114
115
116 After the STRUCTURE ELEMENTS section following the
117 description of "symbol" add a NOTES section containing the
118 following.
119
120 NOTES
121
122 decode_definition_ might not return the definition pointed
123 to by def_ptr. It checks the "ignore" bit of each
124 definition, and if that bit is "1"b it will continue
125 scanning the list of definitions until it finds one for
126 which the "ignore" bit is not set.
127
128
129 To be sure the internal static information about the
130 current segment has been properly initialized, the first
131 call to decode_definition_ should either pass a pointer to
132 the base of the object segment in def_ptr, or it should
133 follow a call to decode_definition_$init.
134
135 When decode_definition_ is called following a call to
136 decode_definition_$init for the same object segment, it
137 will ignore the value of def_ptr and always return the
138 first definition in the definition section for which
139 "ignore" is not set.
140
141
142 pgs 2-210 to 2-211: Make the following changes for the
143 "decode_definition_$decode_cref" entry point.
144
145 Replace the paragraph that begins "This entry point, given a
146 pointer to an object segment definition..." with the
147 following.
148
149 This entry point returns the decoded information of an
150 object segment definition in a structure similar to that
151 used by the "decode_definition_" entry point, but with a
152 pointer to the symbol name, instead of to the name itself.
153 This entry point can be used on only one segment at a time
154 because it uses internal static storage for information
155 about the current segment. It is used only by the
156 cross_reference command.
157
158
159 Under ARGUMENTS, replace the description of "def_ptr" with
160 the following.
161
162 def_ptr
163 must be a pointer to a definition in the definition
164 section. If link_ptr has a value then def_ptr must point
165 to the beginning of the definition section. Input.
166
167
168 Under ARGUMENTS, in the description of "eof", replace
169 "Input" with "Output".
170
171
172 Under ARGUMENTS, replace the description of "link_ptr" with
173 the following.
174
175 link_ptr
176 must be either a pointer to the base of the linkage
177 section of the object segment, or a null pointer. If
178 link_ptr has a non-null value then def_ptr is assumed to
179 point to the base of the definition section.
180
181
182 Under NOTES, in the first paragraph replace
183 "decode_descriptor_str.incl.pl1" with
184 "decode_definition_str.incl.pl1".
185
186
187 After the STRUCTURE ELEMENTS section following the
188 description of "acc_ptr" add a NOTES section containing the
189 following.
190
191 NOTES
192
193 The decode_definition_$decode_cref entry point might not
194 return the definition pointed to by def_ptr. It checks
195 the "ignore" bit of each definition, and if that bit is
196 "1"b it will continue scanning the list of definitions
197 until it finds one for which the "ignore" bit is not set.
198
199
200 The decode_definition_$decode_cref entry point may be
201 passed pointers to the bases of the definition and linkage
202 sections of the object segment initially. These values
203 will be put in internal static storage. Subsequent calls
204 can pass in def_ptr values for subsequent definitions,
205 with a value of null in link_ptr.
206
207
208 pgs 2-211 to 2-213: Make the following changes for the entry
209 point "decode_definition_$full".
210
211 Under USAGE, delete "returns bit1 aligned".
212
213
214 Under ARGUMENTS, replace the description of "def_ptr" with
215 the following.
216
217 def_ptr
218 is a pointer to the selected definition. Input.
219
220
221 Under STRUCTURE ELEMENTS, in the descriptions of "nargs" and
222 "desc_ptr" replace "descr_sw" with "desc_sw".
223
224
225 After the STRUCTURE ELEMENTS section following the
226 description of "desc_ptr" add a NOTES section containing
227 the following.
228
229 NOTES
230 decode_definition_$full will return the definition pointed
231 to by def_ptr, whether or not the "ignore" bit is set for
232 that definition. If def_ptr points to the definition
233 header, however, this entry point will skip over it and
234 return the first definition in the definition section.
235
236
237 pg 2-213: for the "decode_definition_$init" entry point, replace
238 the paragraph that begins "This entry point is used for
239 initialization and is especially..." with the following.
240
241 This entry point is used for initialization of the
242 internal static storage used to locate the current
243 segment. It is especially useful when the object segment
244 does not begin at offset 0 as for an archive component.
245 This entry point affects only the main entry point,
246 decode_definition_.
247
248
249 pgs 2-289 to 2-290: for the "find_source_file_" subroutine,
250 replace the documentation for USAGE and ARGUMENTS with the
251 following.
252
253 USAGE
254
255 declare find_source_file_ entry char* char* char*
256 ptr fixed bin24 fixed bin35;
257
258 call find_source_file_ pathname suffix source_name
259 source_ptr bit_count code;
260
261
262 ARGUMENTS
263
264 pathname
265 is the pathname of the source program. Input
266
267 suffix
268 is the suffix to be added to the pathname if one does
269 not already exist. Input
270
271 source_name
272 is the name of the source program. Output
273
274 source_ptr
275 is a pointer to the base of the source program. It is
276 null if the source could not be found. Output
277
278
279 bit_count
280 is the bit count of the source program. Output
281
282 code
283 is a standard system status code. Output
284
285
286 pg 2-290 to 2-290.1: for the "find_source_file_$search_path"
287 entry point, replace the documentation for USAGE and
288 ARGUMENTS with the following.
289
290 USAGE
291
292 dcl find_source_file_$search_path entry char* char *
293 char* char* ptr fixed bin24 fixed bin35;
294
295 call find_source_file_$search_path pathname suffix
296 search_list_name source_name source_ptr bit_count
297 code;
298
299
300 ARGUMENTS
301
302 pathname
303 is the pathname of the source program. Input
304
305 suffix
306 is the suffix to be added to the pathname if one does
307 not already exist. Input
308
309 search_list_name
310 is the search list to be used to locate the source file
311 specified by the pathname and suffix input arguments.
312 See "NOTES" below. Input
313
314
315 source_name
316 is the name of the source program. Output
317
318 source_ptr
319 is a pointer to the base of the source program. It is
320 null if the source could not be found. Output
321
322 bit_count
323 is the bit count of the source program. Output
324
325 code
326 is a standard system status code. Output
327
328
329 pg 2-363: for the 'get_equal_name_' entry point, add a new value |
330 to the 'code' argument: |
331 |
332 0 |
333 the target name was constructed without error. |
334
335
336 pg 2-363: for the 'get_equal_name_' entry point, add the |
337 following to the description of the 'error_table_$longeql' |
338 value under the 'code' argument: |
339 |
340 Only the first 32 characters are returned. |
341
342
343 pg 2-363: add a new entry point just before the |
344 'get_equal_name_$component' entry point. |
345 |
346 Entry: get_equal_name_$check_equal_name |
347 |
348 This entry point checks the validity of the equal name based |
349 on the equal convention. |
350
351
352 USAGE |
353 |
354 declare get_equal_name_$check_equal_name entry char * |
355 fixed bin 35; |
356 |
357 call get_equal_name_$check_equal_name equalname code; |
358
359
360 ARGUMENTS |
361 |
362 equalname |
363 is the equal string to be checked. Input |
364 |
365 code |
366 is a standard system error code. Output It can have |
367 the same values described for get_equal_name_. |
368
369
370 pg 2-364: for the 'get_equal_name_$component' entry point, |
371 change USAGE to the following: |
372 |
373 declare get_equal_name_$component entry char* char* |
374 char32 char* char32 fixed bin 35; |
375 |
376 call get_equal_name_$component entryname equal_entryname |
377 equal_component target_entryname target_component |
378 code; |
379
380
381 pg 2-490: add the following documentation for the
382 "hcs_$truncate_seg" subroutine after the documentation
383 for "hcs_$truncate_file".
384
385 Name: hcs_$truncate_seg
386
387 This entry point, given a pointer, truncates a segment to a
388 specified length. If the segment is already shorter than
389 the specified length, no truncation is done. The effect of
390 truncating a segment is to store zeros in the words beyond
391 the specified length.
392
393
394 USAGE
395
396 declare hcs_$truncate_seg entry ptr fixed bin19
397 fixed bin35;
398 call hcs_$truncate_seg seg_ptr length code;
399
400
401 ARGUMENTS
402
403 seg_ptr
404 is a pointer to the segment to be truncated. Input
405 Only the segment number portion of the pointer is used.
406
407 length
408 is the new length of the segment in words. Input
409
410 code
411 is a storage system status code. Output
412
413 Access required: The user must have write access on the
414 segment in order to truncate it.
415
416
417 NOTES
418
419 A directory cannot be truncated. A segment is truncated as
420 follows: all full pages after the page containing the last
421 word of the new length as defined by the length argument
422 segment are discarded. The remainder of the page containing
423 the last word is converted to zeros.
424
425 Bit count is not automatically set by the hcs_$truncate_seg
426 entry point. If desired, the bit count may be set by using
427 the hcs_$set_bc_seg entry point.
428
429 The hcs_$truncate_file entry point performs the same
430 function when given the pathname of the segment instead of
431 the pointer.
432
433
434 pg 2-546: for the "iox_$open_file" entry point, in the description
435 of the "mode" argument, change "Output" to "Input" at
436 the end of the first sentence.
437
438
439 pg 2-627: add documentation for the new subroutine "null_entry_"
440 after the documentation for "nd_handler_".
441
442 Name: null_entry_
443
444 Performs a return to its caller and does nothing.
445
446 USAGE
447
448 declare null_entry_ entry options variable; call
449 null_entry_;
450
451
452 pg 2-888.1: for the "translator_info_$component_get_source_info"
453 entry point, remove the following line.
454
455 Although there is an argument called component_name, this
456 entry point does not currently handle archive components.
457
458
459 pg 2-888.1: for the "translator_info_$component_get_source_info"
460 entry point, replace the description of the "component_name"
461 argument with the following.
462
463 component_name
464 is the name of the archive component. If the source
465 segment is not a component of an archive, then this value
466 is null "". Output
467
468
469 pgs 3-264 to 3-282: for the "window_io_" module, make the
470 following changes:
471
472
473 Page 3-264; replace "PUR CHARS OPERATION" with "PUT CHARS
474 OPERATION", and on the last line of the page replace
475 "scrren" with "screen".
476
477
478 Page 3-266; under STRUCTURE ELEMENTS replace
479
480 dcl 1 window_status_info aligned based window_status_
481 info_ptr,
482 with
483 dcl 1 window_status aligned,
484
485
486 Page 3-267; under NOTES, replace
487
488 The get_window_status and get_window_status control ...
489 with
490 The get_window_status and set_window_status control ...
491
492
493 Page 3-267; under the description of "get_capabilities", replace
494
495 3 pad bit28 unal,
496 with
497 3 pad bit31 unal,
498
499
500 Page 3-269; under NOTES, replace
501
502 io_call window_switch get_editing_chars
503 with
504 io_call control window_switch get_editing_chars
505
506
507 Page 3-272; on the first line of the page, replace
508 "window_more_handler.incl.pl1" with
509 "window_more_info.incl.pl1".
510
511
512 Page 3-272; under STRUCTURE ELEMENTS, in the description of
513 "version", replace "more_handler_info_version_2" with
514 "more_info_version_2".
515
516
517 Page 3-273; under NOTES, replace
518
519 io_call window_switch get_more_handler
520 io_call window_switch set_more_handler more_handler
521 with
522 io_call control window_switch get_more_handler
523 io_call control window_switch set_more_handler more_handler
524
525
526 Page 3-273; add the following after the description of
527 "get_break_table" and before the line " dcl 1
528 break_table_info".
529
530 The info pointer should point to break_table_info, declared
531 in window_control_info.incl.pl1:
532
533
534 Page 3-275; under the description of "get_special" replace
535
536 dcl 1 get_special_info_struc aligned
537 2 version char 8
538 with
539 dcl 1 get_special_info_struc based aligned,
540 2 version char 8,
541
542
543 Page 3-275; under STRUCTURE ELEMENTS, in the description of
544 version replace "SPECIAL_INFO_STRUC_VERSION_1" with
545 "SPECIAL_INFO_STRUCT_VERSION_1".
546
547
548 Page 3-275; under the description of "set_special" replace
549
550 dcl 1 c_chars based aligned,
551 with
552 dcl 1 c_chars based c_chars_ptr aligned,
553
554
555 Pages 3-275 and 3-276; move the following from page 3-276 to page
556 3-275.
557
558 chars
559 are the characters that make up the sequence.
560
561
562 Page 3-276; replace the four instances of "special_chars." with
563 "special_chars_struc.".
564
565
566 Page 3-277; under NOTES replace the five instances of "_seg" with
567 "_seq".
568
569
570 Page 3-279; under the description of "get_token_characters"
571 replace
572
573 2 token_characters_count fixed bin
574 with
575 2 token_character_count fixed bin
576
577
578 Page 3-279; under STRUCTURE ELEMENTS replace
579 "token_characters_count" with "token_character_count".
580
581
582 Page 3-279; replace the description of "get_editor_key_bindings"
583 with the following.
584
585 get_editor_key_bindings
586 returns a pointer to the line_editor_key_binding
587 structure describing the key bindings. io_call support
588 prints out the pathname of each editor routine listing
589 only the names of builtin requests in capital letters
590 with the word "builtin" in parentheses. This control
591 order prints or returns current information about the
592 key_bindings. Use the set_editor_key_bindings control
593 order to change the bindings.
594
595
596 Page 3-280; under the description of "get_editor_key_bindings"
597 replace
598
599 get_editor_key_binding_info_ptr
600 with
601 get_editor_key_bindings_info_ptr
602
603 and replace "3 mbx" with "3 mbz".
604
605
606 Page 3-280; before the description of "key_binding_info_ptr" add
607 the following.
608
609 mbz
610 reserved for future expansion and must be "0"b.
611
612
613 Page 3-281; under the description of "set_editor_key_bindings"
614 replace
615
616 3 pad bit 34 unaligned
617 2 key_binding_info_ptr;
618 with
619 3 mbz bit 34 unaligned
620 2 key_binding_info_ptr ptr;
621
622
623 Page 3-281; before the description of 'key_binding_info_ptr' add
624 the following.
625
626 mbz
627 reserved for future expansion and must be "0"b.
628
629
630 Page 3-282; in the paragraph beginning with "At least one..."
631 replace "set_editor_key_binings" with
632 "set_editor_key_bindings" and replace "control -a" with
633 "control-a".
634
635