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, addr(time_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 bin(35));  |
 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 bin(71),       |
 81              fixed bin(35));                                      |
 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 bin(35));                                      |
 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 (bit(1) 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 bin(24), fixed bin(35));
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 bin(24), fixed bin(35));
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           char(32), char(*), char(32), 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 bin(19),
397              fixed bin(35));
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              bit(28) unal,
496      with
497         3 pad              bit(31) 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