COMPILATION LISTING OF SEGMENT help_rql_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 09/13/88 1319.2 mst Tue Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 /****^ HISTORY COMMENTS: 13* 1) change(86-04-17,LJAdams), approve(86-04-17,MCR7327), 14* audit(86-04-17,Lippard), install(86-04-24,MR12.0-1048): 15* First installation of new module. 16* 2) change(86-04-24,LJAdams), approve(86-04-17,MCR7327), 17* audit(86-04-25,Gilcrease), install(86-04-25,MR12.0-1049): 18* PBF to Installation ID 1048. Put heading on info seg 19* display only if there are multiple info segs with 20* the same name. 21* 3) change(86-05-08,LJAdams), approve(86-05-14,MCR7416), 22* audit(86-05-28,Gilcrease), install(86-06-12,MR12.0-1074): 23* Changed the algorithm in get_title_list to split lines properly. For 24* subroutine info segments, if -bf is requested, print a message indicating 25* that no brief information is available and ask the user if detail info is 26* wanted. If the answer is no return to command level, if the answer is 27* yes print the introductory paragraph. 28* 4) change(86-07-24,LJAdams), approve(86-07-31,MCR7506), 29* audit(86-10-29,GDixon), install(86-10-30,MR12.0-1203): 30* Fixed problem with help -title improperly displaying lines. 31* 32* Fixed problem with entry point lists not being displayed in groups of 33* 15 (format_list Mpgs = 1 then list.Npghs = 1). 34* 35* Fixed problem with extra blank line being displayed on More help? line. 36* 37* If ep foo$bar has been requested help will now immediately begin printing 38* the ep description without first asking the user if he wants to see it. 39* (phx0717) 40* 41* Fixed problem that typing scn with no arguments would remain at the same 42* section instead of searching for the next match. (phx09952, phx06043) 43* 44* help -search will now include the section titles in the text being 45* searched. 46* 47* help time_format.gi.info -bf should work (phx18720). 48* 5) change(87-01-06,LJAdams), approve(87-01-06,PBF7506), 49* audit(87-01-06,GDixon), install(87-01-07,MR12.0-1262): 50* Fixed problem in format_list that when the max array bounds had been met 51* and more data still needed to be formatted the remaining data was 52* ignored. Array bounds are now being recomputed in this situation. 53* 6) change(87-01-19,LJAdams), approve(87-09-03,MCR7766), 54* audit(88-09-03,GDixon), install(88-09-13,MR12.2-1109): 55* Fixed problem with -bf not properly display List of... lines that started 56* with a 1 or 2. 57* 58* Added to the rest response -all_entrypoints (-aep) which will print the 59* rest of the remaining entrypoints. (phx05455, phx11988) 60* 61* The total length of entrypoints (:Entry:) was being miscalculated by one 62* character. 63* 64* Added a -case_sensitive (-cs) and -non_case_sensitive (-ncs) to the 65* section and search requests. (phx09975) 66* 67* Added the -list_entry_points (lep) argument/response. 68* (phx02785, phx03662, phx05841, phx08613) 69* 70* Added the list_requests (lr) option to help. 71* 72* Changed version to Vhelp_args_3. 73* 7) change(88-02-17,LJAdams), approve(88-03-07,MCR7857), 74* audit(88-09-03,GDixon), install(88-09-13,MR12.2-1109): 75* Changed to use the help_args.help_data_ptr which points to a second 76* help_args structure that is used for the list_request operation. 77* 78* format_list was improperly formatting data if the terminal had a 79* line length set to >80. Lengthened line buffer to 80* MAX_HELP_LINE_SIZE. 81* END HISTORY COMMENTS */ 82 83 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 84 /* */ 85 /* Name: help_rql_ */ 86 /* */ 87 /* This subroutine implements the help command's request loop. */ 88 /* */ 89 /* Status */ 90 /* */ 91 /* 0) Created: June 1983 by G C Dixon - by dividing help_ into subroutines. */ 92 /* 1) Modified: April 1985 by L. Adams - rewrote parsing routines to 93* */ 94 /* use line logic. */ 95 /* */ 96 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 97 98 /* format: style2,ind2,ll131,dclind4,idind15,comcol41,linecom,ifthen */ 99 help_rql_: 100 procedure (procedure_name, suffix, Phelp_args, Iinfo, Ninfos_printed, Ninfos, Nlast_info_no_brief_data, 101 Nlast_info_cross_ref, PDinfo_seg_, APseg, PDeps, Pquery_answers, PI_LABEL, Sprint_inhibit, Acode); 102 103 dcl procedure_name char (*), 104 suffix char (*), 105 Iinfo fixed bin, /* Number of the info being processed. */ 106 Ninfos_printed fixed bin, /* Number of infos for which something has printed*/ 107 Ninfos fixed bin (24), /* Number of infos handled during this invocation */ 108 Nlast_info_no_brief_data 109 fixed bin, /* Last info processed not containing Syntax sect.*/ 110 Nlast_info_cross_ref 111 fixed bin, /* Last info processed with Scross_ref on. */ 112 /* as diagnosed by get_brief_data. */ 113 PDinfo_seg_ ptr, /* ptr to structure describing the info. */ 114 APseg ptr, /* ptr to base of seg containing the info. */ 115 PDeps ptr, /* ptr to Deps structure. */ 116 Pquery_answers ptr, /* ptr to list of allowed responses. */ 117 PI_LABEL label variable, /* label to go to upon program interrupt. */ 118 Sprint_inhibit bit (1) aligned, 119 Acode fixed bin (35); 120 121 dcl Iep fixed bin, /* subscript of current entry point or info */ 122 /* (logical info segment) being processed. */ 123 Iunit fixed bin, /* subscript of current unit (paragraph). */ 124 Iunit_end fixed bin, 125 Iunit_search fixed bin, /* searching begins with this unit. */ 126 Iunit_syntax (10) fixed bin, /* indices of syntax units. */ 127 Lcount fixed bin, 128 Linfo_name fixed bin, 129 list_of bit (1), /* indicates if list is a list of items */ 130 Loutput fixed bin, 131 Loutput_line fixed bin, /* Length of terminal user's output line. */ 132 Lpgh fixed bin, 133 Lseg fixed bin (21), 134 (Ncommon_units, Nconsecutive_bad_ops, Nuncommon_units, Nprint_units) 135 fixed bin, 136 (Nlines, Nlines_titles) 137 fixed bin, 138 (Nlists_of_args, Nlists_of_bf_args) 139 fixed bin, 140 No_list_elements /* number of list elements in the entry point list*/ 141 fixed bin, 142 Nep_pghs fixed bin, /* number of pghs in entry point list */ 143 Nunit_bf_prt fixed bin, /* number of brief units to print. */ 144 (Plist, Plist_of_titles, Plist_of_cas) 145 ptr, 146 Pcommon_units ptr, 147 PDlinfo ptr, 148 Pep_list ptr, /* ptr to the entry point list */ 149 Plist_base ptr, 150 Plists_of_args (18) ptr, 151 Pnext_free_space 152 ptr, /* ptr to next free word location in temp */ 153 /* seg containing help_args. */ 154 Poutput ptr, 155 Ppgh ptr, 156 Pseg ptr, 157 save_title char (80) varying, 158 Scase_sensitive 159 bit (1), 160 Sdescription_present 161 bit (1), 162 Sep_list_printed 163 bit (1), 164 Sfirst_time bit (1), 165 Sfirst_pgh bit (1), 166 Sfound bit (1) aligned, 167 Sremove_line bit (1), 168 Syntax_section bit (1), 169 Sprt_args bit (1), 170 Sprt_bf_heading 171 bit (1), 172 Sprt_list_of bit (1), 173 Sprt_entry_pts bit (1), 174 Sprt_one_paragraph 175 bit (1), 176 Sloop bit (1) aligned, 177 (Snl1, Snl2) bit (1) aligned, /* Switches used to compute if NL should be output.*/ 178 ISnl3 fixed bin, 179 Ssearch bit (1) aligned, /* on if -section/-search searching to be done. */ 180 Sseen bit (1) aligned, /* on if pgh already seen by user. */ 181 answer char (500) varying, 182 code fixed bin (35), 183 ct_lines fixed bin, 184 ep_name char (65) varying, 185 (i, j) fixed bin, 186 match_result fixed bin, 187 new_section char (88) varying, 188 /* title of new section in which match pgh found */ 189 op fixed bin, 190 query char (200) varying, 191 query_type fixed bin, 192 ref_name char (32) varying, 193 yes_sw bit (1); 194 195 196 dcl 1 Deps aligned based (PDeps), 197 /* structure defining all entry points in log info*/ 198 2 Nlines fixed bin, /* number of lines in log info. */ 199 2 N fixed bin, /* total number of entry points in log info. */ 200 2 linfo (0:0 refer (Deps.N)), 201 /* description of each entry point. */ 202 3 date fixed bin (71), /* binary date assoc with entry point. */ 203 3 Nep_names 204 fixed bin, /* number of entry point names. */ 205 3 ep_name (20) char (32) var, 206 /* name of the entry point. */ 207 3 PDlinfo ptr, /* ptr to paragraph descriptors for this info.*/ 208 3 Pstart ptr, /* first character of entry point info. */ 209 3 L fixed bin, /* length (in chars) of entry point info. */ 210 3 header char (88) varying, 211 /* its heading line. */ 212 3 Nlines fixed bin, /* number of lines in entry point info. */ 213 3 S, /* switches: */ 214 ( 4 seen_by_user, /* this entry point seen by the user. */ 215 4 old_format 216 ) bit (1) unal, /* this entry point contains \006 chars. */ 217 4 pad1 bit (34) unal; 218 219 dcl 1 Dlinfo aligned based (PDlinfo), 220 /* structure defining all paragraphs (units) in */ 221 /* an entry point (misnamed linfo). */ 222 2 Nunits fixed bin, /* number of units in this ep. */ 223 2 Nsections fixed bin, /* number of units beginning a section. */ 224 2 unit (0 refer (Dlinfo.Nunits)), 225 /* unit (paragraph) descriptors. */ 226 3 Pstart ptr, /* ptr to first char of unit (excl. title). */ 227 3 title char (80) varying, 228 /* title of the unit. */ 229 3 L fixed bin (21), /* length of the unit (in chars). */ 230 3 Nlines fixed bin, /* number of lines in the unit. */ 231 3 S aligned, /* switches. */ 232 ( 4 scn, /* unit begins a new section. */ 233 4 seen_by_user, /* unit has been seen by user. */ 234 4 ep_list, /* unit is an entry point list, to be */ 235 /* generated by help_. */ 236 4 arg_list, /* unit is Arguments or Control args. */ 237 4 syntax_list, /* unit is Syntax */ 238 4 list_of_list 239 ) bit (1) unal, /* unit is a list of itemsor examples. */ 240 4 pad1 bit (12) unal, 241 3 Icommon_unit 242 fixed bin (17) unal; 243 /* Index of common pgh in common_units. */ 244 245 dcl 1 LIST aligned based, /* structure used to format list of things to be */ 246 2 header, /* output in columns. */ 247 3 N fixed bin, /* number of list elements. */ 248 3 Nreal fixed bin, /* number of filled list elements. */ 249 3 Npghs fixed bin, /* number of filled paragraphs of formatted out.*/ 250 3 Nrows fixed bin, /* number of rows in formatted output. */ 251 3 Ncols fixed bin, /* number of columns in formatted output. */ 252 3 ML (6) fixed bin, /* length of longest element in each column. */ 253 3 title char (80) varying, 254 /* title of output list. */ 255 3 Iunit fixed bin, /* unit no of pgh containing list elements. */ 256 2 group (0 refer (LIST.N)), 257 3 arg char (88) varying, 258 /* the argument. */ 259 3 Snot_found 260 fixed bin, /* = 1 if no match found for the argument. */ 261 2 print_array 262 (0 refer (LIST.Npghs), 0 refer (LIST.Nrows)), 263 3 line_out char (MAX_HELP_LINE_SIZE); 264 /* Array of lines to be output to the screen. */ 265 266 267 dcl 1 ca aligned, /* current control_arg STRs. */ 268 2 header like LIST.header, 269 2 group (100) like LIST.group; 270 271 dcl 1 lr aligned, /* list_request structure */ 272 2 N fixed bin, 273 2 ca (100) char (32) varying; 274 275 dcl 1 common_units (Ncommon_units) aligned like Dlinfo.unit based (Pcommon_units); 276 277 dcl 1 list aligned based (Plist), 278 2 header like LIST.header, 279 2 group (0 refer (list.N)) like LIST.group, 280 2 print_array 281 (0 refer (list.Npghs), 0 refer (list.Nrows)) like LIST.print_array; 282 /*struc containing lists of things to be output. */ 283 284 dcl 1 list_base aligned based (Plist_base), 285 /* struc locating lists of things to be output. */ 286 2 N fixed bin, /* number of output lists now allocated. */ 287 2 Nmax fixed bin, /* max number of list ptrs allocatable. */ 288 2 Ispace_used_set 289 fixed bin, /* index of last list on which space used set. */ 290 2 Plists (0 refer (list_base.Nmax)) ptr; 291 /* ptrs to allocated lists. */ 292 293 dcl output char (Loutput) based (Poutput); 294 295 dcl pgh char (Lpgh) based (Ppgh); 296 297 dcl 1 query_answers 298 aligned based (Pquery_answers), 299 2 header like LIST.header, 300 2 group (0 refer (query_answers.N)) like LIST.group; 301 1 1 /* BEGIN INCLUDE FILE query_info.incl.pl1 TAC June 1, 1973 */ 1 2 /* Renamed to query_info.incl.pl1 and cp_escape_control added, 08/10/78 WOS */ 1 3 /* version number changed to 4, 08/10/78 WOS */ 1 4 /* Version 5 adds explanation_(ptr len) 05/08/81 S. Herbst */ 1 5 /* Version 6 adds literal_sw, prompt_after_explanation switch 12/15/82 S. Herbst */ 1 6 1 7 dcl 1 query_info aligned, /* argument structure for command_query_ call */ 1 8 2 version fixed bin, /* version of this structure - must be set, see below */ 1 9 2 switches aligned, /* various bit switch values */ 1 10 3 yes_or_no_sw bit (1) unaligned init ("0"b), /* not a yes-or-no question, by default */ 1 11 3 suppress_name_sw bit (1) unaligned init ("0"b), /* do not suppress command name */ 1 12 3 cp_escape_control bit (2) unaligned init ("00"b), /* obey static default value */ 1 13 /* "01" -> invalid, "10" -> don't allow, "11" -> allow */ 1 14 3 suppress_spacing bit (1) unaligned init ("0"b), /* whether to print extra spacing */ 1 15 3 literal_sw bit (1) unaligned init ("0"b), /* ON => do not strip leading/trailing white space */ 1 16 3 prompt_after_explanation bit (1) unaligned init ("0"b), /* ON => repeat question after explanation */ 1 17 3 padding bit (29) unaligned init (""b), /* pads it out to t word */ 1 18 2 status_code fixed bin (35) init (0), /* query not prompted by any error, by default */ 1 19 2 query_code fixed bin (35) init (0), /* currently has no meaning */ 1 20 1 21 /* Limit of data defined for version 2 */ 1 22 1 23 2 question_iocbp ptr init (null ()), /* IO switch to write question */ 1 24 2 answer_iocbp ptr init (null ()), /* IO switch to read answer */ 1 25 2 repeat_time fixed bin (71) init (0), /* repeat question every N seconds if no answer */ 1 26 /* minimum of 30 seconds required for repeat */ 1 27 /* otherwise, no repeat will occur */ 1 28 /* Limit of data defined for version 4 */ 1 29 1 30 2 explanation_ptr ptr init (null ()), /* explanation of question to be printed if */ 1 31 2 explanation_len fixed bin (21) init (0); /* user answers "?" (disabled if ptr=null or len=0) */ 1 32 1 33 dcl query_info_version_3 fixed bin int static options (constant) init (3); 1 34 dcl query_info_version_4 fixed bin int static options (constant) init (4); 1 35 dcl query_info_version_5 fixed bin int static options (constant) init (5); 1 36 dcl query_info_version_6 fixed bin int static options (constant) init (6); /* the current version number */ 1 37 1 38 /* END INCLUDE FILE query_info.incl.pl1 */ 302 303 304 dcl 1 scn aligned, /* current section STRs. */ 305 2 header like LIST.header, 306 2 group (100) like LIST.group; 307 308 dcl seg_char (Lseg) char (1) based (Pseg); 309 310 dcl 1 srh aligned, /* current search STRs. */ 311 2 header like LIST.header, 312 2 group (100) like LIST.group; 313 314 dcl (addr, addrel, addcharno, currentsize, dim, dimension, divide, hbound, index, length, ltrim, 315 max, maxlength, min, mod, null, reverse, rtrim, search, substr, sum, translate, verify) 316 builtin; 317 318 dcl command_query_ entry options (variable), 319 command_query_$yes_no 320 entry () options (variable), 321 convert_date_to_binary_ 322 entry (char (*), fixed bin (71), fixed bin (35)), 323 get_line_length_$switch 324 entry (ptr, fixed bin (35)) returns (fixed bin), 325 ( 326 ioa_, 327 ioa_$nnl, 328 ioa_$rsnnl 329 ) entry options (variable), 330 iox_$control entry (ptr, char (*), ptr, fixed bin (35)), 331 iox_$put_chars entry (ptr, ptr, fixed bin (21), fixed bin (35)), 332 ipc_$block entry (ptr, ptr, fixed bin (35)); 333 334 dcl CONSC_LINE_ARG_ID 335 char (1) int static options (constant) init (""), 336 /* consecutive line arguments = \022 */ 337 FALSE bit (1) int aligned static options (constant) init ("0"b), 338 HELP_LINE_SIZE fixed bin int static options (constant) init (79), 339 HT char (1) int static options (constant) init (" "), 340 HT_SP char (2) int static options (constant) init (" "), 341 HT_SP_NL char (3) int static options (constant) init (" 342 "), 343 HT_SP_NL_VT char (4) int static options (constant) init (" 344 "), 345 MAX_HELP_LINE_SIZE 346 fixed bin int static options (constant) init (136), 347 ME char (4) int static options (constant) init ("help"), 348 MULTI_LINE_ARG_ID 349 char (1) int static options (constant) init (""), 350 /* multiple line arguments = \021 */ 351 NL char (1) int static options (constant) init (" 352 "), 353 NL_NL char (2) int static options (constant) init (" 354 355 "), 356 OLD_HELP_PGH_CHAR 357 char (1) aligned int static options (constant) init (""), 358 /* \006 */ 359 SPACES char (MAX_HELP_LINE_SIZE) aligned int static options (constant) init (" "), 360 SP char (1) int static options (constant) init (" "), 361 SP_SP char (2) int static options (constant) init (" "), 362 SP_SP_SP char (3) int static options (constant) init (" "), 363 TRUE bit (1) int aligned static options (constant) init ("1"b), 364 colon char (1) int static options (constant) init (":"), 365 (ep_list init (5), 366 normal init (1), 367 new_entry init (4), 368 return_from_list_requests 369 init (6), 370 search_unseen init (3), 371 some_unseen init (2)) fixed bin int static options(constant), 372 (error_table_$fatal_error, 373 error_table_$noentry, 374 error_table_$nomatch) 375 fixed bin (35) ext static, 376 (exact_match init (2), 377 match init (1), 378 no_match init (0)) fixed bin int static options (constant), 379 iox_$user_output 380 ptr ext static; 381 382 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 383 384 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 385 /* */ 386 /* Parse up the physical info segment into entry point pieces. */ 387 /* */ 388 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 389 390 Acode = 0; 391 PI_LABEL = RETURN; /* Before any output starts, a pi skips to next */ 392 /* info. */ 393 394 query_info.version = query_info_version_6; 395 /* initialize query info values */ 396 query_info.yes_or_no_sw = FALSE; 397 query_info.suppress_name_sw = TRUE; 398 query_info.query_code = 0; 399 400 call initialize_switches; 401 402 Loutput_line = min (MAX_HELP_LINE_SIZE, get_line_length_$switch (iox_$user_output, code)); 403 if code ^= 0 then 404 Loutput_line = HELP_LINE_SIZE; /* Get user's terminal line size. */ 405 406 Sprint_inhibit = FALSE; /* Printing is not inhibited yet. */ 407 ca.N, scn.N, srh.N = 0; /* No control_arg, search or section args done. */ 408 ref_name = ""; /* No entry point reference name set yet. */ 409 Pseg = APseg; 410 Lseg = Dinfo_seg_.I; /* Address first char of logical info. */ 411 Pseg = addr (seg_char (Dinfo_seg_.I)); 412 Lseg = Dinfo_seg_.L; /* Address all/only log info we are printing. */ 413 call info$init (Pseg, Lseg); 414 call parse_info_into_entry_points (Pseg, Lseg, PDeps); 415 /* Parse up the log info into entry points. */ 416 417 418 419 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 420 /* */ 421 /* Various kinds of output (arguments and control arguments, section titles, */ 422 /* entry point names, etc) are output in columnar lists. More than one list */ 423 /* may exist at a time. Initialize array of list pointers to keep track of them. */ 424 /* The lists themselves are appended to the end of the segment containing */ 425 /* the help_args structure, as are all of the variable size structures used in help_. */ 426 /* */ 427 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 428 429 Pnext_free_space = addrel (PDeps, currentsize (Deps)); 430 /* reuse space for lists, etc each time that */ 431 /* process_info_seg is called. */ 432 Plist_base = get_list_base (Pnext_free_space, currentsize (Deps), 30); 433 /* get space for gen'l purpose list of lists. */ 434 435 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 436 /* */ 437 /* 1) Get space for the descriptor of the paragraphs (units) in the common (or only) part */ 438 /* of the logical info. Parse this common part into pgh units. */ 439 /* 2) If there are other entry point descriptions in the log info, then */ 440 /* get space for their paragraph descriptors. */ 441 /* Parse them up into pghs, and append to their descriptors the common units */ 442 /* (paragraphs included in all entry points) obtained from the common info */ 443 /* descriptors created in step 1 above. */ 444 /* All entry point parts must be parsed now to get line count of entire info right. */ 445 /* */ 446 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 447 448 Ncommon_units = 0; /* No common info has been found yet. */ 449 Pep_list = null; /* Initialize entry point list ptr */ 450 PDlinfo = Pnext_free_space; /* get space for paragraph descriptions of common */ 451 /* or only part of logical info. */ 452 call parse_entry_point_into_units (Deps.linfo (0), Pcommon_units, Ncommon_units, PDlinfo); 453 Pnext_free_space = set_space_used (PDlinfo, currentsize (Dlinfo)); 454 if Deps.N > 0 then 455 do; /* handle log. info w/ several entry point parts. */ 456 do Nuncommon_units = 2 to Dlinfo.Nunits while (^Dlinfo.unit (Nuncommon_units).S.scn); 457 /* Find paragraphs in common part which are */ 458 /* shared by (common to) all entry point parts. */ 459 end; 460 Nuncommon_units = Nuncommon_units - 1; 461 Ncommon_units = Dlinfo.Nunits - Nuncommon_units; 462 if (Ncommon_units = 0) & (Nuncommon_units = 1) then 463 if length (Dlinfo.unit (1).title) > length ("Entry points in") then 464 if substr (Dlinfo.unit (1).title, 1, length ("Entry points in ")) = "Entry points in " then 465 do; 466 Nuncommon_units = 0; 467 Ncommon_units = 1; 468 end; 469 if Ncommon_units > 0 then 470 do; 471 Pcommon_units = addr (Dlinfo.unit (Nuncommon_units + 1)); 472 end; 473 else Pcommon_units = PDlinfo; 474 do i = 1 to Ncommon_units; /* Find section of common part containing */ 475 /* help-generated list of entry points in info. */ 476 if length (common_units (i).title) > 15 then 477 /* 15 = length("Entry points in "). */ 478 if substr (common_units (i).title, 1, 15) = "Entry points in " then 479 do; 480 common_units (i).S.ep_list = TRUE; 481 j = i; 482 do i = i to Ncommon_units; 483 /* Remove any pghs following this special one */ 484 /* from the common part of the info. */ 485 Deps.linfo (0).Nlines = Deps.linfo (0).Nlines - common_units (i).Nlines - 2; 486 end; /* Subtract line count of pghs following the */ 487 /* "Entry points in " section. */ 488 Ncommon_units = j; /* "Entry points in " is last pgh of info. */ 489 Dlinfo.Nunits = Nuncommon_units + Ncommon_units; 490 end; 491 end; 492 493 /* * * * * * * * * * * * * * * * * * * * * * * */ 494 /* First we build an entry point list to determine how many paragraphs */ 495 /* it will consist of. Once we know how big we are going to have to */ 496 /* grow our original list we adjust the size of the original and then */ 497 /* rebuild ep_list so that we can save the formatted output (print) */ 498 /* * * * * * * * * * * * * * * * * * * * * * * */ 499 500 if Ncommon_units > 0 then 501 if common_units (Ncommon_units).S.ep_list then 502 do; 503 Plist = get_list (Plist_base); 504 save_title = common_units (Ncommon_units).title; 505 if ref_name = "" then 506 if suffix = "" then 507 ref_name = rtrim (Dinfo_seg_.ent); 508 else ref_name = 509 substr (Dinfo_seg_.ent, 1, 510 32 - length (suffix) - index (reverse (Dinfo_seg_.ent), reverse (suffix) || ".")); 511 call get_ep_list (ref_name, PDeps, Plist); 512 No_list_elements = list.N;/* save for possible use in -bf */ 513 call format_list (Plist, divide (No_list_elements, 5, 17, 0) + 1, 0); 514 Ncommon_units = Ncommon_units - 1; 515 Dlinfo.Nunits = Nuncommon_units + Ncommon_units + list.Npghs; 516 call give_list_back (Plist_base, Plist); 517 Pnext_free_space = set_space_used (PDlinfo, currentsize (Dlinfo)); 518 Plist = get_list (Plist_base); 519 /* Build entry point list pghs in temp seg. */ 520 list.title = save_title; 521 call get_ep_list (ref_name, PDeps, Plist); 522 call format_list (Plist, divide (list.N, 5, 17, 0) + 1, 0); 523 call set_list_size (Plist_base, Plist); 524 Pep_list = Plist; 525 Nep_pghs = list.Npghs; 526 Poutput, Pnext_free_space = set_space_used (Plist, currentsize (list)); 527 Deps.linfo (0).Nlines = Deps.linfo (0).Nlines + 2 * Ncommon_units; 528 /* Add non-ep list heading lines */ 529 do i = 1 to list.Npghs; /* Create new entry point list pghs. */ 530 call output_list (Plist, i, Poutput, Loutput, Nlines); 531 532 j, Ncommon_units = Ncommon_units + 1; 533 common_units (j).Pstart = Poutput; 534 /* Add new pghs to end of common units. */ 535 common_units (j).L = Loutput; 536 common_units (j).Nlines = Nlines; 537 common_units (j).S = FALSE; 538 if i = 1 then 539 do; /* Include section title for 1st pgh of ep list.*/ 540 common_units (j).title = list.title; 541 common_units (j).S.scn = TRUE; 542 end; 543 else 544 do; /* No section title for subsequent pghs. */ 545 common_units (j).title = ""; 546 end; 547 common_units (j).S.ep_list = TRUE; 548 /* Remember how pghs got there (for debugging). */ 549 Poutput, Pnext_free_space = set_space_used (Poutput, currentsize (output)); 550 end; /* Get space for next pgh. */ 551 Dlinfo.Nunits = Nuncommon_units + Ncommon_units; 552 call give_list_back (Plist_base, Plist); 553 /* Discard list containing entry point names. */ 554 end; 555 do i = 1 to Ncommon_units; /* Mark all common units by number. */ 556 common_units (i).Icommon_unit = i; 557 /* This will help avoid seeing common units in */ 558 end; /* every entry point info. */ 559 PDlinfo = Pnext_free_space; 560 do i = 1 to Deps.N; /* Parse all other entry points to count lines. */ 561 call parse_entry_point_into_units (Deps.linfo (i), Pcommon_units, Ncommon_units, PDlinfo); 562 PDlinfo, Pnext_free_space = set_space_used (PDlinfo, currentsize (Dlinfo)); 563 end; /* Common pghs added to other entries when parsed.*/ 564 end; 565 else 566 do; 567 Pcommon_units = PDlinfo; 568 Ncommon_units = 0; 569 end; 570 if Deps.N >= 0 then /* Deps.N will be less than 0 if info seg is blank*/ 571 Deps.Nlines = sum (Deps.linfo.Nlines); 572 /* Count lines in total info. */ 573 574 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 575 /* */ 576 /* List entry point names */ 577 /* */ 578 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 579 580 if help_args.Sctl.lep & Pep_list ^= null & ^Sep_list_printed then 581 do; 582 Sprt_entry_pts = TRUE; 583 Nlines = Nlines + 2; /* Add count for header of entry pt list */ 584 call print_header (); 585 call print_list (Pep_list, Sprint_inhibit); 586 end; 587 588 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 589 /* */ 590 /* Copy -section and -search control arguments. */ 591 /* */ 592 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 593 594 if help_args.Sctl.scn then 595 do; /* Copy -section args to local storage. */ 596 do i = 1 to min (help_args.Nscns, dim (scn.arg, 1)); 597 scn.arg (i) = help_args.scn (i); 598 end; 599 scn.N = i - 1; 600 end; 601 if help_args.Sctl.srh then 602 do; /* Copy -search args to local storage. */ 603 do i = 1 to min (help_args.Nsrhs, dim (srh.arg, 1)); 604 srh.arg (i) = help_args.srh (i); 605 end; 606 srh.N = i - 1; 607 end; 608 609 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 610 /* */ 611 /* Find the correct logical info segment (info), if any was requested by user. */ 612 /* If desired info was not found, then any searching required for the */ 613 /* -section and -search control arguments cannot and will not be done, though the */ 614 /* operands given with these control arguments are stored as the default values to be */ 615 /* used with the section and search requests if first issued without operands. */ 616 /* */ 617 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 618 619 if Dinfo_seg_.ep = "" then 620 do; /* if no entry point requested, */ 621 if help_args.min_date_time ^= -1 then 622 do; /* process 1st newer than given date/time */ 623 do Iep = 0 to Deps.N while (help_args.min_date_time ^< Deps.linfo (Iep).date); 624 end; /* iff a nonzero date/time selector was given. */ 625 if Iep > Deps.N then 626 Iep = 0; 627 end; 628 else if help_args.Sctl.scn | help_args.Sctl.srh then 629 do; 630 Scase_sensitive = help_args.Sctl.cs; 631 Ssearch = FALSE; /* process 1st entry containing matches for */ 632 Iunit = 1; /* -section and/or -search ctl_args. */ 633 if help_args.Sctl.scn & help_args.Sctl.srh then 634 do; 635 do Iep = 0 to Deps.N while (^Ssearch); 636 match_result = find_section (Deps.linfo (Iep).PDlinfo, scn, Scase_sensitive, Iunit); 637 if match_result ^= no_match then 638 Ssearch = find_pgh (Deps.linfo (Iep).PDlinfo, srh, Iunit, Scase_sensitive, 639 new_section); 640 end; 641 end; 642 else if help_args.Sctl.scn then 643 do; 644 do Iep = 0 to Deps.N while (^Ssearch); 645 match_result = find_section (Deps.linfo (Iep).PDlinfo, scn, Scase_sensitive, Iunit); 646 Ssearch = (match_result ^= no_match); 647 end; 648 end; 649 else 650 do; 651 do Iep = 0 to Deps.N while (^Ssearch); 652 Ssearch = find_pgh (Deps.linfo (Iep).PDlinfo, srh, Iunit, Scase_sensitive, 653 new_section); 654 end; 655 end; 656 if ^Ssearch then 657 do; 658 Acode = error_table_$nomatch; 659 return; 660 end; 661 Iep = Iep - 1; 662 end; 663 else Iep = 0; /* otherwise, process general description. */ 664 Ssearch = TRUE; 665 end; 666 667 else 668 do; /* else search for requested entry point. */ 669 Sfound = FALSE; 670 do Iep = 1 to Deps.N while (^Sfound); 671 do i = 1 to Deps.linfo (Iep).Nep_names while (^Sfound); 672 if Dinfo_seg_.ep = Deps.linfo (Iep).ep_name (i) then 673 Sfound = TRUE; 674 end; 675 end; 676 if Sfound then 677 do; 678 Iep = Iep - 1; 679 Ssearch = TRUE; /* Do -section/-search matching if user asked. */ 680 end; 681 else 682 do; /* requested ep not found. */ 683 if Dinfo_seg_.info_name = "" then 684 Linfo_name = 0; 685 else Linfo_name = length (rtrim (Dinfo_seg_.info_name)) + length (" ()"); 686 if ^help_args.Sctl.inhibit_errors then 687 do; 688 Acode = error_table_$noentry; 689 return; 690 end; 691 Ssearch = FALSE; /* Don't do -section/-search matching. */ 692 Iep = 0; 693 end; 694 end; 695 PDlinfo = Deps.linfo (Iep).PDlinfo; /* Address entry point user wants first. */ 696 697 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 698 /* */ 699 /* When -header is given without other control arguments, generate a heading line */ 700 /* containing full pathname of physical info segment, title line from logical */ 701 /* info segment, line count of logical info segment, and count of logical info segments */ 702 /* (infos) in physical info seg (excluding common portion at the beginning). */ 703 /* */ 704 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 705 706 Ninfos_printed = Ninfos_printed + 1;/* Beyond this point, something must get printed. */ 707 if Dinfo_seg_.Scross_ref then 708 do; /* Just remark about existence of other versions */ 709 /* of an info. */ 710 if Ninfos_printed = 1 then 711 do; 712 call ioa_ ("^a: No infos matching -section and -search control arguments were found.", procedure_name); 713 call ioa_ ("However, several infos appear more than once in the search paths."); 714 call ioa_ ("The following secondary info(s) match -section and -search control arguments."); 715 end; 716 else if Nlast_info_cross_ref ^= Iinfo - 1 then 717 do; 718 call ioa_ ("^v/^a: Other versions of the info^[s^] above were found. See also:", help_args.Lspace_between_infos, 719 procedure_name, Ninfos_printed > 2); 720 end; 721 call ioa_ (" ^a^[>^]^a", Dinfo_seg_.dir, Dinfo_seg_.dir ^= ">", Dinfo_seg_.ent); 722 Nlast_info_cross_ref = Iinfo; 723 go to RETURN; 724 end; 725 else if help_args.Sctl.he_only then 726 do; /* When -header is given without other ctl_args */ 727 /* output the header and return. */ 728 call print_header_only (); 729 go to RETURN; 730 end; 731 732 733 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 734 /* */ 735 /* The -brief control argument requests that the "Syntax" section (or "Usage" section of */ 736 /* old format info segs) be output in full, along with a list of arguments and control */ 737 /* arguments from the "Arguments" and "Control arguments" sections. */ 738 /* 1) Find "Syntax" or "Usage" sections, and count lines in these sections. */ 739 /* 2) Find "Arguments" and "Control arguments" sections, and build lists of arguments. */ 740 /* Count output lines in each list. */ 741 /* 3) Output a header line, optionally given full pathname of physical info seg (-header) */ 742 /* as well as number of lines in the brief output, total lines in the info, and */ 743 /* count of (other) infos in this physical info seg. */ 744 /* 4) Output the "Syntax" or "Usage" section. */ 745 /* 5) Output the columnar lists of "Arguments" and "Control arguments". */ 746 /* 6) Stop processing this physical info segment, and move on to the next specified */ 747 /* by user (if any). */ 748 /* */ 749 /* When -control_arg is given, output description of all args/ctl_args whose name lines */ 750 /* contain match for substring identifier(s) given as operands by the user. */ 751 /* 1) Find "Argument" and "Control argument" name lines which contain one of the */ 752 /* substrings given by the user after -control_arg. */ 753 /* 2) Store those argument description lines in a list. */ 754 /* 3) Print the argument description lines in the list after an appropriate heading. */ 755 /* */ 756 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 757 758 if help_args.Sctl.bf | help_args.Sctl.ca then 759 do; /* Print argument descriptions when -ca given. */ 760 Nlines = 1; /* Count lines to be output. */ 761 /* Add 1 line for heading line. */ 762 763 Nunit_bf_prt = 0; /* Initialize number of syntax units */ 764 765 if help_args.Sctl.bf then 766 do; 767 call get_brief_data (Deps.linfo (Iep).S.old_format, help_args.Sctl.he_pn, PDlinfo, Plist_base, Dinfo_seg_.dir, 768 Dinfo_seg_.ent, Nlast_info_no_brief_data, Iinfo, Ninfos_printed, Iunit_syntax, Nunit_bf_prt, 769 Nlists_of_bf_args, Nlines); 770 if Nunit_bf_prt = 0 then 771 go to RETURN; 772 if Ninfos > 1 then 773 call print_header (); 774 end; 775 else 776 do; 777 Nunit_bf_prt = 0; 778 Nlists_of_bf_args = 0; 779 end; 780 781 if help_args.Sctl.ca & ^Sep_list_printed then 782 do; /* Get control argument descriptions. */ 783 if Ninfos > 1 then 784 call print_header (); 785 Plist, Plist_of_cas = get_list (Plist_base); 786 list.N = help_args.Ncas; /* Begin by copying user-supplied arg names. */ 787 list.arg = help_args.ca; 788 list.title = "-control_arg";/* Get one list for each section with ctl args. */ 789 call get_arg_descriptions (Plist_of_cas, PDlinfo, Plist_base, Deps.linfo (Iep).S.old_format, Plists_of_args, 790 Nlists_of_args); 791 do i = 1 to Nlists_of_args; /* Count output lines in each list. Lists are */ 792 Plist = Plists_of_args (i); 793 /* separated by 2 1 line, with 1 line for */ 794 Nlines = Nlines + list.N + 2; 795 /* title of section containing the args. */ 796 end; 797 end; 798 799 if length (Deps.linfo (Iep).header) = 0 then 800 do; 801 Nlines = Nlines - 2; /* No title? Remove its line count. */ 802 if Nlines <= 0 then 803 Nlines = 1; 804 end; 805 806 Sprt_bf_heading = TRUE; /* Being requested as an external ca */ 807 call print_brief_data (PDlinfo, Plist_base, Iunit_syntax, Nunit_bf_prt, Nlists_of_bf_args, Nlines); 808 809 if help_args.Sctl.ca then 810 do; /* Print ctl arg descriptions, section by sect. */ 811 do j = 1 to Nlists_of_args; 812 Plist = Plists_of_args (j); 813 call ioa_ ("^[^/^]^a:", (j > 1 | Ninfos > 1 | (help_args.Sctl.bf & help_args.Sctl.ca)), list.title); 814 do i = 1 to list.N; 815 call ioa_ ("^a", list.arg (i)); 816 end; 817 end; 818 end; 819 go to RETURN; /* Stop when -brief or -control_arg given. */ 820 end; 821 822 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 823 /* */ 824 /* When -title is given, output a heading line and titles of paragraph sections. */ 825 /* The heading line contains: */ 826 /* 1) The full pathname of the info segment (if -header was given). */ 827 /* 2) The primary title line from the info selected by the user. */ 828 /* 3) The count of section title lines to be output. */ 829 /* 4) Count of total lines in logical info segment. */ 830 /* 5) Count of (other) infos in this physical info segment. */ 831 /* Output a list of section titles in columnar form. */ 832 /* */ 833 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 834 835 836 PI_LABEL = QUERY; /* once printing starts, pi skips to next query. */ 837 Iunit = 0; /* No pghs printed so far. */ 838 if (print_pgh_titles ()) then 839 do; /* Print pgh titles when -title is given only if */ 840 /* more than one title will be printed. */ 841 if length (Deps.linfo (Iep).header) > 0 then 842 Nlines = 1; 843 else Nlines = -1; 844 Plist_of_titles = get_list (Plist_base); 845 call get_title_list (PDlinfo, Plist_of_titles, 0); 846 call format_list (Plist_of_titles, divide (Dlinfo.Nsections, 7, 17, 0) + 1, 1); 847 Nlines = Nlines + Plist_of_titles -> list.Nrows + 1; 848 if help_args.Sctl.all then 849 do; 850 Nlines = Nlines + Deps.linfo (Iep).Nlines + 2; 851 if length (Deps.linfo (Iep).header) > 0 then 852 Nlines = Nlines - 2; 853 end; 854 call print_header (); 855 call print_list (Plist_of_titles, Sprint_inhibit); 856 Pnext_free_space = Plist_of_titles; 857 list_base.N = list_base.N - 1; /* Free list of titles. */ 858 if help_args.Sctl.all then 859 do; 860 do Iunit = 1 to Dlinfo.Nunits; 861 call print_pgh_2nl (Dlinfo.unit (Iunit), Sprint_inhibit); 862 end; 863 go to QUERY; 864 end; 865 end; 866 867 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 868 /* */ 869 /* When -title not given, begin printing paragraphs. Normally start with first pgh. */ 870 /* However, if -section is given, search for section whose title contains */ 871 /* user-specified substrings. Print first pgh of this section if found. */ 872 /* If -search is given, search for pgh containing user-specified substrings. */ 873 /* Start with first matching pgh. If both -section and -search are given, position to */ 874 /* matching section before searching more matching pgh. */ 875 /* */ 876 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 877 878 879 else if ^Sep_list_printed then /* If entrypoint list was printed do not print */ 880 do; 881 Iunit = 1; /* Start searching in first unit. */ 882 new_section = ""; 883 if ^help_args.Sctl.all then 884 if ^help_args.Sctl.title then 885 if help_args.Sctl.scn | help_args.Sctl.srh then 886 /* Select pgh when -section given. */ 887 do; /* Select pgh when -search given. */ 888 Scase_sensitive = help_args.Sctl.cs; 889 if help_args.Sctl.scn then 890 do; /* Search all section titles for one containing */ 891 match_result = find_section (PDlinfo, scn, Scase_sensitive, Iunit); 892 if match_result = no_match then 893 return; 894 end; 895 if help_args.Sctl.srh then 896 do; /* Search subsequent pghs for one containing */ 897 Ssearch = find_pgh (PDlinfo, srh, Iunit, Scase_sensitive, new_section); 898 if ^Ssearch then 899 return; 900 end; 901 end; 902 903 if help_args.Sctl.all then 904 do; 905 Nlines = Deps.linfo (Iep).Nlines; 906 Nprint_units = Dlinfo.Nunits; 907 end; 908 else 909 do; 910 Nlines = Dlinfo.unit (Iunit).Nlines + 2; 911 /* Add 2 for entry point heading. */ 912 if length (Deps.linfo (Iep).header) = 0 then 913 Nlines = Nlines - 2; /* However, if no heading, subtract the 2 lines.*/ 914 if new_section ^= "" then 915 if ^Dlinfo.unit (Iunit).S.scn then 916 Nlines = Nlines + 1; /* Add 1 line for section title of matched pgh. */ 917 Nprint_units = 1; /* Print one pgh. If -section and -search were */ 918 /* not given, print more pghs as well so long */ 919 /* as total lines fewer than help_args.max_Lpgh */ 920 /* and additional pghs shorter than min_Lpgh. */ 921 /* Do NOT add in the entry point list pgh */ 922 if ^(help_args.Sctl.scn | help_args.Sctl.srh) then 923 do while (Nlines_less_Lpgh () & 924 ^Dlinfo.unit (Iunit + Nprint_units).ep_list); 925 Nlines = Dlinfo.unit (Iunit + Nprint_units).Nlines + 1 + Nlines; 926 Nprint_units = Nprint_units + 1; 927 end; 928 end; 929 call print_header (); 930 931 if (new_section_nscn ()) then /* new section - not seen */ 932 do; 933 call ioa_ ("^/^a:", new_section); 934 call print_pgh_nnl (Dlinfo.unit (Iunit), Sprint_inhibit); 935 end; 936 else if (prt_pgh_nnl ()) then /* ^Sctl.he.pn & ^Sctl.he_info_name & */ 937 /* ^Sctl.he_counts & length header = 0 */ 938 call print_pgh_nnl (Dlinfo.unit (Iunit), Sprint_inhibit); 939 else call print_pgh (Dlinfo.unit (Iunit), Sprint_inhibit); 940 941 Sfirst_time = TRUE; 942 943 do Iunit = Iunit + 1 to Iunit + Nprint_units - 1; 944 if Dlinfo.unit (Iunit - 1).Nlines = 1 then 945 /* if prior unit only had 1 line then print 2 blks*/ 946 if ^Sfirst_time then 947 call print_pgh_2nl (Dlinfo.unit (Iunit), Sprint_inhibit); 948 else call print_pgh (Dlinfo.unit (Iunit), Sprint_inhibit); 949 else call print_pgh (Dlinfo.unit (Iunit), Sprint_inhibit); 950 end; 951 Iunit = Iunit - 1; 952 end; 953 954 QUERY: 955 Nconsecutive_bad_ops = 0; /* No errors in responses so far. */ 956 Ssearch = FALSE; /* no searching for matching section/pgh underway.*/ 957 Sloop = TRUE; /* Loop through all paragraphs of info. */ 958 Iunit = Iunit + 1; /* Beginning with the next one. */ 959 if Sep_list_printed then /* Entry list printed */ 960 query_type = ep_list; 961 else query_type = normal; /* Print normal section/pgh messages for now. */ 962 963 do while (Sloop); /* Print remaining pghs under user control. */ 964 PI_LABEL = ASK; /* Recompute query after most program_interrupt's.*/ 965 if Iunit > Dlinfo.Nunits then /* Detect end_of_info and handle specially, but */ 966 go to END_OF_INFO; /* still remain within do group. */ 967 if Dlinfo.unit (Iunit).ep_list & Sep_list_printed then 968 goto CONTINUE; /* If entry pts list already printed dont reprint */ 969 970 if Dlinfo.unit (Iunit).ep_list & ^Sprt_entry_pts then 971 do; /* Print entry pts list only if requested */ 972 Sep_list_printed = TRUE; 973 goto CONTINUE; 974 end; 975 976 if Dlinfo.unit (Iunit).ep_list & No_list_elements = 1 then 977 /* If entry pts list has only 1 element dont print.*/ 978 goto RETURN; 979 ASK: 980 if query_type = normal | query_type = some_unseen | query_type = search_unseen | 981 query_type = return_from_list_requests | query_type = ep_list then 982 do; 983 Sseen = seen_pgh (Dlinfo.unit (Iunit)); 984 /* Tell user in query if he's already seen pgh. */ 985 Nlines = Dlinfo.unit (Iunit).Nlines; 986 Nprint_units = 1; /* Normally print one pgh at a time. */ 987 query = ""; 988 if Dlinfo.unit (Iunit).S.scn | Iunit = 1 | query_type = return_from_list_requests | 989 query_type = ep_list then 990 do; /* However, if pgh begins a section and following */ 991 if Iunit = 1 then 992 do; 993 if ^Dlinfo.unit (1).S.scn then 994 query = "UNTITLED"; 995 else query = Dlinfo.unit (Iunit).title; 996 if query_type = ep_list then 997 /* Increment Nlines for ep list header */ 998 Nlines = Nlines + 2; 999 end; 1000 else if ^Dlinfo.unit (Iunit).S.scn then do; 1001 do Iunit_search = Iunit-1 to 1 by -1 while(^Dlinfo.unit (Iunit_search).S.scn); 1002 end; 1003 if Iunit_search = 0 then 1004 query = "UNTITLED"; 1005 else query = Dlinfo.unit (Iunit_search).title; 1006 end; 1007 else query = Dlinfo.unit (Iunit).title; 1008 /* pghs are shorter than min_Lpgh, print them */ 1009 /* as well, until max_Lpgh lines are aggregated. */ 1010 do i = Iunit + Nprint_units to hbound(Dlinfo.unit,1) 1011 while (ck_conditions (i)); 1012 Nlines = Nlines + Dlinfo.unit (i).Nlines + 2; 1013 /* Must skip 2 lines between pghs to keep line */ 1014 /* count of total info equal to count of all */ 1015 /* printed lines. */ 1016 if Dlinfo.unit (i).S.scn then 1017 do; 1018 query = query || " & "; 1019 if length (query) + length (Dlinfo.unit (i).title) + 12 > Loutput_line then 1020 query = query || NL; 1021 /* 12 = length ( "(nnn lines)." ) */ 1022 query = query || Dlinfo.unit (i).title; 1023 end; 1024 Nprint_units = Nprint_units + 1; 1025 end; /*ck_conditions*/ 1026 end; /*Iunit=1*/ 1027 else 1028 do; /* If pgh doesn't begin a section, we can only */ 1029 /* aggregate pghs in the current section. */ 1030 do i = Iunit + Nprint_units to hbound(Dlinfo.unit,1) 1031 while (ck_more_conditions (i)); 1032 Nlines = Nlines + Dlinfo.unit (i).Nlines + 2; 1033 Nprint_units = Nprint_units + 1; 1034 end; 1035 end; 1036 end; 1037 1038 else if query_type = new_entry then 1039 do; 1040 call ct_pgh_lines; 1041 if Nlines + 2 < Deps.linfo (Iep).Nlines then 1042 Lcount = length ("Entry:(99 lines follow; 999 lines in entry point) More help?"); 1043 else Lcount = length ("Entry:(999 lines in entry point) More help?"); 1044 Snl1 = (Lcount + 2 + length (Deps.linfo (Iep).header) + 3 > Loutput_line); 1045 end; 1046 RE_ASK: 1047 Ssearch = FALSE; /* searching for matching section/pgh is done. */ 1048 PI_LABEL = ASK; /* Routines branching here set PI_LABEL. Reset it.*/ 1049 Sprint_inhibit = FALSE; 1050 if query_type = normal then 1051 do; 1052 call command_query_ (addr (query_info), answer, procedure_name, 1053 "^[^/^]^[^a (^d line^[s^]).^[^/^; ^]^2s^;^4s^d more line^[s^]. ^]^[Review^;More help^]?", 1054 Dlinfo.unit (Iunit).S.scn & Dlinfo.unit (Iunit).Icommon_unit = 1 & Sseen, Dlinfo.unit (Iunit).S.scn, 1055 query, Nlines, Nlines > 1, (length (query) + 24 > Loutput_line), Nlines, Nlines > 1, Sseen); 1056 end; 1057 else if query_type = some_unseen then 1058 call command_query_ (addr (query_info), answer, procedure_name, 1059 "End of info. Some paragraphs unseen.^/^[^a^;In: ^a^] (^d line^[s^]).^[^/^; ^]More help?", 1060 Dlinfo.unit (Iunit).S.scn, query, Nlines, Nlines > 1, length (query) + 30 > Loutput_line); 1061 else if query_type = search_unseen then 1062 call command_query_ (addr (query_info), answer, procedure_name, 1063 "^[^[^a^;In: ^a^] (^d line^[s^])^;^2s^d more line^[s^]^].^[^/^; ^]More help?", query ^= "", 1064 Dlinfo.unit (Iunit).S.scn, query, Nlines, Nlines > 1, length (query) + 30 > Loutput_line); 1065 else if query_type = return_from_list_requests then do; 1066 if length(Deps.linfo(Iep).header) > 0 then 1067 new_section = Deps.linfo(Iep).header; 1068 else if length(rtrim(Dinfo_seg_.info_name)) > 0 then 1069 new_section = rtrim(Dinfo_seg_.info_name); 1070 else new_section = rtrim(Dinfo_seg_.ent); 1071 call command_query_ (addr (query_info), answer, procedure_name, 1072 "Returning to: ^a^/^a (^d line^[s^]):^[^/^; ^]^[Review^;More help^]?", 1073 new_section, query, Nlines, Nlines > 1, length (query) + 25 > Loutput_line, Sseen); 1074 query_type = normal; 1075 end; 1076 else if query_type = new_entry then 1077 call command_query_ (addr (query_info), answer, procedure_name, 1078 "Entry: ^a^[^/^; ^](^[^d lines follow; ^;^s^]^d lines in entry point). ^[Review^;More help^]?", 1079 Deps.linfo (Iep).header, Snl1, (Nlines + 2 < Deps.linfo (Iep).Nlines), Nlines, 1080 Deps.linfo (Iep).Nlines - 2, Sseen); 1081 else if query_type = ep_list then 1082 do; 1083 if length(Deps.linfo(Iep).header) > 0 then 1084 new_section = Deps.linfo(Iep).header; 1085 else if length(rtrim(Dinfo_seg_.info_name)) > 0 then 1086 new_section = rtrim(Dinfo_seg_.info_name); 1087 else new_section = rtrim(Dinfo_seg_.ent); 1088 call command_query_ (addr (query_info), answer, procedure_name, 1089 "Returning to: ^a^/^a (^d line^[s^]):^[^/^; ^]^[Review^;More help^]?", 1090 new_section, query, Nlines, Nlines > 1, length (query) + 25 > Loutput_line, Sseen); 1091 query_type = normal; 1092 Nprint_units = 1; 1093 end; 1094 1095 PARSE: 1096 call parse_answer (answer, op, ep_name, ca, scn, srh, lr); 1097 if op = hbound (do, 1) + 1 then 1098 do; /* Count consecutive errors user makes in answer. */ 1099 Nconsecutive_bad_ops = Nconsecutive_bad_ops + 1; 1100 go to ERROR; 1101 end; 1102 else Nconsecutive_bad_ops = 0; 1103 go to do (op); /* Process request at user's beck and call. */ 1104 1105 YES: 1106 do (1): /* yes */ 1107 Iunit_end = Iunit + Nprint_units - 1; 1108 PI_LABEL = YES_END; /* go to pgh user said, even if he pi's. */ 1109 call print_pgh (Dlinfo.unit (Iunit), Sprint_inhibit); 1110 do Iunit = Iunit + 1 to Iunit + Nprint_units - 1; 1111 call print_pgh_2nl (Dlinfo.unit (Iunit), Sprint_inhibit); 1112 end; 1113 YES_END: 1114 Iunit = Iunit_end; 1115 go to CONTINUE; 1116 1117 do (2): /* no */ 1118 go to RETURN; 1119 1120 do (3): /* quit */ 1121 go to QUIT; 1122 1123 do (4): /* top */ 1124 Iunit = 0; 1125 if length (Deps.linfo (Iep).header) > 0 then 1126 call ioa_ ("^a", Deps.linfo (Iep).header); 1127 go to CONTINUE; 1128 1129 do (5): /* rest */ 1130 Nlines_titles = Dlinfo.unit (Iunit).Nlines; 1131 do Iunit_end = Iunit + 1 to Dlinfo.Nunits; 1132 Nlines_titles = Nlines_titles + Dlinfo.unit (Iunit_end).Nlines + 2; 1133 end; 1134 Iunit_end = Iunit_end - 1; 1135 REST: 1136 PI_LABEL = REST_END; 1137 call ioa_ ("(^d ^[lines follow^;line follows^])", Nlines_titles, Nlines_titles > 1); 1138 call print_pgh (Dlinfo.unit (Iunit), Sprint_inhibit); 1139 do Iunit = Iunit + 1 to Iunit_end; 1140 call print_pgh_2nl (Dlinfo.unit (Iunit), Sprint_inhibit); 1141 end; 1142 REST_END: 1143 Iunit = Iunit_end; 1144 go to CONTINUE; 1145 1146 do (6): /* rest -scn */ 1147 Nlines_titles = Dlinfo.unit (Iunit).Nlines; 1148 do Iunit_end = Iunit + 1 to Dlinfo.Nunits while (^Dlinfo.unit (Iunit_end).S.scn); 1149 Nlines_titles = Nlines_titles + Dlinfo.unit (Iunit_end).Nlines + 2; 1150 end; 1151 Iunit_end = Iunit_end - 1; 1152 go to REST; 1153 1154 do (7): /* rest -aep */ 1155 if Deps.N = 0 then 1156 do; /* No entry points found */ 1157 call ioa_ ("No entrypoint names were found."); 1158 goto ERROR; 1159 end; 1160 1161 if Iep = Deps.N then 1162 do; /* No more entry points exist */ 1163 call ioa_ ("There are no remaining entrypoints to display."); 1164 goto ERROR; 1165 end; 1166 1167 do Iep = Iep + 1 to Deps.N; 1168 PDlinfo = Deps.linfo (Iep).PDlinfo; 1169 Iunit = 1; 1170 Nlines = Dlinfo.unit (Iunit).Nlines + 2; 1171 call ct_pgh_lines; 1172 call ioa_ ("^/Entry: ^a^[^/^; ^](^[^d lines follow; ^;^s^]^d lines in entry point).", 1173 Deps.linfo (Iep).header, Snl1, (Nlines + 2 < Deps.linfo (Iep).Nlines), Nlines, 1174 Deps.linfo (Iep).Nlines - 2); 1175 do Iunit = 1 to Dlinfo.Nunits; 1176 if ^Dlinfo.unit (Iunit).ep_list then 1177 call print_pgh (Dlinfo.unit (Iunit), Sprint_inhibit); 1178 end; 1179 end; 1180 1181 goto CONTINUE; 1182 1183 do (8): /* rest -ep */ 1184 if Deps.N = 0 then 1185 do; /* No entry points found */ 1186 call ioa_ ("No entrypoint names were found."); 1187 goto ERROR; 1188 end; 1189 1190 if Iep = Deps.N then 1191 do; /* No more entry points exist */ 1192 call ioa_ ("There are no remaining entrypoints to display."); 1193 goto ERROR; 1194 end; 1195 1196 if Deps.linfo (Iep,1).ep_name = "" then 1197 do; /* This is not an entry point */ 1198 call ioa_ ("^a is not an entry point", query); 1199 goto ERROR; 1200 end; 1201 1202 PDlinfo = Deps.linfo (Iep).PDlinfo; 1203 Iunit = 1; 1204 Nlines = Dlinfo.unit (Iunit).Nlines + 2; 1205 1206 do Iunit = 1 to Dlinfo.Nunits; 1207 if ^Dlinfo.unit (Iunit).ep_list then 1208 call print_pgh (Dlinfo.unit (Iunit), Sprint_inhibit); 1209 end; 1210 1211 goto RE_ASK; 1212 1213 1214 do (9): /* skip */ 1215 go to CONTINUE; 1216 1217 do (10): /* skip -scn */ 1218 do Iunit = Iunit + 1 to Dlinfo.Nunits while (^Dlinfo.unit (Iunit).S.scn); 1219 end; 1220 Iunit = Iunit - 1; 1221 go to CONTINUE; 1222 1223 do (11): /* skip -ep */ 1224 do (12): /* skip -rest */ 1225 do Iunit = 1 to Dlinfo.Nunits while (^seen_pgh (Dlinfo.unit (Iunit))); 1226 end; /* Has user seen any pgh of this entry? */ 1227 if Iunit > Dlinfo.Nunits then /* No. */ 1228 Sseen = FALSE; 1229 else Sseen = TRUE; /* If so, by skip -ep, he's saying he's seen all */ 1230 go to CHECK_OTHER_ENTRIES; /* he wants to of this entry. */ 1231 1232 do (13): /* skip -seen */ 1233 new_section = ""; 1234 Sfound = FALSE; 1235 do Iunit = Iunit + 1 to Dlinfo.Nunits while (^Sfound); 1236 if Dlinfo.unit (Iunit).S.scn then 1237 new_section = Dlinfo.unit (Iunit).title; 1238 Sfound = ^seen_pgh (Dlinfo.unit (Iunit)); 1239 end; 1240 Iunit = Iunit - 1; 1241 if Sfound then 1242 do; 1243 query = new_section; 1244 query_type = search_unseen; 1245 go to ASK; 1246 end; 1247 else go to END_OF_INFO; 1248 1249 do (14): /* title */ 1250 Iunit_search = Iunit - 1; 1251 TITLE: 1252 PI_LABEL = RE_ASK; 1253 Plist_of_titles = get_list (Plist_base); 1254 call get_title_list (PDlinfo, Plist_of_titles, Iunit_search); 1255 call format_list (Plist_of_titles, divide (Plist_of_titles -> list.N, 7, 17, 0) + 1, 1); 1256 Nlines_titles = Plist_of_titles -> list.Nrows; 1257 call ioa_ ("(^d ^[lines follow^;line follows^])", Nlines_titles, Nlines_titles > 1); 1258 call print_list (Plist_of_titles, Sprint_inhibit); 1259 Pnext_free_space = Plist_of_titles; 1260 list_base.N = list_base.N - 1; 1261 go to RE_ASK; 1262 1263 do (15): /* title -top */ 1264 Iunit_search = 0; 1265 go to TITLE; 1266 1267 do (16): /* entry_point {ep_name} */ 1268 if ref_name = "" then 1269 if suffix = "" then 1270 ref_name = rtrim (Dinfo_seg_.ent); 1271 else ref_name = 1272 substr (Dinfo_seg_.ent, 1, 32 - length (suffix) - index (reverse (Dinfo_seg_.ent), reverse (suffix) || ".")); 1273 if ep_name = "" then /* Look for main entry point (eg, ioa_$ioa_) */ 1274 ep_name = ref_name; 1275 else 1276 do; 1277 i = index (ep_name, "$"); /* Look for hcs_$initiate rather than initiate */ 1278 if i > 1 then 1279 do; /* Validate given reference name. */ 1280 if substr (ep_name, 1, i - 1) ^= ref_name then 1281 do; 1282 call ioa_ ("Reference name ^a invalid. Entry point names must be of the form: 1283 ^a$ENTRY_POINT_NAME 1284 or just: ENTRY_POINT_NAME", substr (ep_name, 1, i - 1), ref_name); 1285 Nconsecutive_bad_ops = Nconsecutive_bad_ops + 1; 1286 go to ERROR; 1287 end; 1288 end; 1289 if i > 0 then 1290 if i < length (ep_name) then 1291 ep_name = substr (ep_name, i + 1); 1292 else ep_name = ref_name; 1293 end; 1294 Sfound = FALSE; /* Find the requested entry point. */ 1295 do i = 1 to Deps.N while (^Sfound); 1296 do j = 1 to Deps.linfo (i).Nep_names while (^Sfound); 1297 if ep_name = Deps.linfo (i).ep_name (j) then 1298 Sfound = TRUE; 1299 end; 1300 end; 1301 if Sfound then 1302 do; 1303 Deps.linfo (Iep).S.seen_by_user = TRUE; 1304 /* user has seen all he wants of this entry point.*/ 1305 Iep = i - 1; 1306 PDlinfo = Deps.linfo (Iep).PDlinfo; 1307 Iunit = 1; 1308 Nlines = Dlinfo.unit (Iunit).Nlines + 2; 1309 call ct_pgh_lines; 1310 call ioa_ ("Entry: ^a^[^/^; ^](^[^d lines follow; ^;^s^]^d lines in entry point).", 1311 Deps.linfo (Iep).header, Snl1, (Nlines + 2 < Deps.linfo (Iep).Nlines), Nlines, 1312 Deps.linfo (Iep).Nlines - 2); 1313 goto YES; 1314 end; 1315 else 1316 do; 1317 call ioa_ ("Entry point ^a$^a not found.", ref_name, ep_name); 1318 go to RE_ASK; 1319 end; 1320 1321 do (17): /* section */ 1322 /* section -ncs */ 1323 Iunit_search = Iunit; 1324 Scase_sensitive = FALSE; 1325 goto SECTION; 1326 do (18): /* section -cs */ 1327 Iunit_search = Iunit; 1328 Scase_sensitive = TRUE; 1329 goto SECTION; 1330 do (19): /* section -top */ 1331 /* section -top -ncs */ 1332 Iunit_search = 1; 1333 Scase_sensitive = FALSE; 1334 goto SECTION; 1335 do (20): /* section -top -cs */ 1336 Iunit_search = 1; 1337 Scase_sensitive = TRUE; 1338 SECTION: 1339 if scn.N = 0 then 1340 do; 1341 call ioa_$nnl ("No search strings given for section request. "); 1342 Nconsecutive_bad_ops = Nconsecutive_bad_ops + 1; 1343 go to ERROR; 1344 end; 1345 if Dlinfo.unit (Iunit_search).S.scn then 1346 Iunit_search = Iunit_search + 1; 1347 match_result = find_section (PDlinfo, scn, Scase_sensitive, Iunit_search); 1348 if match_result = exact_match then 1349 do; 1350 Iunit = Iunit_search; 1351 Nprint_units = 1; 1352 call ioa_ ("(^d ^[lines follow^;line follows^])", Dlinfo.unit (Iunit).Nlines, Dlinfo.unit (Iunit).Nlines > 1); 1353 go to YES; 1354 end; 1355 else if match_result = match then 1356 do; 1357 Iunit = Iunit_search; /* When found, don't aggregate paragraphs. */ 1358 Ssearch = TRUE; 1359 query_type = normal; 1360 goto ASK; 1361 end; 1362 else 1363 do; /* Search failed? Paragraphs can be aggregated */ 1364 call ioa_ ("No matching section found."); 1365 go to RE_ASK; /* based upon user's next response. */ 1366 end; 1367 1368 do (21): /* search */ 1369 /* search -ncs */ 1370 Iunit_search = Iunit; 1371 Scase_sensitive = FALSE; 1372 goto SEARCH; 1373 do (22): /* search -cs */ 1374 Iunit_search = Iunit; 1375 Scase_sensitive = TRUE; 1376 goto SEARCH; 1377 do (23): /* search -top */ 1378 /* search -top -ncs */ 1379 Iunit_search = 1; 1380 Scase_sensitive = FALSE; 1381 goto SEARCH; 1382 do (24): /* search -top -cs */ 1383 Iunit_search = 1; 1384 Scase_sensitive = TRUE; 1385 SEARCH: 1386 if srh.N = 0 then 1387 do; 1388 call ioa_$nnl ("No search strings given for search request. "); 1389 Nconsecutive_bad_ops = Nconsecutive_bad_ops + 1; 1390 go to ERROR; 1391 end; 1392 Ssearch = find_pgh (PDlinfo, srh, Iunit_search, Scase_sensitive, new_section); 1393 if Ssearch then 1394 do; /* Found matching pgh? Print it. */ 1395 Iunit = Iunit_search; 1396 Ssearch = FALSE; 1397 Nlines = Dlinfo.unit (Iunit).Nlines; 1398 if new_section ^= "" & ^Dlinfo.unit (Iunit).S.scn then 1399 do; 1400 Nlines = Nlines + 1; 1401 call ioa_ ("(^d lines follow)^2/^a:", Nlines, new_section); 1402 call print_pgh_nnl (Dlinfo.unit (Iunit), Sprint_inhibit); 1403 end; 1404 else 1405 do; 1406 call ioa_ ("(^d ^[lines follow^;line follows^])", Nlines, Nlines > 1); 1407 call print_pgh (Dlinfo.unit (Iunit), Sprint_inhibit); 1408 end; 1409 go to CONTINUE; 1410 end; 1411 else 1412 do; 1413 call ioa_ ("No matching paragraph found."); 1414 go to RE_ASK; 1415 end; 1416 1417 1418 do (25): /* brief */ 1419 Nlines_titles = -1; 1420 call get_brief_data (Deps.linfo (Iep).S.old_format, help_args.Sctl.he_pn, PDlinfo, Plist_base, Dinfo_seg_.dir, 1421 Dinfo_seg_.ent, Nlast_info_no_brief_data, Iinfo, Ninfos_printed, Iunit_syntax, Nunit_bf_prt, Nlists_of_bf_args, 1422 Nlines_titles); 1423 if Nlines_titles > 0 then 1424 do; 1425 call ioa_ ("(^d ^[lines follow^;line follows^])", Nlines_titles, Nlines_titles > 1); 1426 Sprt_bf_heading = FALSE; /* Internal bf request */ 1427 call print_brief_data (PDlinfo, Plist_base, Iunit_syntax, Nunit_bf_prt, Nlists_of_bf_args, Nlines); 1428 end; 1429 else call ioa_ ("No brief data avaiable"); 1430 go to RE_ASK; 1431 1432 do (26): /* control_arg */ 1433 Nlines_titles = -1; 1434 ca.title = "control_arg"; 1435 call get_arg_descriptions (addr (ca), PDlinfo, Plist_base, Deps.linfo (Iep).S.old_format, Plists_of_args, Nlists_of_args); 1436 if Nlists_of_args > 0 then 1437 do; 1438 do i = 1 to Nlists_of_args; 1439 Plist = Plists_of_args (i); 1440 Nlines_titles = Nlines_titles + list.N + 2; 1441 end; 1442 call ioa_ ("(^d ^[lines follow^;line follows^])", Nlines_titles, Nlines_titles > 1); 1443 do j = 1 to Nlists_of_args; 1444 Plist = Plists_of_args (j); 1445 call ioa_ ("^/^a:", list.title); 1446 do i = 1 to list.N; 1447 call ioa_ ("^a", list.arg (i)); 1448 end; 1449 end; 1450 Pnext_free_space = Plists_of_args (1); 1451 list_base.N = 0; 1452 end; 1453 else call ioa_ ("No matching control arguments."); 1454 go to RE_ASK; 1455 1456 do (27): /* . (= print name of caller) */ 1457 call ioa_ ("^a", procedure_name); 1458 go to RE_ASK; 1459 1460 do (28): /* ? (= list responses) */ 1461 if query_answers.Nrows = 0 then 1462 call format_list (addr (query_answers), 5, 1); 1463 call print_list (addr (query_answers), Sprint_inhibit); 1464 go to RE_ASK; 1465 1466 do (29): /* header */ 1467 call print_header_only (); 1468 go to RE_ASK; 1469 1470 do (30): /* list_entry_points */ 1471 if Pep_list ^= null then 1472 do; 1473 Sprt_entry_pts = TRUE; 1474 Sep_list_printed = FALSE; 1475 call print_list (Pep_list, Sprint_inhibit); 1476 query_type = ep_list; 1477 goto ASK; 1478 end; 1479 else 1480 do; 1481 call ioa_ ("There are no entry points in this info segment."); 1482 goto ERROR; 1483 end; 1484 1485 do (31): /* list_requests */ 1486 do (32): /* help */ 1487 call list_requests; 1488 query_type = return_from_list_requests; 1489 goto ASK; 1490 1491 ERROR: 1492 if Nconsecutive_bad_ops = 1 then 1493 do; /* For first error, omit acceptable response */ 1494 /* list, and just print mini query. */ 1495 call command_query_ (addr (query_info), answer, procedure_name, 1496 "^[^d ^[lines follow^;line follows^].^;^2s^] ^[Review^;More help^]?", Nlines > 0, Nlines, Nlines > 1, Sseen); 1497 go to PARSE; 1498 end; 1499 call ioa_ ("Type ? for a list of allowed responses."); 1500 /* But if user errs more than once for given query*/ 1501 /* tell user how to print responses */ 1502 if Nconsecutive_bad_ops > 2 then 1503 go to RE_ASK; /* If more than 2 consecutive errors, the user */ 1504 /* may have forgotten original question. */ 1505 /* Repeat it in its entirety. */ 1506 else call command_query_ (addr (query_info), answer, procedure_name, 1507 "^[^d ^[lines follow^;line follows^]. ^;^2s^]^[Review^;More help^]?", Nlines > 0, Nlines, Nlines > 1, Sseen); 1508 go to PARSE; 1509 1510 1511 END_OF_INFO: 1512 Sseen = TRUE; /* Examine all pghs looking for unseen pgh. */ 1513 new_section = "UNTITLED"; /* Remember section titles as we examine them. */ 1514 1515 if Dlinfo.Nunits > 0 then do Iunit = 1 to Dlinfo.Nunits while (Sseen); 1516 if Dlinfo.unit (Iunit).S.scn then 1517 new_section = Dlinfo.unit (Iunit).title; 1518 if Sep_list_printed & Dlinfo.unit (Iunit).S.ep_list 1519 then ; 1520 else Sseen = seen_pgh (Dlinfo.unit (Iunit)); 1521 end; /* Look for unseen paragraphs. */ 1522 if ^Sseen then 1523 do; /* Some were found? */ 1524 Iunit = Iunit - 1; /* do group always increments 1 too many. */ 1525 query = new_section; 1526 query_type = some_unseen; 1527 go to ASK; 1528 end; 1529 Sseen = TRUE; /* This entry point has been seen. */ 1530 1531 CHECK_OTHER_ENTRIES: 1532 if Deps.N = 0 then 1533 go to RETURN; /* Only 1 part in log info? We're done. */ 1534 else 1535 do; /* Many entry points. */ 1536 Deps.linfo (Iep).S.seen_by_user = Sseen; 1537 /* Mark whether or not we've seen this entry. */ 1538 do i = Iep + 1 to Deps.N while (Deps.linfo (i).S.seen_by_user | help_args.min_date_time ^< Deps.linfo (i).date); 1539 end; /* Look for unseen entries. */ 1540 if i > Deps.N then 1541 do; /* All entries seen? */ 1542 do i = 1 to Iep - 1 while (Deps.linfo (i).S.seen_by_user | help_args.min_date_time ^< Deps.linfo (i).date); 1543 end; 1544 if Deps.linfo (i).S.seen_by_user | help_args.min_date_time ^< Deps.linfo (i).date then 1545 go to RETURN; 1546 end; 1547 Iep = i; /* ith one is unseen. */ 1548 PDlinfo = Deps.linfo (Iep).PDlinfo; 1549 /* access its paragraph descriptors. */ 1550 Iunit = 1; 1551 if help_args.Sctl.all then 1552 do; 1553 Lcount = length ("Entry:(999 lines in entry point)"); 1554 Snl1 = (Lcount + 2 + length (Deps.linfo (Iep).header) + 3 > Loutput_line); 1555 call ioa_ ("^v/Entry: ^a^[^/^; ^](^d lines in entry point)", help_args.Lspace_between_infos, 1556 Deps.linfo (Iep).header, Snl1, Deps.linfo (Iep).Nlines - 2); 1557 Nprint_units = Dlinfo.Nunits; 1558 go to YES; 1559 end; 1560 query_type = new_entry; 1561 go to ASK; 1562 end; 1563 1564 CONTINUE: 1565 Iunit = Iunit + 1; /* Must implement looping ourselves because */ 1566 Sloop = (Iunit <= Dlinfo.Nunits + 1); 1567 /* Dlinfo.Nunits will change when we switch to a */ 1568 query_type = normal; /* new entry point. Loop would be: */ 1569 1570 1571 end; /* do Iunit = Iunit+1 to Dlinfo.Nunits; */ 1572 1573 RETURN: 1574 Acode = 0; 1575 return; 1576 1577 QUIT: 1578 Acode = error_table_$fatal_error; 1579 return; 1580 1581 1582 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 1583 1584 1585 find_pgh: 1586 procedure (PDlinfo_, Srh, Iunit, Scase_sensitive, new_section) returns (bit (1) aligned); 1587 1588 dcl PDlinfo_ ptr parm; /* ptr to descriptors for this log info seg. (In) */ 1589 dcl 1 Srh aligned parm, /* Paragraph search args. (In) */ 1590 2 header like LIST.header, 1591 2 group (100) like LIST.group; 1592 dcl Iunit fixed bin; /* Pgh to start searching (In) */ 1593 dcl Scase_sensitive 1594 bit(1) parm; /* on if searching in case-sensitive fashion. (In)*/ 1595 dcl new_section char (88) varying; 1596 /* Title of new section in which pgh occurs. */ 1597 /* Pgh found. (Out) */ 1598 1599 dcl 1 Dlinfo_ aligned based (PDlinfo_), 1600 2 Nunits fixed bin, /* number of units (pghs) in this log info seg. */ 1601 2 Nsections fixed bin, /* number of units having section title. */ 1602 2 unit (0 refer (Dlinfo_.Nunits)) like Dlinfo.unit; 1603 dcl Ssearch bit (1) aligned; 1604 dcl (i, j) fixed bin; 1605 dcl PPgh ptr, 1606 LPgh fixed bin, 1607 Pgh char (LPgh) based (PPgh); 1608 1609 if Srh.N = 0 then 1610 return (FALSE); /* If nothing to search for, forget it. */ 1611 j = 0; /* Find length of longest pgh we will examine */ 1612 do i = Iunit to Dlinfo_.Nunits; /* so we can create temp storage into which */ 1613 j = max (j, Dlinfo_.unit (i).L); /* each pgh can be translated into lowercase. */ 1614 end; 1615 1616 BLOCK: 1617 begin; 1618 dcl pgh char (j) varying; 1619 dcl srh (Srh.N) char (88) varying; 1620 /* translated paragraph search args. */ 1621 1622 do i = 1 to Srh.N; /* translate search args to lower case. */ 1623 if Scase_sensitive then 1624 srh (i) = Srh.arg (i); 1625 else srh (i) = translate (Srh.arg (i), "abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 1626 end; 1627 1628 Ssearch = FALSE; /* Search until matching section title found */ 1629 new_section = ""; 1630 1631 do Iunit = Iunit to Dlinfo_.Nunits while (^Ssearch); 1632 if Dlinfo_.unit (Iunit).S.scn then 1633 new_section = Dlinfo_.unit (Iunit).title; 1634 if help_args.Sctl.srh & found_in_title () then 1635 Ssearch = TRUE; 1636 else 1637 do; 1638 PPgh = Dlinfo_.unit (Iunit).Pstart; 1639 LPgh = Dlinfo_.unit (Iunit).L; 1640 if Scase_sensitive then 1641 pgh = Pgh; 1642 else pgh = translate (Pgh, "abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 1643 /* translate pgh to lower case. */ 1644 Ssearch = FALSE; /* Assume title matches until proven otherwise. */ 1645 do i = 1 to dimension (srh, 1) while (^Ssearch); 1646 j = index (pgh, srh (i)); 1647 if index (pgh, srh (i)) > 0 then 1648 Ssearch = TRUE; 1649 end; 1650 end; 1651 end; 1652 1653 if Ssearch then /* Match found? */ 1654 Iunit = Iunit - 1; /* do-group always increments one too many. */ 1655 return (Ssearch); 1656 1657 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 1658 1659 found_in_title: 1660 procedure returns (bit (1) aligned); 1661 1662 dcl title_search char (80) varying; 1663 /* translated title to be searched */ 1664 1665 if Scase_sensitive then 1666 title_search = Dlinfo_.unit (Iunit).title; 1667 else title_search = translate (Dlinfo_.unit (Iunit).title, "abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 1668 /* translate title to lower case. */ 1669 Ssearch = FALSE; /* Assume title matches until proven otherwise. */ 1670 do i = 1 to dimension (srh, 1) while (^Ssearch); 1671 if index (title_search, srh (i)) > 0 then 1672 Ssearch = TRUE; 1673 end; 1674 1675 return (Ssearch); 1676 1677 end found_in_title; 1678 1679 end BLOCK; 1680 1681 end find_pgh; 1682 1683 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 1684 1685 1686 find_section: 1687 procedure (PDlinfo_, Scn, Scase_sensitive, Iunit) returns (fixed bin); 1688 1689 dcl PDlinfo_ ptr parm; /* ptr to `descriptors for this log info seg. (In)*/ 1690 dcl 1 Scn aligned parm, /* Section title search args. (In) */ 1691 2 header like LIST.header, 1692 2 group (100) like LIST.group; 1693 dcl Scase_sensitive 1694 bit(1) parm; /* on if searching in case-sensitive fashion. (In)*/ 1695 dcl Iunit fixed bin parm; /* Pgh to start searching (In) */ 1696 /* Pgh found. (Out) */ 1697 1698 dcl 1 Dlinfo_ aligned based (PDlinfo_), 1699 2 Nunits fixed bin, /* number of units (pghs) in this log info seg. */ 1700 2 Nsections fixed bin, /* number of units having section title. */ 1701 2 unit (0 refer (Dlinfo_.Nunits)) like Dlinfo.unit; 1702 1703 dcl scn (Scn.N) char (88) varying; 1704 /* translated section title search args. */ 1705 dcl Ssearch bit (1) aligned; 1706 dcl i fixed bin; 1707 dcl result fixed bin; 1708 dcl temp char (88) varying; 1709 dcl title char (88) varying; 1710 1711 if Scn.N = 0 then 1712 return (no_match); /* if nothing to search for, forget it. */ 1713 do i = 1 to Scn.N; /* translate search args to lower case. */ 1714 if Scase_sensitive then 1715 scn (i) = Scn.arg (i); 1716 else scn (i) = translate (Scn.arg (i), "abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 1717 end; 1718 Ssearch = FALSE; /* Search until matching section title found */ 1719 do Iunit = Iunit to Dlinfo_.Nunits while (^Ssearch); 1720 if Dlinfo_.unit (Iunit).S.scn then 1721 do; 1722 if Scase_sensitive then 1723 title = Dlinfo_.unit (Iunit).title; 1724 else title = translate (Dlinfo_.unit (Iunit).title, "abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 1725 /* translate title to lower case. */ 1726 Ssearch = TRUE; /* Assume title matches until proven otherwise. */ 1727 do i = 1 to dimension (scn, 1) while (Ssearch); 1728 if index (title, scn (i)) = 0 then 1729 Ssearch = FALSE; 1730 end; 1731 end; 1732 end; 1733 if Ssearch then 1734 do; /* Match found? */ 1735 Iunit = Iunit - 1; /* do-group always increments one too many. */ 1736 temp = scn (1); 1737 do i = 2 to Scn.N; 1738 temp = temp || " "; 1739 temp = temp || scn (i); 1740 end; 1741 if temp = title then /* check for exact match (except for letter case).*/ 1742 result = exact_match; 1743 else result = match; 1744 end; 1745 else result = no_match; 1746 return (result); 1747 1748 end find_section; 1749 1750 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 1751 1752 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 1753 1754 1755 format_list: 1756 procedure (Plist, Mcols, Mpghs); /* This procedure formats a list of values. */ 1757 1758 dcl Plist ptr, /* ptr to argument list to be printed. */ 1759 Mcols fixed bin, /* maximum number of columns to be used in format.*/ 1760 Mpghs fixed bin, /* maximum pghs to be used. 0 means no limit. */ 1761 Sprint_inhibit bit (1) aligned; /* on if printing suppressed by pi. */ 1762 1763 1764 dcl (Icol, Ipgh, Irow) 1765 fixed bin, 1766 Pspaces ptr, 1767 Continued_arg bit (1) aligned, 1768 long_line bit (1), 1769 Smultiple_words 1770 bit (1), 1771 one_line_paragraph 1772 bit (1), 1773 one_line_list bit (1), 1774 Sdoes_not_fit bit (1) aligned, 1775 No_args fixed bin (24), 1776 last_line fixed bin, 1777 length_args fixed bin (24), 1778 i fixed bin, 1779 j fixed bin, 1780 save_N fixed bin; 1781 1782 1783 dcl 1 list aligned based (Plist), 1784 2 header like LIST.header, 1785 2 group (0 refer (list.N)) like LIST.group, 1786 2 print_array 1787 (0 refer (list.Npghs), 0 refer (list.Nrows)) like LIST.print_array; 1788 1789 dcl line_position fixed bin (24); 1790 1791 1792 1793 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 1794 /* */ 1795 /* Format the arguments in as many columns as possible to reduce the output lines. */ 1796 /* However, if the output fits in 2 or more rows, the number of rows is chosen so that */ 1797 /* all columns but the final one are full. */ 1798 /* */ 1799 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 1800 1801 1802 Sdoes_not_fit = TRUE; 1803 long_line = FALSE; 1804 Smultiple_words = FALSE; 1805 one_line_paragraph = FALSE; 1806 one_line_list = FALSE; 1807 1808 if Mcols < 1 then /* Allow caller to limit number of columns. */ 1809 list.Ncols = dimension (list.ML, 1); 1810 else list.Ncols = min (Mcols, dimension (list.ML, 1)); 1811 1812 save_N = list.N; /* If arguments are combined then total number of */ 1813 /* elements must be reduced for row calculation. */ 1814 1815 do list.Ncols = list.Ncols to 1 by -1 while (Sdoes_not_fit); 1816 list.Nrows = divide (save_N + list.Ncols - 1, list.Ncols, 17, 0); 1817 /* Compute how many rows are required to display */ 1818 /* the args in list.Ncols columns. */ 1819 1820 ROW_RETURN: /* Row array bounds exceeded - recompute bounds */ 1821 if Mpghs = 1 then /* compute how many paragraphs are needed. */ 1822 list.Npghs = 1; 1823 else 1824 do; 1825 list.Npghs = divide (list.Nrows + help_args.max_Lpgh - 2, help_args.max_Lpgh - 1, 17, 0); 1826 list.Nrows = divide (list.Nrows + list.Npghs - 1, list.Npghs, 17, 0); 1827 end; 1828 1829 do i = 1 to list.Npghs; 1830 do j = 1 to list.Nrows; 1831 list.print_array (i, j).line_out = SPACES; 1832 end; 1833 end; 1834 1835 ct_lines = 0; 1836 No_args = 0; 1837 list.ML (*) = 0; 1838 line_position = 0; 1839 length_args = 0; 1840 Continued_arg = FALSE; 1841 one_line_paragraph = FALSE; 1842 long_line = FALSE; 1843 Smultiple_words = FALSE; 1844 1845 do Ipgh = 1 to list.Npghs; 1846 do Icol = 1 to list.Ncols; 1847 if Icol = 1 then 1848 line_position = 1; 1849 else line_position = line_position + list.ML (Icol - 1) + 3; 1850 do Irow = 1 to list.Nrows; 1851 if No_args < list.N then 1852 do; 1853 No_args = No_args + 1; 1854 list.ML (Icol) = max (list.ML (Icol), length (list.arg (No_args))); 1855 if sum (list.ML) + (list.Ncols - 1) * 3 > Loutput_line then 1856 goto line_to_long; 1857 if Icol = 1 then /*Clear row before using*/ 1858 print_array (Ipgh, Irow).line_out = ""; 1859 1860 if length(list.arg (No_args)) >= length(CONSC_LINE_ARG_ID) then 1861 if substr (list.arg (No_args), 1, 1) = CONSC_LINE_ARG_ID | substr (list.arg (No_args), 1, 1) = MULTI_LINE_ARG_ID 1862 then 1863 goto check_args; 1864 1865 1866 if list.N <= 3 then 1867 do; /*If multiple words in arg and total number of args < 3*/ 1868 /*then put in one column*/ 1869 if multiple_words () then 1870 do; 1871 line_position = 1; 1872 list.Nrows = list.N; 1873 do i = No_args to list.N; 1874 print_array (Ipgh, Irow).line_out = SPACES; 1875 substr (print_array (Ipgh, Irow).line_out, line_position) = list.arg (No_args); 1876 if line_position = 1 then 1877 ct_lines = ct_lines + 1; 1878 No_args = No_args + 1; 1879 Irow = Irow + 1; 1880 end; 1881 No_args = No_args - 1; 1882 /* decrement No_args */ 1883 end; 1884 end; 1885 1886 if list.Nrows > 1 then 1887 if list.Ncols = 1 then/*If one col max and line is < Loutput then print entire*/ 1888 /*line on the same line - dont fold. */ 1889 if No_args + 1 <= list.N then 1890 if length (list.arg (No_args + 1)) >= 2 then 1891 if substr (list.arg (No_args + 1), 1, 2) = SP_SP then 1892 if length (list.arg (No_args)) - 1 + length (list.arg (No_args + 1)) <= Loutput_line then 1893 do; 1894 length_args = length (list.arg (No_args)) - 1 + length (list.arg (No_args + 1)); 1895 line_position = 1; 1896 if substr (list.arg (No_args + 1), 3, 1) = "-" then 1897 substr (print_array (Ipgh, Irow).line_out, line_position, length_args + 1) = 1898 list.arg (No_args) || substr (list.arg (No_args + 1), 2); 1899 else substr (print_array (Ipgh, Irow).line_out, line_position, length_args + 1) = 1900 list.arg (No_args) || substr (list.arg (No_args + 1), 3); 1901 No_args = No_args + 1; 1902 save_N = save_N - 1; 1903 if line_position = 1 then 1904 ct_lines = ct_lines + 1; 1905 end; 1906 1907 if ^Smultiple_words then 1908 do; 1909 substr (print_array (Ipgh, Irow).line_out, line_position, length (list.arg (No_args))) = list.arg (No_args); 1910 if line_position = 1 then 1911 ct_lines = ct_lines + 1; 1912 end; 1913 1914 if No_args + 1 <= list.N then 1915 if length (list.arg (No_args + 1)) >= 2 then 1916 if substr (list.arg (No_args + 1), 1, 2) = SP_SP then 1917 if Irow = list.Nrows then 1918 Continued_arg = TRUE; 1919 1920 check_args: 1921 if length(list.arg (No_args)) >= length(MULTI_LINE_ARG_ID) then 1922 if substr (list.arg (No_args), 1, 1) = MULTI_LINE_ARG_ID then 1923 do; /* Multi line arguments*/ 1924 if list.N = 2 then 1925 one_line_paragraph = TRUE; 1926 else one_line_paragraph = FALSE; 1927 1928 if No_args + 1 <= list.N then 1929 if length (list.arg (No_args)) - 1 + length (list.arg (No_args + 1)) < 1930 Loutput_line then 1931 do; 1932 length_args = length (list.arg (No_args)) - 1 + length (list.arg (No_args + 1)); 1933 if length_args ^> list.ML (Icol) | one_line_paragraph then 1934 do; /*Combine arg lines if length permits*/ 1935 if ^one_line_paragraph then 1936 if substr (list.arg (No_args + 1), 3, 1) = "-" then 1937 substr (print_array (Ipgh, Irow).line_out, line_position, length_args + 1) = 1938 substr (list.arg (No_args), 2) || substr (list.arg (No_args + 1), 2); 1939 1940 else substr (print_array (Ipgh, Irow).line_out, line_position, length_args) = 1941 substr (list.arg (No_args), 2) || substr (list.arg (No_args + 1), 3); 1942 else substr (print_array (Ipgh, Irow).line_out, line_position, length_args) = 1943 substr (list.arg (No_args), 2) || substr (list.arg (No_args + 1), 3); 1944 list.ML (Icol) = max (list.ML (Icol), length (list.arg (No_args))); 1945 if sum (list.ML) + (list.Ncols - 1) * 3 > Loutput_line then 1946 goto line_to_long; 1947 No_args = No_args + 1; 1948 save_N = save_N - 1; 1949 if line_position = 1 then 1950 ct_lines = ct_lines + 1; 1951 end; 1952 else 1953 do; 1954 substr (print_array (Ipgh, Irow).line_out, line_position, length (list.arg (No_args))) = 1955 substr (list.arg (No_args), 2) || SP; 1956 if Irow = list.Nrows then 1957 Continued_arg = TRUE; 1958 if line_position = 1 then 1959 ct_lines = ct_lines + 1; 1960 end; 1961 end; 1962 else 1963 do; 1964 substr (print_array (Ipgh, Irow).line_out, line_position, length (list.arg (No_args))) = 1965 substr (list.arg (No_args), 2) || SP; 1966 if Irow = list.Nrows then 1967 Continued_arg = TRUE; 1968 if line_position = 1 then 1969 ct_lines = ct_lines + 1; 1970 end; 1971 end; 1972 1973 if length(list.arg (No_args)) >= length(CONSC_LINE_ARG_ID) then 1974 if substr (list.arg (No_args), 1, 1) = CONSC_LINE_ARG_ID then 1975 do; /* Consecutive line argument*/ 1976 substr (print_array (Ipgh, Irow).line_out, line_position, length (list.arg (No_args))) = 1977 substr (list.arg (No_args), 2) || SP; 1978 if line_position = 1 then 1979 ct_lines = ct_lines + 1; 1980 if Irow = list.Nrows then 1981 Continued_arg = TRUE; 1982 end; 1983 1984 do while (Continued_arg); 1985 No_args = No_args + 1; 1986 list.ML (Icol) = max (list.ML (Icol), length (list.arg (No_args))); 1987 if sum (list.ML) + (list.Ncols - 1) * 3 > Loutput_line then 1988 goto line_to_long; 1989 1990 Irow = Irow + 1; 1991 if Irow > list.Nrows then 1992 do; 1993 list.Nrows = list.Nrows + 1; 1994 print_array (Ipgh, Irow).line_out = ""; 1995 end; 1996 1997 if Icol = 1 then /*Clear row initially*/ 1998 print_array (Ipgh, Irow).line_out = ""; 1999 if print_array (Ipgh, Irow).line_out = "" then 2000 ct_lines = ct_lines + 1; 2001 /*A continued arg does not necessarily begin in col 1*/ 2002 substr (print_array (Ipgh, Irow).line_out, line_position, length (list.arg (No_args))) = list.arg (No_args); 2003 if No_args = dim (list.arg, 1) then 2004 Continued_arg = FALSE; 2005 else if length (list.arg (No_args + 1)) >= 2 & substr (list.arg (No_args + 1), 1, 2) ^= SP_SP then 2006 Continued_arg = FALSE; 2007 end; 2008 2009 if No_args = list.N & Ipgh = list.Npghs & Icol = 1 then 2010 do while (Irow < list.Nrows); 2011 /*More rows defined than there are actual arguments for last pgh*/ 2012 Irow = Irow + 1; 2013 print_array (Ipgh, Irow).line_out = SPACES; 2014 end; 2015 2016 end; /*No_args list.Nrows & No_args < list.N then 2022 do; 2023 list.Nrows = list.Nrows + 1; 2024 goto ROW_RETURN; 2025 end; 2026 2027 Sdoes_not_fit = FALSE; 2028 line_to_long: 2029 end; /*Sdoes_not_fit*/ 2030 2031 list.Ncols = list.Ncols + 1; /* do group decrements one too many */ 2032 2033 return; 2034 2035 multiple_words: 2036 proc returns (bit (1)); 2037 Smultiple_words = FALSE; 2038 do i = No_args to list.N; 2039 j = verify (list.arg (i), SP); /* Find 1st none blank character of string */ 2040 if index (substr (list.arg (i), j), ",") = 0 & index (substr (list.arg (i), j), SP) ^= 0 then 2041 Smultiple_words = TRUE; 2042 if length(list.arg (i)) >= length(CONSC_LINE_ARG_ID) then 2043 if substr (list.arg (i), 1, 1) = CONSC_LINE_ARG_ID | substr (list.arg (i), 1, 1) = MULTI_LINE_ARG_ID then 2044 do; 2045 Smultiple_words = FALSE; 2046 return (Smultiple_words); 2047 end; 2048 end; 2049 return (Smultiple_words); 2050 2051 end multiple_words; 2052 2053 print_list_nnl: 2054 entry (Plist, Sprint_inhibit); 2055 2056 if Sprint_inhibit then 2057 return; 2058 Pspaces = addr (SPACES); 2059 if length (list.title) > 0 then 2060 call ioa_ ("^a:", list.title); 2061 go to PRINT_LIST; 2062 2063 2064 2065 print_list: 2066 entry (Plist, Sprint_inhibit); /* This entry point prints a list and its title. */ 2067 2068 if Sprint_inhibit then 2069 return; 2070 Pspaces = addr (SPACES); 2071 if length (list.title) > 0 then 2072 do; 2073 if one_line_pgh & ^multiple_syntax & bf_no_ARG_dsp & Sfirst_time then 2074 call ioa_ ("^a:", list.title); 2075 else call ioa_ ("^/^a:", list.title); 2076 end; 2077 else if one_line_pgh then 2078 do; 2079 if bf_no_ARG_dsp & ^multiple_syntax & Sfirst_time then 2080 ; 2081 else call iox_$put_chars (iox_$user_output, addr (NL), length (NL), 0); 2082 end; 2083 else if ^multiple_syntax & Sfirst_time then 2084 ; 2085 else call iox_$put_chars (iox_$user_output, addr (NL), length (NL), 0); 2086 2087 Sfirst_time = FALSE; 2088 2089 2090 find_end_array: /*Find end of actual data so extraneous blank lines are not output*/ 2091 Ipgh = list.Npghs; 2092 do Irow = list.Nrows to 1 by -1 while (print_array (Ipgh, Irow).line_out = SPACES); 2093 end; 2094 last_line = Irow; 2095 2096 2097 PRINT_LIST: 2098 if Sprt_entry_pts then 2099 goto PRINT_EP_LIST; 2100 2101 do Ipgh = 1 to list.Npghs; /* Output paragraphs, one at a time. */ 2102 if Ipgh > 1 then 2103 call out (NL); 2104 if Ipgh = list.Npghs then /* Set last line of actual data. */ 2105 list.Nrows = last_line; 2106 do Irow = 1 to list.Nrows; /* Output rows, one at a time. */ 2107 call ioa_ ("^a", print_array (Ipgh, Irow).line_out); 2108 end; 2109 Irow = Irow - 1; /* Loop increments 1 past hbound */ 2110 end; 2111 return; 2112 2113 PRINT_EP_LIST: /* Print ep list given on command line */ 2114 help_args.Sctl.lep = FALSE; 2115 Sprt_entry_pts = FALSE; 2116 Sep_list_printed = TRUE; 2117 2118 do Ipgh = 1 to list.Npghs; /* Output paragraphs, one at a time. */ 2119 if Ipgh > 1 then do; 2120 if Ipgh = list.Npghs then 2121 call command_query_$yes_no (yes_sw, 0, procedure_name, 2122 "Do you want to continue printing the entry point list?", "^d more lines. More entrypoints?", last_line); 2123 else call command_query_$yes_no (yes_sw, 0, procedure_name, 2124 "Do you want to continue printing the entry point list?", "^d more lines. More entrypoints?", list.Nrows); 2125 if ^yes_sw then 2126 return; 2127 end; 2128 2129 if Ipgh ^= list.Npghs then /* Output rows, one at a time. */ 2130 do Irow = 1 to list.Nrows; 2131 call ioa_ ("^a", print_array (Ipgh, Irow).line_out); 2132 end; 2133 else do Irow = 1 to last_line; /* Only print non-blank rows */ 2134 call ioa_ ("^a", print_array (Ipgh, Irow).line_out); 2135 end; 2136 2137 Irow = Irow - 1; /* Loop increments 1 past hbound */ 2138 end; 2139 return; 2140 2141 output_list: 2142 entry (Plist, Apgh, Poutput, Loutput, Nlines); 2143 /* output 1 pgh of multipgh list into a string. */ 2144 2145 dcl Apgh fixed bin, /* Number of pgh to output. */ 2146 Poutput ptr, /* ptr to output string. */ 2147 Loutput fixed bin, /* length of output string. */ 2148 output char (Loutput) based (Poutput), 2149 Nlines fixed bin; /* Lines in the output. */ 2150 2151 Nlines = 0; 2152 Loutput = 0; 2153 Pspaces = addr (SPACES); 2154 Ipgh = Apgh; 2155 if Ipgh = 1 then /* Output NL which would follow section title */ 2156 if length (list.title) > 0 then 2157 do; /* in a regular (non-made-up) section. */ 2158 call out (NL); 2159 Nlines = Nlines + 1; 2160 end; 2161 do Irow = 1 to list.Nrows; 2162 if Ipgh = list.Npghs & print_array (Ipgh, Irow).line_out = " " then 2163 return; 2164 call out ((print_array (Ipgh, Irow).line_out)); 2165 call out (NL); 2166 Nlines = Nlines + 1; 2167 end; 2168 return; 2169 2170 2171 out: 2172 proc (str); 2173 2174 dcl str char (*); 2175 2176 Loutput = Loutput + length (str); 2177 substr (output, Loutput - length (str) + 1, length (str)) = str; 2178 2179 end out; 2180 2181 2182 end format_list; 2183 2184 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 2185 2186 dcl line_text char (Lline_text) based (Pline_text), 2187 Pline_text ptr, 2188 Lline_text fixed bin (21), 2189 line_text_arr (Lline_text) char (1) based (Pline_text), 2190 line char (Lline) based (Pline), 2191 Pline ptr, 2192 Lline fixed bin (21), 2193 line_arr (Lline) char (1) based (Pline), 2194 Lparg fixed bin (21), 2195 bf_no_ARG_dsp bit (1) init ("0"b), 2196 new_paragraph bit (1) init ("0"b), 2197 one_line_paragraph 2198 bit (1) init ("0"b), 2199 multiple_syntax 2200 bit (1) init ("0"b), 2201 one_line_pgh bit (1), 2202 Number_lines fixed bin, 2203 Sconsecutive_arg_lines 2204 bit (1); 2205 2206 2207 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 2208 2209 2210 get_arg_descriptions: 2211 procedure (Plist_cas, PDlinfo_, Plist_base, Sreally_old_format, Plists_of_args, Nlists_of_args); 2212 /* This procedure builds a list of argument */ 2213 /* descriptions which match user-given arg names. */ 2214 2215 dcl (Plist_cas, PDlinfo_, Plist_base) 2216 ptr, 2217 Sreally_old_format 2218 bit (1), 2219 Plists_of_args (*) ptr, 2220 Nlists_of_args fixed bin; 2221 2222 dcl 1 list_cas aligned based (Plist_cas), 2223 2 header like LIST.header, 2224 2 group (0 refer (list_cas.N)) like LIST.group; 2225 dcl 1 Dlinfo_ aligned based (PDlinfo_), 2226 /* structure defining all paragraphs (units) in */ 2227 /* an entry point (logical info seg - linfo). */ 2228 2 Nunits fixed bin, /* number of units in this ep. */ 2229 2 Nsections fixed bin, /* number of units beginning a section. */ 2230 2 unit (0 refer (Dlinfo_.Nunits)) like Dlinfo.unit; 2231 2232 dcl 1 list_base aligned based (Plist_base), 2233 /* struc locating lists of things to be output. */ 2234 2 N fixed bin, /* number of output lists now allocated. */ 2235 2 Nmax fixed bin, /* max number of list ptrs allocatable. */ 2236 2 Ispace_used_set 2237 fixed bin, /* index of last list on which space used set. */ 2238 2 Plists (0 refer (list_base.Nmax)) ptr; 2239 /* ptrs to allocated lists. */ 2240 /* unit (paragraph) descriptors. */ 2241 dcl 1 list_args aligned based (Plist_args), 2242 2 header like LIST.header, 2243 2 group (0 refer (list_args.N)) like LIST.group; 2244 dcl Plist_args ptr, 2245 args char (Lline) based (Pline); 2246 2247 dcl Iunit fixed bin, 2248 k fixed bin, 2249 save_args char(200) varying; /* no lines longer than 200 allowed. */ 2250 2251 Nlists_of_args = 0; 2252 list_cas.Snot_found (*) = 1; 2253 2254 do Iunit = 1 to Dlinfo_.Nunits; 2255 if Dlinfo_.unit (Iunit).S.arg_list then 2256 do; 2257 if Dlinfo_.unit (Iunit).S.scn then 2258 do; 2259 if Nlists_of_args > 0 then 2260 if list_args.N = 0 then 2261 list_args.title = Dlinfo_.unit (Iunit).title; 2262 else go to NEXT_LIST; 2263 else 2264 do; 2265 NEXT_LIST: 2266 if Nlists_of_args >= dimension (Plists_of_args, 1) then 2267 ; 2268 else 2269 do; 2270 Nlists_of_args = Nlists_of_args + 1; 2271 Plist_args, Plists_of_args (Nlists_of_args) = get_list (Plist_base); 2272 list_args.title = Dlinfo_.unit (Iunit).title; 2273 end; 2274 end; 2275 end; 2276 Pline_text = Dlinfo_.unit (Iunit).Pstart; 2277 Lline_text = Dlinfo_.unit (Iunit).L; 2278 call line$skip_blanks; /* strip off leading blanks if existant*/ 2279 do while (Lline_text > 0); /* Search pgh for arguments. */ 2280 if line$next () then 2281 do; 2282 if line$blank () | line$HT_SP () then 2283 do; 2284 Sconsecutive_arg_lines = FALSE; 2285 end; 2286 else 2287 do; /* find arg */ 2288 call line$args; 2289 save_args = args; 2290 do k = 1 to list_cas.N; 2291 if search (list_cas.arg (k), "ABCDEFGHIJKMNOPQRSTUVWXYZ") = 0 then 2292 if ^Scase_sensitive then 2293 save_args = translate (save_args, "abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 2294 if index (save_args, list_cas.arg (k)) > 0 then 2295 do; 2296 list_cas.Snot_found (k) = 0; 2297 list_args.N = list_args.N + 1; 2298 list_args.arg (list_args.N) = args; 2299 /*get the argument */ 2300 do while (line$desc ()); 2301 list_args.N = list_args.N + 1; 2302 list_args.arg (list_args.N) = args; 2303 end; /*get desc*/ 2304 end; /*found arg*/ 2305 end; /*k=1 to list_cas.N*/ 2306 END_LOOP: 2307 end; /*find arg*/ 2308 end; /*line$next*/ 2309 end; /*Lline_text>0*/ 2310 end; /*arg list*/ 2311 end; /*Iunit=1 to Dlinfo.Nunits*/ 2312 if Nlists_of_args > 0 then /* May have unused list. If so, free it. */ 2313 if list_args.N = 0 then 2314 do; 2315 list_base.N = list_base.N - 1; 2316 Nlists_of_args = Nlists_of_args - 1; 2317 end; 2318 if sum (list_cas.Snot_found) > 0 then 2319 do; /* Any control arg names given by user unmatched? */ 2320 if Nlists_of_args = 0 then 2321 do; 2322 Nlists_of_args = Nlists_of_args + 1; 2323 Plist_args, Plists_of_args (Nlists_of_args) = get_list (Plist_base); 2324 list_args.title = "NO MATCH FOR " || list_cas.title || " STRINGS"; 2325 end; 2326 else 2327 do; 2328 list_args.N = list_args.N + 1; 2329 list_args.arg (list_args.N) = ""; 2330 list_args.N = list_args.N + 1; 2331 list_args.arg (list_args.N) = "NO MATCH FOR " || list_cas.title || " STRINGS:"; 2332 end; 2333 do k = 1 to list_cas.N; 2334 if list_cas.Snot_found (k) > 0 then 2335 do; 2336 list_args.N = list_args.N + 1; 2337 list_args.arg (list_args.N) = " "; 2338 list_args.arg (list_args.N) = list_args.arg (list_args.N) || list_cas.arg (k); 2339 end; 2340 end; 2341 end; 2342 2343 end get_arg_descriptions; 2344 2345 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 2346 2347 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 2348 2349 2350 get_arg_list: 2351 procedure (unit, Plist, Sreally_old_format); 2352 /* This procedure builds a list of arguments. */ 2353 2354 dcl 1 unit aligned like Dlinfo.unit, 2355 Plist ptr; /* ptr to space for arg list. */ 2356 2357 dcl 1 list aligned based (Plist), 2358 2 header like LIST.header, 2359 2 group (0 refer (list.N)) like LIST.group, 2360 2 print_array 2361 (0 refer (list.Npghs), 0 refer (list.Nrows)) like LIST.print_array; 2362 2363 dcl Sreally_old_format 2364 bit (1), 2365 args char (Lline) based (Pline), 2366 /*contains the control argument */ 2367 (i, j, k) fixed bin (24), 2368 remove_N fixed bin; 2369 2370 2371 j = 0; 2372 Sfirst_time = TRUE; 2373 Sremove_line = FALSE; 2374 Pline_text = unit.Pstart; /* address the paragraph. */ 2375 Lline_text = unit.L; 2376 call line$skip_blanks; 2377 do while (Lline_text > 0); /* search pgh for arguments. */ 2378 if line$next () then 2379 do; 2380 if line = "" | line = "" then 2381 Sconsecutive_arg_lines = FALSE; 2382 else 2383 do; 2384 i = index (HT_SP, line_arr (1)); 2385 /*Check to see if line begins with a HT_SP*/ 2386 if i > 0 then 2387 Sconsecutive_arg_lines = FALSE; 2388 else 2389 do; 2390 list.N = list.N + 1; 2391 if list_of & line$list_items () then 2392 /*List of items with no descriptions*/ 2393 list.arg (list.N) = line; 2394 else 2395 do; 2396 call line$args; 2397 2398 if Sremove_line & Sfirst_time then 2399 do; /*Can only remove text following section title or*/ 2400 /*extraneous text at the end of the pgh. */ 2401 Sfirst_time = FALSE; 2402 if Sdescription_present & list.N ^= 2 then 2403 Sremove_line = FALSE; 2404 if ^Sdescription_present & list_of then 2405 Sremove_line = FALSE; 2406 if Sremove_line then 2407 remove_N = list.N; 2408 end; 2409 2410 if Lline > maxlength (list.arg (list.N)) then 2411 call long_lines; 2412 else list.arg (list.N) = args; 2413 end; 2414 2415 if list_of & ^Sconsecutive_arg_lines then 2416 call list_of_lines; 2417 else if Sconsecutive_arg_lines then 2418 call consecutive_lines; 2419 else if length (list.arg (list.N)) > 18 & index (list.arg (list.N), " ") ^= 0 then 2420 call multi_line_arg; 2421 end; 2422 end; 2423 end; /*line$next*/ 2424 end; /*Lline_text > 0*/ 2425 2426 if Sremove_line then 2427 do; 2428 if remove_N = 2 then 2429 do; 2430 k = remove_N + 1; 2431 do j = k to list.N while (substr (list.arg (j), 1, 2) = SP_SP); 2432 list.arg (2) = substr (list.arg (j), 3); 2433 end; 2434 do i = 3 to list.N while (j <= list.N); 2435 list.arg (i) = list.arg (j); 2436 j = j + 1; 2437 end; 2438 list.N = i - 1; 2439 end; 2440 else if ^Sdescription_present then 2441 /*Eliminate extraneous text at end of pgh */ 2442 list.N = remove_N - 1; 2443 end; 2444 2445 2446 list_of_lines: 2447 proc; 2448 2449 if length (list.arg (list.N)) < 36 then 2450 do; 2451 if list.N > 1 then 2452 if substr (reverse (list.arg (list.N - 1)), 1, 1) = "," then 2453 /* if prior line ends in a comma assume this is a */ 2454 /* continued line */ 2455 list.arg (list.N) = SP_SP || list.arg (list.N); 2456 return; 2457 end; 2458 list.N = list.N + 1; 2459 i = index (substr (list.arg (list.N - 1), 25, 12), ","); 2460 /* first position > 25 and <= 36 with a comma*/ 2461 if i > 0 then 2462 i = 25 + i - 1; 2463 else 2464 do; /* last position < 36 with a comma*/ 2465 i = index (reverse (substr (list.arg (list.N - 1), 1, 36)), ","); 2466 if i > 0 then 2467 i = 36 - i + 1; 2468 end; 2469 if i = 0 then 2470 do; /* closest word boundary*/ 2471 i = index (reverse (substr (list.arg (list.N - 1), 1, 36)), SP); 2472 if i > 0 then 2473 i = 36 - i + 1; 2474 end; 2475 if i = 0 then 2476 i = index (substr (list.arg (list.N - 1), 36), SP); 2477 2478 if i = 0 then 2479 i = 36; /* if all else fails use length of 36 */ 2480 list.arg (list.N) = SP_SP || ltrim (substr (list.arg (list.N - 1), i + 1)); 2481 list.arg (list.N - 1) = MULTI_LINE_ARG_ID || substr (list.arg (list.N - 1), 1, i); 2482 end list_of_lines; 2483 2484 2485 consecutive_lines: 2486 proc; 2487 2488 j = index (list.arg (list.N), NL); 2489 if j > 0 then 2490 do; /*Set up header line*/ 2491 list.N = list.N + 1; 2492 list.arg (list.N) = SP_SP || substr (list.arg (list.N - 1), j + 1); 2493 list.arg (list.N - 1) = CONSC_LINE_ARG_ID || substr (list.arg (list.N - 1), 1, j - 1); 2494 2495 k = index (list.arg (list.N - 1), HT_SP); 2496 /*Strip off trailing spaces/HT*/ 2497 if k > 0 then 2498 list.arg (list.N - 1) = substr (list.arg (list.N - 1), 1, k - 1); 2499 end; 2500 2501 j = index (list.arg (list.N), NL); /*Multiple detail lines*/ 2502 do while (j > 0); 2503 list.N = list.N + 1; 2504 list.arg (list.N) = SP_SP || substr (list.arg (list.N - 1), j + 1); 2505 list.arg (list.N - 1) = substr (list.arg (list.N - 1), 1, j - 1); 2506 k = index (list.arg (list.N - 1), HT_SP); 2507 /*strip off trailing spaces/HT*/ 2508 if k > 0 then 2509 list.arg (list.N - 1) = substr (list.arg (list.N - 1), 1, k - 1); 2510 2511 j = index (list.arg (list.N), NL); 2512 end; 2513 2514 end consecutive_lines; 2515 2516 2517 multi_line_arg: 2518 proc; /*Multi line argument*/ 2519 j = index (list.arg (list.N), "-"); /*find 1st argument*/ 2520 i = index (substr (list.arg (list.N), 18), "-"); 2521 /*find argument starting in position > 18*/ 2522 2523 if i ^= 0 then /*add offset - 1*/ 2524 i = i + 17; 2525 else 2526 do; /*find 2nd argument in position < 18*/ 2527 i = index (substr (list.arg (list.N), j + 1), "-"); 2528 if i = 0 then 2529 do; 2530 i = index (substr (list.arg (list.N), 18), ","); 2531 /*1st position > 18 with a comma or length of prior arg if >*/ 2532 if i ^= 0 then 2533 i = i + 17; 2534 else 2535 do; 2536 i = index (substr (list.arg (list.N), 18), " "); 2537 /*1st position > 18 with a blank*/ 2538 if i ^= 0 then 2539 i = i + 17; 2540 else 2541 do; 2542 i = index (list.arg (list.N), " "); 2543 if i >= 18 then 2544 i = 18; 2545 end; 2546 end; 2547 end; 2548 end; 2549 2550 list.N = list.N + 1; 2551 list.arg (list.N) = SP_SP || substr (list.arg (list.N - 1), i); 2552 list.arg (list.N - 1) = MULTI_LINE_ARG_ID || substr (list.arg (list.N - 1), 1, i - 1); 2553 2554 k = length (list.arg (list.N - 1)); 2555 j = verify (reverse (list.arg (list.N - 1)), HT_SP); 2556 /*strip off trailing spaces/HT*/ 2557 if j > 1 then 2558 list.arg (list.N - 1) = substr (list.arg (list.N - 1), 1, k - j + 1); 2559 2560 end multi_line_arg; 2561 2562 long_lines: 2563 proc; 2564 j = index (line, NL); 2565 if j > 0 then 2566 do; /*Set up header line*/ 2567 list.arg (list.N) = CONSC_LINE_ARG_ID || substr (line, 1, j); 2568 if Lline - j > 0 then 2569 Pline = addr (line_arr (j + 1)); 2570 Lline = Lline - j; 2571 end; 2572 2573 do while (Lline > 0); /*Set up detail lines*/ 2574 j = index (line, NL); 2575 if j > 0 then 2576 do; 2577 list.N = list.N + 1; 2578 list.arg (list.N) = SP_SP || substr (line, 1, j); 2579 if Lline - j > 0 then 2580 Pline = addr (line_arr (j + 1)); 2581 Lline = Lline - j; 2582 end; 2583 else 2584 do; 2585 list.N = list.N + 1; 2586 list.arg (list.N) = SP_SP || line; 2587 Lline = 0; 2588 end; 2589 end; 2590 end long_lines; 2591 2592 end get_arg_list; 2593 2594 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 2595 2596 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 2597 2598 2599 get_brief_data: 2600 proc (Sold_format, Sheader, PDlinfo_, Plist_base, dir, ent, Nlast_info_no_brief_data, Iinfo, Ninfos_printed, Iunit_syntax, 2601 Nunit_bf_prt, Nlists_of_bf_args, Nlines); 2602 2603 dcl Sold_format bit (1) unal, /* on if log info contains \006 chars. */ 2604 Sheader bit (1) unal, /* on if -header required. */ 2605 PDlinfo_ ptr, /* ptr to pgh descriptors of log info. */ 2606 Plist_base ptr, /* ptr to list of lists. */ 2607 dir char (168) unal, /* dir part of phys info seg's path. */ 2608 ent char (32) unal, /* ent part of phys info seg's path. */ 2609 Nlast_info_no_brief_data 2610 fixed bin, /* Last info processed not containing Syntax sect.*/ 2611 Iinfo fixed bin, /* number of the info seg being processed. */ 2612 Ninfos_printed fixed bin, /* number of infos for which something printed. */ 2613 Iunit_syntax (10) fixed bin, /* indices of Syntax sections. */ 2614 Nunit_bf_prt fixed bin, /* count of brief sections to print. */ 2615 Nlists_of_bf_args 2616 fixed bin, /* count of sections containing args/ctl_args. */ 2617 Nlines fixed bin, 2618 save_lines fixed bin; 2619 2620 dcl 1 Dlinfo_ aligned based (PDlinfo_), 2621 2 Nunits fixed bin, /* number of units (pghs) in this log info seg. */ 2622 2 Nsections fixed bin, /* number of units having section title. */ 2623 2 unit (0 refer (Dlinfo_.Nunits)) like Dlinfo.unit; 2624 2625 dcl Iunit fixed bin, 2626 Plist ptr, 2627 (i, j, k) fixed bin; 2628 2629 dcl 1 list_base aligned based (Plist_base), 2630 2 N fixed bin, /* number of lists in this list ptr structure. */ 2631 2 Nmax fixed bin, /* max possible number of lists in structure. */ 2632 2 Ispace_used_set 2633 fixed bin, /* index of last list on which space used was set.*/ 2634 2 Plists (0 refer (list_base.Nmax)) ptr; 2635 /* pointers to list structures. */ 2636 2637 dcl 1 list aligned based (Plist), 2638 2 header like LIST.header, 2639 2 group (0 refer (list.N)) like LIST.group, 2640 2 print_array 2641 (0 refer (list.Npghs), 0 refer (list.Nrows)) like LIST.print_array; 2642 2643 dcl store_arg char (88) varying; 2644 2645 Syntax_section, Sprt_list_of, Sprt_one_paragraph, Sprt_bf_heading = FALSE; 2646 Nunit_bf_prt = 0; 2647 save_lines = 0; 2648 2649 2650 do Iunit = 1 to Dlinfo_.Nunits while (^Dlinfo_.unit (Iunit).S.syntax_list); 2651 end; /* Search for the "Syntax" section. */ 2652 if Iunit <= Dlinfo.Nunits then 2653 do; 2654 Syntax_section = TRUE; 2655 do i = 1 to dimension (Iunit_syntax, 1) while (Iunit <= Dlinfo_.Nunits); 2656 Iunit_syntax (i) = Iunit; /* Find & record location of syntax sections. */ 2657 Nunit_bf_prt = i; 2658 do Iunit = Iunit, Iunit + 1 to Dlinfo_.Nunits while (^Dlinfo_.unit (Iunit).S.scn); 2659 Nlines = Nlines + Dlinfo_.unit (Iunit).Nlines + 1; 2660 end; /* Count lines in each pgh of Syntax section. */ 2661 /* Add 1 line for blank line preceding each pgh. */ 2662 2663 2664 if ^Sold_format then 2665 do Iunit = Iunit to Dlinfo_.Nunits 2666 while (substr (Dlinfo_.unit (Iunit).title, 1, min (6, length (Dlinfo_.unit (Iunit).title))) ^= "Syntax"); 2667 end; 2668 else Iunit = Dlinfo_.Nunits + 1; 2669 end; 2670 end; 2671 2672 save_lines = save_lines + Nlines; 2673 2674 if ^Syntax_section then 2675 do; 2676 do Iunit = 1 to Dlinfo_.Nunits while (^Dlinfo_.unit (Iunit).S.arg_list); 2677 end; 2678 if Iunit <= Dlinfo_.Nunits then 2679 do; 2680 Sprt_args = TRUE; 2681 Nunit_bf_prt = 1; 2682 goto end_ck; 2683 end; 2684 2685 do Iunit = 1 to Dlinfo_.Nunits while (^Dlinfo_.unit (Iunit).S.list_of_list); 2686 end; 2687 if Iunit <= Dlinfo_.Nunits then 2688 do; 2689 Sprt_list_of = TRUE; 2690 Nunit_bf_prt = 1; 2691 goto end_ck; 2692 end; 2693 2694 Sprt_one_paragraph = TRUE; 2695 2696 end_ck: 2697 end; 2698 2699 2700 Iunit = 1; 2701 do while (Iunit <= Dlinfo_.Nunits); /* Search for "Arguments" & "Control arguments" & "List of */ 2702 /* paragraphs to summarize these arguments. */ 2703 if Sprt_args | Syntax_section then 2704 do Iunit = Iunit to Dlinfo_.Nunits while (^Dlinfo_.unit (Iunit).S.arg_list); 2705 end; 2706 2707 if Sprt_list_of then 2708 do Iunit = Iunit to Dlinfo_.Nunits while (^Dlinfo_.unit (Iunit).S.list_of_list); 2709 /* Search for List of */ 2710 end; 2711 2712 2713 if Iunit <= Dlinfo_.Nunits then 2714 do; 2715 Plist = get_list (Plist_base); 2716 if Plist = null () then 2717 Iunit = Dlinfo_.Nunits + 1; 2718 else 2719 do; 2720 2721 if Sprt_one_paragraph then 2722 do; 2723 Nlines = Dlinfo_.unit (Iunit).Nlines; 2724 Nlists_of_bf_args = list_base.N; 2725 Nunit_bf_prt = 1; 2726 return; 2727 end; 2728 2729 list.title = Dlinfo_.unit (Iunit).title; 2730 list.Iunit = Iunit; 2731 if length (list.title) <= 17 then 2732 do; 2733 list.N = 1; 2734 list.arg (1) = list.title; 2735 list.arg (1) = list.arg (1) || ":"; 2736 end; /* Put title on same line as arg names, unless */ 2737 /* title is too long. */ 2738 2739 2740 do Iunit = Iunit, Iunit + 1 to Dlinfo_.Nunits while (^Dlinfo_.unit (Iunit).S.scn); 2741 list_of = Dlinfo_.unit (Iunit).S.list_of_list; 2742 /* Switch to indicate unit is a list of items or examples*/ 2743 call get_arg_list (Dlinfo_.unit (Iunit), Plist, Sold_format); 2744 end; 2745 if Syntax_section & list.N > 0 & list.title = "Arguments" then 2746 do; /* Suppress Arguments list if all arg names */ 2747 /* appear in Syntax section. */ 2748 if list.arg (1) = "Arguments:" then 2749 i = 2; 2750 else i = 1; 2751 Sfound = TRUE; 2752 bf_no_ARG_dsp = FALSE; 2753 do i = i to list.N while (Sfound); 2754 do j = 1 to Nunit_bf_prt while (Sfound); 2755 Ppgh = Dlinfo_.unit (Iunit_syntax (j)).Pstart; 2756 Lpgh = Dlinfo_.unit (Iunit_syntax (j)).L; 2757 if list.arg (i) ^= "," then 2758 store_arg = rtrim (list.arg (i), "])0123456789, "); 2759 else store_arg = rtrim (list.arg (i), "])0123456789 "); 2760 store_arg = ltrim (store_arg, "[("); 2761 k = index (pgh, store_arg); 2762 if k = 0 then 2763 Sfound = FALSE; 2764 else j = Nunit_bf_prt; 2765 /*Dont continue looking if found arg*/ 2766 end; 2767 end; 2768 if Sfound then 2769 do; 2770 list.N = 0; 2771 bf_no_ARG_dsp = TRUE; 2772 end; 2773 end; 2774 2775 if list.N = 1 then 2776 if list.title = substr (list.arg (1), 1, length (list.arg (1)) - 1) then 2777 list.N = 0; 2778 2779 2780 if list.N > 0 then 2781 do; 2782 if list.title = substr (list.arg (1), 1, length (list.arg (1)) - 1) then 2783 list.title = ""; 2784 call format_list (Plist, 0, 1); 2785 save_lines = save_lines + ct_lines + 1; 2786 /*One line for blank line preceeding pgh*/ 2787 if length (list.title) > 0 then 2788 save_lines = save_lines + 1; 2789 end; 2790 else list_base.N = list_base.N - 1; 2791 end; 2792 end; 2793 end; 2794 Nlists_of_bf_args = list_base.N; 2795 Nlines = save_lines; 2796 return; 2797 2798 2799 print_brief_data: 2800 entry (PDlinfo_, Plist_base, Iunit_syntax, Nunit_bf_prt, Nlists_of_bf_args, Nlines); 2801 2802 2803 if Sprt_one_paragraph then 2804 do; 2805 if Sprt_bf_heading then 2806 do; 2807 Nlines = Dlinfo_.unit (Iunit).Nlines + 2; 2808 call print_header (); 2809 end; 2810 else Nlines = Dlinfo_.unit (Iunit).Nlines; 2811 call print_pgh (Dlinfo_.unit (Iunit), Sprint_inhibit); 2812 Nlists_of_bf_args = list_base.N; 2813 return; 2814 end; 2815 2816 Iunit = 0; 2817 j = 1; /* For -brief, print Syntax section and list of */ 2818 do i = 1 to Nunit_bf_prt; /* ctl args in order that their sections appear */ 2819 PRINT_NEXT_LIST: 2820 if j <= Nlists_of_bf_args then 2821 do; /* in the info. */ 2822 Plist = list_base.Plists (j); /* Print lists of args. */ 2823 if list.Iunit < Iunit_syntax (i) then 2824 do; 2825 call print_list (Plist, FALSE); 2826 j = j + 1; 2827 go to PRINT_NEXT_LIST; 2828 end; 2829 end; 2830 2831 Sfirst_time = TRUE; 2832 2833 if Syntax_section then 2834 do Iunit = Iunit_syntax (i), Iunit + 1 to Dlinfo_.Nunits while (^Dlinfo_.unit (Iunit).S.scn); 2835 if Iunit = Iunit_syntax (1) then 2836 multiple_syntax = FALSE; 2837 else multiple_syntax = TRUE; 2838 2839 call print_pgh (Dlinfo_.unit (Iunit), FALSE); 2840 end; /* Print syntax sections. */ 2841 2842 if ^multiple_syntax then 2843 Sfirst_time = FALSE; 2844 end; 2845 2846 if Iunit > 1 then 2847 if Dlinfo_.unit (Iunit - 1).Nlines = 1 then 2848 one_line_pgh = TRUE; 2849 else one_line_pgh = FALSE; 2850 else one_line_pgh = FALSE; 2851 2852 2853 do j = j to Nlists_of_bf_args; /* Print remaining lists of ctl args. */ 2854 call print_list (list_base.Plists (j), FALSE); 2855 end; 2856 2857 2858 if Nlists_of_bf_args > 0 then 2859 do; 2860 Pnext_free_space = list_base.Plists (1); 2861 list_base.N = 0; 2862 end; 2863 return; 2864 2865 end get_brief_data; 2866 2867 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 2868 2869 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 2870 2871 2872 get_ep_list: 2873 procedure (ref_name, PDeps_, Plist); /* Create list of entry points in this phys. seg. */ 2874 2875 dcl ref_name char (32) varying, 2876 (PDeps_, Plist) 2877 ptr; 2878 2879 dcl 1 Deps_ aligned based (PDeps_), 2880 2 Nlines fixed bin, 2881 2 N fixed bin, 2882 2 linfo (0:0 refer (Deps_.N)) like Deps.linfo; 2883 dcl 1 list aligned based (Plist), 2884 2 header like LIST.header, 2885 2 group (0 refer (list.N)) like LIST.group, 2886 2 print_array 2887 (0 refer (list.Npghs), 0 refer (list.Nrows)) like LIST.print_array; 2888 2889 dcl (i, j, k) fixed bin; 2890 2891 do i = 1 to Deps.N; /* Build list of all entry point info headers. */ 2892 k, list.N = list.N + 1; 2893 if length (Deps_.linfo (i).header) > 0 then 2894 do; /* If header already exists, use it. */ 2895 list.arg (k) = Deps_.linfo (i).header; 2896 if length (list.arg (k)) > 21 then 2897 do; /* Split a long heading into several lines. */ 2898 j = 20 + index (substr (list.arg (k), 21), SP); 2899 do while (j > 20); 2900 k, list.N = list.N + 1; 2901 list.arg (k) = " "; 2902 j = j + verify (substr (list.arg (k - 1), j), SP) - 1; 2903 list.arg (k) = list.arg (k) || substr (list.arg (k - 1), j); 2904 list.arg (k - 1) = rtrim (substr (list.arg (k - 1), 1, j - 1)); 2905 if length (list.arg (k)) > 21 then 2906 j = 20 + index (substr (list.arg (k), 21), SP); 2907 else j = 0; 2908 end; 2909 end; 2910 end; 2911 else 2912 do; /* If doesn't exist, make one up. */ 2913 list.arg (k) = ref_name; 2914 list.arg (k) = list.arg (k) || "$"; 2915 list.arg (k) = list.arg (k) || Deps_.linfo (i).ep_name (1); 2916 do j = 2 to Deps_.linfo (i).Nep_names; 2917 list.arg (k) = list.arg (k) || ","; 2918 k, list.N = list.N + 1; 2919 list.arg (k) = " "; 2920 list.arg (k) = list.arg (k) || ref_name; 2921 list.arg (k) = list.arg (k) || "$"; 2922 list.arg (k) = list.arg (k) || Deps_.linfo (i).ep_name (j); 2923 end; 2924 Deps_.linfo (i).header = list.arg (k); 2925 /* Apply fruits of our labor by using header */ 2926 /* in entry point info as well. */ 2927 end; 2928 end; 2929 2930 end get_ep_list; 2931 2932 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 2933 2934 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 2935 2936 2937 get_list: 2938 procedure (Plist_base) returns (ptr); /* This procedure allocates a new list in */ 2939 /* the help_args segment. */ 2940 2941 dcl Plist_base ptr; 2942 2943 dcl 1 list_base aligned based (Plist_base), 2944 2 N fixed bin, /* number of lists in this list ptr structure. */ 2945 2 Nmax fixed bin, /* max possible number of lists in structure. */ 2946 2 Ispace_used_set 2947 fixed bin, /* index of last list on which space used was set.*/ 2948 2 Plists (0 refer (list_base.Nmax)) ptr, 2949 /* pointers to list structures. */ 2950 Plist ptr, 2951 1 list aligned based (Plist), 2952 2 header like LIST.header, 2953 2 group (0 refer (list.N)) like LIST.group, 2954 2 print_array 2955 (0 refer (list.Npghs), 0 refer (list.Nrows)) like LIST.print_array; 2956 2957 2958 if list_base.N = dimension (list_base.Plists, 1) then 2959 return (null); /* list of lists full. Oops! */ 2960 if list_base.Ispace_used_set > list_base.N then 2961 list_base.Ispace_used_set = 0; 2962 if list_base.Ispace_used_set < list_base.N - 1 then 2963 return (null); /* someone forgot to set space used for a list */ 2964 /* other than the last in list of lists. */ 2965 if list_base.Ispace_used_set = list_base.N - 1 then 2966 do; 2967 Plist = list_base.Plists (list_base.N); 2968 /* set space used for last list. */ 2969 Pnext_free_space = set_space_used (Pnext_free_space, currentsize (list)); 2970 list_base.Ispace_used_set = list_base.N; 2971 end; 2972 list_base.N = list_base.N + 1; /* get new list. */ 2973 Plist = Pnext_free_space; 2974 list_base.Plists (list_base.N) = Plist; 2975 list.N = 0; 2976 list.Nreal = 0; 2977 list.title = ""; 2978 return (Plist); 2979 2980 2981 set_list_size: 2982 entry (Plist_base, Plist); /* This procedure sets the size of the current list*/ 2983 2984 if list_base.N = dimension (list_base.Plists, 1) then 2985 Plist = null; /* list of lists full. Oops! */ 2986 if list_base.Ispace_used_set > list_base.N then 2987 list_base.Ispace_used_set = 0; 2988 if list_base.Ispace_used_set < list_base.N - 1 then 2989 Plist = null; /* someone forgot to set space used for a list */ 2990 /* other than the last in list of lists. */ 2991 if list_base.Ispace_used_set = list_base.N - 1 then 2992 do; 2993 Plist = list_base.Plists (list_base.N); 2994 /* set space used for last list. */ 2995 Pnext_free_space = set_space_used (Pnext_free_space, currentsize (list)); 2996 list_base.Ispace_used_set = list_base.N; 2997 end; 2998 return; 2999 3000 3001 give_list_back: /*return current list*/ 3002 entry (Plist_base, Plist); 3003 3004 if Plist ^= list_base.Plists (list_base.N) then 3005 do; 3006 call ioa_ ("help logic error"); 3007 return; 3008 end; 3009 list_base.N = list_base.N - 1; 3010 Plist = null; 3011 return; 3012 3013 end get_list; 3014 3015 3016 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 3017 3018 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 3019 3020 3021 get_list_base: 3022 procedure (Pnext_free_space, space_used, Nmax) returns (ptr); 3023 3024 dcl Pnext_free_space 3025 ptr, /* ptr to next free word of space in temp seg. */ 3026 space_used fixed bin (21), /* number of words used at that free word loc. */ 3027 Nmax fixed bin, /* number of lists to maintain in list of lists. */ 3028 Plist_base ptr; /* ptr to creates list of lists. */ 3029 3030 dcl 1 list_base aligned based (Plist_base), 3031 2 N fixed bin, /* number of lists in this list ptr structure. */ 3032 2 Nmax fixed bin, /* max possible number of lists in structure. */ 3033 2 Ispace_used_set 3034 fixed bin, /* index of last list on which space used was set.*/ 3035 2 Plists (0 refer (list_base.Nmax)) ptr; 3036 /* pointers to list structures. */ 3037 3038 if space_used ^= 0 then /* set space used by previous allocation. */ 3039 Pnext_free_space = set_space_used (Pnext_free_space, space_used); 3040 Plist_base = Pnext_free_space; /* get list of lists. */ 3041 list_base.N = 0; /* No lists listed yet. */ 3042 list_base.Ispace_used_set = 0; 3043 list_base.Nmax = Nmax; 3044 if Nmax > 0 then /* Size known? Set space used. */ 3045 Pnext_free_space = set_space_used (Pnext_free_space, currentsize (list_base)); 3046 return (Plist_base); 3047 3048 end get_list_base; 3049 3050 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 3051 3052 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 3053 3054 3055 get_title_list: 3056 procedure (PDlinfo_, Plist, Iunit_start); 3057 /* This entry builds a list of titles. */ 3058 3059 dcl PDlinfo_ ptr, 3060 Plist ptr, 3061 Iunit_start fixed bin; /* Current unit number. Get title of following */ 3062 /* units. */ 3063 3064 dcl Iunit fixed bin, 3065 Nlines fixed bin, 3066 Nlines_pic pic "zzzzz9", 3067 (i, j, k) fixed bin; 3068 dcl 1 Dlinfo_ aligned based (PDlinfo_), 3069 /* structure defining all paragraphs (units) in */ 3070 /* an entry point (logical info seg - linfo). */ 3071 2 Nunits fixed bin, /* number of units in this ep. */ 3072 2 Nsections fixed bin, /* number of units beginning a section. */ 3073 2 unit (0 refer (Dlinfo_.Nunits)) like Dlinfo.unit; 3074 /* unit (paragraph) descriptors. */ 3075 dcl 1 list aligned based (Plist), 3076 2 header like LIST.header, 3077 2 group (0 refer (list.N)) like LIST.group, 3078 2 print_array 3079 (0 refer (list.Npghs), 0 refer (list.Nrows)) like LIST.print_array; 3080 3081 do Iunit = Iunit_start + 1 to Dlinfo_.Nunits; 3082 if (get_title ()) then 3083 do; 3084 k, list.N = list.N + 1; 3085 if Iunit = 1 then 3086 if ^Dlinfo_.unit (1).S.scn then 3087 list.arg (k) = "UNTITLED"; 3088 else list.arg (k) = Dlinfo_.unit (Iunit).title; 3089 else list.arg (k) = Dlinfo_.unit (Iunit).title; 3090 if length (list.arg (k)) > 21 then 3091 do; /* Split a long section title into several lines. */ 3092 j = 20 + index (substr (list.arg (k), 21), SP); 3093 do while (j > 20); 3094 k, list.N = list.N + 1; 3095 list.arg (k) = " "; 3096 j = j + verify (substr (list.arg (k - 1), j), SP) - 1; 3097 list.arg (k) = list.arg (k) || substr (list.arg (k - 1), j); 3098 list.arg (k - 1) = MULTI_LINE_ARG_ID || rtrim (substr (list.arg (k - 1), 1, j - 1)); 3099 if length (list.arg (k)) > 21 then 3100 j = 20 + index (substr (list.arg (k), 21), SP); 3101 else j = 0; 3102 end; 3103 end; 3104 Nlines = Dlinfo_.unit (Iunit).Nlines; 3105 /* Count lines in section. */ 3106 do i = Iunit + 1 to Dlinfo_.Nunits while (^Dlinfo_.unit (i).S.scn); 3107 Nlines = Nlines + Dlinfo_.unit (i).Nlines + 2; 3108 end; 3109 Iunit = i - 1; 3110 Nlines_pic = Nlines; 3111 list.arg (k) = list.arg (k) || " ("; 3112 list.arg (k) = list.arg (k) || ltrim (Nlines_pic); 3113 list.arg (k) = list.arg (k) || ")"; 3114 end; 3115 end; 3116 3117 get_title: 3118 proc returns (bit (1)); 3119 3120 if Dlinfo_.unit (Iunit).S.ep_list then 3121 return (FALSE); 3122 else if Dlinfo_.unit (Iunit).S.scn then 3123 return (TRUE); 3124 else if Iunit = 1 then 3125 return (TRUE); 3126 else return (FALSE); 3127 3128 end get_title; 3129 3130 if list.N = 0 then 3131 do; 3132 list.N = 1; 3133 list.arg (1) = "NO MORE TITLES"; 3134 end; 3135 3136 end get_title_list; 3137 3138 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 3139 3140 3141 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 3142 3143 dcl Phelp_requests ptr; 3144 3145 list_requests: 3146 proc; 3147 3148 dcl error_type fixed bin, 3149 code fixed bin (35); 3150 3151 dcl 1 help_requests 3152 aligned based (Phelp_requests) like help_args; 3153 3154 Phelp_requests = help_args.help_data_ptr; 3155 3156 if Phelp_requests = null then 3157 do; 3158 call help_$init (ME, "info", "", Vhelp_args_3, help_args.help_data_ptr, code); 3159 if code ^= 0 then 3160 do; 3161 call ioa_ ("Unable to initiate help_ for list request."); 3162 goto QUIT; 3163 end; 3164 Phelp_requests = help_args.help_data_ptr; 3165 end; 3166 3167 help_requests.Npaths = 1; 3168 help_requests.path(1).value = ">doc>info>help_responses"; 3169 help_requests.path(1).info_name = ""; 3170 3171 if lr.N > 0 then do; 3172 do i = 1 to lr.N; 3173 help_requests.Npaths = i; 3174 if i > 1 then 3175 help_requests.path (i).value = help_requests.path(1).value; 3176 if lr.ca (i) = "." | lr.ca (i) = "?" | lr.ca (i) = ".." then 3177 help_requests.path(i).S.info_name_not_starname = TRUE; 3178 help_requests.path (i).info_name = lr.ca (i); 3179 end; 3180 call ioa_ ("^/----------HELP RESPONSE^[S^;-^]---------", lr.N>1); 3181 end; 3182 else 3183 call ioa_ ("^/---------------------------------"); 3184 3185 call help_ (ME, Phelp_requests, "info", error_type, code); 3186 3187 help_requests.Npaths = 0; 3188 call ioa_ ("---END OF RESPONSE DESCRIPTION---"); 3189 return; 3190 3191 end list_requests; 3192 3193 3194 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 3195 3196 3197 parse_answer: 3198 proc (answer, op, ep_name, ca, scn, srh, lr); 3199 3200 dcl answer char (500) varying, 3201 op fixed bin, /* Operation specified by the answer. */ 3202 ep_name char (65) varying, 3203 /* Name of entry point given in ep request. */ 3204 1 ca aligned, 3205 2 header like LIST.header, 3206 2 group (100) like LIST.group, 3207 1 scn aligned, 3208 2 header like LIST.header, 3209 2 group (100) like LIST.group, 3210 1 srh aligned, 3211 2 header like LIST.header, 3212 2 group (100) like LIST.group, 3213 1 lr aligned, 3214 2 N fixed bin, 3215 2 ca (100) char (32) varying; 3216 3217 dcl (i, j, k) fixed bin, 3218 operation char (12) varying, 3219 operand char (89) varying; 3220 3221 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 3222 /* */ 3223 /* The tables below define the following combinations of answers and control args. */ 3224 /* */ 3225 /* OP_CODE OPERATION OP_CODE OPERATION OP_CODE OPERATION OP_CODE OPERATION */ 3226 /* 1 yes, y 5 rest, r 9 skip, s 14 title */ 3227 /* 2 no, n 6 rest -scn 10 skip -scn titles */ 3228 /* 3 quit, q 7 rest -aep 11 skip -ep 15 title -top */ 3229 /* 4 top, t 8 rest -ep 12 skip -rest titles -top */ 3230 /* 13 skip -seen 16 entry_point {STR}*/ 3231 /* ep {STR} */ 3232 /* */ 3233 /* 17 section {STRs} 21 search {STRs} */ 3234 /* scn {STRs} srh {STRs} */ 3235 /* section {STRs} -ncs search {STRs} -ncs */ 3236 /* scn {STRs} -ncs srh {STRs} -ncs */ 3237 /* 18 section {STRs} -cs 22 search {STRs} -cs */ 3238 /* scn {STRs} -cs srh {STRs} -cs */ 3239 /* 19 section {STRs} -top 23 search {STRs} -top */ 3240 /* scn {STRs} -top srh {STRs} -top */ 3241 /* section {STRs} -top -ncs search {STRs} -top -ncs */ 3242 /* scn {STRs} -top -ncs srh {STRs} -top -ncs */ 3243 /* 20 section {STRs} -top -cs 24 search {STRs} -top -cs */ 3244 /* scn {STRs} -top -cs srh {STRs} -top -cs */ 3245 /* */ 3246 /* 25 brief 30 list_entry_points */ 3247 /* bf lep */ 3248 /* 26 control_arg STRs 31 list_requests {STRs} */ 3249 /* ca STRs lr {STRs} */ 3250 /* 27 . 32 help */ 3251 /* 28 ? h */ 3252 /* 29 header */ 3253 /* he */ 3254 /* */ 3255 /* -scn is the short name for -section. Both are accepted. */ 3256 /* sc is obsolete short name for section. It is still accepted, but -sc is not accept */ 3257 /* as control arg in help requests. It is accepted in command line, however. */ 3258 /* sh is obsolete short name for search. It is still accepted. */ 3259 /* titles is in error, but is a common error for the title request. Accept it anyway. */ 3260 /* -ep is the short name for -entry_point. Both are accepted. */ 3261 /* list_request and help both return help on a help response. */ 3262 /* */ 3263 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 3264 3265 dcl defined_ops (36) char (20) varying int static options (constant) init ( 3266 "yes", "y", "no", "n", /* 1 to 4 */ 3267 "quit", "q", "top", "t", /* 5 to 8 */ 3268 "rest", "r", "skip", "s", /* 9 to 12 */ 3269 "title", "titles", /* 13 & 14 */ 3270 "entry_point", "ep", /* 15 & 16 */ 3271 "section", "scn", "sc", /* 17 to 19 */ 3272 "search", "srh", "sh", /* 20 to 22 */ 3273 "brief", "bf", /* 23 & 24 */ 3274 "control_arg", "ca", /* 25 & 26 */ 3275 ".", "?", "header", "he", /* 27 to 30 */ 3276 "list_entry_points", "lep", /* 31 to 32 */ 3277 "list_requests", "lr", /* 33 to 34 */ 3278 "help", "h"), /* 35 to 36 */ 3279 op_code (36) fixed bin int static options (constant) init ( 3280 /* "yes", "y", "no", "n", */ 1, 1, 2, 2, 3281 /* "quit", "q", "top", "t", */ 3, 3, 4, 4, 3282 /* "rest", "r", "skip", "s", */ 5, 5, 9, 9, 3283 /* "title", "titles", */ 14, 14, 3284 /* "entry_point", "ep", */ 16, 16, 3285 /* "section", "scn", "sc", */ 17, 17, 17, 3286 /* "search", "srh", "sh", */ 21, 21, 21, 3287 /* "brief", "bf", */ 25, 25, 3288 /* "control_arg", "ca", */ 26, 26, 3289 /* ".", "?", "header", "he", */ 27, 28, 29, 29, 3290 /* "list_entry_points", "lep", */ 30, 30, 3291 /* "list_requests", "lr", */ 31, 31, 3292 /* "help", "h"), */ 32, 32); 3293 3294 dcl prev_operand fixed bin; 3295 dcl (OPERAND_NCS init (0), /* 0 -ncs */ 3296 OPERAND_CS init (1), /* 1 -cs */ 3297 OPERAND_TOP init (2)) /* 2 -top */ 3298 fixed bin int static options(constant); 3299 3300 k = 0; /* No search or section operands processed yet. */ 3301 ca.N = 0; /* Control_args must be given with every ca req. */ 3302 lr.N = 0; 3303 ep_name = ""; 3304 i = search (answer, HT_SP); /* Find end of request name in answer. */ 3305 if i = 0 then 3306 i = length (answer) + 1; 3307 operation = substr (answer, 1, i - 1); 3308 /* Request name is our operation. */ 3309 if length (operation) > maxlength (defined_ops (1)) then 3310 do; 3311 RESPONSE_UNKNOWN: 3312 call ioa_$nnl ("Response unknown: ^a. ", substr (answer, 1, i - 1)); 3313 ERROR: 3314 op = hbound (parse_operand, 1) + 1; 3315 /* Error op code. */ 3316 return; 3317 end; 3318 else if length (operation) = 0 then 3319 go to ERROR; /* Just reask question for blank lines. */ 3320 do j = 1 to dimension (defined_ops, 1) while (operation ^= defined_ops (j)); 3321 end; /* See if operation defined. */ 3322 if j > dimension (defined_ops, 1) then 3323 go to RESPONSE_UNKNOWN; /* No? Report the error. */ 3324 3325 3326 op = op_code (j); 3327 if i >= length (answer) then /* Remainder of answer is operands. */ 3328 answer = ""; 3329 else answer = ltrim (substr (answer, i), HT_SP); 3330 /* Trim leading SP HT from operands. */ 3331 do while (length (answer) > 0); /* Process operands. */ 3332 i = search (answer, HT_SP); 3333 if i = 0 then 3334 i = length (answer) + 1; 3335 operand = substr (answer, 1, i - 1); 3336 go to parse_operand (op); 3337 3338 parse_operand (1): /* yes */ 3339 parse_operand (2): /* no */ 3340 parse_operand (3): /* quit */ 3341 parse_operand (4): /* top */ 3342 go to NO_OPERANDS; 3343 3344 parse_operand (5): /* rest */ 3345 parse_operand (6): /* rest -scn */ 3346 parse_operand (7): /* rest -aep */ 3347 parse_operand (8): /* rest -ep */ 3348 if operand = "-section" | operand = "-scn" then 3349 op = op_code(j) + 1; 3350 else if operand = "-all_entrypoints" | operand = "-aep" then 3351 op = op_code(j) + 2; 3352 else if operand = "-entrypoint" | operand = "-ep" then 3353 op = op_code(j) + 3; 3354 else go to BAD_OPERAND; 3355 go to NEXT_OPERAND; 3356 3357 parse_operand (9): /* skip */ 3358 parse_operand (10): /* skip -scn */ 3359 parse_operand (11): /* skip -ep */ 3360 parse_operand (12): /* skip -rest */ 3361 parse_operand (13): /* skip -seen */ 3362 if operand = "-section" | operand = "-scn" then 3363 op = op_code(j) + 1; 3364 else if operand = "-entry_point" | operand = "-ep" then 3365 op = op_code(j) + 2; 3366 else if operand = "-rest" | operand = "-r" then 3367 op = op_code(j) + 3; 3368 else if operand = "-seen" then 3369 op = op_code(j) + 4; 3370 else go to BAD_OPERAND; 3371 go to NEXT_OPERAND; 3372 3373 parse_operand (14): /* title */ 3374 parse_operand (15): /* title -top */ 3375 if operand = "-top" | operand = "-t" then 3376 op = op_code(j) + 1; 3377 else go to BAD_OPERAND; 3378 go to NEXT_OPERAND; 3379 3380 parse_operand (16): /* entry_point or ep */ 3381 if k > 0 then 3382 do; 3383 call ioa_ ("Only one entry point name can be given in ^a response.", operation); 3384 go to ERROR; 3385 end; 3386 if length (operand) > maxlength (ep_name) then 3387 do; 3388 call ioa_ ("Entry point name ^a is too long.", operand); 3389 go to ERROR; 3390 end; 3391 ep_name = operand; 3392 k = 1; 3393 go to NEXT_OPERAND; 3394 3395 parse_operand (17): /* section */ 3396 /* section -ncs */ 3397 parse_operand (18): /* section -cs */ 3398 parse_operand (19): /* section -top */ 3399 /* section -top -ncs */ 3400 parse_operand (20): /* section -top -cs */ 3401 if operand = "-non_case_sensitive" | operand = "-ncs" then 3402 do; 3403 prev_operand = op - op_code(j); 3404 if prev_operand >= OPERAND_TOP then 3405 op = op_code(j) + OPERAND_NCS + OPERAND_TOP; 3406 else 3407 op = op_code(j) + OPERAND_NCS; 3408 end; 3409 else if operand = "-case_sensitive" | operand = "-cs" then 3410 do; 3411 prev_operand = op - op_code(j); 3412 if prev_operand >= OPERAND_TOP then 3413 op = op_code(j) + OPERAND_CS + OPERAND_TOP; 3414 else 3415 op = op_code(j) + OPERAND_CS; 3416 end; 3417 else if operand = "-top" | operand = "-t" then 3418 do; 3419 prev_operand = op - op_code(j); 3420 if mod(prev_operand,OPERAND_TOP) = OPERAND_CS then 3421 op = op_code(j) + OPERAND_TOP + OPERAND_CS; 3422 else 3423 op = op_code(j) + OPERAND_TOP + OPERAND_NCS; 3424 end; 3425 else 3426 do; 3427 if length (operand) > maxlength (scn.group (1).arg) then 3428 do; 3429 Lcount = length("Operand of response is too long."); 3430 Snl1 = (Lcount + i + length (operation) > Loutput_line); 3431 call ioa_$nnl ("Operand ^a^[^/^] of ^a response is too long. ", 3432 substr (answer, 1, i - 1), Snl1, operation); 3433 go to ERROR; 3434 end; 3435 if k = dimension (scn.group, 1) then 3436 do; 3437 call ioa_$nnl ("More than ^d substrings given with ^a response. ", 3438 dimension (scn.group, 1), operation); 3439 go to ERROR; 3440 end; 3441 k, scn.N = k + 1; 3442 scn.arg (k) = operand; 3443 end; 3444 go to NEXT_OPERAND; 3445 3446 parse_operand (21): /* search */ 3447 /* search -ncs */ 3448 parse_operand (22): /* search -cs */ 3449 parse_operand (23): /* search -top */ 3450 /* search -top -ncs */ 3451 parse_operand (24): /* search -top -cs */ 3452 if operand = "-non_case_sensitive" | operand = "-ncs" then 3453 do; 3454 prev_operand = op - op_code(j); 3455 if prev_operand >= OPERAND_TOP then 3456 op = op_code(j) + OPERAND_NCS + OPERAND_TOP; 3457 else 3458 op = op_code(j) + OPERAND_NCS; 3459 end; 3460 else if operand = "-case_sensitive" | operand = "-cs" then 3461 do; 3462 prev_operand = op - op_code(j); 3463 if prev_operand >= OPERAND_TOP then 3464 op = op_code(j) + OPERAND_CS + OPERAND_TOP; 3465 else 3466 op = op_code(j) + OPERAND_CS; 3467 end; 3468 else if operand = "-top" | operand = "-t" then 3469 do; 3470 prev_operand = op - op_code(j); 3471 if mod(prev_operand,OPERAND_TOP) = OPERAND_CS then 3472 op = op_code(j) + OPERAND_TOP + OPERAND_CS; 3473 else 3474 op = op_code(j) + OPERAND_TOP + OPERAND_NCS; 3475 end; 3476 else 3477 do; 3478 if length (operand) > maxlength (srh.group (1).arg) then 3479 do; 3480 Lcount = 38; /* 38 = length("Operand of response is too long."); */ 3481 Snl1 = (Lcount + i + length (operation) > Loutput_line); 3482 call ioa_$nnl ("Operand ^a^[^/^] of ^a response is too long. ", 3483 substr (answer, 1, i - 1), Snl1, operation); 3484 go to ERROR; 3485 end; 3486 if k = dimension (srh.group, 1) then 3487 do; 3488 call ioa_$nnl ("More than ^d substrings given with ^a response. ", dimension (srh.group, 1), operation); 3489 go to ERROR; 3490 end; 3491 k, srh.N = k + 1; 3492 srh.arg (k) = operand; 3493 end; 3494 go to NEXT_OPERAND; 3495 3496 parse_operand (25): /* brief */ 3497 go to NO_OPERANDS; 3498 3499 parse_operand (26): /* control_arg STRs */ 3500 dcl CONTROL_ARG_OP init(26) fixed bin int static options(constant); 3501 if length (operand) > maxlength (ca.group (1).arg) then 3502 do; 3503 Lcount = 38; /* 38 = length("Operand of response is too long."); */ 3504 Snl1 = (Lcount + i + length (operation) > Loutput_line); 3505 call ioa_$nnl ("Operand ^a^[^/^] of ^a response is too long. ", substr (answer, 1, i - 1), Snl1, operation); 3506 go to ERROR; 3507 end; 3508 if k = dimension (ca.group, 1) then 3509 do; 3510 call ioa_$nnl ("More than ^d substrings given with ^a response. ", dimension (ca.group, 1), operation); 3511 go to ERROR; 3512 end; 3513 k, ca.N = k + 1; 3514 ca.arg (k) = operand; 3515 go to NEXT_OPERAND; 3516 3517 parse_operand (27): /* . (= print "help") */ 3518 parse_operand (28): /* ? (= list requests) */ 3519 parse_operand (29): /* header */ 3520 parse_operand (30): /* list_entry_points */ 3521 go to NO_OPERANDS; 3522 3523 parse_operand (31): /* list_requests */ 3524 parse_operand (32): /* help request */ 3525 lr.N = 0; 3526 if length (operand) > maxlength (lr.ca (1)) then 3527 do; 3528 Lcount = 38; /* 38 = length("Operand of response is too long."); */ 3529 Snl1 = (Lcount + i + length (operation) > Loutput_line); 3530 call ioa_$nnl ("Operand ^a^[^/^] of ^a response is too long. ", substr (answer, 1, i - 1), Snl1, operation); 3531 go to ERROR; 3532 end; 3533 if k = dimension (lr.ca, 1) then 3534 do; 3535 call ioa_$nnl ("More than ^d substrings given with ^a response. ", dimension (lr.ca, 1), operation); 3536 go to ERROR; 3537 end; 3538 k, lr.N = k + 1; 3539 lr.ca (k) = operand; 3540 go to NEXT_OPERAND; 3541 3542 NO_OPERANDS: 3543 call ioa_$nnl ("^a response does not allow operands. ", operation); 3544 go to ERROR; 3545 3546 BAD_OPERAND: 3547 call ioa_$nnl ("Operand ^a invalid for ^a operation. ", operand, operation); 3548 go to ERROR; 3549 3550 NEXT_OPERAND: 3551 if i >= length (answer) then 3552 answer = ""; 3553 else answer = ltrim (substr (answer, i), HT_SP); 3554 end; /* Strip leading HT SP from next operand. */ 3555 3556 if op = CONTROL_ARG_OP then /* control_arg STRs */ 3557 if ca.N = 0 then 3558 do; 3559 call ioa_$nnl ("Substrings must be given with the ^a response. ", operation); 3560 op = hbound (parse_operand, 1) + 1; 3561 end; 3562 3563 end parse_answer; 3564 3565 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 3566 3567 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 3568 3569 3570 parse_entry_point_into_units: 3571 procedure (linfo, Pcommon_units, Ncommon_units, PDlinfo_); 3572 /* This procedure parses an entry point (logical */ 3573 /* info segment) into units (paragraphs). */ 3574 3575 dcl 1 linfo aligned like Deps.linfo, 3576 Pcommon_units ptr, 3577 Ncommon_units fixed bin, 3578 PDlinfo_ ptr; /* ptr to descriptors for this log info seg. */ 3579 3580 dcl 1 Dlinfo_ aligned based (PDlinfo_), 3581 2 Nunits fixed bin, /* number of units (pghs) in this log info seg. */ 3582 2 Nsections fixed bin, /* number of units having section title. */ 3583 2 unit (0 refer (Dlinfo_.Nunits)) like Dlinfo.unit; 3584 3585 dcl 1 common_units (Ncommon_units) aligned based (Pcommon_units) like Dlinfo.unit; 3586 3587 dcl (i, j) fixed bin (24), 3588 new_paragraph bit (1) init ("0"b), 3589 save_length fixed bin (21); 3590 3591 Dlinfo_.Nunits = 0; 3592 Dlinfo_.Icommon_unit = 0; 3593 Dlinfo_.Nsections = 0; 3594 list_of = FALSE; 3595 linfo.PDlinfo = PDlinfo_; 3596 Pline_text, Pline = linfo.Pstart; 3597 Lline_text = linfo.L; 3598 save_length = 0; 3599 Lline = 0; 3600 Lparg = 0; 3601 Number_lines = 0; 3602 j = 0; /*init counter */ 3603 Dlinfo_.Nunits = 0; 3604 3605 call line$skip_blanks; 3606 3607 if ^line$skip_blank () then 3608 do; 3609 call ioa_ ("Empty info segment: ^a^[>^]^a", Dinfo_seg_.dir, Dinfo_seg_.dir ^= ">", Dinfo_seg_.ent); 3610 Ninfos_printed = 1; /* Do not want no match error displayed upon return to help_ */ 3611 goto RETURN; 3612 end; 3613 3614 call line$generated; /* strip off "List generated line..." */ 3615 3616 Sfirst_pgh = TRUE; /* do not want to increment line ptr lst time */ 3617 3618 new_paragraph = TRUE; 3619 3620 do while (line$next ()); 3621 if Sfirst_pgh then 3622 Sfirst_pgh = FALSE; 3623 if new_paragraph then 3624 do; 3625 j = j + 1; 3626 Dlinfo_.Nunits = Dlinfo_.Nunits + 1; 3627 Dlinfo_.unit (j).title = ""; 3628 Dlinfo_.unit (j).Pstart = Pline; 3629 Dlinfo_.unit (j).S = FALSE; 3630 Dlinfo_.unit (j).Icommon_unit = 0; 3631 Number_lines = 1; 3632 Lparg = Lline; 3633 3634 if line$contains (colon) then 3635 current_line_begins_section = TRUE; 3636 else current_line_begins_section = FALSE; 3637 3638 if current_line_begins_section then 3639 do; 3640 Dlinfo_.unit (j).title = line$title (); 3641 3642 list_of = FALSE; 3643 if length (Dlinfo_.unit (j).title) >= 8 then 3644 if substr (Dlinfo_.unit (j).title, 1, 8) = "List of " then 3645 list_of = TRUE; 3646 3647 if length (Dlinfo_.unit (j).title) >= 6 then 3648 if substr (Dlinfo_.unit (j).title, 1, 6) = "Syntax" then 3649 Dlinfo_.unit (j).S.syntax_list = TRUE; 3650 3651 Dlinfo_.unit (j).S.list_of_list = list_of; 3652 Dlinfo_.unit (j).S.arg_list = section$arg_list (Dlinfo_.unit (j).title); 3653 3654 Dlinfo_.unit (j).Pstart = Pline; 3655 Dlinfo_.unit (j).S.scn = TRUE; 3656 Dlinfo_.Nsections = Dlinfo_.Nsections + 1; 3657 end; 3658 3659 else if j > 1 then 3660 do; /* propagate arg_list findings to all paragraphs */ 3661 /* of section */ 3662 if Dlinfo_.unit (j - 1).S.arg_list then 3663 Dlinfo_.unit (j).S.arg_list = TRUE; 3664 Dlinfo_.unit (j).S.list_of_list = list_of; 3665 end; 3666 end; /*new paragraph*/ 3667 3668 new_paragraph = line$new_pgh (); 3669 if new_paragraph then 3670 do; 3671 Dlinfo_.unit (j).L = Lparg + length (NL); 3672 Dlinfo_.unit (j).Nlines = Number_lines; 3673 call line$skip_blank_lines; /* strip off blank lines */ 3674 end; 3675 end; /*line next*/ 3676 3677 Dlinfo_.unit (j).L = Lparg + length (NL); 3678 3679 Dlinfo_.unit (j).Nlines = Number_lines; 3680 3681 if Ncommon_units > 0 then 3682 do; /* Add common units onto end of entry point part. */ 3683 i = Dlinfo_.Nunits + 1; 3684 Dlinfo_.Nunits = Dlinfo_.Nunits + Ncommon_units; 3685 addr (Dlinfo_.unit (i)) -> common_units = common_units; 3686 end; 3687 3688 3689 do i = 1 to Dlinfo_.Nunits; /* Compute line count of entry point part. */ 3690 if ^Dlinfo_.unit(i).ep_list then /* Do not add in ep list lines */ 3691 linfo.Nlines = linfo.Nlines + Dlinfo_.unit(i).Nlines; 3692 end; 3693 3694 if length (linfo.header) > 0 then 3695 linfo.Nlines = linfo.Nlines + 2; 3696 3697 end parse_entry_point_into_units; 3698 3699 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 3700 3701 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 3702 3703 3704 parse_info_into_entry_points: 3705 procedure (Aptr, LAline, PDeps_); /* Parse logical info into 1 or more entry points */ 3706 3707 dcl Aptr ptr, 3708 LAline fixed bin (21), 3709 PDeps_ ptr; 3710 3711 dcl Lline1 fixed bin (21), 3712 code fixed bin (35), 3713 i fixed bin (21), 3714 (j, k) fixed bin; 3715 3716 dcl line1 char (Lline1) based (Pline); 3717 3718 dcl 1 Deps_ aligned based (PDeps_), 3719 2 Nlines fixed bin, 3720 2 N fixed bin, 3721 2 linfo (0:0 refer (Deps_.N)) like Deps.linfo; 3722 3723 Pline_text = Aptr; 3724 Lline_text = LAline; 3725 Deps_.N = -1; /* At least 1 entry point will be found. */ 3726 Deps_.Nlines = 0; /* No lines counted yet in logical info. */ 3727 /* Search for 1st log info seg divider. */ 3728 do while (^line$end_of_info ()); /* record info about log. info seg. */ 3729 Pline = Pline_text; 3730 Deps_.N, j = Deps_.N + 1; 3731 Deps_.linfo (j).Nep_names = 0; 3732 if ^line$entry () & (j = 0) then 3733 do; /* This info has no :Entry: lines. */ 3734 if line$blank () then 3735 do; /* Strip off leading SP HT NL chars. */ 3736 Deps_.N = Deps_.N - 1; /* Empty entry. */ 3737 go to END_ENTRIES; 3738 end; 3739 end; 3740 3741 else 3742 do; 3743 Lline1 = index (line, NL); 3744 if Lline1 = 0 then 3745 do; /* This is last entry point in the info. */ 3746 Deps_.N = Deps_.N - 1; 3747 if Deps_.N = 0 then 3748 do; 3749 if Deps_.linfo.header (Deps_.N) = "" then 3750 Deps_.linfo (Deps_.N).L = LAline; 3751 else Deps_.linfo (Deps_.N).L = Deps_.linfo (Deps_.N).L - length (NL); 3752 end; 3753 else Deps_.linfo (Deps_.N).L = Deps_.linfo (Deps_.N).L - length (NL_NL); 3754 /* Do not include ending info NLs as part of */ 3755 /* length of entry */ 3756 go to END_ENTRIES; 3757 end; 3758 i = index (line1, ":"); /* look for : ending first entry point name. */ 3759 do while (i > 0); /* Sample line looks like: */ 3760 /* :Entry: rs: rsnnl: 05/25/78 ioa_$rs, ioa_$rsnnl*/ 3761 k, Deps_.linfo (j).Nep_names = Deps_.linfo (j).Nep_names + 1; 3762 if k <= dim (Deps_.linfo.ep_name, 2) then 3763 Deps_.linfo (j).ep_name (k) = ltrim (rtrim (substr (line, 1, i), " :"), " "); 3764 if Lline - i > 0 then 3765 Pline = addr (line_arr (i + 1)); 3766 Lline = Lline - i; 3767 Lline1 = Lline1 - i; 3768 i = index (line1, ":"); 3769 end; 3770 if (j > 0) & (Deps_.linfo (j).Nep_names = 0) then 3771 do; 3772 Deps_.N = Deps_.N - 1; /* All but common info must have entry point */ 3773 go to NEXT_ENTRY; /* names. But look! */ 3774 end; /* No names! Can never read this info via help */ 3775 if line$blank () then 3776 do; /* Strip off HT SP NL from start of info */ 3777 Deps_.N = Deps_.N - 1; 3778 go to NEXT_ENTRY; 3779 end; 3780 end; 3781 3782 i = verify (line, HT_SP_NL_VT); /* Skip leading white space */ 3783 Pline = addr (line_arr (i)); 3784 Lline = Lline - i + 1; 3785 3786 Deps_.linfo (j).Pstart = Pline; 3787 Deps_.linfo (j).L = Lline; 3788 Deps_.linfo (j).Nlines = 0; 3789 Deps_.linfo (j).S = FALSE; 3790 Lline1 = index (line, NL); /* header is first line of log. info seg. */ 3791 if Lline1 >= Lline then 3792 do; /* header is only line of file. */ 3793 Deps_.linfo (j).header = ""; 3794 Deps_.linfo (j).date = 0; 3795 end; 3796 else if Lline1 + 1 <= Lline then 3797 if line_arr (Lline1 + 1) = NL then 3798 do; /* header line must be followed by 1 blank line, at least. */ 3799 Deps_.linfo (j).header = ltrim (substr (line, 1, Lline1 - 1)); 3800 /* Remainder should be an entry point name. */ 3801 Deps_.linfo (j).Pstart = addr (line_arr (Lline1 + 1)); 3802 Deps_.linfo (j).L = Lline - length (Deps_.linfo (j).header); 3803 /* Remove header from logical info. */ 3804 i = search (substr (line, 1, Lline1), " "); 3805 if i = 0 then 3806 Deps_.linfo (j).date = 0; 3807 else 3808 do; 3809 call convert_date_to_binary_ (substr (line, 1, i - 1), Deps_.linfo (j).date, code); 3810 if code ^= 0 then /* No date! */ 3811 Deps_.linfo (j).date = 0; 3812 end; 3813 end; 3814 else 3815 do; 3816 Deps_.linfo (j).header = ""; 3817 Deps_.linfo (j).date = 0; 3818 end; 3819 if index (line1, OLD_HELP_PGH_CHAR) > 0 then 3820 /* check old format info segs with \006 chars */ 3821 Deps_.linfo (j).S.old_format = TRUE; 3822 NEXT_ENTRY: 3823 i = index (line_text, " 3824 3825 3826 :Entry:"); 3827 end; 3828 3829 3830 END_ENTRIES: 3831 end parse_info_into_entry_points; 3832 3833 3834 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 3835 3836 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 3837 3838 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 3839 3840 /* F U N C T I O N S */ 3841 3842 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 3843 3844 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 3845 3846 3847 ck_conditions: 3848 proc(i) returns (bit (1)); 3849 3850 dcl i fixed bin parm; 3851 3852 if Dlinfo.unit (i).ep_list = TRUE & No_list_elements = 1 then 3853 /* Do aggregate an ep list if it only contains */ 3854 /* one element */ 3855 return (FALSE); 3856 3857 if i <= Dlinfo.Nunits then /* When aggregating sections, include all */ 3858 if ^Ssearch then /* section titles in the query. */ 3859 if Sseen = seen_pgh (Dlinfo.unit (i)) then 3860 if Dlinfo.unit (i).Nlines < help_args.min_Lpgh then 3861 if Dlinfo.unit (i).Nlines + 2 + Nlines <= help_args.max_Lpgh then 3862 return (TRUE); 3863 3864 return (FALSE); 3865 3866 end ck_conditions; 3867 3868 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 3869 3870 ck_more_conditions: 3871 proc(i) returns (bit (1)); 3872 3873 dcl i fixed bin parm; 3874 3875 if i <= Dlinfo.Nunits then /* Note that, here and above, if current pgh */ 3876 if ^Dlinfo.unit (i).S.scn then /* has already been seen, then can only aggregate */ 3877 if ^Ssearch then /* following pgh if it has been seen as well. */ 3878 if Sseen = seen_pgh (Dlinfo.unit (i)) then 3879 if Dlinfo.unit (i).Nlines < help_args.min_Lpgh then 3880 if Dlinfo.unit (i).Nlines + 2 + Nlines <= help_args.max_Lpgh then 3881 return (TRUE); 3882 3883 return (FALSE); 3884 3885 end ck_more_conditions; 3886 3887 3888 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 3889 3890 3891 ct_pgh_lines: 3892 proc; 3893 3894 Sseen = Deps.linfo (Iep).S.seen_by_user; 3895 Nlines = Dlinfo.unit (Iunit).Nlines; 3896 Nprint_units = 1; 3897 do while (Nlines_less_Lpgh ()); /* Iunit+Nprint_units<=Dlinfo.Nunits */ 3898 /* Nlines < Lpgh */ 3899 Nlines = Dlinfo.unit (Iunit + Nprint_units).Nlines + 2 + Nlines; 3900 Nprint_units = Nprint_units + 1; 3901 end; 3902 3903 end ct_pgh_lines; 3904 3905 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 3906 3907 Nlines_less_Lpgh: 3908 proc returns (bit (1)); 3909 3910 if Iunit + Nprint_units <= Dlinfo.Nunits then 3911 if Dlinfo.unit (Iunit + Nprint_units).Nlines < help_args.min_Lpgh then 3912 if Dlinfo.unit (Iunit + Nprint_units).Nlines + 2 + Nlines <= help_args.max_Lpgh then 3913 return (TRUE); 3914 3915 return (FALSE); 3916 3917 end Nlines_less_Lpgh; 3918 3919 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 3920 3921 new_section_nscn: 3922 proc returns (bit (1)); 3923 3924 if new_section ^= "" then 3925 if ^Dlinfo.unit (Iunit).S.scn then 3926 return (TRUE); 3927 3928 return (FALSE); 3929 3930 end new_section_nscn; 3931 3932 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 3933 3934 print_pgh_titles: 3935 proc returns (bit (1)); 3936 if help_args.Sctl.title then 3937 do; /* print pgh titles when -title is given only if */ 3938 /* more than one title will be printed */ 3939 if (Dlinfo.Nsections > 1) then 3940 return (TRUE); 3941 else if Dlinfo.Nsections = 1 then 3942 if ^Dlinfo.unit (1).S.scn then 3943 return (TRUE); 3944 end; 3945 3946 return (FALSE); 3947 3948 end print_pgh_titles; 3949 3950 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 3951 3952 prt_pgh_nnl: 3953 proc returns (bit (1)); 3954 3955 if ^help_args.Sctl.he_pn then 3956 if ^help_args.Sctl.he_info_name then 3957 if ^help_args.Sctl.he_counts then 3958 if length (Deps.linfo (Iep).header) = 0 then 3959 return (TRUE); 3960 3961 return (FALSE); 3962 3963 end prt_pgh_nnl; 3964 3965 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 3966 3967 3968 dcl Linfo_seg fixed bin (21), 3969 Pinfo_seg ptr; 3970 3971 3972 info$init: 3973 proc (APseg, ALseg); 3974 3975 dcl ALseg fixed bin (21), 3976 APseg ptr; 3977 3978 Linfo_seg = ALseg; 3979 Pinfo_seg = APseg; 3980 call line$init (APseg, ALseg); 3981 3982 end info$init; 3983 3984 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 3985 3986 initialize_switches: 3987 proc; 3988 3989 Sdescription_present = FALSE; 3990 Sep_list_printed = FALSE; 3991 Sfirst_time = FALSE; 3992 Sfirst_pgh = FALSE; 3993 Sremove_line = FALSE; 3994 Syntax_section = FALSE; 3995 Sprt_args = FALSE; 3996 Sprt_bf_heading = FALSE; 3997 Sprt_list_of = FALSE; 3998 Sprt_entry_pts = FALSE; 3999 Sprt_one_paragraph = FALSE; 4000 Scase_sensitive = FALSE; 4001 4002 end initialize_switches; 4003 4004 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 4005 4006 line$args: 4007 proc; 4008 4009 dcl Iline fixed bin (24), 4010 continue_line bit (1) init ("0"b); 4011 4012 if line ^= "," & substr (reverse (line), 1) = "," | (index (HT_SP, line_text_arr (1)) = 0 & index (NL, line_text_arr (1)) = 0) 4013 then /* When line=comma - comma is being used as an arg*/ 4014 continue_line = TRUE; 4015 else 4016 do; 4017 if list_of then /*List of items*/ 4018 return; 4019 Iline = index (line, SP_SP); 4020 if Iline = 0 then 4021 Iline = index (line, HT); 4022 if Iline ^= 0 then 4023 Lline = Iline - 1; 4024 return; 4025 end; 4026 4027 if continue_line then 4028 do; /*Determine if there are any consecutive arg*/ 4029 /*lines other than the 1st set that do not */ 4030 /*end in a comma. */ 4031 if Sfirst_time & substr (reverse (line), 1) ^= "," then 4032 Sremove_line = TRUE; 4033 else if Sremove_line & substr (reverse (line), 1) ^= "," then 4034 Sremove_line = FALSE; 4035 end; 4036 4037 do while (continue_line & Lline_text > 0); 4038 /*Control arg continued on next line*/ 4039 Sconsecutive_arg_lines = TRUE; 4040 Iline = index (line_text, NL); 4041 if Iline > 0 then 4042 do; 4043 if Lline_text - Iline > 0 then 4044 Pline_text = addr (line_text_arr (Iline + 1)); 4045 Lline_text = Lline_text - Iline; 4046 Lline = Lline + Iline; 4047 end; 4048 else 4049 do; 4050 Lline = Lline + Lline_text; 4051 Lline_text = 0; 4052 continue_line = FALSE; 4053 end; 4054 if substr (reverse (line), 1, 1) = "," | index (HT_SP, line_text_arr (1)) = 0 then 4055 ; 4056 else 4057 do; 4058 if Sremove_line & substr (line_text, 1, 3) = SP_SP_SP then 4059 Sdescription_present = TRUE; 4060 else Sdescription_present = FALSE; 4061 continue_line = FALSE; 4062 end; 4063 end; 4064 4065 return; 4066 4067 end line$args; 4068 4069 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 4070 4071 line$blank: 4072 proc returns (bit (1)); 4073 dcl Iline fixed bin (24); 4074 4075 4076 Iline = verify (line, HT_SP_NL); 4077 if Iline = 0 then 4078 return (TRUE); 4079 if Iline > 1 then 4080 do; 4081 Pline = addr (line_arr (Iline)); 4082 Lline = Lline - (Iline - 1); 4083 end; 4084 return (FALSE); 4085 4086 end line$blank; 4087 4088 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 4089 4090 line$contains: 4091 proc (t1) returns (bit (1)); 4092 4093 dcl Iline fixed bin (24), 4094 t1 char (*); 4095 4096 Iline = index (line, t1); 4097 if Iline = 0 then 4098 return (FALSE); 4099 return (TRUE); 4100 4101 end line$contains; 4102 4103 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 4104 4105 line$desc: 4106 proc returns (bit (1)); 4107 4108 dcl Iline fixed bin (24); 4109 4110 if Lline_text ^> 0 then 4111 return (FALSE); 4112 4113 Iline = index (line_text, NL); /*Find length of current line*/ 4114 Pline = Pline_text; 4115 4116 if Iline = 0 then 4117 do; 4118 Lline = Lline_text; 4119 Lline_text = 0; 4120 return (TRUE); 4121 end; 4122 4123 if index (HT_SP, line_text_arr (1)) = 0 & index (NL, line_text_arr (1)) = 0 then 4124 return (FALSE); 4125 4126 if Iline + 2 <= Lline_text then /* check for end of pgh */ 4127 if index (line_text_arr (Iline + 1), NL) > 0 & index (line_text_arr (Iline + 2), NL) > 0 then 4128 do; 4129 Lline = Iline - 1; 4130 Lline_text = 0; 4131 return (TRUE); 4132 end; 4133 4134 4135 Lline = Iline - 1; 4136 if Lline_text - Iline > 0 then 4137 Pline_text = addr (line_text_arr (Iline + 1)); 4138 /* Find start point of next line */ 4139 Lline_text = Lline_text - Iline; 4140 return (TRUE); 4141 4142 end line$desc; 4143 4144 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 4145 4146 4147 line$end_of_info: 4148 proc returns (bit (1)); 4149 4150 if length (line_text) + length (line) = 0 then 4151 return (TRUE); 4152 else return (FALSE); 4153 4154 end line$end_of_info; 4155 4156 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 4157 4158 line$entry: 4159 proc returns (bit (1)); 4160 4161 dcl Iline fixed bin (24); 4162 4163 4164 4165 Iline = index (line_text, " 4166 4167 4168 :Entry:"); 4169 if Iline = 0 then 4170 do; 4171 Lline = Lline_text; 4172 Lline_text = 0; 4173 return (FALSE); 4174 end; 4175 else 4176 do; 4177 Lline = Iline - 1; 4178 if Lline_text - (Iline + 9) > 0 then 4179 Pline_text = addr (line_text_arr (Iline + 10)); 4180 Lline_text = Lline_text - (Iline + 9); 4181 return (TRUE); 4182 end; 4183 4184 end line$entry; 4185 4186 4187 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 4188 4189 line$HT_SP: 4190 proc returns (bit (1)); 4191 4192 dcl Iline fixed bin (24); 4193 4194 Iline = index (HT_SP, line_arr (1)); 4195 if Iline > 0 then 4196 return (TRUE); 4197 return (FALSE); 4198 4199 end line$HT_SP; 4200 4201 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 4202 4203 line$generated: 4204 proc; 4205 4206 dcl Ibreak fixed bin (21), 4207 Inonwhite fixed bin (21), 4208 Iskip fixed bin (21), 4209 Lword_text fixed bin (21), 4210 Pword_text ptr; 4211 4212 dcl word_text char (Lword_text) based (Pword_text), 4213 word_text_arr (Lword_text) char (1) based (Pword_text), 4214 word (7) char (80) var, 4215 Nwords fixed bin; 4216 4217 dcl WORD_BREAKS char (4) int static options (constant) init (" ()"); 4218 /* HT SP ( and ) */ 4219 4220 dcl Ptext ptr, /* save ptr to where text starts so can adjust Pline_text*/ 4221 Ltext fixed bin; 4222 4223 Pword_text = Pline_text; 4224 Lword_text = Lline_text; 4225 4226 do while (Lword_text > 0 & index (line_text, NL) = 1); 4227 /* skip any blank lines before text */ 4228 if Lword_text - 1 > 0 then 4229 Pword_text = addr (word_text_arr (2)); 4230 Lword_text = Lword_text - 1; 4231 end; 4232 4233 Ptext = Pword_text; 4234 Ltext = Lword_text; 4235 4236 Lword_text = index (line_text, NL); 4237 if Lword_text = 0 then 4238 Lword_text = length (line_text); 4239 Nwords = 0; 4240 word (*) = ""; 4241 4242 Inonwhite = verify (word_text, HT_SP); 4243 /* skip over white space */ 4244 if Inonwhite = 0 then 4245 Lword_text = 0; 4246 else if Inonwhite > 1 then 4247 do; 4248 Pword_text = addr (word_text_arr (Inonwhite)); 4249 Lword_text = length (word_text) - (Inonwhite - 1); 4250 end; 4251 4252 do while (Lword_text > 0 & Nwords < dim (word, 1)); 4253 Ibreak = search (word_text, WORD_BREAKS); 4254 if Ibreak = 0 then 4255 Ibreak = length (word_text) + 1; 4256 if Ibreak > 1 then 4257 do; 4258 Nwords = Nwords + 1; 4259 if Nwords <= dimension (word, 1) then 4260 word (Nwords) = substr (word_text, 1, Ibreak - 1); 4261 if Lword_text - (Ibreak - 1) > 0 then 4262 Pword_text = addr (word_text_arr (Ibreak)); 4263 Lword_text = length (word_text) - (Ibreak - 1); 4264 end; 4265 Iskip = verify (word_text, WORD_BREAKS); 4266 /* skip over all consecutive breaks chars */ 4267 if Iskip > 0 then 4268 do; 4269 Pword_text = addr (word_text_arr (Iskip)); 4270 Lword_text = length (word_text) - (Iskip - 1); 4271 end; 4272 else Lword_text = 0; /* nothing but break characters remain */ 4273 end; 4274 4275 if word (1) = "List" & word (2) = "is" & word (3) = "generated" & word (4) = "by" & word (5) = "the" & word (6) = "help" 4276 & word (7) = "command" then 4277 do; 4278 Pline_text = Ptext; 4279 Lline_text = Ltext; 4280 i = index (line_text, NL); 4281 if i = 0 then 4282 Lline_text = 0; 4283 else 4284 do; 4285 if Lline_text - i > 0 then 4286 Pline_text = addr (line_text_arr (i + 1)); 4287 Lline_text = Lline_text - i; 4288 end; 4289 end; 4290 4291 return; 4292 4293 end line$generated; 4294 4295 4296 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 4297 4298 line$init: 4299 proc (APseg, ALseg); 4300 4301 dcl ALseg fixed bin (21), 4302 APseg ptr; 4303 4304 Lline_text = ALseg; 4305 Pline_text = APseg; 4306 Number_lines = 0; 4307 call section$assert_line_begins_a_section (FALSE); 4308 4309 end line$init; 4310 4311 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 4312 4313 line$list_items: 4314 proc returns (bit (1)); 4315 dcl Iline fixed bin (24); 4316 4317 4318 Iline = index (line_text, NL); 4319 if Iline = 1 then /* blank line */ 4320 return (TRUE); 4321 4322 if Iline > 1 then 4323 if substr (line_text, 1, Iline - 1) = SP then 4324 return (TRUE); 4325 4326 if length (line_text) >= 3 then /* no description */ 4327 if substr (line_text, 1, 3) ^= SP_SP_SP then 4328 return (TRUE); 4329 4330 return (FALSE); 4331 4332 end line$list_items; 4333 4334 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 4335 4336 line$new_pgh: 4337 proc returns (bit (1)); 4338 4339 dcl Iline fixed bin (24); 4340 4341 4342 if length (line_text) = 0 then /* on last line */ 4343 return (FALSE); 4344 4345 Iline = index (line_text, NL_NL); /* looking for NL_NL for total of NL_NL_NL which */ 4346 /* indicates new pgh */ 4347 if Iline = 1 then 4348 do; /* found NL_NL_NL */ 4349 4350 if Lline_text - 2 > 0 then 4351 Pline_text = addr (line_text_arr (Iline + 2)); 4352 Lline_text = (length (line_text) - 2); 4353 return (TRUE); 4354 end; 4355 return (FALSE); 4356 4357 end line$new_pgh; 4358 4359 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 4360 4361 line$next: 4362 proc returns (bit (1)); 4363 4364 dcl Iline fixed bin (24); 4365 4366 if Sfirst_pgh then /* do not increment line 1st time through */ 4367 /* for procedure parse_entry_point_into_units */ 4368 return (TRUE); 4369 4370 if length (line_text) = 0 | verify (line_text, NL) = 0 then 4371 return (FALSE); 4372 4373 Iline = index (line_text, NL); 4374 if Iline = 0 then 4375 do; 4376 Pline = addr (line_text); 4377 Lline, Iline = length (line_text); 4378 Lline_text = 0; 4379 end; 4380 else 4381 do; 4382 Pline = addr (line_text); 4383 Lline = Iline - 1; 4384 if Lline_text - Iline > 0 then 4385 Pline_text = addr (line_text_arr (Iline + 1)); 4386 Lline_text = Lline_text - Iline; 4387 end; 4388 Number_lines = Number_lines + 1; 4389 Lparg = Lparg + Iline; 4390 return (TRUE); 4391 4392 end line$next; 4393 4394 4395 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 4396 4397 line$skip_blank: 4398 proc returns (bit (1)); 4399 4400 do while (line = ""); 4401 if ^line$next () then 4402 return (FALSE); 4403 end; 4404 return (TRUE); 4405 4406 end line$skip_blank; 4407 4408 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 4409 4410 4411 line$skip_blank_lines: 4412 proc; 4413 4414 dcl blk_line char (Lblk_line) based (Pblk_line), 4415 Pblk_line ptr, 4416 Lblk_line fixed bin, 4417 Sblk_line bit; 4418 4419 Sblk_line = TRUE; 4420 4421 do while (Sblk_line & Lline_text > 0); 4422 Pblk_line = Pline_text; 4423 Lblk_line = index (line_text, NL); 4424 if Lblk_line = 0 then 4425 do; 4426 Lblk_line = Lline_text; 4427 Lline_text = 0; 4428 end; 4429 if blk_line = "" then 4430 do; 4431 if Lline_text - Lblk_line > 0 then 4432 Pline_text = addr (line_text_arr (Lblk_line + 1)); 4433 Lline_text = Lline_text - Lblk_line; 4434 end; 4435 else Sblk_line = FALSE; 4436 end; 4437 4438 return; 4439 4440 end line$skip_blank_lines; 4441 4442 4443 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 4444 4445 4446 line$skip_blanks: 4447 proc; 4448 4449 dcl Iline fixed bin (24); 4450 4451 Iline = verify (line_text, " "); 4452 if Iline = 0 then 4453 return; 4454 do while (Iline > 0); 4455 if line_text_arr (Iline) = NL then 4456 do; 4457 if Lline_text - Iline > 0 then 4458 Pline_text = addr (line_text_arr (Iline + 1)); 4459 Lline_text = Lline_text - Iline; 4460 Iline = verify (line_text, " "); 4461 end; 4462 else Iline = 0; 4463 end; 4464 4465 return; 4466 4467 end line$skip_blanks; 4468 4469 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 4470 4471 line$title: 4472 proc returns (char (200) varying); 4473 4474 dcl Iline fixed bin (24), 4475 text char (200) varying; 4476 4477 Iline = index (reverse (line), ":");/* need everything prior to last colon on line */ 4478 if Iline = 0 then 4479 text = ""; 4480 else 4481 do; 4482 Iline = Lline - (Iline - 1); /* get char index of last colon in line */ 4483 Lparg = Lparg - Iline; 4484 text = ltrim (substr (line, 1, Iline - 1)); 4485 /* dont include colon */ 4486 4487 if Lline - Iline > 0 then 4488 do; 4489 Pline = addr (line_arr (Iline + 1)); 4490 Lline = Lline - Iline; 4491 end; 4492 else 4493 do; 4494 Pline = addcharno (addr (line_arr (Iline)), 1); 4495 Lline = 0; 4496 end; 4497 end; 4498 return (text); 4499 4500 4501 end line$title; 4502 4503 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 4504 4505 section$arg_list: 4506 proc (name) returns (bit (1)); 4507 4508 dcl name char (*) varying; 4509 4510 if length (name) >= 16 then /* Is section an arg_list section?*/ 4511 if substr (name, 1, 16) = "Control argument" | substr (name, 1, 16) = "Control Argument" | 4512 substr (name, 1, 8) = "Argument" | substr (name, 1, 8) = "List of " then 4513 return (TRUE); 4514 else ; 4515 else if length (name) >= 8 then 4516 if substr (name, 1, 8) = "Argument" | substr (name, 1, 8) = "List of " then 4517 return (TRUE); 4518 4519 return (FALSE); 4520 4521 end section$arg_list; 4522 4523 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 4524 4525 dcl current_line_begins_section 4526 bit (1); 4527 4528 section$assert_line_begins_a_section: 4529 proc (setting); 4530 4531 dcl setting bit (1) aligned; 4532 4533 current_line_begins_section = setting; 4534 4535 end section$assert_line_begins_a_section; 4536 4537 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 4538 4539 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 4540 4541 print_header: 4542 proc (); /* This procedure prints a regular heading line. */ 4543 4544 dcl Lcount fixed bin, 4545 Linfo_name fixed bin, 4546 Lpath fixed bin; 4547 dcl case fixed bin; 4548 dcl line char (256) varying; 4549 4550 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 4551 /* */ 4552 /* Output heading line before other info. The heading spans at least 2 lines, and has */ 4553 /* the form: */ 4554 /* pathname (line counts) */ 4555 /* info_name: info_title */ 4556 /* */ 4557 /* where all parts but the info_title are optional. */ 4558 /* */ 4559 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 4560 4561 if help_args.Sctl.he_counts then 4562 do; /* Do following only if line/entry counts wanted. */ 4563 if Deps.N = 0 then /* No subroutine entry points. */ 4564 if Nlines >= Deps.linfo (0).Nlines then 4565 /* Only 1 paragraph. */ 4566 case = 1; 4567 else case = 2; /* Multiple paragraphs. */ 4568 else 4569 do; /* Subroutine entry points. */ 4570 if Iep = 0 then /* Subroutine introduction. */ 4571 if Nlines >= Deps.linfo (0).Nlines then 4572 case = 3; /* Only 1 paragraph. */ 4573 else case = 4; /* Multiple paragraphs. */ 4574 else /* A subroutine entry point. */ 4575 if Deps.N = 1 then /* Only 1 entry point. */ 4576 if Nlines >= Deps.linfo (Iep).Nlines then 4577 case = 5; /* Only 1 paragraph. */ 4578 else case = 6; /* Multiple paragraphs. */ 4579 else /* Multiple entry points. */ 4580 if Nlines >= Deps.linfo (Iep).Nlines then 4581 case = 7; /* Only 1 paragraph. */ 4582 else case = 8; /* Multiple paragraphs. */ 4583 end; 4584 go to FORM (case); 4585 4586 FORM (1): 4587 call ioa_$rsnnl ("^d line^[s^] in info", line, 0, Nlines, (Nlines > 1)); 4588 if Nlines <= 0 then 4589 Nlines = 1; 4590 4591 go to END_FORM; 4592 4593 FORM (2): 4594 call ioa_$rsnnl ("^d ^[lines follow^;line follows^]; ^d in info", line, 0, Nlines, (Nlines > 1), 4595 Deps.linfo (Iep).Nlines); 4596 go to END_FORM; 4597 4598 FORM (3): 4599 call ioa_$rsnnl ("^d line^[s^] in introduction; ^d lines, ^d entry point^[s^] in info", 4600 line, 0, Nlines, (Nlines > 1), Deps.Nlines, Deps.N, (Deps.N > 1)); 4601 go to END_FORM; 4602 4603 FORM (4): 4604 call ioa_$rsnnl ("^d ^[lines follow^;line follows^], ^d in introduction; ^d lines, ^d entry point^[s^] in info", 4605 line, 0, Nlines, (Nlines > 1), Deps.linfo (Iep).Nlines, Deps.Nlines, Deps.N, (Deps.N > 1)); 4606 go to END_FORM; 4607 4608 FORM (5): 4609 call ioa_$rsnnl ("^d line^[s^] in entry point", line, 0, Nlines, (Nlines > 1)); 4610 go to END_FORM; 4611 4612 FORM (6): 4613 call ioa_$rsnnl ("^d ^[lines follow^;line follows^], ^d in entry point", line, 0, Nlines, (Nlines > 1), 4614 Deps.linfo (Iep).Nlines); 4615 go to END_FORM; 4616 4617 FORM (7): 4618 call ioa_$rsnnl ("^d line^[s^] in entry point; ^d lines, ^d other entry point^[s^] in info", line, 0, Nlines, 4619 (Nlines > 1), Deps.Nlines, (Deps.N - 1), (Deps.N - 1 > 1)); 4620 go to END_FORM; 4621 4622 FORM (8): 4623 call ioa_$rsnnl ("^d ^[lines follow^;line follows^], ^d in entry point; ^d lines, ^d other entry point^[s^] in info", 4624 line, 0, Nlines, (Nlines > 1), Deps.linfo (Iep).Nlines, Deps.Nlines, (Deps.N - 1), (Deps.N - 1 > 1)); 4625 4626 END_FORM: 4627 Lcount = length (line); 4628 end; 4629 else Lcount = 0; 4630 4631 if help_args.Sctl.he_pn then 4632 do; /* Compute length of pathname for heading. */ 4633 Lpath = length (rtrim (Dinfo_seg_.dir)) + length (rtrim (Dinfo_seg_.ent)) + length (" "); 4634 if Dinfo_seg_.dir ^= ">" then 4635 Lpath = Lpath + 1; 4636 end; 4637 else Lpath = 0; 4638 4639 if help_args.Sctl.he_info_name then 4640 do; /* If info_name to be output, compute its length */ 4641 Linfo_name = length (rtrim (Dinfo_seg_.info_name)); 4642 if Linfo_name > 0 then /* + colon + 2 spaces. */ 4643 Linfo_name = Linfo_name + length (": "); 4644 end; 4645 else Linfo_name = 0; 4646 4647 if Lpath > 0 & Lcount > 0 then 4648 if Lpath + Lcount <= Loutput_line then 4649 ISnl3 = 2; 4650 else ISnl3 = 1; 4651 else ISnl3 = 3; 4652 4653 if Lpath + Lcount > 0 then 4654 Snl1 = TRUE; 4655 else Snl1 = FALSE; 4656 4657 if Linfo_name + length (Deps.linfo (Iep).header) >= 0 then 4658 Snl2 = TRUE; 4659 else Snl2 = FALSE; 4660 4661 call ioa_$nnl ("^[^v/^;^s^]^[^a^[>^]^a^;^3s^]^[^/^; ^;^]^[(^a)^;^s^]^[^/^]^[^a: ^;^s^]^[^a^]^[^/^]", 4662 (Ninfos_printed > 1), /* For all but the first info printed, */ 4663 help_args.Lspace_between_infos,/* output spaces between infos. */ 4664 help_args.Sctl.he_pn, /* Put pathname into heading. */ 4665 Dinfo_seg_.dir, (Dinfo_seg_.dir ^= ">"), Dinfo_seg_.ent, ISnl3, help_args.Sctl.he_counts, 4666 /* Put line/entry point count into heading. */ 4667 line, /* Description formulated above. */ 4668 Snl1, (Linfo_name > 0), /*Put info_name into heading. */ 4669 Dinfo_seg_.info_name, (^Sprt_entry_pts), Deps.linfo (Iep).header, 4670 /* Heading line of info or entry point. */ 4671 Snl2); 4672 4673 return; 4674 4675 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 4676 4677 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 4678 4679 4680 print_header_only: 4681 entry; /* Print header for an info. */ 4682 4683 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 4684 /* */ 4685 /* Output a special-format info heading line when only heading lines are being output. */ 4686 /* The idea is for the headings to occupy as few lines as possible. */ 4687 /* */ 4688 /* The heading line has the form: */ 4689 /* pathname info_name: info_title (line counts) */ 4690 /* */ 4691 /* where all fields but info_title are optional. */ 4692 /* */ 4693 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 4694 4695 if help_args.Sctl.he_pn then 4696 do; 4697 Lpath = length (rtrim (Dinfo_seg_.dir)) + length (rtrim (Dinfo_seg_.ent)) + length (" "); 4698 if Dinfo_seg_.dir ^= ">" then 4699 Lpath = Lpath + 1; 4700 end; /* If pathname to be output, compute length of */ 4701 else Lpath = 0; /* path + 3 spaces. */ 4702 4703 if help_args.Sctl.he_info_name then 4704 do; /* If info_name to be output, compute length of */ 4705 Linfo_name = length (rtrim (Dinfo_seg_.info_name)); 4706 if Linfo_name > 0 then /* info_name + colon + 2 spaces. */ 4707 Linfo_name = Linfo_name + length (": "); 4708 end; 4709 else Linfo_name = 0; 4710 4711 if help_args.Sctl.he_counts then 4712 do; /* If line/entry point counts to be output, */ 4713 if Dinfo_seg_.Scross_ref then /* compute length of appropriate format + 3 spaces*/ 4714 Lcount = length (" (another version)"); 4715 else if Deps.N = 0 then 4716 Lcount = length (" (9999 lines in info)"); 4717 else if Iep = 0 then 4718 Lcount = length (" (9999 lines, 999 entries in info)"); 4719 else Lcount = length (" (9999 lines, 999 other entries in info)"); 4720 end; 4721 else Lcount = 0; 4722 4723 if Lpath + Linfo_name + length (Deps.linfo (Iep).header) + Lcount <= Loutput_line then 4724 do; 4725 Snl1 = FALSE; /* Compute if heading must be broken into several */ 4726 Snl2 = FALSE; /* lines. Break points are after pathname and */ 4727 end; /* before line/entry counts. */ 4728 else if Lpath + Linfo_name + length (Deps.linfo (Iep).header) <= Loutput_line then 4729 do; 4730 Snl1 = FALSE; 4731 Snl2 = TRUE; 4732 end; 4733 else if Linfo_name + length (Deps.linfo (Iep).header) + Lcount <= Loutput_line then 4734 do; 4735 Snl1 = TRUE; 4736 Snl2 = FALSE; 4737 end; 4738 else 4739 do; 4740 Snl1 = (Lpath > 0); 4741 Snl2 = (Lcount > 0); 4742 end; 4743 4744 call ioa_ ("^[^a^[>^]^a^;^3s^]^[^/^] ^[^a: ^;^s^]^a^[ 4745 ^]^[ ^[(another version)^;(^d line^[s^]^[, ^[^d^s^;^s^d other^] ^[entries^;entry^]^;^4s^] in info)^]^]", 4746 /* Output long heading line. */ 4747 help_args.Sctl.he_pn, Dinfo_seg_.dir, Dinfo_seg_.dir ^= ">", Dinfo_seg_.ent, Snl1, 4748 Linfo_name > 0, Dinfo_seg_.info_name, 4749 Deps.linfo (Iep).header, /* Output the entry point heading. */ 4750 Snl2, help_args.Sctl.he_counts, Dinfo_seg_.Scross_ref, 4751 /* Second occurence of info in another dir. */ 4752 Deps.Nlines, (Deps.Nlines > 1),/* Output line count for all entry points. */ 4753 ((Deps.N > 0) & (Iep = 0)) | (Deps.N > 1), 4754 /* Output count of entry points. */ 4755 (Iep = 0), /* Looking at common part. Output info about */ 4756 /* all entry points. */ 4757 Deps.N, Deps.N - 1, /* Looking at entry point. Output info about */ 4758 /* other entry points. */ 4759 ((Iep = 0) & (Deps.N > 1)) | (Deps.N - 1 > 1)); 4760 4761 end print_header; 4762 4763 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 4764 4765 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 4766 4767 4768 print_pgh_2nl: 4769 procedure (unit, Sprint_inhibit); /* This procedure prints a paragraph. */ 4770 4771 dcl 1 unit aligned like Dlinfo.unit, 4772 Sprint_inhibit bit (1) aligned; 4773 4774 dcl code fixed bin (35); 4775 4776 4777 dcl 1 event_info aligned, 4778 2 ev_chan fixed bin (71), 4779 2 message fixed bin (71), 4780 2 sender bit (36), 4781 2 origin, 4782 3 dev_signal 4783 bit (18) unal, 4784 3 ring bit (18) unal, 4785 2 chan_index fixed bin; 4786 4787 dcl 1 wait_list aligned int static, 4788 2 N fixed bin, 4789 2 ev_chan (1) fixed bin (71); 4790 4791 dcl 1 write_status aligned int static, 4792 2 ev_chan fixed bin (71) init (0), 4793 2 output_pending 4794 bit (1); 4795 4796 if Sprint_inhibit then 4797 return; 4798 call ioa_ ("^/"); 4799 go to PRINT_PGH; 4800 4801 4802 print_pgh: 4803 entry (unit, Sprint_inhibit); 4804 4805 if Sprint_inhibit then 4806 return; 4807 call ioa_ (""); 4808 4809 4810 print_pgh_nnl: 4811 entry (unit, Sprint_inhibit); 4812 4813 if Sprint_inhibit then 4814 return; 4815 PRINT_PGH: 4816 if unit.ep_list then 4817 if Sep_list_printed then 4818 return; 4819 else Sep_list_printed = TRUE; 4820 4821 if unit.S.scn then /* Print section title, if any. */ 4822 call ioa_$nnl ("^a:", unit.title); 4823 call iox_$put_chars (iox_$user_output, unit.Pstart, unit.L, code); 4824 call iox_$control (iox_$user_output, "write_status", addr (write_status), code); 4825 if (code = 0) & (write_status.output_pending) then 4826 do; /* Wait until output on user's terminal before */ 4827 wait_list.N = 1; /* marking pgh seen. */ 4828 wait_list.ev_chan (1) = write_status.ev_chan; 4829 call ipc_$block (addr (wait_list), addr (event_info), code); 4830 end; 4831 unit.S.seen_by_user = TRUE; /* Keep track of what we've seen. */ 4832 if unit.Icommon_unit > 0 then 4833 common_units (unit.Icommon_unit).S.seen_by_user = TRUE; 4834 4835 end print_pgh_2nl; 4836 4837 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 4838 4839 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 4840 4841 4842 seen_pgh: 4843 proc (unit) returns (bit (1) aligned);/* Returns TRUE if pgh has been seen by user. */ 4844 4845 dcl 1 unit aligned like Dlinfo.unit, 4846 Sseen bit (1) aligned; 4847 4848 if unit.Icommon_unit > 0 then 4849 Sseen = common_units (unit.Icommon_unit).S.seen_by_user; 4850 else Sseen = unit.S.seen_by_user; 4851 return (Sseen); 4852 4853 end seen_pgh; 4854 4855 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 4856 4857 4858 set_space_used: 4859 procedure (Pcurrent_space, size_current_space) returns (ptr); 4860 /* This procedure returns pointer to next free */ 4861 /* word of storage in help_args temp segment. */ 4862 dcl Pcurrent_space ptr, /* ptr to last space allocated in the seg. */ 4863 size_current_space 4864 fixed bin (21), /* amount of space used in structure last alloc. */ 4865 Pnext_space ptr; /* ptr to next free space. */ 4866 4867 Pnext_space = addrel (Pcurrent_space, size_current_space + mod (size_current_space, 2)); 4868 return (Pnext_space); 4869 4870 end set_space_used; 4871 4872 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 4873 2 1 /* BEGIN: help_args_.incl.pl1 * * * * * */ 2 2 2 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 4 /* */ 2 5 /* Name: help_args_.incl.pl1 */ 2 6 /* */ 2 7 /* This include file declares the structure used by the help command and other subsystems */ 2 8 /* to pass info segment selection and printing control information to the help_ */ 2 9 /* subroutine. This based structure is NEVER allocated. Instead, the caller of help_ */ 2 10 /* must call help_$init to get a pointer to a temporary segment which is used for */ 2 11 /* storage for the structure. The structure contains 5 arrays with refer extents, */ 2 12 /* allowing complete freedom in the numbers of selection values given. Typically, the */ 2 13 /* caller fills in the arrays at the top of the structure first, growing the arrays */ 2 14 /* as each new element is added. After each array is filled, the caller begins filling */ 2 15 /* in the next array. Note that, on return from help_$init, all of the arrays have 0 */ 2 16 /* extents, except that the search_dirs array contains the list of directories to be */ 2 17 /* searched in to find info segments, as defined by the search facility. The caller */ 2 18 /* may of course change or replace these search directories. */ 2 19 /* */ 2 20 /* A legend describing the variable naming convention follows. */ 2 21 /* */ 2 22 /* STARTING LETTER STANDS FOR */ 2 23 /* P pointer to */ 2 24 /* L length of */ 2 25 /* D descriptor of */ 2 26 /* S switch */ 2 27 /* V version */ 2 28 /* */ 2 29 /* Status */ 2 30 /* */ 2 31 /* 0) Created: October, 1978 by Gary Dixon */ 2 32 /* 1) Modified: June 4, 1983 by Gary Dixon - add Sctl.inhibit_errors flag. */ 2 33 /* 2) Modified: April, 1985 by L.Adams - use Vhelp_args_2. */ 2 34 /* */ 2 35 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 36 2 37 /****^ HISTORY COMMENTS: 2 38* 1) change(86-03-07,LJAdams), approve(86-03-07,MCR7327), 2 39* audit(86-03-10,Lippard), install(86-04-24,MR12.0-1048): 2 40* Declares structure used by the help command and other subsystems to pass 2 41* info segment selection and printing control information the help_ 2 42* subroutine. 2 43* 2) change(87-01-26,LJAdams), approve(87-09-03,MCR7766), 2 44* audit(88-05-03,GDixon), install(88-09-13,MR12.2-1109): 2 45* Added lep to Sctl. 2 46* Added Sctl.cs to indicate if search or section requests are to be case 2 47* sensitive or not. 2 48* Changed version to Vhelp_args_3. 2 49* 3) change(88-02-12,LJAdams), approve(88-03-07,MCR7857), 2 50* audit(88-05-03,GDixon), install(88-09-13,MR12.2-1109): 2 51* Added help_data_ptr to point to a second help_args structure that will be 2 52* used for list_requests. 2 53* END HISTORY COMMENTS */ 2 54 2 55 dcl 1 help_args aligned based (Phelp_args), /* help's input arguments. */ 2 56 2 version fixed bin, /* = 3, currently. Use Vhelp_args_3. */ 2 57 /* (set by help_$init, checked by caller) */ 2 58 2 Sctl, /* control argument switches. */ 2 59 /* (SET BY CALLER OF help_) */ 2 60 (3 he_only, /* print only a heading, nothing else. */ 2 61 3 he_pn, /* when heading printed, include info pathname. */ 2 62 3 he_info_name, /* when heading printed, include info_name. */ 2 63 3 he_counts, /* when heading printed, include line counts. */ 2 64 /* If none of the 3 switches above are set, */ 2 65 /* then only info header is incl. in heading. */ 2 66 3 title, /* -title */ 2 67 3 scn, /* -section */ 2 68 3 srh, /* -search */ 2 69 3 bf, /* -brief */ 2 70 3 ca, /* -control_arg */ 2 71 3 ep, /* -entry_point */ 2 72 3 all, /* -all */ 2 73 3 lep, /* -lep */ 2 74 3 cs, /* -case_sensitive */ 2 75 3 inhibit_errors) /* inhibits error diagnostics when desired */ 2 76 /* information is not found. Useful for */ 2 77 /* subsystems like ted that want to diagnose */ 2 78 /* their own errors. */ 2 79 bit(1) unal, 2 80 3 mbz1 bit(22) unal, 2 81 2 Nsearch_dirs fixed bin, /* number of info_segment (or other) search dirs. */ 2 82 /* (set by help_$init, CALLER CAN CHANGE) */ 2 83 2 Npaths fixed bin, /* number of info segment names. */ 2 84 /* (SET BY CALLER OF help_) */ 2 85 2 Ncas fixed bin, /* number of control arg names given with -ca */ 2 86 /* (SET BY CALLER OF help_) */ 2 87 2 Nscns fixed bin, /* number of section substrings. */ 2 88 /* (SET BY CALLER OF help_) */ 2 89 2 Nsrhs fixed bin, /* number of search strings. */ 2 90 /* (SET BY CALLER OF help_) */ 2 91 2 min_Lpgh fixed bin, /* minimum length of a paragraph. */ 2 92 /* (set by help_$init, CALLER CAN CHANGE) */ 2 93 2 max_Lpgh fixed bin, /* maximum lines in group of aggregated paragraphs*/ 2 94 /* or in paragraphs constructed by help_. */ 2 95 /* (set by help_$init, CALLER CAN CHANGE) */ 2 96 2 Lspace_between_infos fixed bin, /* spaces inserted between infos when several */ 2 97 /* printed by one invocation. */ 2 98 /* (set by help_$init, CALLER CAN CHANGE) */ 2 99 2 min_date_time fixed bin(71), /* do not process infos modified before this date.*/ 2 100 /* (SET BY CALLER OF help_) */ 2 101 2 sci_ptr ptr, /* sci_ptr when help_ is invoked by a subsystem. */ 2 102 /* This must be set to null when not invoked */ 2 103 /* from a subsystem. */ 2 104 2 help_data_ptr ptr, /* ptr to second help_args (used for list rqts) */ 2 105 2 pad2 (6) fixed bin, /* reserved for future expansion. */ 2 106 2 107 /* End of fixed-length part of the structure. */ 2 108 2 109 2 search_dirs (0 refer (help_args.Nsearch_dirs)) 2 110 char (168) unal, /* directories help_ will look in to find info */ 2 111 /* segments when relative paths (without < or >)*/ 2 112 /* are given. When help_$init is called, the */ 2 113 /* current search rules (from a search list of */ 2 114 /* caller's choice) will be given here. Caller */ 2 115 /* may modify this list if desired before */ 2 116 /* calling help_. */ 2 117 2 path (0 refer (help_args.Npaths)), /* names of sought info segments. */ 2 118 3 value char(425) varying, /* These are the args themselves, without */ 2 119 /* processing by expand_pathname_, etc. */ 2 120 /* Their length is length(path) + length("$") */ 2 121 /* + length(entry_point_name). */ 2 122 /* Note that entry_point_names can be 256 chars.*/ 2 123 /* (SET BY CALLER OF help_) */ 2 124 3 info_name char(32) unal, /* name of logical info to be printed. */ 2 125 /* (SET BY CALLER OF help_) */ 2 126 /* "" = help_ should set this to entry part */ 2 127 /* of path.value, minus the suffix. */ 2 128 /* other = logical info name not a name on the */ 2 129 /* physical info segment. */ 2 130 3 dir (1) char(168) unal, /* dir part of a pathname (set by help_). */ 2 131 3 ent char(32) unal, /* ent part of name (set by help_). */ 2 132 3 ep char(32) varying, /* entry point part of name. (set by help_) */ 2 133 3 code fixed bin(35), /* error code while processing this path. */ 2 134 /* (set by help_) */ 2 135 3 S, /* switches indicating path type. */ 2 136 (4 pn_ctl_arg, /* -pn ctl given before this path. */ 2 137 /* (SET BY CALLER OF help_) */ 2 138 4 info_name_not_starname, /* caller-supplied path.info_name is not a */ 2 139 /* star name, even if it has * or ? chars. */ 2 140 /* (SET BY CALLER OF help_) */ 2 141 4 less_greater, /* A < or > appears in path.value. */ 2 142 /* (set by help_) */ 2 143 4 starname_ent, /* on if ent is a starname. */ 2 144 /* (set by help_) */ 2 145 4 starname_info_name, /* on if info_name is a starname. */ 2 146 /* (set by help_) */ 2 147 4 separate_info_name) bit(1) unal, /* on if info_name given by caller. */ 2 148 /* (set by help_) */ 2 149 4 pad3 bit(30) unal, 2 150 2 ca (0 refer (help_args.Ncas)) /* the ctl_arg names, without leading - just as */ 2 151 char(32) varying, /* req'd by the -ca ctl_arg of help. */ 2 152 /* (SET BY CALLER OF help_) */ 2 153 2 scn (0 refer (help_args.Nscns)) /* substrings sought in section titles. */ 2 154 char(80) varying, /* (SET BY CALLER OF help_) */ 2 155 2 srh (0 refer (help_args.Nsrhs)) /* search strings. */ 2 156 char(80) varying, /* (SET BY CALLER OF help_) */ 2 157 Phelp_args ptr, 2 158 Vhelp_args_3 fixed bin int static options(constant) init(3); 2 159 2 160 dcl help_ entry (char(*), ptr, char(*), fixed bin, fixed bin(35)), 2 161 help_$init entry (char(*), char(*), char(*), fixed bin, ptr, fixed bin(35)), 2 162 help_$term entry (char(*), ptr, fixed bin(35)); 2 163 2 164 /* END OF: help_args_.incl.pl1 * * * * * */ 4874 4875 3 1 /* BEGIN OF: help_cis_args_.incl.pl1 * * * * * * * * * * * * * * * * * * * */ 3 2 3 3 3 4 3 5 /****^ HISTORY COMMENTS: 3 6* 1) change(86-03-07,LJAdams), approve(86-03-07,MCR7327), 3 7* audit(86-03-10,Lippard), install(86-04-24,MR12.0-1048): 3 8* Changed segment type from bit(2) to fixed bin(2) uns. 3 9* 2) change(86-05-12,LJAdams), approve(86-05-14,MCR7416), 3 10* audit(86-05-19,Gilcrease), install(86-06-12,MR12.0-1074): 3 11* Added E as an unique identifier for entry_point name to be used during 3 12* sorting. 3 13* 3) change(87-02-18,LJAdams), approve(87-09-03,MCR7766), 3 14* audit(88-05-03,GDixon), install(88-09-13,MR12.2-1109): 3 15* Added X as a sort identifier to be used when sorting via sort_items_$char 3 16* as the original order of the records is not maintained when sorting equal 3 17* items. 3 18* 4) change(88-03-14,LJAdams), approve(88-06-01,MCR7873), 3 19* audit(88-05-03,GDixon), install(88-09-13,MR12.2-1109): 3 20* Changed order of fields being sorted and added a pad field to maintain 3 21* alignment. 3 22* END HISTORY COMMENTS */ 3 23 3 24 3 25 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 3 26 /* */ 3 27 /* Name: help_cis_args_.incl.pl1 */ 3 28 /* */ 3 29 /* This include file declares the structures returned by help_$check_info_segs for use */ 3 30 /* in the check_info_segs command. The structures contain information about the */ 3 31 /* segments which check_info_segs will process. The structures are allocated in the temp */ 3 32 /* segment obtained in the call to help_$init. They SHOULD NOT BE FREED. Instead, the */ 3 33 /* help_$term entry should be called to release the entire temporary segment. */ 3 34 /* */ 3 35 /* Status */ 3 36 /* */ 3 37 /* 0) Created: October, 1978 by Gary Dixon */ 3 38 /* */ 3 39 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 3 40 3 41 dcl 1 Dinfo_seg aligned based, /* Information about one info segment. */ 3 42 /* NOTE: code depends upon Scross_ref, dir and ent*/ 3 43 /* 1st, 2nd & 3rd elements of item substruc. */ 3 44 3 Scross_ref bit(36) aligned, /* bit 1 on if same info appears in diff. dirs. */ 3 45 3 dir char(168) unal, /* dir part of its pathname. */ 3 46 3 ent char(32) unal, /* ent part of its pathname. */ 3 47 3 info_name char(32) unal, /* info_name used to find info, if different */ 3 48 /* from ent (without suffix). */ 3 49 3 ep char(32) var, /* entry point name requested in command line. */ 3 50 3 uid bit(36), /* unique ID of containing segment. */ 3 51 3 I fixed bin(35), 3 52 /* index of 1st character of the info. */ 3 53 3 E char(32), /* ep name to be used for sorting */ 3 54 3 X fixed bin(35), 3 55 /* index of original record order */ 3 56 3 pad2 fixed bin(35), 3 57 3 L fixed bin, /* length, in chars. */ 3 58 3 date fixed bin(71), /* date_time_entry_modified of info segment. */ 3 59 (3 segment_type fixed bin(2) uns, /* 00 - link, 01 - segment */ 3 60 3 mode bit(3), /* access mode. */ 3 61 3 pad1 bit(31)) unal, 3 62 3 code fixed bin(35), /* error code encounter in processing seg. */ 3 63 1 PDinfo_seg aligned based(PPDinfo_seg), 3 64 2 version fixed bin, /* Version of this return structure (= 2). */ 3 65 2 N fixed bin(24), /* Count of info segments data returned for. */ 3 66 2 P (0 refer (PDinfo_seg.N)) /* Pointers to Dinfo_seg structure for each info. */ 3 67 ptr unal, 3 68 PPDinfo_seg ptr, 3 69 VPDinfo_seg_2 fixed bin int static options(constant) init(2); 3 70 3 71 dcl help_$check_info_segs entry (char(*), ptr, char(*), fixed bin, fixed bin(35), ptr); 3 72 3 73 /* END OF: help_cis_args_.incl.pl1 * * * * * * * * * * * * * * * * * * * */ 4876 4877 4878 dcl 1 Dinfo_seg_ aligned like Dinfo_seg based (PDinfo_seg_); 4879 4880 end help_rql_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/13/88 1310.6 help_rql_.pl1 >spec>install>MR12.2-1109>help_rql_.pl1 302 1 03/11/83 1204.3 query_info.incl.pl1 >ldd>include>query_info.incl.pl1 4874 2 09/13/88 1257.6 help_args_.incl.pl1 >spec>install>MR12.2-1109>help_args_.incl.pl1 4876 3 09/13/88 1257.6 help_cis_args_.incl.pl1 >spec>install>MR12.2-1109>help_cis_args_.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. ALseg parameter fixed bin(21,0) dcl 4301 in procedure "line$init" ref 4298 4304 ALseg parameter fixed bin(21,0) dcl 3975 in procedure "info$init" set ref 3972 3978 3980* APseg parameter pointer dcl 4301 in procedure "line$init" ref 4298 4305 APseg parameter pointer dcl 103 in procedure "help_rql_" ref 99 409 APseg parameter pointer dcl 3975 in procedure "info$init" set ref 3972 3979 3980* Acode parameter fixed bin(35,0) dcl 103 set ref 99 390* 658* 688* 1573* 1577* Apgh parameter fixed bin(17,0) dcl 2145 ref 2141 2154 Aptr parameter pointer dcl 3707 ref 3704 3723 CONSC_LINE_ARG_ID 042271 constant char(1) initial packed unaligned dcl 334 ref 1860 1860 1973 1973 2042 2042 2493 2567 CONTROL_ARG_OP constant fixed bin(17,0) initial dcl 3499 ref 3556 Continued_arg 021040 automatic bit(1) dcl 1764 set ref 1840* 1914* 1956* 1966* 1980* 1984 2003* 2005* Deps based structure level 1 dcl 196 set ref 429 432 432 Deps_ based structure level 1 dcl 2879 in procedure "get_ep_list" Deps_ based structure level 1 dcl 3718 in procedure "parse_info_into_entry_points" Dinfo_seg based structure level 1 dcl 3-41 Dinfo_seg_ based structure level 1 dcl 4878 Dlinfo based structure level 1 dcl 219 set ref 453 453 517 517 562 562 Dlinfo_ based structure level 1 dcl 3068 in procedure "get_title_list" Dlinfo_ based structure level 1 dcl 2225 in procedure "get_arg_descriptions" Dlinfo_ based structure level 1 dcl 1599 in procedure "find_pgh" Dlinfo_ based structure level 1 dcl 3580 in procedure "parse_entry_point_into_units" Dlinfo_ based structure level 1 dcl 2620 in procedure "get_brief_data" Dlinfo_ based structure level 1 dcl 1698 in procedure "find_section" FALSE 000670 constant bit(1) initial dcl 334 set ref 396 406 537 631 669 691 956 1046 1049 1227 1234 1294 1324 1333 1371 1380 1396 1426 1474 1609 1628 1644 1669 1718 1728 1803 1804 1805 1806 1840 1841 1842 1843 1926 2003 2005 2027 2037 2045 2087 2113 2115 2284 2373 2380 2386 2401 2402 2404 2645 2752 2762 2825* 2835 2839* 2842 2849 2850 2854* 3120 3126 3594 3621 3629 3636 3642 3789 3852 3864 3883 3915 3928 3946 3961 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4033 4052 4060 4061 4084 4097 4110 4123 4152 4173 4197 4307* 4330 4342 4355 4370 4401 4435 4519 4655 4659 4725 4726 4730 4736 HELP_LINE_SIZE constant fixed bin(17,0) initial dcl 334 ref 403 HT constant char(1) initial packed unaligned dcl 334 ref 4020 HT_SP 042270 constant char(2) initial packed unaligned dcl 334 ref 2384 2495 2506 2555 3304 3329 3332 3553 4012 4054 4123 4194 4242 HT_SP_NL 000507 constant char(3) initial packed unaligned dcl 334 ref 4076 HT_SP_NL_VT 000506 constant char(4) initial packed unaligned dcl 334 ref 3782 ISnl3 000277 automatic fixed bin(17,0) dcl 121 set ref 4647* 4650* 4651* 4661* Ibreak 021744 automatic fixed bin(21,0) dcl 4206 set ref 4253* 4254 4254* 4256 4259 4261 4261 4263 Icol 021032 automatic fixed bin(17,0) dcl 1764 set ref 1846* 1847 1849 1854 1854 1857 1933 1944 1944 1986 1986 1997 2009* Icommon_unit 32 parameter fixed bin(17,0) level 2 in structure "unit" packed packed unaligned dcl 4845 in procedure "seen_pgh" ref 4848 4848 Icommon_unit 32 based fixed bin(17,0) array level 2 in structure "common_units" packed packed unaligned dcl 275 in procedure "help_rql_" set ref 556* Icommon_unit 34 based fixed bin(17,0) array level 3 in structure "Dlinfo_" packed packed unaligned dcl 3580 in procedure "parse_entry_point_into_units" set ref 3592* 3630* Icommon_unit 32 parameter fixed bin(17,0) level 2 in structure "unit" packed packed unaligned dcl 4771 in procedure "print_pgh_2nl" ref 4832 4832 Icommon_unit 34 based fixed bin(17,0) array level 3 in structure "Dlinfo" packed packed unaligned dcl 219 in procedure "help_rql_" set ref 1052 Iep 000100 automatic fixed bin(17,0) dcl 121 set ref 623* 623* 625 625* 635* 636 637* 644* 645* 651* 652* 661* 661 663* 670* 671 672* 678* 678 692* 695 767 789 799 841 850 851 905 912 1041 1044 1066 1066 1076 1076 1076 1083 1083 1125 1125 1161 1167* 1167* 1168 1172 1172 1172* 1190 1196 1202 1303 1305* 1306 1310 1310 1310 1420 1435 1536 1538 1542 1547* 1548 1554 1555 1555 3894 3955 4570 4574 4579 4593 4603 4612 4622 4657 4661 4717 4723 4728 4733 4744 4744 4744 4744 Iinfo parameter fixed bin(17,0) dcl 103 in procedure "help_rql_" set ref 99 716 722 767* 1420* Iinfo parameter fixed bin(17,0) dcl 2603 in procedure "get_brief_data" ref 2599 Iline 022276 automatic fixed bin(24,0) dcl 4474 in procedure "line$title" set ref 4477* 4478 4482* 4482 4483 4484 4487 4489 4490 4494 Iline 021676 automatic fixed bin(24,0) dcl 4093 in procedure "line$contains" set ref 4096* 4097 Iline 022266 automatic fixed bin(24,0) dcl 4449 in procedure "line$skip_blanks" set ref 4451* 4452 4454 4455 4457 4457 4459 4460* 4462* Iline 021656 automatic fixed bin(24,0) dcl 4009 in procedure "line$args" set ref 4019* 4020 4020* 4022 4022 4040* 4041 4043 4043 4045 4046 Iline 021734 automatic fixed bin(24,0) dcl 4192 in procedure "line$HT_SP" set ref 4194* 4195 Iline 022236 automatic fixed bin(24,0) dcl 4364 in procedure "line$next" set ref 4373* 4374 4377* 4383 4384 4384 4386 4389 Iline 021706 automatic fixed bin(24,0) dcl 4108 in procedure "line$desc" set ref 4113* 4116 4126 4126 4126 4129 4135 4136 4136 4139 Iline 021666 automatic fixed bin(24,0) dcl 4073 in procedure "line$blank" set ref 4076* 4077 4079 4081 4082 Iline 022216 automatic fixed bin(24,0) dcl 4315 in procedure "line$list_items" set ref 4318* 4319 4322 4322 Iline 021724 automatic fixed bin(24,0) dcl 4161 in procedure "line$entry" set ref 4165* 4169 4177 4178 4178 4180 Iline 022226 automatic fixed bin(24,0) dcl 4339 in procedure "line$new_pgh" set ref 4345* 4347 4350 Inonwhite 021745 automatic fixed bin(21,0) dcl 4206 set ref 4242* 4244 4246 4248 4249 Ipgh 021033 automatic fixed bin(17,0) dcl 1764 set ref 1845* 1857 1874 1875 1896 1899 1909 1935 1940 1942 1954 1964 1976 1994 1997 1999 2002 2009 2013* 2090* 2092 2101* 2102 2104 2107* 2118* 2119 2120 2129 2131 2134* 2154* 2155 2162 2162 2164 Irow 021034 automatic fixed bin(17,0) dcl 1764 set ref 1850* 1857 1874 1875 1879* 1879 1896 1899 1909 1914 1935 1940 1942 1954 1956 1964 1966 1976 1980 1990* 1990 1991 1994 1997 1999 2002 2009 2012* 2012 2013* 2021 2092* 2092* 2094 2106* 2107* 2109* 2109 2129* 2131* 2133* 2134* 2137* 2137 2161* 2162 2164* Iskip 021746 automatic fixed bin(21,0) dcl 4206 set ref 4265* 4267 4269 4270 Ispace_used_set 2 based fixed bin(17,0) level 2 in structure "list_base" dcl 3030 in procedure "get_list_base" set ref 3042* Ispace_used_set 2 based fixed bin(17,0) level 2 in structure "list_base" dcl 2943 in procedure "get_list" set ref 2960 2960* 2962 2965 2970* 2986 2986* 2988 2991 2996* Iunit 021432 automatic fixed bin(17,0) dcl 3064 in procedure "get_title_list" set ref 3081* 3085 3088 3089 3104 3106 3109* 3120 3122 3124 Iunit parameter fixed bin(17,0) dcl 1592 in procedure "find_pgh" set ref 1585 1612 1631* 1631* 1632 1632 1638 1639* 1653* 1653 1665 1667 Iunit parameter fixed bin(17,0) dcl 1695 in procedure "find_section" set ref 1686 1719* 1719* 1720 1722 1724* 1735* 1735 Iunit 021124 automatic fixed bin(17,0) dcl 2247 in procedure "get_arg_descriptions" set ref 2254* 2255 2257 2259 2272 2276 2277* Iunit 40 based fixed bin(17,0) level 3 in structure "list" dcl 2637 in procedure "get_brief_data" set ref 2730* 2823 Iunit 021273 automatic fixed bin(17,0) dcl 2625 in procedure "get_brief_data" set ref 2650* 2650* 2652 2655 2656 2658* 2658 2658 2659* 2660* 2664* 2664 2664 2664* 2668* 2676* 2676* 2678 2685* 2685* 2687 2700* 2701 2703* 2703 2703* 2707* 2707 2707* 2713 2716* 2723 2729 2730 2740* 2740 2740 2741 2743* 2744* 2807 2810 2811 2816* 2833* 2833 2835 2839* 2840* 2846 2846 Iunit 000101 automatic fixed bin(17,0) dcl 121 in procedure "help_rql_" set ref 632* 636* 637* 645* 652* 837* 860* 861* 881* 891* 897* 910 914 922 925 934 936 939 943* 943 943* 944 944 948 949* 951* 951 958* 958 965 967 970 976 983 985 988 988 991 995 1000 1001 1007 1010 1030 1052 1052 1052 1057 1061 1105 1109 1110* 1110 1110* 1111* 1113* 1123* 1129 1131 1138 1139* 1139* 1140* 1142* 1146 1148 1169* 1170 1175* 1176 1176* 1203* 1204 1206* 1207 1207* 1217* 1217 1217* 1220* 1220 1223* 1223* 1227 1235* 1235* 1236 1236 1238* 1240* 1240 1249 1307* 1308 1321 1326 1350* 1352 1352 1357* 1368 1373 1395* 1397 1398 1402 1407 1515* 1516 1516 1518 1520* 1524* 1524 1550* 1564* 1564 1566 3895 3899 3910 3910 3910 3924 Iunit_end 000102 automatic fixed bin(17,0) dcl 121 set ref 1105* 1113 1131* 1132* 1134* 1134 1139 1142 1148* 1148* 1149* 1151* 1151 Iunit_search 000103 automatic fixed bin(17,0) dcl 121 set ref 1001* 1001* 1003 1005 1249* 1254* 1263* 1321* 1326* 1330* 1335* 1345 1345* 1345 1347* 1350 1357 1368* 1373* 1377* 1382* 1392* 1395 Iunit_start parameter fixed bin(17,0) dcl 3059 ref 3055 3081 Iunit_syntax 000104 automatic fixed bin(17,0) array dcl 121 in procedure "help_rql_" set ref 767* 807* 1420* 1427* Iunit_syntax parameter fixed bin(17,0) array dcl 2603 in procedure "get_brief_data" set ref 2599 2655 2656* 2755 2756 2799 2823 2833 2835 L 276 based fixed bin(17,0) array level 3 in structure "Deps_" dcl 3718 in procedure "parse_info_into_entry_points" set ref 3749* 3751* 3751 3753* 3753 3787* 3802* L 274 parameter fixed bin(17,0) level 2 in structure "linfo" dcl 3575 in procedure "parse_entry_point_into_units" ref 3597 L 27 parameter fixed bin(21,0) level 2 in structure "unit" dcl 4771 in procedure "print_pgh_2nl" set ref 4823* L 31 based fixed bin(21,0) array level 3 in structure "Dlinfo_" dcl 2225 in procedure "get_arg_descriptions" ref 2277 L 27 based fixed bin(21,0) array level 2 in structure "common_units" dcl 275 in procedure "help_rql_" set ref 535* L 31 based fixed bin(21,0) array level 3 in structure "Dlinfo_" dcl 3580 in procedure "parse_entry_point_into_units" set ref 3671* 3677* L 27 parameter fixed bin(21,0) level 2 in structure "unit" dcl 2354 in procedure "get_arg_list" ref 2375 L 31 based fixed bin(21,0) array level 3 in structure "Dlinfo_" dcl 2620 in procedure "get_brief_data" set ref 2756 L 31 based fixed bin(21,0) array level 3 in structure "Dlinfo_" dcl 1599 in procedure "find_pgh" ref 1613 1639 LAline parameter fixed bin(21,0) dcl 3707 ref 3704 3724 3749 LIST based structure level 1 dcl 245 LPgh 021022 automatic fixed bin(17,0) dcl 1605 set ref 1639* 1640 1642 Lblk_line 022256 automatic fixed bin(17,0) dcl 4414 set ref 4423* 4424 4426* 4429 4431 4431 4433 Lcount 022404 automatic fixed bin(17,0) dcl 4544 in procedure "print_header" set ref 4626* 4629* 4647 4647 4653 4713* 4715* 4717* 4719* 4721* 4723 4733 4741 Lcount 000116 automatic fixed bin(17,0) dcl 121 in procedure "help_rql_" set ref 1041* 1043* 1044 1553* 1554 3429* 3430 3480* 3481 3503* 3504 3528* 3529 Linfo_name 022405 automatic fixed bin(17,0) dcl 4544 in procedure "print_header" set ref 4641* 4642 4642* 4642 4645* 4657 4661 4705* 4706 4706* 4706 4709* 4723 4728 4733 4744 Linfo_name 000117 automatic fixed bin(17,0) dcl 121 in procedure "help_rql_" set ref 683* 685* Linfo_seg 020726 automatic fixed bin(21,0) dcl 3968 set ref 3978* Lline 020712 automatic fixed bin(21,0) dcl 2186 set ref 2289 2298 2302 2380 2380 2391 2410 2412 2564 2567 2568 2570* 2570 2573 2574 2578 2579 2581* 2581 2586 2587* 3599* 3632 3743 3762 3764 3766* 3766 3782 3784* 3784 3787 3790 3791 3796 3799 3802 3804 3809 3809 4012 4012 4019 4020 4022* 4031 4033 4046* 4046 4050* 4050 4054 4076 4082* 4082 4096 4118* 4129* 4135* 4150 4171* 4177* 4377* 4383* 4400 4477 4482 4484 4487 4490* 4490 4495* Lline1 021554 automatic fixed bin(21,0) dcl 3711 set ref 3743* 3744 3758 3767* 3767 3768 3790* 3791 3796 3796 3799 3801 3804 3819 Lline_text 020706 automatic fixed bin(21,0) dcl 2186 set ref 2277* 2279 2375* 2377 3597* 3724* 3822 4037 4040 4043 4045* 4045 4050 4051* 4058 4110 4113 4118 4119* 4126 4130* 4136 4139* 4139 4150 4165 4171 4172* 4178 4180* 4180 4224 4226 4236 4237 4279* 4280 4281* 4285 4287* 4287 4304* 4318 4322 4326 4326 4342 4345 4350 4352* 4352 4370 4370 4373 4376 4377 4378* 4382 4384 4386* 4386 4421 4423 4426 4427* 4431 4433* 4433 4451 4457 4459* 4459 4460 Loutput parameter fixed bin(17,0) dcl 2145 in procedure "format_list" set ref 2141 2152* 2176* 2176 2177 2177 Loutput 000121 automatic fixed bin(17,0) dcl 121 in procedure "help_rql_" set ref 530* 535 549 549 549 549 Loutput_line 000122 automatic fixed bin(17,0) dcl 121 set ref 402* 403* 1019 1044 1052 1057 1061 1071 1088 1554 1855 1886 1928 1945 1987 3430 3481 3504 3529 4647 4723 4728 4733 Lparg 020713 automatic fixed bin(21,0) dcl 2186 set ref 3600* 3632* 3671 3677 4389* 4389 4483* 4483 Lpath 022406 automatic fixed bin(17,0) dcl 4544 set ref 4633* 4634* 4634 4637* 4647 4647 4653 4697* 4698* 4698 4701* 4723 4728 4740 Lpgh 000123 automatic fixed bin(17,0) dcl 121 set ref 2756* 2761 Lseg 000124 automatic fixed bin(21,0) dcl 121 set ref 410* 412* 413* 414* Lspace_between_infos 11 based fixed bin(17,0) level 2 dcl 2-55 set ref 718* 1555* 4661* Ltext 022200 automatic fixed bin(17,0) dcl 4220 set ref 4234* 4279 Lword_text 021747 automatic fixed bin(21,0) dcl 4206 set ref 4224* 4226 4228 4230* 4230 4234 4236* 4237 4237* 4242 4244* 4249* 4249 4252 4253 4254 4259 4261 4263* 4263 4265 4270* 4270 4272* MAX_HELP_LINE_SIZE constant fixed bin(17,0) initial dcl 334 ref 334 402 526 526 1831 1831 1831 1831 1831 1857 1857 1857 1857 1857 1874 1874 1874 1874 1874 1875 1875 1875 1875 1875 1896 1896 1896 1896 1896 1899 1899 1899 1899 1899 1909 1909 1909 1909 1909 1935 1935 1935 1935 1935 1940 1940 1940 1940 1940 1942 1942 1942 1942 1942 1954 1954 1954 1954 1954 1964 1964 1964 1964 1964 1976 1976 1976 1976 1976 1994 1994 1994 1994 1994 1997 1997 1997 1997 1997 1999 1999 1999 1999 1999 2002 2002 2002 2002 2002 2013 2013 2013 2013 2013 2092 2092 2092 2092 2092 2107 2107 2107 2107 2107 2107 2131 2131 2131 2131 2131 2131 2134 2134 2134 2134 2134 2134 2162 2162 2162 2162 2162 2164 2164 2164 2164 2164 2969 2969 2995 2995 ME 000764 constant char(4) initial packed unaligned dcl 334 set ref 3158* 3185* ML 5 based fixed bin(17,0) array level 3 dcl 1783 set ref 1808 1810 1837* 1849 1854* 1854 1855 1933 1944* 1944 1945 1986* 1986 1987 MULTI_LINE_ARG_ID 042267 constant char(1) initial packed unaligned dcl 334 ref 1860 1920 1920 2042 2481 2552 3098 Mcols parameter fixed bin(17,0) dcl 1758 ref 1755 1808 1810 Mpghs parameter fixed bin(17,0) dcl 1758 ref 1755 1820 N based fixed bin(17,0) level 3 in structure "list" dcl 2357 in procedure "get_arg_list" set ref 2390* 2390 2391 2402 2406 2410 2412 2419 2419 2431 2434 2434 2438* 2440* 2449 2451 2451 2451 2451 2458* 2458 2459 2465 2471 2475 2480 2480 2481 2481 2488 2491* 2491 2492 2492 2493 2493 2495 2497 2497 2501 2503* 2503 2504 2504 2505 2505 2506 2508 2508 2511 2519 2520 2527 2530 2536 2542 2550* 2550 2551 2551 2552 2552 2554 2555 2557 2557 2567 2577* 2577 2578 2585* 2585 2586 N based fixed bin(17,0) level 2 in structure "list_base" dcl 284 in procedure "help_rql_" set ref 857* 857 1260* 1260 1451* N parameter fixed bin(17,0) level 3 in structure "srh" dcl 3200 in procedure "parse_answer" set ref 3491* N based fixed bin(17,0) level 3 in structure "list_cas" dcl 2222 in procedure "get_arg_descriptions" ref 2252 2290 2318 2333 N parameter fixed bin(17,0) level 3 in structure "Srh" dcl 1589 in procedure "find_pgh" ref 1609 1619 1622 N parameter fixed bin(17,0) level 3 in structure "scn" dcl 3200 in procedure "parse_answer" set ref 3441* N 005456 automatic fixed bin(17,0) level 2 in structure "lr" dcl 271 in procedure "help_rql_" set ref 3171 3172 3180 N based fixed bin(17,0) level 3 in structure "list" dcl 277 in procedure "help_rql_" set ref 512 522 526 526 786* 787 794 814 1255 1440 1446 N based fixed bin(17,0) level 3 in structure "list_args" dcl 2241 in procedure "get_arg_descriptions" set ref 2259 2297* 2297 2298 2301* 2301 2302 2312 2328* 2328 2329 2330* 2330 2331 2336* 2336 2337 2338 2338 N parameter fixed bin(17,0) level 2 in structure "lr" dcl 3200 in procedure "parse_answer" set ref 3302* 3523* 3538* N based fixed bin(17,0) level 3 in structure "list" dcl 2943 in procedure "get_list" set ref 2969 2969 2975* 2995 2995 N 1 based fixed bin(17,0) level 2 in structure "Deps_" dcl 3718 in procedure "parse_info_into_entry_points" set ref 3725* 3730 3730* 3736* 3736 3746* 3746 3747 3749 3749 3751 3751 3753 3753 3772* 3772 3777* 3777 N 000010 internal static fixed bin(17,0) level 2 in structure "wait_list" dcl 4787 in procedure "print_pgh_2nl" set ref 4827* N based fixed bin(17,0) level 3 in structure "list" dcl 1783 in procedure "format_list" ref 1812 1831 1851 1857 1866 1872 1873 1874 1875 1886 1896 1899 1909 1914 1924 1928 1935 1940 1942 1954 1964 1976 1994 1997 1999 2002 2003 2009 2013 2021 2038 2092 2107 2131 2134 2162 2164 N based fixed bin(17,0) level 3 in structure "list" dcl 3075 in procedure "get_title_list" set ref 3084 3084* 3094 3094* 3130 3132* N 000655 automatic fixed bin(17,0) level 3 in structure "ca" dcl 267 in procedure "help_rql_" set ref 407* N based fixed bin(17,0) level 3 in structure "list" dcl 2883 in procedure "get_ep_list" set ref 2892 2892* 2900 2900* 2918 2918* N parameter fixed bin(17,0) level 3 in structure "Scn" dcl 1690 in procedure "find_section" ref 1703 1711 1713 1737 N based fixed bin(17,0) level 3 in structure "list" dcl 2637 in procedure "get_brief_data" set ref 2733* 2745 2753 2770* 2775 2775* 2780 N 014102 automatic fixed bin(17,0) level 3 in structure "srh" dcl 310 in procedure "help_rql_" set ref 407* 606* 1385 N parameter fixed bin(17,0) level 3 in structure "ca" dcl 3200 in procedure "parse_answer" set ref 3301* 3513* 3556 N based fixed bin(17,0) level 2 in structure "list_base" dcl 2232 in procedure "get_arg_descriptions" set ref 2315* 2315 N based fixed bin(17,0) level 2 in structure "list_base" dcl 2943 in procedure "get_list" set ref 2958 2960 2962 2965 2967 2970 2972* 2972 2974 2984 2986 2988 2991 2993 2996 3004 3009* 3009 N 1 based fixed bin(17,0) level 2 in structure "Deps" dcl 196 in procedure "help_rql_" set ref 429 432 432 454 560 570 570 623 625 635 644 651 670 1154 1161 1167 1183 1190 1295 1531 1538 1540 2891 4563 4574 4598* 4598 4603* 4603 4617 4617 4622 4622 4715 4744 4744 4744* 4744 4744 4744 N based fixed bin(17,0) level 2 in structure "list_base" dcl 2629 in procedure "get_brief_data" set ref 2724 2790* 2790 2794 2812 2861* N 007301 automatic fixed bin(17,0) level 3 in structure "scn" dcl 304 in procedure "help_rql_" set ref 407* 599* 1338 N based fixed bin(17,0) level 2 in structure "list_base" dcl 3030 in procedure "get_list_base" set ref 3041* NL 000505 constant char(1) initial packed unaligned dcl 334 set ref 1019 2081 2081 2081 2081 2085 2085 2085 2085 2102* 2158* 2165* 2488 2501 2511 2564 2574 3671 3677 3743 3751 3790 3796 4012 4040 4113 4123 4126 4126 4226 4236 4280 4318 4370 4373 4423 4455 NL_NL constant char(2) initial packed unaligned dcl 334 ref 3753 4345 Ncas 4 based fixed bin(17,0) level 2 dcl 2-55 ref 597 604 786 787 Ncols 4 based fixed bin(17,0) level 3 dcl 1783 set ref 1808* 1810* 1815* 1815* 1816 1816 1846 1855 1886 1945 1987* 2031* 2031 Ncommon_units 000125 automatic fixed bin(17,0) dcl 121 in procedure "help_rql_" set ref 448* 452* 461* 462 467* 469 474 482 488* 489 500 500 504 514* 514 515 527 532 532* 551 555 561* 568* Ncommon_units parameter fixed bin(17,0) dcl 3575 in procedure "parse_entry_point_into_units" ref 3570 3681 3684 3685 Nconsecutive_bad_ops 000126 automatic fixed bin(17,0) dcl 121 set ref 954* 1099* 1099 1102* 1285* 1285 1342* 1342 1389* 1389 1491 1502 Nep_names 4 based fixed bin(17,0) array level 3 in structure "Deps_" dcl 3718 in procedure "parse_info_into_entry_points" set ref 3731* 3761 3761* 3770 Nep_names 4 based fixed bin(17,0) array level 3 in structure "Deps_" dcl 2879 in procedure "get_ep_list" ref 2916 Nep_names 4 based fixed bin(17,0) array level 3 in structure "Deps" dcl 196 in procedure "help_rql_" set ref 671 1296 Nep_pghs 000136 automatic fixed bin(17,0) dcl 121 set ref 525* Ninfos parameter fixed bin(24,0) dcl 103 ref 99 772 783 813 Ninfos_printed parameter fixed bin(17,0) dcl 2603 in procedure "get_brief_data" ref 2599 Ninfos_printed parameter fixed bin(17,0) dcl 103 in procedure "help_rql_" set ref 99 706* 706 710 718 767* 1420* 3610* 4661 Nlast_info_cross_ref parameter fixed bin(17,0) dcl 103 set ref 99 716 722* Nlast_info_no_brief_data parameter fixed bin(17,0) dcl 2603 in procedure "get_brief_data" ref 2599 Nlast_info_no_brief_data parameter fixed bin(17,0) dcl 103 in procedure "help_rql_" set ref 99 767* 1420* Nlines 32 based fixed bin(17,0) array level 3 in structure "Dlinfo_" dcl 3068 in procedure "get_title_list" ref 3104 3107 Nlines 326 based fixed bin(17,0) array level 3 in structure "Deps_" dcl 3718 in procedure "parse_info_into_entry_points" set ref 3788* Nlines 000131 automatic fixed bin(17,0) dcl 121 in procedure "help_rql_" set ref 530* 536 583* 583 760* 767* 794* 794 801* 801 802 802* 807* 841* 843* 847* 847 850* 850 851* 851 905* 910* 912* 912 914* 914 925* 925 985* 996* 996 1012* 1012 1032* 1032 1041 1052* 1052 1052* 1052 1057* 1057 1061* 1061 1071* 1071 1076 1076* 1088* 1088 1170* 1172 1172* 1204* 1308* 1310 1310* 1397* 1400* 1400 1401* 1406* 1406 1427* 1495 1495* 1495 1506 1506* 1506 3857 3875 3895* 3899* 3899 3910 4563 4570 4574 4579 4586* 4586 4588 4588* 4593* 4593 4598* 4598 4603* 4603 4608* 4608 4612* 4612 4617* 4617 4622* 4622 Nlines parameter fixed bin(17,0) dcl 2603 in procedure "get_brief_data" set ref 2599 2659* 2659 2672 2723* 2795* 2799 2807* 2810* Nlines 32 based fixed bin(17,0) array level 3 in structure "Dlinfo_" dcl 2620 in procedure "get_brief_data" set ref 2659 2723 2807 2810 2846 Nlines 324 parameter fixed bin(17,0) level 2 in structure "linfo" dcl 3575 in procedure "parse_entry_point_into_units" set ref 3690* 3690 3694* 3694 Nlines 326 based fixed bin(17,0) array level 3 in structure "Deps" dcl 196 in procedure "help_rql_" set ref 485* 485 527* 527 570 850 905 1041 1076 1076 1172 1172 1310 1310 1555 4563 4570 4574 4579 4593* 4603* 4612* 4622* Nlines 32 based fixed bin(17,0) array level 3 in structure "Dlinfo_" dcl 3580 in procedure "parse_entry_point_into_units" set ref 3672* 3679* 3690 Nlines 32 based fixed bin(17,0) array level 3 in structure "Dlinfo" dcl 219 in procedure "help_rql_" set ref 910 925 944 985 1012 1032 1129 1132 1146 1149 1170 1204 1308 1352* 1352 1397 3857 3857 3875 3875 3895 3899 3910 3910 Nlines based fixed bin(17,0) level 2 in structure "Deps_" dcl 3718 in procedure "parse_info_into_entry_points" set ref 3726* Nlines 021433 automatic fixed bin(17,0) dcl 3064 in procedure "get_title_list" set ref 3104* 3107* 3107 3110 Nlines parameter fixed bin(17,0) dcl 2145 in procedure "format_list" set ref 2141 2151* 2159* 2159 2166* 2166 Nlines based fixed bin(17,0) level 2 in structure "Deps" dcl 196 in procedure "help_rql_" set ref 570* 4598* 4603* 4617* 4622* 4744* 4744 Nlines 30 based fixed bin(17,0) array level 2 in structure "common_units" dcl 275 in procedure "help_rql_" set ref 485 536* Nlines_pic 021434 automatic picture(6) packed unaligned dcl 3064 set ref 3110* 3112 Nlines_titles 000132 automatic fixed bin(17,0) dcl 121 set ref 1129* 1132* 1132 1137* 1137 1146* 1149* 1149 1256* 1257* 1257 1418* 1420* 1423 1425* 1425 1432* 1440* 1440 1442* 1442 Nlists_of_args 000133 automatic fixed bin(17,0) dcl 121 in procedure "help_rql_" set ref 789* 791 811 1435* 1436 1438 1443 Nlists_of_args parameter fixed bin(17,0) dcl 2215 in procedure "get_arg_descriptions" set ref 2210 2251* 2259 2265 2270* 2270 2271 2312 2316* 2316 2320 2322* 2322 2323 Nlists_of_bf_args parameter fixed bin(17,0) dcl 2603 in procedure "get_brief_data" set ref 2599 2724* 2794* 2799 2812* 2819 2853 2858 Nlists_of_bf_args 000134 automatic fixed bin(17,0) dcl 121 in procedure "help_rql_" set ref 767* 778* 807* 1420* 1427* Nmax 1 based fixed bin(17,0) level 2 in structure "list_base" dcl 2943 in procedure "get_list" ref 2958 2984 Nmax parameter fixed bin(17,0) dcl 3024 in procedure "get_list_base" ref 3021 3043 3044 Nmax 1 based fixed bin(17,0) level 2 in structure "list_base" dcl 3030 in procedure "get_list_base" set ref 3043* 3044 3044 No_args 021046 automatic fixed bin(24,0) dcl 1764 set ref 1836* 1851 1853* 1853 1854 1860 1860 1860 1873 1875 1878* 1878 1881* 1881 1886 1886 1886 1886 1886 1894 1894 1896 1896 1896 1899 1899 1901* 1901 1909 1909 1914 1914 1914 1920 1920 1928 1928 1928 1932 1932 1935 1935 1935 1940 1940 1942 1942 1944 1947* 1947 1954 1954 1964 1964 1973 1973 1976 1976 1985* 1985 1986 2002 2002 2003 2005 2005 2009 2021 2038 No_list_elements 000135 automatic fixed bin(17,0) dcl 121 set ref 512* 513 976 3852 Npaths 3 based fixed bin(17,0) level 2 in structure "help_args" dcl 2-55 in procedure "help_rql_" ref 597 604 787 787 Npaths 3 based fixed bin(17,0) level 2 in structure "help_requests" dcl 3151 in procedure "list_requests" set ref 3167* 3173* 3187* Npghs 2 based fixed bin(17,0) level 3 in structure "list" dcl 1783 in procedure "format_list" set ref 1820* 1825* 1826 1826 1829 1845 2009 2090 2101 2104 2118 2120 2129 2162 Npghs 2 based fixed bin(17,0) level 3 in structure "list" dcl 2943 in procedure "get_list" ref 2969 2969 2995 2995 Npghs 2 based fixed bin(17,0) level 3 in structure "list" dcl 277 in procedure "help_rql_" ref 515 525 526 526 529 Nprint_units 000130 automatic fixed bin(17,0) dcl 121 set ref 906* 917* 922 925 926* 926 943 986* 1010 1024* 1024 1030 1033* 1033 1092* 1105 1110 1351* 1557* 3896* 3899 3900* 3900 3910 3910 3910 Nreal 1 based fixed bin(17,0) level 3 dcl 2943 set ref 2976* Nrows 3 based fixed bin(17,0) level 3 in structure "list" dcl 1783 in procedure "format_list" set ref 1816* 1825 1826* 1826 1830 1831 1831 1850 1857 1857 1872* 1874 1874 1875 1875 1886 1896 1896 1899 1899 1909 1909 1914 1935 1935 1940 1940 1942 1942 1954 1954 1956 1964 1964 1966 1976 1976 1980 1991 1993* 1993 1994 1994 1997 1997 1999 1999 2002 2002 2009 2013 2013 2021 2023* 2023 2092 2092 2092 2104* 2106 2107 2107 2123* 2129 2131 2131 2134 2134 2161 2162 2162 2164 2164 Nrows 3 based fixed bin(17,0) level 3 in structure "list" dcl 2943 in procedure "get_list" ref 2969 2969 2995 2995 Nrows 3 based fixed bin(17,0) level 3 in structure "query_answers" dcl 297 in procedure "help_rql_" set ref 1460 Nrows 3 based fixed bin(17,0) level 3 in structure "list" dcl 277 in procedure "help_rql_" ref 526 526 847 1256 Nscns 5 based fixed bin(17,0) level 2 dcl 2-55 ref 596 604 Nsearch_dirs 2 based fixed bin(17,0) level 2 dcl 2-55 ref 597 604 787 787 3168 3169 3174 3174 3176 3178 Nsections 1 based fixed bin(17,0) level 2 in structure "Dlinfo_" dcl 3580 in procedure "parse_entry_point_into_units" set ref 3593* 3656* 3656 Nsections 1 based fixed bin(17,0) level 2 in structure "Dlinfo" dcl 219 in procedure "help_rql_" ref 846 3939 3941 Nsrhs 6 based fixed bin(17,0) level 2 dcl 2-55 ref 603 Number_lines 020721 automatic fixed bin(17,0) dcl 2186 set ref 3601* 3631* 3672 3679 4306* 4388* 4388 Nuncommon_units 000127 automatic fixed bin(17,0) dcl 121 set ref 456* 456* 460* 460 461 462 466* 471 489 515 551 Nunit_bf_prt parameter fixed bin(17,0) dcl 2603 in procedure "get_brief_data" set ref 2599 2646* 2657* 2681* 2690* 2725* 2754 2764 2799 2818 Nunit_bf_prt 000137 automatic fixed bin(17,0) dcl 121 in procedure "help_rql_" set ref 763* 767* 770 777* 807* 1420* 1427* Nunits based fixed bin(17,0) level 2 in structure "Dlinfo_" dcl 2620 in procedure "get_brief_data" ref 2650 2655 2658 2664 2668 2676 2678 2685 2687 2701 2703 2707 2713 2716 2740 2833 Nunits based fixed bin(17,0) level 2 in structure "Dlinfo_" dcl 1698 in procedure "find_section" ref 1719 Nunits based fixed bin(17,0) level 2 in structure "Dlinfo" dcl 219 in procedure "help_rql_" set ref 453 453 456 461 489* 515* 517 517 551* 562 562 860 906 965 1010 1030 1131 1148 1175 1206 1217 1223 1227 1235 1515 1515 1557 1566 2652 3857 3875 3910 Nunits based fixed bin(17,0) level 2 in structure "Dlinfo_" dcl 1599 in procedure "find_pgh" ref 1612 1631 Nunits based fixed bin(17,0) level 2 in structure "Dlinfo_" dcl 2225 in procedure "get_arg_descriptions" ref 2254 Nunits based fixed bin(17,0) level 2 in structure "Dlinfo_" dcl 3580 in procedure "parse_entry_point_into_units" set ref 3591* 3592 3603* 3626* 3626 3683 3684* 3684 3689 Nunits based fixed bin(17,0) level 2 in structure "Dlinfo_" dcl 3068 in procedure "get_title_list" ref 3081 3106 Nwords 022175 automatic fixed bin(17,0) dcl 4212 set ref 4239* 4252 4258* 4258 4259 4259 OLD_HELP_PGH_CHAR constant char(1) initial dcl 334 ref 3819 OPERAND_CS constant fixed bin(17,0) initial dcl 3295 ref 3412 3414 3420 3420 3463 3465 3471 3471 OPERAND_NCS constant fixed bin(17,0) initial dcl 3295 ref 3404 3406 3422 3455 3457 3473 OPERAND_TOP 042222 constant fixed bin(17,0) initial dcl 3295 ref 3404 3404 3412 3412 3420 3420 3422 3455 3455 3463 3463 3471 3471 3473 PDeps parameter pointer dcl 103 set ref 99 414* 429 429 432 432 452 454 485 485 511* 521* 527 527 560 561 570 570 570 623 623 625 635 636 637 644 645 651 652 670 671 672 695 767 789 799 841 850 851 905 912 1041 1044 1066 1066 1076 1076 1076 1083 1083 1125 1125 1154 1161 1167 1168 1172 1172 1172 1183 1190 1196 1202 1295 1296 1297 1303 1306 1310 1310 1310 1420 1435 1531 1536 1538 1538 1538 1540 1542 1542 1544 1544 1548 1554 1555 1555 2891 3894 3955 4563 4563 4570 4574 4574 4579 4593 4598 4598 4598 4603 4603 4603 4603 4612 4617 4617 4617 4622 4622 4622 4622 4657 4661 4715 4723 4728 4733 4744 4744 4744 4744 4744 4744 4744 4744 4744 PDeps_ parameter pointer dcl 2875 in procedure "get_ep_list" ref 2872 2893 2895 2915 2916 2922 2924 PDeps_ parameter pointer dcl 3707 in procedure "parse_info_into_entry_points" ref 3704 3725 3726 3730 3730 3731 3736 3736 3746 3746 3747 3749 3749 3749 3749 3751 3751 3751 3751 3753 3753 3753 3753 3761 3761 3762 3762 3770 3772 3772 3777 3777 3786 3787 3788 3789 3793 3794 3799 3801 3802 3802 3805 3809 3810 3816 3817 3819 PDinfo_seg_ parameter pointer dcl 103 ref 99 410 411 412 505 508 508 619 672 683 685 707 721 721 721 767 767 1068 1068 1070 1085 1085 1087 1267 1271 1271 1420 1420 3609 3609 3609 4633 4633 4634 4641 4661 4661 4661 4661 4697 4697 4698 4705 4713 4744 4744 4744 4744 4744 PDlinfo 000150 automatic pointer dcl 121 in procedure "help_rql_" set ref 450* 452* 453* 453 453 456 456 461 462 462 471 473 489 515 517* 517 517 551 559* 561* 562* 562 562 562* 567 695* 767* 789* 807* 845* 846 860 861 891* 897* 906 910 914 922 925 934 936 939 944 944 948 949 965 967 970 976 983 985 988 993 995 1000 1001 1005 1007 1010 1012 1016 1019 1022 1030 1032 1052 1052 1052 1057 1061 1109 1111 1129 1131 1132 1138 1140 1146 1148 1148 1149 1168* 1170 1175 1176 1176 1202* 1204 1206 1207 1207 1217 1217 1223 1223 1227 1235 1236 1236 1238 1254* 1306* 1308 1345 1347* 1352 1352 1392* 1397 1398 1402 1407 1420* 1427* 1435* 1515 1515 1516 1516 1518 1520 1548* 1557 1566 2652 3852 3857 3857 3857 3857 3875 3875 3875 3875 3875 3895 3899 3910 3910 3910 3924 3939 3941 3941 PDlinfo 272 based pointer array level 3 in structure "Deps" dcl 196 in procedure "help_rql_" set ref 636* 637* 645* 652* 695 1168 1202 1306 1548 PDlinfo 270 parameter pointer level 2 in structure "linfo" dcl 3575 in procedure "parse_entry_point_into_units" set ref 3595* PDlinfo_ parameter pointer dcl 1588 in procedure "find_pgh" ref 1585 1612 1613 1631 1632 1632 1638 1639 1665 1667 PDlinfo_ parameter pointer dcl 3059 in procedure "get_title_list" ref 3055 3081 3085 3088 3089 3104 3106 3106 3107 3120 3122 PDlinfo_ parameter pointer dcl 1689 in procedure "find_section" ref 1686 1719 1720 1722 1724 PDlinfo_ parameter pointer dcl 2215 in procedure "get_arg_descriptions" ref 2210 2254 2255 2257 2259 2272 2276 2277 PDlinfo_ parameter pointer dcl 2603 in procedure "get_brief_data" ref 2599 2650 2650 2655 2658 2659 2660 2664 2664 2664 2668 2676 2676 2678 2685 2685 2687 2701 2703 2703 2707 2707 2713 2716 2723 2729 2740 2741 2743 2744 2755 2756 2799 2807 2810 2811 2833 2839 2840 2846 PDlinfo_ parameter pointer dcl 3575 in procedure "parse_entry_point_into_units" ref 3570 3591 3592 3593 3595 3603 3626 3626 3627 3628 3629 3630 3640 3643 3643 3647 3647 3647 3651 3652 3652 3654 3655 3656 3656 3662 3662 3664 3671 3672 3677 3679 3683 3684 3684 3685 3689 3690 3690 PI_LABEL parameter label variable dcl 103 set ref 99 391* 836* 964* 1048* 1108* 1135* 1251* PPgh 021020 automatic pointer dcl 1605 set ref 1638* 1640 1642 Pblk_line 022254 automatic pointer dcl 4414 set ref 4422* 4429 Pcommon_units 000146 automatic pointer dcl 121 in procedure "help_rql_" set ref 452* 471* 473* 476 476 480 485 500 504 533 535 536 537 540 541 545 547 556 561* 567* 4832 4848 Pcommon_units parameter pointer dcl 3575 in procedure "parse_entry_point_into_units" ref 3570 3685 Pcurrent_space parameter pointer dcl 4862 ref 4858 4867 Pep_list 000152 automatic pointer dcl 121 set ref 449* 524* 580 585* 1470 1475* Pgh based char packed unaligned dcl 1605 ref 1640 1642 Phelp_args parameter pointer dcl 2-55 ref 99 580 594 596 597 601 603 604 621 623 628 628 630 633 633 642 686 718 725 758 758 765 767 781 786 787 809 813 813 848 858 883 883 883 883 888 889 895 903 922 922 1420 1538 1542 1544 1551 1555 1634 1825 1825 2113 3154 3158 3164 3857 3857 3875 3875 3910 3910 3936 3955 3955 3955 4561 4631 4639 4661 4661 4661 4695 4703 4711 4744 4744 Phelp_requests 020724 automatic pointer dcl 3143 set ref 3154* 3156 3164* 3167 3168 3169 3173 3174 3174 3176 3178 3185* 3187 Pinfo_seg 020730 automatic pointer dcl 3968 set ref 3979* Pline 020710 automatic pointer dcl 2186 set ref 2289 2298 2302 2380 2380 2384 2391 2412 2564 2567 2568* 2568 2574 2578 2579* 2579 2586 3596* 3628 3654 3729* 3743 3758 3762 3764* 3764 3768 3782 3783* 3783 3786 3790 3796 3799 3801 3804 3809 3809 3819 4012 4012 4019 4020 4031 4033 4054 4076 4081* 4081 4096 4114* 4150 4194 4376* 4382* 4400 4477 4484 4489* 4489 4494* 4494 Pline_text 020704 automatic pointer dcl 2186 set ref 2276* 2374* 3596* 3723* 3729 3822 4012 4012 4040 4043* 4043 4054 4058 4113 4114 4123 4123 4126 4126 4136* 4136 4150 4165 4178* 4178 4223 4226 4236 4237 4278* 4280 4285* 4285 4305* 4318 4322 4326 4326 4342 4345 4350* 4350 4352 4370 4370 4373 4376 4377 4382 4384* 4384 4422 4423 4431* 4431 4451 4455 4457* 4457 4460 Plist parameter pointer dcl 3059 in procedure "get_title_list" ref 3055 3084 3084 3085 3088 3089 3090 3092 3094 3094 3095 3096 3097 3097 3097 3098 3098 3099 3099 3111 3111 3112 3112 3113 3113 3130 3132 3133 Plist 021274 automatic pointer dcl 2625 in procedure "get_brief_data" set ref 2715* 2716 2729 2730 2731 2733 2734 2734 2735 2735 2743* 2745 2745 2748 2753 2757 2757 2759 2770 2775 2775 2775 2775 2775 2780 2782 2782 2782 2782 2784* 2787 2822* 2823 2825* Plist 000140 automatic pointer dcl 121 in procedure "help_rql_" set ref 503* 511* 512 513* 515 516* 518* 520 521* 522* 522 523* 524 525 526* 526 526 529 530* 540 552* 785* 786 787 788 792* 794 812* 813 814 815 1439* 1440 1444* 1445 1446 1447 Plist parameter pointer dcl 2943 in procedure "get_list" set ref 2967* 2969 2969 2973* 2974 2975 2976 2977 2978 2981 2984* 2988* 2993* 2995 2995 3001 3004 3010* Plist parameter pointer dcl 2354 in procedure "get_arg_list" ref 2350 2390 2390 2391 2391 2402 2406 2410 2410 2412 2412 2419 2419 2419 2419 2431 2431 2432 2432 2434 2434 2435 2435 2438 2440 2449 2449 2451 2451 2451 2451 2451 2451 2451 2458 2458 2459 2459 2465 2465 2471 2471 2475 2475 2480 2480 2480 2480 2481 2481 2481 2481 2488 2488 2491 2491 2492 2492 2492 2492 2493 2493 2493 2493 2495 2495 2497 2497 2497 2497 2501 2501 2503 2503 2504 2504 2504 2504 2505 2505 2505 2505 2506 2506 2508 2508 2508 2508 2511 2511 2519 2519 2520 2520 2527 2527 2530 2530 2536 2536 2542 2542 2550 2550 2551 2551 2551 2551 2552 2552 2552 2552 2554 2554 2555 2555 2557 2557 2557 2557 2567 2567 2577 2577 2578 2578 2585 2585 2586 2586 Plist parameter pointer dcl 1758 in procedure "format_list" ref 1755 1808 1808 1810 1810 1812 1815 1815 1816 1816 1816 1820 1825 1825 1826 1826 1826 1826 1829 1830 1831 1837 1845 1846 1849 1850 1851 1854 1854 1854 1855 1855 1857 1860 1860 1860 1866 1872 1872 1873 1874 1875 1875 1886 1886 1886 1886 1886 1886 1886 1894 1894 1896 1896 1896 1896 1899 1899 1899 1909 1909 1909 1914 1914 1914 1914 1920 1920 1924 1928 1928 1928 1932 1932 1933 1935 1935 1935 1935 1940 1940 1940 1942 1942 1942 1944 1944 1944 1945 1945 1954 1954 1954 1956 1964 1964 1964 1966 1973 1973 1976 1976 1976 1980 1986 1986 1986 1987 1987 1991 1993 1993 1994 1997 1999 2002 2002 2002 2003 2005 2005 2009 2009 2009 2013 2021 2021 2023 2023 2031 2031 2038 2039 2040 2040 2042 2042 2042 2053 2059 2059 2065 2071 2073 2075 2090 2092 2092 2101 2104 2104 2106 2107 2118 2120 2123 2129 2129 2131 2134 2141 2155 2161 2162 2162 2164 Plist parameter pointer dcl 2875 in procedure "get_ep_list" ref 2872 2892 2892 2895 2896 2898 2900 2900 2901 2902 2903 2903 2903 2904 2904 2905 2905 2913 2914 2914 2915 2915 2917 2917 2918 2918 2919 2920 2920 2921 2921 2922 2922 2924 Plist_args 021122 automatic pointer dcl 2244 set ref 2259 2259 2271* 2272 2297 2297 2298 2298 2301 2301 2302 2302 2312 2323* 2324 2328 2328 2329 2329 2330 2330 2331 2331 2336 2336 2337 2337 2338 2338 2338 2338 Plist_base 021422 automatic pointer dcl 3024 in procedure "get_list_base" set ref 3040* 3041 3042 3043 3044 3044 3046 Plist_base parameter pointer dcl 2941 in procedure "get_list" ref 2937 2958 2958 2960 2960 2960 2962 2962 2965 2965 2967 2967 2970 2970 2972 2972 2974 2974 2981 2984 2984 2986 2986 2986 2988 2988 2991 2991 2993 2993 2996 2996 3001 3004 3004 3009 3009 Plist_base parameter pointer dcl 2603 in procedure "get_brief_data" set ref 2599 2715* 2724 2790 2790 2794 2799 2812 2822 2854 2860 2861 Plist_base parameter pointer dcl 2215 in procedure "get_arg_descriptions" set ref 2210 2271* 2315 2315 2323* Plist_base 000154 automatic pointer dcl 121 in procedure "help_rql_" set ref 432* 503* 516* 518* 523* 552* 767* 785* 789* 807* 844* 857 857 1253* 1260 1260 1420* 1427* 1435* 1451 Plist_cas parameter pointer dcl 2215 ref 2210 2252 2290 2291 2294 2296 2318 2324 2331 2333 2334 2338 Plist_of_cas 000144 automatic pointer dcl 121 set ref 785* 789* Plist_of_titles 000142 automatic pointer dcl 121 set ref 844* 845* 846* 847 855* 856 1253* 1254* 1255* 1255 1256 1258* 1259 Plists 4 based pointer array level 2 in structure "list_base" dcl 2629 in procedure "get_brief_data" set ref 2822 2854* 2860 Plists 4 based pointer array level 2 in structure "list_base" dcl 2943 in procedure "get_list" set ref 2958 2967 2974* 2984 2993 3004 Plists_of_args parameter pointer array dcl 2215 in procedure "get_arg_descriptions" set ref 2210 2265 2271* 2323* Plists_of_args 000156 automatic pointer array dcl 121 in procedure "help_rql_" set ref 789* 792 812 1435* 1439 1444 1450 Pnext_free_space parameter pointer dcl 3024 in procedure "get_list_base" set ref 3021 3038* 3038* 3040 3044* 3044* Pnext_free_space 000222 automatic pointer dcl 121 in procedure "help_rql_" set ref 429* 432* 450 453* 517* 526* 549* 559 562* 856* 1259* 1450* 2860* 2969* 2969* 2973 2995* 2995* Pnext_space 022550 automatic pointer dcl 4862 set ref 4867* 4868 Poutput parameter pointer dcl 2145 in procedure "format_list" ref 2141 2177 Poutput 000224 automatic pointer dcl 121 in procedure "help_rql_" set ref 526* 530* 533 549* 549 549 549* Ppgh 000226 automatic pointer dcl 121 set ref 2755* 2761 Pquery_answers parameter pointer dcl 103 ref 99 1460 1460 1460 1463 1463 Pseg 000230 automatic pointer dcl 121 set ref 409* 411* 411 413* 414* Pspaces 021036 automatic pointer dcl 1764 set ref 2058* 2070* 2153* Pstart 2 based pointer array level 3 in structure "Dlinfo_" dcl 2620 in procedure "get_brief_data" set ref 2755 Pstart 2 based pointer array level 3 in structure "Dlinfo_" dcl 2225 in procedure "get_arg_descriptions" ref 2276 Pstart based pointer array level 2 in structure "common_units" dcl 275 in procedure "help_rql_" set ref 533* Pstart parameter pointer level 2 in structure "unit" dcl 2354 in procedure "get_arg_list" ref 2374 Pstart 274 based pointer array level 3 in structure "Deps_" dcl 3718 in procedure "parse_info_into_entry_points" set ref 3786* 3801* Pstart parameter pointer level 2 in structure "unit" dcl 4771 in procedure "print_pgh_2nl" set ref 4823* Pstart 2 based pointer array level 3 in structure "Dlinfo_" dcl 3580 in procedure "parse_entry_point_into_units" set ref 3628* 3654* Pstart 2 based pointer array level 3 in structure "Dlinfo_" dcl 1599 in procedure "find_pgh" ref 1638 Pstart 272 parameter pointer level 2 in structure "linfo" dcl 3575 in procedure "parse_entry_point_into_units" ref 3596 Ptext 022176 automatic pointer dcl 4220 set ref 4233* 4278 Pword_text 021750 automatic pointer dcl 4206 set ref 4223* 4228* 4228 4233 4242 4248* 4248 4249 4253 4254 4259 4261* 4261 4263 4265 4269* 4269 4270 S 33 based structure array level 3 in structure "Dlinfo_" dcl 2225 in procedure "get_arg_descriptions" S 33 based structure array level 3 in structure "Dlinfo" dcl 219 in procedure "help_rql_" S 31 based structure array level 2 in structure "common_units" dcl 275 in procedure "help_rql_" set ref 537* S 33 based structure array level 3 in structure "Dlinfo_" dcl 3068 in procedure "get_title_list" S 31 parameter structure level 2 in structure "unit" dcl 4771 in procedure "print_pgh_2nl" S 327 based structure array level 3 in structure "Deps_" dcl 3718 in procedure "parse_info_into_entry_points" set ref 3789* S 327 based structure array level 3 in structure "Deps" dcl 196 in procedure "help_rql_" S 33 based structure array level 3 in structure "Dlinfo_" dcl 3580 in procedure "parse_entry_point_into_units" set ref 3629* S 31 parameter structure level 2 in structure "unit" dcl 4845 in procedure "seen_pgh" S based structure array level 3 in structure "help_requests" dcl 3151 in procedure "list_requests" S 33 based structure array level 3 in structure "Dlinfo_" dcl 1698 in procedure "find_section" S 33 based structure array level 3 in structure "Dlinfo_" dcl 2620 in procedure "get_brief_data" S 33 based structure array level 3 in structure "Dlinfo_" dcl 1599 in procedure "find_pgh" SP 042224 constant char(1) initial packed unaligned dcl 334 ref 1954 1964 1976 2039 2040 2471 2475 2898 2902 2905 3092 3096 3099 4322 SPACES 042225 constant char(136) initial dcl 334 set ref 1831 1874 2013 2058 2070 2092 2153 SP_SP 042223 constant char(2) initial packed unaligned dcl 334 ref 1886 1914 2005 2431 2451 2480 2492 2504 2551 2578 2586 4019 SP_SP_SP 000554 constant char(3) initial packed unaligned dcl 334 ref 4058 4326 Sblk_line 022257 automatic bit(1) packed unaligned dcl 4414 set ref 4419* 4421 4435* Scase_sensitive parameter bit(1) packed unaligned dcl 1593 in procedure "find_pgh" ref 1585 1623 1640 1665 Scase_sensitive parameter bit(1) packed unaligned dcl 1693 in procedure "find_section" ref 1686 1714 1722 Scase_sensitive 000257 automatic bit(1) packed unaligned dcl 121 in procedure "help_rql_" set ref 630* 636* 637* 645* 652* 888* 891* 897* 1324* 1328* 1333* 1337* 1347* 1371* 1375* 1380* 1384* 1392* 2291 4000* Scn parameter structure level 1 dcl 1690 ref 1686 Sconsecutive_arg_lines 020722 automatic bit(1) packed unaligned dcl 2186 set ref 2284* 2380* 2386* 2415 2417 4039* Sctl 1 based structure level 2 dcl 2-55 Sdescription_present 000260 automatic bit(1) packed unaligned dcl 121 set ref 2402 2404 2440 3989* 4058* 4060* Sdoes_not_fit 021045 automatic bit(1) dcl 1764 set ref 1802* 1815 2027* Sep_list_printed 000261 automatic bit(1) packed unaligned dcl 121 set ref 580 781 879 959 967 972* 1474* 1518 2116* 3990* 4815 4819* Sfirst_pgh 000263 automatic bit(1) packed unaligned dcl 121 set ref 3616* 3621 3621* 3992* 4366 Sfirst_time 000262 automatic bit(1) packed unaligned dcl 121 set ref 941* 944 2073 2079 2083 2087* 2372* 2398 2401* 2831* 2842* 3991* 4031 Sfound 000264 automatic bit(1) dcl 121 set ref 669* 670 671 672* 676 1234* 1235 1238* 1241 1294* 1295 1296 1297* 1301 2751* 2753 2754 2762* 2768 Sheader parameter bit(1) packed unaligned dcl 2603 ref 2599 Sloop 000274 automatic bit(1) dcl 121 set ref 957* 963 1566* Smultiple_words 021042 automatic bit(1) packed unaligned dcl 1764 set ref 1804* 1843* 1907 2037* 2040* 2045* 2046 2049 Snl1 000275 automatic bit(1) dcl 121 set ref 1044* 1076* 1172* 1310* 1554* 1555* 3430* 3431* 3481* 3482* 3504* 3505* 3529* 3530* 4653* 4655* 4661* 4725* 4730* 4735* 4740* 4744* Snl2 000276 automatic bit(1) dcl 121 set ref 4657* 4659* 4661* 4726* 4731* 4736* 4741* 4744* Snot_found 70 based fixed bin(17,0) array level 3 dcl 2222 set ref 2252* 2296* 2318 2334 Sold_format parameter bit(1) packed unaligned dcl 2603 set ref 2599 2664 2743* Sprint_inhibit parameter bit(1) dcl 103 in procedure "help_rql_" set ref 99 406* 585* 855* 861* 934* 936* 939* 944* 948* 949* 1049* 1109* 1111* 1138* 1140* 1176* 1207* 1258* 1402* 1407* 1463* 1475* 2811* Sprint_inhibit parameter bit(1) dcl 4771 in procedure "print_pgh_2nl" ref 4768 4796 4802 4805 4810 4813 Sprint_inhibit parameter bit(1) dcl 1758 in procedure "format_list" ref 2053 2056 2065 2068 Sprt_args 000267 automatic bit(1) packed unaligned dcl 121 set ref 2680* 2703 3995* Sprt_bf_heading 000270 automatic bit(1) packed unaligned dcl 121 set ref 806* 1426* 2645* 2805 3996* Sprt_entry_pts 000272 automatic bit(1) packed unaligned dcl 121 set ref 582* 970 1473* 2097 2115* 3998* 4661 Sprt_list_of 000271 automatic bit(1) packed unaligned dcl 121 set ref 2645* 2689* 2707 3997* Sprt_one_paragraph 000273 automatic bit(1) packed unaligned dcl 121 set ref 2645* 2694* 2721 2803 3999* Sreally_old_format parameter bit(1) packed unaligned dcl 2363 in procedure "get_arg_list" ref 2350 Sreally_old_format parameter bit(1) packed unaligned dcl 2215 in procedure "get_arg_descriptions" ref 2210 Sremove_line 000265 automatic bit(1) packed unaligned dcl 121 set ref 2373* 2398 2402* 2404* 2406 2426 3993* 4031* 4033 4033* 4058 Srh parameter structure level 1 dcl 1589 ref 1585 Ssearch 000100 automatic bit(1) dcl 1705 in procedure "find_section" set ref 1718* 1719 1726* 1727 1728* 1733 Ssearch 021014 automatic bit(1) dcl 1603 in procedure "find_pgh" set ref 1628* 1631 1634* 1644* 1645 1647* 1653 1655 1669* 1670 1671* 1675 Ssearch 000300 automatic bit(1) dcl 121 in procedure "help_rql_" set ref 631* 635 637* 644 646* 651 652* 656 664* 679* 691* 897* 898 956* 1046* 1358* 1392* 1393 1396* 3857 3875 Sseen 022540 automatic bit(1) dcl 4845 in procedure "seen_pgh" set ref 4848* 4850* 4851 Sseen 000301 automatic bit(1) dcl 121 in procedure "help_rql_" set ref 983* 1052 1052* 1071* 1076* 1088* 1227* 1229* 1495* 1506* 1511* 1515 1520* 1522 1529* 1536 3857 3875 3894* Syntax_section 000266 automatic bit(1) packed unaligned dcl 121 set ref 2645* 2654* 2674 2703 2745 2833 3994* TRUE constant bit(1) initial dcl 334 ref 397 480 541 547 582 664 672 679 806 941 957 972 1229 1297 1303 1328 1337 1358 1375 1384 1473 1511 1529 1634 1647 1671 1726 1802 1914 1924 1956 1966 1980 2040 2116 2372 2654 2680 2689 2694 2751 2771 2831 2837 2846 3122 3124 3176 3616 3618 3634 3643 3647 3655 3662 3819 3852 3857 3875 3910 3924 3939 3941 3955 4012 4031 4039 4058 4077 4099 4120 4131 4140 4150 4181 4195 4319 4322 4326 4353 4366 4390 4404 4419 4510 4515 4653 4657 4731 4735 4819 4831 4832 Vhelp_args_3 000632 constant fixed bin(17,0) initial dcl 2-55 set ref 3158* WORD_BREAKS 000110 constant char(4) initial packed unaligned dcl 4217 ref 4253 4265 addcharno builtin function dcl 314 ref 4494 addr builtin function dcl 314 ref 411 471 1052 1052 1057 1057 1061 1061 1071 1071 1076 1076 1088 1088 1435 1435 1460 1460 1463 1463 1495 1495 1506 1506 2058 2070 2081 2081 2085 2085 2153 2568 2579 3685 3764 3783 3801 4043 4081 4136 4178 4228 4248 4261 4269 4285 4350 4376 4382 4384 4431 4457 4489 4494 4824 4824 4829 4829 4829 4829 addrel builtin function dcl 314 ref 429 4867 all 1(10) based bit(1) level 3 packed packed unaligned dcl 2-55 ref 848 858 883 903 1551 answer 000302 automatic varying char(500) dcl 121 in procedure "help_rql_" set ref 1052* 1057* 1061* 1071* 1076* 1088* 1095* 1495* 1506* answer parameter varying char(500) dcl 3200 in procedure "parse_answer" set ref 3197 3304 3305 3307 3311 3311 3327 3327* 3329* 3329 3331 3332 3333 3335 3431 3431 3482 3482 3505 3505 3530 3530 3550 3550* 3553* 3553 answer_iocbp 6 007264 automatic pointer initial level 2 dcl 1-7 set ref 1-7* arg 41 based varying char(88) array level 3 in structure "list_args" dcl 2241 in procedure "get_arg_descriptions" set ref 2298* 2302* 2329* 2331* 2337* 2338* 2338 arg 41 parameter varying char(88) array level 3 in structure "Scn" dcl 1690 in procedure "find_section" ref 1714 1716 arg 41 based varying char(88) array level 3 in structure "list" dcl 2637 in procedure "get_brief_data" set ref 2734* 2735* 2735 2748 2757 2757 2759 2775 2775 2782 2782 arg 41 parameter varying char(88) array level 3 in structure "srh" dcl 3200 in procedure "parse_answer" set ref 3478 3492* arg 41 based varying char(88) array level 3 in structure "list" dcl 2357 in procedure "get_arg_list" set ref 2391* 2410 2412* 2419 2419 2431 2432* 2432 2435* 2435 2449 2451 2451* 2451 2459 2465 2471 2475 2480* 2480 2481* 2481 2488 2492* 2492 2493* 2493 2495 2497* 2497 2501 2504* 2504 2505* 2505 2506 2508* 2508 2511 2519 2520 2527 2530 2536 2542 2551* 2551 2552* 2552 2554 2555 2557* 2557 2567* 2578* 2586* arg 41 parameter varying char(88) array level 3 in structure "ca" dcl 3200 in procedure "parse_answer" set ref 3501 3514* arg 41 based varying char(88) array level 3 in structure "list" dcl 1783 in procedure "format_list" ref 1854 1860 1860 1860 1875 1886 1886 1886 1886 1894 1894 1896 1896 1896 1899 1899 1909 1909 1914 1914 1920 1920 1928 1928 1932 1932 1935 1935 1935 1940 1940 1942 1942 1944 1954 1954 1964 1964 1973 1973 1976 1976 1986 2002 2002 2003 2005 2005 2039 2040 2040 2042 2042 2042 arg 41 007301 automatic varying char(88) array level 3 in structure "scn" dcl 304 in procedure "help_rql_" set ref 596 597* arg 41 parameter varying char(88) array level 3 in structure "scn" dcl 3200 in procedure "parse_answer" set ref 3427 3442* arg 41 based varying char(88) array level 3 in structure "list" dcl 277 in procedure "help_rql_" set ref 787* 815* 1447* arg 41 parameter varying char(88) array level 3 in structure "Srh" dcl 1589 in procedure "find_pgh" ref 1623 1625 arg 41 based varying char(88) array level 3 in structure "list_cas" dcl 2222 in procedure "get_arg_descriptions" ref 2291 2294 2338 arg 41 based varying char(88) array level 3 in structure "list" dcl 2883 in procedure "get_ep_list" set ref 2895* 2896 2898 2901* 2902 2903* 2903 2903 2904* 2904 2905 2905 2913* 2914* 2914 2915* 2915 2917* 2917 2919* 2920* 2920 2921* 2921 2922* 2922 2924 arg 41 based varying char(88) array level 3 in structure "list" dcl 3075 in procedure "get_title_list" set ref 3085* 3088* 3089* 3090 3092 3095* 3096 3097* 3097 3097 3098* 3098 3099 3099 3111* 3111 3112* 3112 3113* 3113 3133* arg 41 014102 automatic varying char(88) array level 3 in structure "srh" dcl 310 in procedure "help_rql_" set ref 603 604* arg_list 33(03) based bit(1) array level 4 in structure "Dlinfo_" packed packed unaligned dcl 2225 in procedure "get_arg_descriptions" ref 2255 arg_list 33(03) based bit(1) array level 4 in structure "Dlinfo_" packed packed unaligned dcl 3580 in procedure "parse_entry_point_into_units" set ref 3652* 3662 3662* arg_list 33(03) based bit(1) array level 4 in structure "Dlinfo_" packed packed unaligned dcl 2620 in procedure "get_brief_data" set ref 2676 2703 args based char packed unaligned dcl 2363 in procedure "get_arg_list" ref 2412 args based char packed unaligned dcl 2244 in procedure "get_arg_descriptions" ref 2289 2298 2302 bf 1(07) based bit(1) level 3 packed packed unaligned dcl 2-55 ref 758 765 813 bf_no_ARG_dsp 020714 automatic bit(1) initial packed unaligned dcl 2186 set ref 2073 2079 2186* 2752* 2771* blk_line based char packed unaligned dcl 4414 ref 4429 ca 1 005456 automatic varying char(32) array level 2 in structure "lr" dcl 271 in procedure "help_rql_" set ref 3176 3176 3176 3178 ca 1(08) based bit(1) level 3 in structure "help_args" packed packed unaligned dcl 2-55 in procedure "help_rql_" ref 758 781 809 813 ca based varying char(32) array level 2 in structure "help_args" dcl 2-55 in procedure "help_rql_" ref 787 ca 1 parameter varying char(32) array level 2 in structure "lr" dcl 3200 in procedure "parse_answer" set ref 3526 3533 3535 3535 3539* ca 000655 automatic structure level 1 dcl 267 in procedure "help_rql_" set ref 1095* 1435 1435 ca parameter structure level 1 dcl 3200 in procedure "parse_answer" set ref 3197 case 022407 automatic fixed bin(17,0) dcl 4547 set ref 4563* 4567* 4570* 4573* 4574* 4578* 4579* 4582* 4584 code 021461 automatic fixed bin(35,0) dcl 3148 in procedure "list_requests" set ref 3158* 3159 3185* code 000500 automatic fixed bin(35,0) dcl 121 in procedure "help_rql_" set ref 402* 403 code 021555 automatic fixed bin(35,0) dcl 3711 in procedure "parse_info_into_entry_points" set ref 3809* 3810 code 022520 automatic fixed bin(35,0) dcl 4774 in procedure "print_pgh_2nl" set ref 4823* 4824* 4825 4829* colon constant char(1) initial packed unaligned dcl 334 set ref 3634* command_query_ 000020 constant entry external dcl 318 ref 1052 1057 1061 1071 1076 1088 1495 1506 command_query_$yes_no 000022 constant entry external dcl 318 ref 2120 2123 common_units based structure array level 1 dcl 275 in procedure "help_rql_" common_units based structure array level 1 dcl 3585 in procedure "parse_entry_point_into_units" set ref 3685* 3685 continue_line 021657 automatic bit(1) initial packed unaligned dcl 4009 set ref 4009* 4012* 4027 4037 4052* 4061* convert_date_to_binary_ 000024 constant entry external dcl 318 ref 3809 cp_escape_control 1(02) 007264 automatic bit(2) initial level 3 packed packed unaligned dcl 1-7 set ref 1-7* cs 1(12) based bit(1) level 3 packed packed unaligned dcl 2-55 ref 630 888 ct_lines 000501 automatic fixed bin(17,0) dcl 121 set ref 1835* 1876* 1876 1903* 1903 1910* 1910 1949* 1949 1958* 1958 1968* 1968 1978* 1978 1999* 1999 2785 current_line_begins_section 020732 automatic bit(1) packed unaligned dcl 4525 set ref 3634* 3636* 3638 4533* currentsize builtin function dcl 314 ref 429 432 432 453 453 517 517 526 526 549 549 562 562 2969 2969 2995 2995 3044 3044 date 2 based fixed bin(71,0) array level 3 in structure "Deps_" dcl 3718 in procedure "parse_info_into_entry_points" set ref 3794* 3805* 3809* 3810* 3817* date 2 based fixed bin(71,0) array level 3 in structure "Deps" dcl 196 in procedure "help_rql_" set ref 623 1538 1542 1544 defined_ops 000155 constant varying char(20) initial array dcl 3265 ref 3309 3320 3320 3322 dim builtin function dcl 314 ref 596 603 2003 3762 4252 dimension builtin function dcl 314 ref 1645 1670 1727 1808 1810 2265 2655 2958 2984 3320 3322 3435 3437 3437 3486 3488 3488 3508 3510 3510 3533 3535 3535 4259 dir parameter char(168) packed unaligned dcl 2603 ref 2599 divide builtin function dcl 314 ref 513 522 846 1255 1816 1825 1826 ent parameter char(32) packed unaligned dcl 2603 ref 2599 ep_list 33(02) based bit(1) array level 4 in structure "Dlinfo_" packed packed unaligned dcl 3068 in procedure "get_title_list" ref 3120 ep_list 31(02) based bit(1) array level 3 in structure "common_units" packed packed unaligned dcl 275 in procedure "help_rql_" set ref 480* 500 547* ep_list 33(02) based bit(1) array level 4 in structure "Dlinfo" packed packed unaligned dcl 219 in procedure "help_rql_" set ref 922 967 970 976 1176 1207 1518 3852 ep_list 31(02) parameter bit(1) level 3 in structure "unit" packed packed unaligned dcl 4771 in procedure "print_pgh_2nl" ref 4815 ep_list 33(02) based bit(1) array level 4 in structure "Dlinfo_" packed packed unaligned dcl 3580 in procedure "parse_entry_point_into_units" set ref 3690 ep_list constant fixed bin(17,0) initial dcl 334 in procedure "help_rql_" ref 959 979 988 996 1081 1476 ep_name 000502 automatic varying char(65) dcl 121 in procedure "help_rql_" set ref 1095* 1273 1273* 1277 1280 1282 1282 1289 1289* 1289 1292* 1297 1317* ep_name 5 based varying char(32) array level 3 in structure "Deps_" dcl 3718 in procedure "parse_info_into_entry_points" set ref 3762 3762* ep_name parameter varying char(65) dcl 3200 in procedure "parse_answer" set ref 3197 3303* 3386 3391* ep_name 5 based varying char(32) array level 3 in structure "Deps_" dcl 2879 in procedure "get_ep_list" ref 2915 2922 ep_name 5 based varying char(32) array level 3 in structure "Deps" dcl 196 in procedure "help_rql_" set ref 672 1196 1297 error_table_$fatal_error 000044 external static fixed bin(35,0) dcl 334 ref 1577 error_table_$noentry 000046 external static fixed bin(35,0) dcl 334 ref 688 error_table_$nomatch 000050 external static fixed bin(35,0) dcl 334 ref 658 error_type 021460 automatic fixed bin(17,0) dcl 3148 set ref 3185* ev_chan 2 000010 internal static fixed bin(71,0) array level 2 in structure "wait_list" dcl 4787 in procedure "print_pgh_2nl" set ref 4828* ev_chan 000014 internal static fixed bin(71,0) initial level 2 in structure "write_status" dcl 4791 in procedure "print_pgh_2nl" set ref 4828 event_info 022522 automatic structure level 1 dcl 4777 set ref 4829 4829 exact_match constant fixed bin(17,0) initial dcl 334 ref 1348 1741 explanation_len 14 007264 automatic fixed bin(21,0) initial level 2 dcl 1-7 set ref 1-7* explanation_ptr 12 007264 automatic pointer initial level 2 dcl 1-7 set ref 1-7* get_line_length_$switch 000026 constant entry external dcl 318 ref 402 group 41 based structure array level 2 in structure "LIST" dcl 245 in procedure "help_rql_" group 41 parameter structure array level 2 in structure "ca" dcl 3200 in procedure "parse_answer" set ref 3508 3510 3510 group 41 014102 automatic structure array level 2 in structure "srh" dcl 310 in procedure "help_rql_" group 41 parameter structure array level 2 in structure "Srh" dcl 1589 in procedure "find_pgh" group 41 based structure array level 2 in structure "list" dcl 2883 in procedure "get_ep_list" group 41 parameter structure array level 2 in structure "Scn" dcl 1690 in procedure "find_section" group 41 based structure array level 2 in structure "list_cas" dcl 2222 in procedure "get_arg_descriptions" group 41 based structure array level 2 in structure "list" dcl 2357 in procedure "get_arg_list" group 41 based structure array level 2 in structure "list" dcl 277 in procedure "help_rql_" group 41 based structure array level 2 in structure "list" dcl 2637 in procedure "get_brief_data" group 41 based structure array level 2 in structure "list" dcl 3075 in procedure "get_title_list" group 41 based structure array level 2 in structure "list_args" dcl 2241 in procedure "get_arg_descriptions" group 41 parameter structure array level 2 in structure "scn" dcl 3200 in procedure "parse_answer" set ref 3435 3437 3437 group 41 based structure array level 2 in structure "list" dcl 1783 in procedure "format_list" group 41 parameter structure array level 2 in structure "srh" dcl 3200 in procedure "parse_answer" set ref 3486 3488 3488 group 41 007301 automatic structure array level 2 in structure "scn" dcl 304 in procedure "help_rql_" hbound builtin function dcl 314 ref 1010 1030 1097 3313 3560 he_counts 1(03) based bit(1) level 3 packed packed unaligned dcl 2-55 set ref 3955 4561 4661* 4711 4744* he_info_name 1(02) based bit(1) level 3 packed packed unaligned dcl 2-55 ref 3955 4639 4703 he_only 1 based bit(1) level 3 packed packed unaligned dcl 2-55 ref 725 he_pn 1(01) based bit(1) level 3 packed packed unaligned dcl 2-55 set ref 767* 1420* 3955 4631 4661* 4695 4744* header based structure level 2 in structure "list_cas" dcl 2222 in procedure "get_arg_descriptions" header 275 parameter varying char(88) level 2 in structure "linfo" dcl 3575 in procedure "parse_entry_point_into_units" ref 3694 header 277 based varying char(88) array level 3 in structure "Deps" dcl 196 in procedure "help_rql_" set ref 799 841 851 912 1044 1066 1066 1076* 1083 1083 1125 1125* 1172* 1310* 1554 1555* 3955 4657 4661* 4723 4728 4733 4744* header parameter structure level 2 in structure "srh" dcl 3200 in procedure "parse_answer" header based structure level 2 in structure "list" dcl 277 in procedure "help_rql_" header parameter structure level 2 in structure "Scn" dcl 1690 in procedure "find_section" header parameter structure level 2 in structure "Srh" dcl 1589 in procedure "find_pgh" header based structure level 2 in structure "list_args" dcl 2241 in procedure "get_arg_descriptions" header based structure level 2 in structure "list" dcl 2943 in procedure "get_list" header parameter structure level 2 in structure "ca" dcl 3200 in procedure "parse_answer" header parameter structure level 2 in structure "scn" dcl 3200 in procedure "parse_answer" header based structure level 2 in structure "list" dcl 2637 in procedure "get_brief_data" header based structure level 2 in structure "list" dcl 2883 in procedure "get_ep_list" header 277 based varying char(88) array level 3 in structure "Deps_" dcl 3718 in procedure "parse_info_into_entry_points" set ref 3749 3793* 3799* 3802 3816* header 014102 automatic structure level 2 in structure "srh" dcl 310 in procedure "help_rql_" header 000655 automatic structure level 2 in structure "ca" dcl 267 in procedure "help_rql_" header based structure level 2 in structure "list" dcl 2357 in procedure "get_arg_list" header 007301 automatic structure level 2 in structure "scn" dcl 304 in procedure "help_rql_" header based structure level 2 in structure "LIST" dcl 245 in procedure "help_rql_" header based structure level 2 in structure "list" dcl 3075 in procedure "get_title_list" header based structure level 2 in structure "list" dcl 1783 in procedure "format_list" header 277 based varying char(88) array level 3 in structure "Deps_" dcl 2879 in procedure "get_ep_list" set ref 2893 2895 2924* header based structure level 2 in structure "query_answers" dcl 297 in procedure "help_rql_" help_ 000054 constant entry external dcl 2-160 ref 3185 help_$init 000056 constant entry external dcl 2-160 ref 3158 help_args based structure level 1 dcl 2-55 help_data_ptr 16 based pointer level 2 dcl 2-55 set ref 3154 3158* 3164 help_requests based structure level 1 dcl 3151 i 021051 automatic fixed bin(17,0) dcl 1764 in procedure "format_list" set ref 1829* 1831* 1873* 2038* 2039 2040 2040 2042 2042 2042* i 000524 automatic fixed bin(17,0) dcl 121 in procedure "help_rql_" set ref 474* 476 476 480 481 482* 482* 485* 529* 530* 538* 555* 556 556* 560* 561* 596* 597 597* 599 603* 604 604* 606 671* 672* 791* 792* 814* 815* 1010* 1010* 1012 1016 1019 1022* 1030* 1030* 1032* 1277* 1278 1280 1282 1282 1289 1289 1289 1295* 1296 1297* 1305 1438* 1439* 1446* 1447* 1538* 1538 1538* 1540 1542* 1542 1542* 1544 1544 1547 3172* 3173 3174 3174 3176 3176 3176 3176 3178 3178* 4280* 4281 4285 4285 4287 i 021436 automatic fixed bin(17,0) dcl 3064 in procedure "get_title_list" set ref 3106* 3106* 3107* 3109 i 021276 automatic fixed bin(17,0) dcl 2625 in procedure "get_brief_data" set ref 2655* 2656 2657* 2748* 2750* 2753* 2753* 2757 2757 2759* 2818* 2823 2833* i 021226 automatic fixed bin(24,0) dcl 2363 in procedure "get_arg_list" set ref 2384* 2386 2434* 2435* 2438 2459* 2461 2461* 2461 2465* 2466 2466* 2466 2469 2471* 2472 2472* 2472 2475 2475* 2478 2478* 2480 2481 2520* 2523 2523* 2523 2527* 2528 2530* 2532 2532* 2532 2536* 2538 2538* 2538 2542* 2543 2543* 2551 2552 i parameter fixed bin(17,0) dcl 3873 in procedure "ck_more_conditions" ref 3870 3875 3875 3875 3875 3875 i 021015 automatic fixed bin(17,0) dcl 1604 in procedure "find_pgh" set ref 1612* 1613* 1622* 1623 1623 1625 1625* 1645* 1646 1647* 1670* 1671* i 000101 automatic fixed bin(17,0) dcl 1706 in procedure "find_section" set ref 1713* 1714 1714 1716 1716* 1727* 1728* 1737* 1739* i 021472 automatic fixed bin(17,0) dcl 3217 in procedure "parse_answer" set ref 3304* 3305 3305* 3307 3311 3311 3327 3329 3332* 3333 3333* 3335 3430 3431 3431 3481 3482 3482 3504 3505 3505 3529 3530 3530 3550 3553 i 021540 automatic fixed bin(24,0) dcl 3587 in procedure "parse_entry_point_into_units" set ref 3683* 3685 3689* 3690 3690* i parameter fixed bin(17,0) dcl 3850 in procedure "ck_conditions" ref 3847 3852 3857 3857 3857 3857 i 021556 automatic fixed bin(21,0) dcl 3711 in procedure "parse_info_into_entry_points" set ref 3758* 3759 3762 3764 3764 3766 3767 3768* 3782* 3783 3784 3804* 3805 3809 3809 3822* i 021376 automatic fixed bin(17,0) dcl 2889 in procedure "get_ep_list" set ref 2891* 2893 2895 2915 2916 2922 2924* index builtin function dcl 314 ref 508 1271 1277 1646 1647 1671 1728 2040 2040 2294 2384 2419 2459 2465 2471 2475 2488 2495 2501 2506 2511 2519 2520 2527 2530 2536 2542 2564 2574 2761 2898 2905 3092 3099 3743 3758 3768 3790 3819 3822 4012 4012 4019 4020 4040 4054 4096 4113 4123 4123 4126 4126 4165 4194 4226 4236 4280 4318 4345 4373 4423 4477 info_name based char(32) array level 3 packed packed unaligned dcl 3151 set ref 3169* 3178* info_name_not_starname based bit(1) array level 4 packed packed unaligned dcl 3151 set ref 3176* inhibit_errors 1(13) based bit(1) level 3 packed packed unaligned dcl 2-55 ref 686 ioa_ 000030 constant entry external dcl 318 ref 712 713 714 718 721 813 815 933 1125 1137 1157 1163 1172 1186 1192 1198 1257 1282 1310 1317 1352 1364 1401 1406 1413 1425 1429 1442 1445 1447 1453 1456 1481 1499 1555 2059 2073 2075 2107 2131 2134 3006 3161 3180 3182 3188 3383 3388 3609 4744 4798 4807 ioa_$nnl 000032 constant entry external dcl 318 ref 1341 1388 3311 3431 3437 3482 3488 3505 3510 3530 3535 3542 3546 3559 4661 4821 ioa_$rsnnl 000034 constant entry external dcl 318 ref 4586 4593 4598 4603 4608 4612 4617 4622 iox_$control 000036 constant entry external dcl 318 ref 4824 iox_$put_chars 000040 constant entry external dcl 318 ref 2081 2085 4823 iox_$user_output 000052 external static pointer dcl 334 set ref 402* 2081* 2085* 4823* 4824* ipc_$block 000042 constant entry external dcl 318 ref 4829 j 021437 automatic fixed bin(17,0) dcl 3064 in procedure "get_title_list" set ref 3092* 3093 3096* 3096 3096 3097 3098 3099* 3101* j 021473 automatic fixed bin(17,0) dcl 3217 in procedure "parse_answer" set ref 3320* 3320* 3322 3326 3344 3350 3352 3357 3364 3366 3368 3373 3403 3404 3406 3411 3412 3414 3419 3420 3422 3454 3455 3457 3462 3463 3465 3470 3471 3473 j 021277 automatic fixed bin(17,0) dcl 2625 in procedure "get_brief_data" set ref 2754* 2755 2756 2764* 2817* 2819 2822 2826* 2826 2853* 2853* 2854* j 021541 automatic fixed bin(24,0) dcl 3587 in procedure "parse_entry_point_into_units" set ref 3602* 3625* 3625 3627 3628 3629 3629 3629 3629 3629 3629 3629 3630 3640 3643 3643 3647 3647 3647 3651 3652 3652 3654 3655 3659 3662 3662 3664 3671 3672 3677 3679 j 021227 automatic fixed bin(24,0) dcl 2363 in procedure "get_arg_list" set ref 2371* 2431* 2431* 2432* 2434 2435 2436* 2436 2488* 2489 2492 2493 2501* 2502 2504 2505 2511* 2519* 2527 2555* 2557 2557 2564* 2565 2567 2568 2568 2570 2574* 2575 2578 2579 2579 2581 j 021052 automatic fixed bin(17,0) dcl 1764 in procedure "format_list" set ref 1830* 1831* 2039* 2040 2040 j 021016 automatic fixed bin(17,0) dcl 1604 in procedure "find_pgh" set ref 1611* 1613* 1613 1618 1646* j 021377 automatic fixed bin(17,0) dcl 2889 in procedure "get_ep_list" set ref 2898* 2899 2902* 2902 2902 2903 2904 2905* 2907* 2916* 2922* j 000525 automatic fixed bin(17,0) dcl 121 in procedure "help_rql_" set ref 481* 488 532* 533 535 536 537 537 537 537 537 537 537 540 541 545 547 811* 812 813* 1296* 1297* 1443* 1444* j 021557 automatic fixed bin(17,0) dcl 3711 in procedure "parse_info_into_entry_points" set ref 3730* 3731 3732 3761 3761 3762 3770 3770 3786 3787 3788 3789 3789 3789 3793 3794 3799 3801 3802 3802 3805 3809 3810 3816 3817 3819 k 021400 automatic fixed bin(17,0) dcl 2889 in procedure "get_ep_list" set ref 2892* 2895 2896 2898 2900* 2901 2902 2903 2903 2903 2904 2904 2905 2905 2913 2914 2914 2915 2915 2917 2917 2918* 2919 2920 2920 2921 2921 2922 2922 2924 k 021474 automatic fixed bin(17,0) dcl 3217 in procedure "parse_answer" set ref 3300* 3380 3392* 3435 3441 3441* 3442 3486 3491 3491* 3492 3508 3513 3513* 3514 3533 3538 3538* 3539 k 021560 automatic fixed bin(17,0) dcl 3711 in procedure "parse_info_into_entry_points" set ref 3761* 3762 3762 k 021440 automatic fixed bin(17,0) dcl 3064 in procedure "get_title_list" set ref 3084* 3085 3088 3089 3090 3092 3094* 3095 3096 3097 3097 3097 3098 3098 3099 3099 3111 3111 3112 3112 3113 3113 k 021125 automatic fixed bin(17,0) dcl 2247 in procedure "get_arg_descriptions" set ref 2290* 2291 2294 2296* 2333* 2334 2338* k 021300 automatic fixed bin(17,0) dcl 2625 in procedure "get_brief_data" set ref 2761* 2762 k 021230 automatic fixed bin(24,0) dcl 2363 in procedure "get_arg_list" set ref 2430* 2431 2495* 2497 2497 2506* 2508 2508 2554* 2557 last_line 021047 automatic fixed bin(17,0) dcl 1764 set ref 2094* 2104 2120* 2133 length builtin function dcl 314 ref 462 462 462 476 508 685 685 799 841 851 912 1019 1019 1041 1043 1044 1052 1057 1061 1066 1068 1071 1083 1085 1088 1125 1271 1289 1553 1554 1854 1860 1860 1886 1886 1886 1894 1894 1909 1914 1920 1920 1928 1928 1932 1932 1944 1954 1964 1973 1973 1976 1986 2002 2005 2042 2042 2059 2071 2081 2081 2085 2085 2155 2176 2177 2177 2419 2449 2554 2664 2731 2775 2782 2787 2893 2896 2905 3090 3099 3305 3309 3318 3327 3331 3333 3386 3427 3429 3430 3478 3481 3501 3504 3526 3529 3550 3643 3647 3671 3677 3694 3751 3753 3802 3955 4150 4150 4237 4249 4254 4263 4270 4326 4342 4352 4370 4377 4510 4515 4626 4633 4633 4633 4641 4642 4657 4697 4697 4697 4705 4706 4713 4715 4717 4719 4723 4728 4733 length_args 021050 automatic fixed bin(24,0) dcl 1764 set ref 1839* 1894* 1896 1899 1932* 1933 1935 1940 1942 lep 1(11) based bit(1) level 3 packed packed unaligned dcl 2-55 set ref 580 2113* line based char packed unaligned dcl 2186 in procedure "help_rql_" ref 2380 2380 2391 2564 2567 2574 2578 2586 3743 3762 3782 3790 3799 3804 3809 3809 4012 4012 4019 4020 4031 4033 4054 4076 4096 4150 4400 4477 4484 line 022410 automatic varying char(256) dcl 4548 in procedure "print_header" set ref 4586* 4593* 4598* 4603* 4608* 4612* 4617* 4622* 4626 4661* line1 based char packed unaligned dcl 3716 ref 3758 3768 3819 line_arr based char(1) array packed unaligned dcl 2186 set ref 2384 2568 2579 3764 3783 3796 3801 4081 4194 4489 4494 line_out based char array level 3 dcl 1783 set ref 1831* 1857* 1874* 1875* 1896* 1899* 1909* 1935* 1940* 1942* 1954* 1964* 1976* 1994* 1997* 1999 2002* 2013* 2092 2107* 2131* 2134* 2162 2164 line_position 021054 automatic fixed bin(24,0) dcl 1789 set ref 1838* 1847* 1849* 1849 1871* 1875 1876 1895* 1896 1899 1903 1909 1910 1935 1940 1942 1949 1954 1958 1964 1968 1976 1978 2002 line_text based char packed unaligned dcl 2186 set ref 3822 4040 4058 4113 4150 4165 4226 4236 4237 4280 4318 4322 4326 4326 4342 4345 4352 4370 4370 4373 4376 4377 4382 4423 4451 4460 line_text_arr based char(1) array packed unaligned dcl 2186 set ref 4012 4012 4043 4054 4123 4123 4126 4126 4136 4178 4285 4350 4384 4431 4455 4457 linfo 2 based structure array level 2 in structure "Deps_" dcl 3718 in procedure "parse_info_into_entry_points" linfo 2 based structure array level 2 in structure "Deps" dcl 196 in procedure "help_rql_" set ref 452* 561* linfo parameter structure level 1 dcl 3575 in procedure "parse_entry_point_into_units" set ref 3570 linfo 2 based structure array level 2 in structure "Deps_" dcl 2879 in procedure "get_ep_list" list based structure level 1 dcl 277 in procedure "help_rql_" set ref 526 526 list based structure level 1 dcl 2357 in procedure "get_arg_list" list based structure level 1 dcl 1783 in procedure "format_list" list based structure level 1 dcl 3075 in procedure "get_title_list" list based structure level 1 dcl 2943 in procedure "get_list" set ref 2969 2969 2995 2995 list based structure level 1 dcl 2883 in procedure "get_ep_list" list based structure level 1 dcl 2637 in procedure "get_brief_data" list_args based structure level 1 dcl 2241 list_base based structure level 1 dcl 2232 in procedure "get_arg_descriptions" list_base based structure level 1 dcl 3030 in procedure "get_list_base" set ref 3044 3044 list_base based structure level 1 dcl 284 in procedure "help_rql_" list_base based structure level 1 dcl 2943 in procedure "get_list" list_base based structure level 1 dcl 2629 in procedure "get_brief_data" list_cas based structure level 1 dcl 2222 list_of 000120 automatic bit(1) packed unaligned dcl 121 set ref 2391 2404 2415 2741* 3594* 3642* 3643* 3651 3664 4017 list_of_list 33(05) based bit(1) array level 4 in structure "Dlinfo_" packed packed unaligned dcl 2620 in procedure "get_brief_data" set ref 2685 2707 2741 list_of_list 33(05) based bit(1) array level 4 in structure "Dlinfo_" packed packed unaligned dcl 3580 in procedure "parse_entry_point_into_units" set ref 3651* 3664* literal_sw 1(05) 007264 automatic bit(1) initial level 3 packed packed unaligned dcl 1-7 set ref 1-7* long_line 021041 automatic bit(1) packed unaligned dcl 1764 set ref 1803* 1842* lr parameter structure level 1 dcl 3200 in procedure "parse_answer" set ref 3197 lr 005456 automatic structure level 1 dcl 271 in procedure "help_rql_" set ref 1095* ltrim builtin function dcl 314 ref 2480 2760 3112 3329 3553 3762 3799 4484 match constant fixed bin(17,0) initial dcl 334 ref 1355 1743 match_result 000526 automatic fixed bin(17,0) dcl 121 set ref 636* 637 645* 646 891* 892 1347* 1348 1355 max builtin function dcl 314 ref 1613 1854 1944 1986 max_Lpgh 10 based fixed bin(17,0) level 2 dcl 2-55 ref 1825 1825 3857 3875 3910 maxlength builtin function dcl 314 ref 2410 3309 3386 3427 3478 3501 3526 min builtin function dcl 314 ref 402 596 603 1810 2664 min_Lpgh 7 based fixed bin(17,0) level 2 dcl 2-55 ref 3857 3875 3910 min_date_time 12 based fixed bin(71,0) level 2 dcl 2-55 ref 621 623 1538 1542 1544 mod builtin function dcl 314 ref 3420 3471 4867 multiple_syntax 020717 automatic bit(1) initial packed unaligned dcl 2186 set ref 2073 2079 2083 2186* 2835* 2837* 2842 name parameter varying char dcl 4508 ref 4505 4510 4510 4510 4510 4510 4515 4515 4515 new_entry constant fixed bin(17,0) initial dcl 334 ref 1038 1076 1560 new_paragraph 021542 automatic bit(1) initial packed unaligned dcl 3587 in procedure "parse_entry_point_into_units" set ref 3587* 3618* 3623 3668* 3669 new_paragraph 020715 automatic bit(1) initial packed unaligned dcl 2186 in procedure "help_rql_" set ref 2186* new_section parameter varying char(88) dcl 1595 in procedure "find_pgh" set ref 1585 1629* 1632* new_section 000527 automatic varying char(88) dcl 121 in procedure "help_rql_" set ref 637* 652* 882* 897* 914 933* 1066* 1068* 1070* 1071* 1083* 1085* 1087* 1088* 1232* 1236* 1243 1392* 1398 1401* 1513* 1516* 1525 3924 no_match constant fixed bin(17,0) initial dcl 334 ref 637 646 892 1711 1745 normal constant fixed bin(17,0) initial dcl 334 ref 961 979 1050 1074 1091 1359 1568 null builtin function dcl 314 ref 449 580 1470 1-7 1-7 1-7 2716 2958 2962 2984 2988 3010 3156 old_format 327(01) based bit(1) array level 4 in structure "Deps" packed packed unaligned dcl 196 in procedure "help_rql_" set ref 767* 789* 1420* 1435* old_format 327(01) based bit(1) array level 4 in structure "Deps_" packed packed unaligned dcl 3718 in procedure "parse_info_into_entry_points" set ref 3819* one_line_list 021044 automatic bit(1) packed unaligned dcl 1764 set ref 1806* one_line_paragraph 020716 automatic bit(1) initial packed unaligned dcl 2186 in procedure "help_rql_" set ref 2186* one_line_paragraph 021043 automatic bit(1) packed unaligned dcl 1764 in procedure "format_list" set ref 1805* 1841* 1924* 1926* 1933 1935 one_line_pgh 020720 automatic bit(1) packed unaligned dcl 2186 set ref 2073 2077 2846* 2849* 2850* op parameter fixed bin(17,0) dcl 3200 in procedure "parse_answer" set ref 3197 3313* 3326* 3336 3344* 3350* 3352* 3357* 3364* 3366* 3368* 3373* 3403 3404* 3406* 3411 3412* 3414* 3419 3420* 3422* 3454 3455* 3457* 3462 3463* 3465* 3470 3471* 3473* 3556 3560* op 000556 automatic fixed bin(17,0) dcl 121 in procedure "help_rql_" set ref 1095* 1097 1103 op_code 000111 constant fixed bin(17,0) initial array dcl 3265 ref 3326 3344 3350 3352 3357 3364 3366 3368 3373 3403 3404 3406 3411 3412 3414 3419 3420 3422 3454 3455 3457 3462 3463 3465 3470 3471 3473 operand 021501 automatic varying char(89) dcl 3217 set ref 3335* 3344 3344 3350 3350 3352 3352 3357 3357 3364 3364 3366 3366 3368 3373 3373 3386 3388* 3391 3395 3395 3409 3409 3417 3417 3427 3442 3446 3446 3460 3460 3468 3468 3478 3492 3501 3514 3526 3539 3546* operation 021475 automatic varying char(12) dcl 3217 set ref 3307* 3309 3318 3320 3383* 3430 3431* 3437* 3481 3482* 3488* 3504 3505* 3510* 3529 3530* 3535* 3542* 3546* 3559* output based char packed unaligned dcl 293 in procedure "help_rql_" ref 549 549 output based char packed unaligned dcl 2145 in procedure "format_list" set ref 2177* output_pending 2 000014 internal static bit(1) level 2 dcl 4791 set ref 4825 padding 1(07) 007264 automatic bit(29) initial level 3 packed packed unaligned dcl 1-7 set ref 1-7* path based structure array level 2 dcl 3151 pgh based char packed unaligned dcl 295 in procedure "help_rql_" ref 2761 pgh 000100 automatic varying char dcl 1618 in begin block on line 1616 set ref 1640* 1642* 1646 1647 prev_operand 021531 automatic fixed bin(17,0) dcl 3294 set ref 3403* 3404 3411* 3412 3419* 3420 3454* 3455 3462* 3463 3470* 3471 print_array based structure array level 2 in structure "LIST" dcl 245 in procedure "help_rql_" print_array based structure array level 2 in structure "list" dcl 1783 in procedure "format_list" procedure_name parameter char packed unaligned dcl 103 set ref 99 712* 718* 1052* 1057* 1061* 1071* 1076* 1088* 1456* 1495* 1506* 2120* 2123* prompt_after_explanation 1(06) 007264 automatic bit(1) initial level 3 packed packed unaligned dcl 1-7 set ref 1-7* query 000557 automatic varying char(200) dcl 121 set ref 987* 993* 995* 1003* 1005* 1007* 1018* 1018 1019 1019* 1019 1022* 1022 1052* 1052 1057* 1057 1061 1061* 1061 1071* 1071 1088* 1088 1198* 1243* 1525* query_answers based structure level 1 dcl 297 set ref 1460 1460 1463 1463 query_code 3 007264 automatic fixed bin(35,0) initial level 2 dcl 1-7 set ref 398* 1-7* query_info 007264 automatic structure level 1 dcl 1-7 set ref 1052 1052 1057 1057 1061 1061 1071 1071 1076 1076 1088 1088 1495 1495 1506 1506 query_info_version_6 constant fixed bin(17,0) initial dcl 1-36 ref 394 query_type 000642 automatic fixed bin(17,0) dcl 121 set ref 959* 961* 979 979 979 979 979 988 988 996 1038 1050 1057 1061 1065 1074* 1076 1081 1091* 1244* 1359* 1476* 1488* 1526* 1560* 1568* question_iocbp 4 007264 automatic pointer initial level 2 dcl 1-7 set ref 1-7* ref_name parameter varying char(32) dcl 2875 in procedure "get_ep_list" ref 2872 2913 2920 ref_name 000643 automatic varying char(32) dcl 121 in procedure "help_rql_" set ref 408* 505 505* 508* 511* 521* 1267 1267* 1271* 1273 1280 1282* 1292 1317* remove_N 021231 automatic fixed bin(17,0) dcl 2363 set ref 2406* 2428 2430 2440 repeat_time 10 007264 automatic fixed bin(71,0) initial level 2 dcl 1-7 set ref 1-7* result 000102 automatic fixed bin(17,0) dcl 1707 set ref 1741* 1743* 1745* 1746 return_from_list_requests constant fixed bin(17,0) initial dcl 334 ref 979 988 1065 1488 reverse builtin function dcl 314 ref 508 508 1271 1271 2451 2465 2471 2555 4012 4031 4033 4054 4477 rtrim builtin function dcl 314 ref 505 685 1068 1068 1070 1085 1085 1087 1267 2757 2759 2904 3098 3762 4633 4633 4641 4697 4697 4705 save_N 021053 automatic fixed bin(17,0) dcl 1764 set ref 1812* 1816 1902* 1902 1948* 1948 save_args 021126 automatic varying char(200) dcl 2247 set ref 2289* 2291* 2291 2294 save_length 021543 automatic fixed bin(21,0) dcl 3587 set ref 3598* save_lines 021272 automatic fixed bin(17,0) dcl 2603 set ref 2647* 2672* 2672 2785* 2785 2787* 2787 2795 save_title 000232 automatic varying char(80) dcl 121 set ref 504* 520 scn 1(05) based bit(1) level 3 in structure "help_args" packed packed unaligned dcl 2-55 in procedure "help_rql_" ref 594 628 633 642 883 889 922 scn 000100 automatic varying char(88) array dcl 1703 in procedure "find_section" set ref 1714* 1716* 1727 1728 1736 1739 scn based varying char(80) array level 2 in structure "help_args" dcl 2-55 in procedure "help_rql_" ref 597 scn 33 based bit(1) array level 4 in structure "Dlinfo_" packed packed unaligned dcl 3068 in procedure "get_title_list" ref 3085 3106 3122 scn 33 based bit(1) array level 4 in structure "Dlinfo_" packed packed unaligned dcl 2620 in procedure "get_brief_data" set ref 2660 2744 2840 scn 33 based bit(1) array level 4 in structure "Dlinfo_" packed packed unaligned dcl 1698 in procedure "find_section" ref 1720 scn parameter structure level 1 dcl 3200 in procedure "parse_answer" set ref 3197 scn 33 based bit(1) array level 4 in structure "Dlinfo_" packed packed unaligned dcl 2225 in procedure "get_arg_descriptions" ref 2257 scn 33 based bit(1) array level 4 in structure "Dlinfo" packed packed unaligned dcl 219 in procedure "help_rql_" set ref 456 914 988 993 1000 1001 1016 1052 1052* 1057* 1061* 1148 1217 1236 1345 1398 1516 3875 3924 3941 scn 33 based bit(1) array level 4 in structure "Dlinfo_" packed packed unaligned dcl 1599 in procedure "find_pgh" ref 1632 scn 33 based bit(1) array level 4 in structure "Dlinfo_" packed packed unaligned dcl 3580 in procedure "parse_entry_point_into_units" set ref 3655* scn 007301 automatic structure level 1 dcl 304 in procedure "help_rql_" set ref 636* 645* 891* 1095* 1347* scn 31 parameter bit(1) level 3 in structure "unit" packed packed unaligned dcl 4771 in procedure "print_pgh_2nl" ref 4821 scn 31 based bit(1) array level 3 in structure "common_units" packed packed unaligned dcl 275 in procedure "help_rql_" set ref 541* search builtin function dcl 314 ref 2291 3304 3332 3804 4253 search_unseen constant fixed bin(17,0) initial dcl 334 ref 979 1061 1244 seen_by_user 31(01) based bit(1) array level 3 in structure "common_units" packed packed unaligned dcl 275 in procedure "help_rql_" set ref 4832* 4848 seen_by_user 31(01) parameter bit(1) level 3 in structure "unit" packed packed unaligned dcl 4845 in procedure "seen_pgh" ref 4850 seen_by_user 31(01) parameter bit(1) level 3 in structure "unit" packed packed unaligned dcl 4771 in procedure "print_pgh_2nl" set ref 4831* seen_by_user 327 based bit(1) array level 4 in structure "Deps" packed packed unaligned dcl 196 in procedure "help_rql_" set ref 1303* 1536* 1538 1542 1544 3894 seg_char based char(1) array packed unaligned dcl 308 set ref 411 setting parameter bit(1) dcl 4531 ref 4528 4533 size_current_space parameter fixed bin(21,0) dcl 4862 ref 4858 4867 4867 some_unseen constant fixed bin(17,0) initial dcl 334 ref 979 1057 1526 space_used parameter fixed bin(21,0) dcl 3024 set ref 3021 3038 3038* srh 014102 automatic structure level 1 dcl 310 in procedure "help_rql_" set ref 637* 652* 897* 1095* 1392* srh parameter structure level 1 dcl 3200 in procedure "parse_answer" set ref 3197 srh 000100 automatic varying char(88) array dcl 1619 in begin block on line 1616 set ref 1623* 1625* 1645 1646 1647 1670 1671 srh 1(06) based bit(1) level 3 in structure "help_args" packed packed unaligned dcl 2-55 in procedure "help_rql_" ref 601 628 633 883 895 922 1634 srh based varying char(80) array level 2 in structure "help_args" dcl 2-55 in procedure "help_rql_" ref 604 status_code 2 007264 automatic fixed bin(35,0) initial level 2 dcl 1-7 set ref 1-7* store_arg 021301 automatic varying char(88) dcl 2643 set ref 2757* 2759* 2760* 2760 2761 str parameter char packed unaligned dcl 2174 ref 2171 2176 2177 2177 2177 substr builtin function dcl 314 set ref 462 476 508 1271 1280 1282 1282 1289 1860 1860 1875* 1886 1896 1896* 1896 1899* 1899 1909* 1914 1920 1935 1935* 1935 1935 1940* 1940 1940 1942* 1942 1942 1954* 1954 1964* 1964 1973 1976* 1976 2002* 2005 2040 2040 2042 2042 2177* 2431 2432 2451 2459 2465 2471 2475 2480 2481 2492 2493 2497 2504 2505 2508 2520 2527 2530 2536 2551 2552 2557 2567 2578 2664 2775 2782 2898 2902 2903 2904 2905 3092 3096 3097 3098 3099 3307 3311 3311 3329 3335 3431 3431 3482 3482 3505 3505 3530 3530 3553 3643 3647 3762 3799 3804 3809 3809 4012 4031 4033 4054 4058 4259 4322 4326 4484 4510 4510 4510 4510 4515 4515 suffix parameter char packed unaligned dcl 103 ref 99 505 508 508 1267 1271 1271 sum builtin function dcl 314 ref 570 1855 1945 1987 2318 suppress_name_sw 1(01) 007264 automatic bit(1) initial level 3 packed packed unaligned dcl 1-7 set ref 397* 1-7* suppress_spacing 1(04) 007264 automatic bit(1) initial level 3 packed packed unaligned dcl 1-7 set ref 1-7* switches 1 007264 automatic structure level 2 dcl 1-7 syntax_list 33(04) based bit(1) array level 4 in structure "Dlinfo_" packed packed unaligned dcl 2620 in procedure "get_brief_data" set ref 2650 syntax_list 33(04) based bit(1) array level 4 in structure "Dlinfo_" packed packed unaligned dcl 3580 in procedure "parse_entry_point_into_units" set ref 3647* t1 parameter char packed unaligned dcl 4093 ref 4090 4096 temp 000103 automatic varying char(88) dcl 1708 set ref 1736* 1738* 1738 1739* 1739 1741 text 022277 automatic varying char(200) dcl 4474 set ref 4478* 4484* 4498 title 13 based varying char(80) level 3 in structure "list" dcl 277 in procedure "help_rql_" set ref 520* 540 788* 813* 1445* title 13 based varying char(80) level 3 in structure "list" dcl 2943 in procedure "get_list" set ref 2977* title 4 based varying char(80) array level 3 in structure "Dlinfo_" dcl 1599 in procedure "find_pgh" ref 1632 1665 1667 title 13 based varying char(80) level 3 in structure "list_cas" dcl 2222 in procedure "get_arg_descriptions" ref 2324 2331 title 4 based varying char(80) array level 3 in structure "Dlinfo_" dcl 2225 in procedure "get_arg_descriptions" ref 2259 2272 title 1(04) based bit(1) level 3 in structure "help_args" packed packed unaligned dcl 2-55 in procedure "help_rql_" ref 883 3936 title 4 based varying char(80) array level 3 in structure "Dlinfo" dcl 219 in procedure "help_rql_" set ref 462 462 995 1005 1007 1019 1022 1236 1516 title 2 parameter varying char(80) level 2 in structure "unit" dcl 4771 in procedure "print_pgh_2nl" set ref 4821* title 13 based varying char(80) level 3 in structure "list_args" dcl 2241 in procedure "get_arg_descriptions" set ref 2259* 2272* 2324* title 2 based varying char(80) array level 2 in structure "common_units" dcl 275 in procedure "help_rql_" set ref 476 476 504 540* 545* title 4 based varying char(80) array level 3 in structure "Dlinfo_" dcl 3068 in procedure "get_title_list" ref 3088 3089 title 4 based varying char(80) array level 3 in structure "Dlinfo_" dcl 2620 in procedure "get_brief_data" set ref 2664 2664 2729 title 000132 automatic varying char(88) dcl 1709 in procedure "find_section" set ref 1722* 1724* 1728 1741 title 13 000655 automatic varying char(80) level 3 in structure "ca" dcl 267 in procedure "help_rql_" set ref 1434* title 4 based varying char(80) array level 3 in structure "Dlinfo_" dcl 1698 in procedure "find_section" ref 1722 1724 title 13 based varying char(80) level 3 in structure "list" dcl 1783 in procedure "format_list" set ref 2059 2059* 2071 2073* 2075* 2155 title 13 based varying char(80) level 3 in structure "list" dcl 2637 in procedure "get_brief_data" set ref 2729* 2731 2734 2745 2775 2782 2782* 2787 title 4 based varying char(80) array level 3 in structure "Dlinfo_" dcl 3580 in procedure "parse_entry_point_into_units" set ref 3627* 3640* 3643 3643 3647 3647 3652* title_search 000122 automatic varying char(80) dcl 1662 set ref 1665* 1667* 1671 translate builtin function dcl 314 ref 1625 1642 1667 1716 1724 2291 unit 2 based structure array level 2 in structure "Dlinfo_" dcl 3580 in procedure "parse_entry_point_into_units" set ref 3685 unit 2 based structure array level 2 in structure "Dlinfo_" dcl 2620 in procedure "get_brief_data" set ref 2743* 2811* 2839* unit 2 based structure array level 2 in structure "Dlinfo_" dcl 1698 in procedure "find_section" unit 2 based structure array level 2 in structure "Dlinfo_" dcl 1599 in procedure "find_pgh" unit parameter structure level 1 dcl 2354 in procedure "get_arg_list" ref 2350 unit 2 based structure array level 2 in structure "Dlinfo_" dcl 3068 in procedure "get_title_list" unit parameter structure level 1 dcl 4845 in procedure "seen_pgh" ref 4842 unit parameter structure level 1 dcl 4771 in procedure "print_pgh_2nl" set ref 4768 4802 4810 unit 2 based structure array level 2 in structure "Dlinfo" dcl 219 in procedure "help_rql_" set ref 471 861* 934* 936* 939* 944* 948* 949* 983* 1010 1030 1109* 1111* 1138* 1140* 1176* 1207* 1223* 1238* 1402* 1407* 1520* 3857* 3875* unit 2 based structure array level 2 in structure "Dlinfo_" dcl 2225 in procedure "get_arg_descriptions" value based varying char(425) array level 3 dcl 3151 set ref 3168* 3174* 3174 verify builtin function dcl 314 ref 2039 2555 2902 3096 3782 4076 4242 4265 4370 4451 4460 version 007264 automatic fixed bin(17,0) level 2 dcl 1-7 set ref 394* wait_list 000010 internal static structure level 1 dcl 4787 set ref 4829 4829 word 021752 automatic varying char(80) array dcl 4212 set ref 4240* 4252 4259 4259* 4275 4275 4275 4275 4275 4275 4275 word_text based char packed unaligned dcl 4212 ref 4242 4249 4253 4254 4259 4263 4265 4270 word_text_arr based char(1) array packed unaligned dcl 4212 set ref 4228 4248 4261 4269 write_status 000014 internal static structure level 1 dcl 4791 set ref 4824 4824 yes_or_no_sw 1 007264 automatic bit(1) initial level 3 packed packed unaligned dcl 1-7 set ref 396* 1-7* yes_sw 000654 automatic bit(1) packed unaligned dcl 121 set ref 2120* 2123* 2125 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. PDinfo_seg based structure level 1 dcl 3-41 PPDinfo_seg automatic pointer dcl 3-41 VPDinfo_seg_2 internal static fixed bin(17,0) initial dcl 3-41 help_$check_info_segs 000000 constant entry external dcl 3-71 help_$term 000000 constant entry external dcl 2-160 query_info_version_3 internal static fixed bin(17,0) initial dcl 1-33 query_info_version_4 internal static fixed bin(17,0) initial dcl 1-34 query_info_version_5 internal static fixed bin(17,0) initial dcl 1-35 NAMES DECLARED BY EXPLICIT CONTEXT. ASK 006430 constant label dcl 979 ref 964 1048 1245 1360 1477 1489 1527 1561 BAD_OPERAND 030332 constant label dcl 3546 ref 3352 3368 3373 BLOCK 013473 constant label dcl 1616 CHECK_OTHER_ENTRIES 013200 constant label dcl 1531 ref 1230 CONTINUE 013416 constant label dcl 1564 ref 967 973 1115 1127 1144 1181 1214 1221 1409 END_ENTRIES 031721 constant label dcl 3830 ref 3737 3756 END_FORM 035315 constant label dcl 4626 ref 4591 4596 4601 4606 4610 4615 4620 END_LOOP 021007 constant label dcl 2306 END_OF_INFO 013100 constant label dcl 1511 ref 965 1241 ERROR 026671 constant label dcl 3313 in procedure "parse_answer" ref 3318 3384 3389 3433 3439 3484 3489 3506 3511 3531 3536 3544 3548 ERROR 012714 constant label dcl 1491 in procedure "help_rql_" ref 1100 1158 1164 1187 1193 1199 1286 1343 1390 1482 FORM 000100 constant label array(8) dcl 4586 ref 4584 NEXT_ENTRY 031711 constant label dcl 3822 ref 3773 3778 NEXT_LIST 020531 constant label dcl 2265 ref 2259 NEXT_OPERAND 030357 constant label dcl 3550 ref 3355 3371 3378 3393 3444 3494 3515 3540 NO_OPERANDS 030311 constant label dcl 3542 ref 3338 3496 3517 Nlines_less_Lpgh 032153 constant entry internal dcl 3907 ref 922 3897 PARSE 010013 constant label dcl 1095 ref 1497 1508 PRINT_EP_LIST 017552 constant label dcl 2113 ref 2097 PRINT_LIST 017422 constant label dcl 2097 ref 2061 PRINT_NEXT_LIST 024263 constant label dcl 2819 ref 2827 PRINT_PGH 036242 constant label dcl 4815 ref 4799 QUERY 006353 constant label dcl 954 ref 836 863 QUIT 013432 constant label dcl 1577 ref 1120 3162 RESPONSE_UNKNOWN 026636 constant label dcl 3311 ref 3322 REST 010170 constant label dcl 1135 ref 1152 REST_END 010264 constant label dcl 1142 ref 1135 RETURN 013427 constant label dcl 1573 ref 391 723 729 770 819 976 1117 1531 1544 3611 RE_ASK 006763 constant label dcl 1046 ref 1211 1251 1261 1318 1365 1414 1430 1454 1458 1464 1468 1502 ROW_RETURN 014516 constant label dcl 1820 ref 2024 SEARCH 011767 constant label dcl 1385 ref 1372 1376 1381 SECTION 011603 constant label dcl 1338 ref 1325 1329 1334 TITLE 011022 constant label dcl 1251 ref 1265 YES 010025 constant label dcl 1105 ref 1313 1353 1558 YES_END 010076 constant label dcl 1113 ref 1108 check_args 015572 constant label dcl 1920 ref 1860 ck_conditions 031722 constant entry internal dcl 3847 ref 1010 ck_more_conditions 032025 constant entry internal dcl 3870 ref 1030 consecutive_lines 022124 constant entry internal dcl 2485 ref 2417 ct_pgh_lines 032113 constant entry internal dcl 3891 ref 1040 1171 1309 do 000000 constant label array(32) dcl 1105 ref 1097 1103 end_ck 023410 constant label dcl 2696 ref 2682 2691 find_end_array 017345 constant label dcl 2090 find_pgh 013437 constant entry internal dcl 1585 ref 637 652 897 1392 find_section 014121 constant entry internal dcl 1686 ref 636 645 891 1347 format_list 014442 constant entry internal dcl 1755 ref 513 522 846 1255 1460 2784 found_in_title 014004 constant entry internal dcl 1659 ref 1634 get_arg_descriptions 020444 constant entry internal dcl 2210 ref 789 1435 get_arg_list 021256 constant entry internal dcl 2350 ref 2743 get_brief_data 023117 constant entry internal dcl 2599 ref 767 1420 get_ep_list 024453 constant entry internal dcl 2872 ref 511 521 get_list 025123 constant entry internal dcl 2937 ref 503 518 785 844 1253 2271 2323 2715 get_list_base 025415 constant entry internal dcl 3021 ref 432 get_title 026164 constant entry internal dcl 3117 ref 3082 get_title_list 025470 constant entry internal dcl 3055 ref 845 1254 give_list_back 025341 constant entry internal dcl 3001 ref 516 552 help_rql_ 002716 constant entry external dcl 99 info$init 032336 constant entry internal dcl 3972 ref 413 initialize_switches 032357 constant entry internal dcl 3986 ref 400 line$HT_SP 033220 constant entry internal dcl 4189 ref 2282 line$args 032376 constant entry internal dcl 4006 ref 2288 2396 line$blank 032656 constant entry internal dcl 4071 ref 2282 3734 3775 line$contains 032723 constant entry internal dcl 4090 ref 3634 line$desc 032757 constant entry internal dcl 4105 ref 2300 line$end_of_info 033130 constant entry internal dcl 4147 ref 3728 line$entry 033147 constant entry internal dcl 4158 ref 3732 line$generated 033247 constant entry internal dcl 4203 ref 3614 line$init 033577 constant entry internal dcl 4298 ref 3980 line$list_items 033612 constant entry internal dcl 4313 ref 2391 line$new_pgh 033672 constant entry internal dcl 4336 ref 3668 line$next 033744 constant entry internal dcl 4361 ref 2280 2378 3620 4401 line$skip_blank 034047 constant entry internal dcl 4397 ref 3607 line$skip_blank_lines 034102 constant entry internal dcl 4411 ref 3673 line$skip_blanks 034153 constant entry internal dcl 4446 ref 2278 2376 3605 line$title 034232 constant entry internal dcl 4471 ref 3640 line_to_long 017126 constant label dcl 2028 ref 1855 1945 1987 list_of_lines 021634 constant entry internal dcl 2446 ref 2415 list_requests 026231 constant entry internal dcl 3145 ref 1485 long_lines 022723 constant entry internal dcl 2562 ref 2410 multi_line_arg 022430 constant entry internal dcl 2517 ref 2419 multiple_words 020256 constant entry internal dcl 2035 ref 1869 new_section_nscn 032212 constant entry internal dcl 3921 ref 931 out 020413 constant entry internal dcl 2171 ref 2102 2158 2164 2165 output_list 020110 constant entry internal dcl 2141 ref 530 parse_answer 026574 constant entry internal dcl 3197 ref 1095 parse_entry_point_into_units 030453 constant entry internal dcl 3570 ref 452 561 parse_info_into_entry_points 031137 constant entry internal dcl 3704 ref 414 parse_operand 000040 constant label array(32) dcl 3338 set ref 3313 3336 3560 print_brief_data 024166 constant entry internal dcl 2799 ref 807 1427 print_header 034440 constant entry internal dcl 4541 ref 584 772 783 854 929 2808 print_header_only 035605 constant entry internal dcl 4680 ref 728 1466 print_list 017174 constant entry internal dcl 2065 ref 585 855 1258 1463 1475 2825 2854 print_list_nnl 017137 constant entry internal dcl 2053 print_pgh 036212 constant entry internal dcl 4802 ref 939 948 949 1109 1138 1176 1207 1407 2811 2839 print_pgh_2nl 036170 constant entry internal dcl 4768 ref 861 944 1111 1140 print_pgh_nnl 036233 constant entry internal dcl 4810 ref 934 936 1402 print_pgh_titles 032241 constant entry internal dcl 3934 ref 838 prt_pgh_nnl 032300 constant entry internal dcl 3952 ref 936 section$arg_list 034341 constant entry internal dcl 4505 ref 3652 section$assert_line_begins_a_section 034432 constant entry internal dcl 4528 ref 4307 seen_pgh 036413 constant entry internal dcl 4842 ref 983 1223 1238 1520 3857 3875 set_list_size 025247 constant entry internal dcl 2981 ref 523 set_space_used 036437 constant entry internal dcl 4858 ref 453 517 526 549 562 2969 2995 3038 3044 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 42512 42572 42306 42522 Length 43156 42306 60 347 204 10 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME help_rql_ 10507 external procedure is an external procedure. find_pgh internal procedure shares stack frame of external procedure help_rql_. begin block on line 1616 107 begin block uses auto adjustable storage. found_in_title internal procedure shares stack frame of begin block on line 1616. find_section 124 internal procedure uses auto adjustable storage. format_list internal procedure shares stack frame of external procedure help_rql_. multiple_words internal procedure shares stack frame of external procedure help_rql_. out 65 internal procedure is called during a stack extension. get_arg_descriptions internal procedure shares stack frame of external procedure help_rql_. get_arg_list internal procedure shares stack frame of external procedure help_rql_. list_of_lines internal procedure shares stack frame of external procedure help_rql_. consecutive_lines internal procedure shares stack frame of external procedure help_rql_. multi_line_arg internal procedure shares stack frame of external procedure help_rql_. long_lines internal procedure shares stack frame of external procedure help_rql_. get_brief_data internal procedure shares stack frame of external procedure help_rql_. get_ep_list internal procedure shares stack frame of external procedure help_rql_. get_list internal procedure shares stack frame of external procedure help_rql_. get_list_base internal procedure shares stack frame of external procedure help_rql_. get_title_list internal procedure shares stack frame of external procedure help_rql_. get_title internal procedure shares stack frame of external procedure help_rql_. list_requests internal procedure shares stack frame of external procedure help_rql_. parse_answer internal procedure shares stack frame of external procedure help_rql_. parse_entry_point_into_units internal procedure shares stack frame of external procedure help_rql_. parse_info_into_entry_points internal procedure shares stack frame of external procedure help_rql_. ck_conditions internal procedure shares stack frame of external procedure help_rql_. ck_more_conditions internal procedure shares stack frame of external procedure help_rql_. ct_pgh_lines internal procedure shares stack frame of external procedure help_rql_. Nlines_less_Lpgh internal procedure shares stack frame of external procedure help_rql_. new_section_nscn internal procedure shares stack frame of external procedure help_rql_. print_pgh_titles internal procedure shares stack frame of external procedure help_rql_. prt_pgh_nnl internal procedure shares stack frame of external procedure help_rql_. info$init internal procedure shares stack frame of external procedure help_rql_. initialize_switches internal procedure shares stack frame of external procedure help_rql_. line$args internal procedure shares stack frame of external procedure help_rql_. line$blank internal procedure shares stack frame of external procedure help_rql_. line$contains internal procedure shares stack frame of external procedure help_rql_. line$desc internal procedure shares stack frame of external procedure help_rql_. line$end_of_info internal procedure shares stack frame of external procedure help_rql_. line$entry internal procedure shares stack frame of external procedure help_rql_. line$HT_SP internal procedure shares stack frame of external procedure help_rql_. line$generated internal procedure shares stack frame of external procedure help_rql_. line$init internal procedure shares stack frame of external procedure help_rql_. line$list_items internal procedure shares stack frame of external procedure help_rql_. line$new_pgh internal procedure shares stack frame of external procedure help_rql_. line$next internal procedure shares stack frame of external procedure help_rql_. line$skip_blank internal procedure shares stack frame of external procedure help_rql_. line$skip_blank_lines internal procedure shares stack frame of external procedure help_rql_. line$skip_blanks internal procedure shares stack frame of external procedure help_rql_. line$title internal procedure shares stack frame of external procedure help_rql_. section$arg_list internal procedure shares stack frame of external procedure help_rql_. section$assert_line_begins_a_section internal procedure shares stack frame of external procedure help_rql_. print_header internal procedure shares stack frame of external procedure help_rql_. print_pgh_2nl internal procedure shares stack frame of external procedure help_rql_. seen_pgh internal procedure shares stack frame of external procedure help_rql_. set_space_used internal procedure shares stack frame of external procedure help_rql_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 wait_list print_pgh_2nl 000014 write_status print_pgh_2nl STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME begin block on line 1616 000100 pgh begin block on line 1616 000100 srh begin block on line 1616 000122 title_search found_in_title find_section 000100 Ssearch find_section 000100 scn find_section 000101 i find_section 000102 result find_section 000103 temp find_section 000132 title find_section help_rql_ 000100 Iep help_rql_ 000101 Iunit help_rql_ 000102 Iunit_end help_rql_ 000103 Iunit_search help_rql_ 000104 Iunit_syntax help_rql_ 000116 Lcount help_rql_ 000117 Linfo_name help_rql_ 000120 list_of help_rql_ 000121 Loutput help_rql_ 000122 Loutput_line help_rql_ 000123 Lpgh help_rql_ 000124 Lseg help_rql_ 000125 Ncommon_units help_rql_ 000126 Nconsecutive_bad_ops help_rql_ 000127 Nuncommon_units help_rql_ 000130 Nprint_units help_rql_ 000131 Nlines help_rql_ 000132 Nlines_titles help_rql_ 000133 Nlists_of_args help_rql_ 000134 Nlists_of_bf_args help_rql_ 000135 No_list_elements help_rql_ 000136 Nep_pghs help_rql_ 000137 Nunit_bf_prt help_rql_ 000140 Plist help_rql_ 000142 Plist_of_titles help_rql_ 000144 Plist_of_cas help_rql_ 000146 Pcommon_units help_rql_ 000150 PDlinfo help_rql_ 000152 Pep_list help_rql_ 000154 Plist_base help_rql_ 000156 Plists_of_args help_rql_ 000222 Pnext_free_space help_rql_ 000224 Poutput help_rql_ 000226 Ppgh help_rql_ 000230 Pseg help_rql_ 000232 save_title help_rql_ 000257 Scase_sensitive help_rql_ 000260 Sdescription_present help_rql_ 000261 Sep_list_printed help_rql_ 000262 Sfirst_time help_rql_ 000263 Sfirst_pgh help_rql_ 000264 Sfound help_rql_ 000265 Sremove_line help_rql_ 000266 Syntax_section help_rql_ 000267 Sprt_args help_rql_ 000270 Sprt_bf_heading help_rql_ 000271 Sprt_list_of help_rql_ 000272 Sprt_entry_pts help_rql_ 000273 Sprt_one_paragraph help_rql_ 000274 Sloop help_rql_ 000275 Snl1 help_rql_ 000276 Snl2 help_rql_ 000277 ISnl3 help_rql_ 000300 Ssearch help_rql_ 000301 Sseen help_rql_ 000302 answer help_rql_ 000500 code help_rql_ 000501 ct_lines help_rql_ 000502 ep_name help_rql_ 000524 i help_rql_ 000525 j help_rql_ 000526 match_result help_rql_ 000527 new_section help_rql_ 000556 op help_rql_ 000557 query help_rql_ 000642 query_type help_rql_ 000643 ref_name help_rql_ 000654 yes_sw help_rql_ 000655 ca help_rql_ 005456 lr help_rql_ 007264 query_info help_rql_ 007301 scn help_rql_ 014102 srh help_rql_ 020704 Pline_text help_rql_ 020706 Lline_text help_rql_ 020710 Pline help_rql_ 020712 Lline help_rql_ 020713 Lparg help_rql_ 020714 bf_no_ARG_dsp help_rql_ 020715 new_paragraph help_rql_ 020716 one_line_paragraph help_rql_ 020717 multiple_syntax help_rql_ 020720 one_line_pgh help_rql_ 020721 Number_lines help_rql_ 020722 Sconsecutive_arg_lines help_rql_ 020724 Phelp_requests help_rql_ 020726 Linfo_seg help_rql_ 020730 Pinfo_seg help_rql_ 020732 current_line_begins_section help_rql_ 021014 Ssearch find_pgh 021015 i find_pgh 021016 j find_pgh 021020 PPgh find_pgh 021022 LPgh find_pgh 021032 Icol format_list 021033 Ipgh format_list 021034 Irow format_list 021036 Pspaces format_list 021040 Continued_arg format_list 021041 long_line format_list 021042 Smultiple_words format_list 021043 one_line_paragraph format_list 021044 one_line_list format_list 021045 Sdoes_not_fit format_list 021046 No_args format_list 021047 last_line format_list 021050 length_args format_list 021051 i format_list 021052 j format_list 021053 save_N format_list 021054 line_position format_list 021122 Plist_args get_arg_descriptions 021124 Iunit get_arg_descriptions 021125 k get_arg_descriptions 021126 save_args get_arg_descriptions 021226 i get_arg_list 021227 j get_arg_list 021230 k get_arg_list 021231 remove_N get_arg_list 021272 save_lines get_brief_data 021273 Iunit get_brief_data 021274 Plist get_brief_data 021276 i get_brief_data 021277 j get_brief_data 021300 k get_brief_data 021301 store_arg get_brief_data 021376 i get_ep_list 021377 j get_ep_list 021400 k get_ep_list 021422 Plist_base get_list_base 021432 Iunit get_title_list 021433 Nlines get_title_list 021434 Nlines_pic get_title_list 021436 i get_title_list 021437 j get_title_list 021440 k get_title_list 021460 error_type list_requests 021461 code list_requests 021472 i parse_answer 021473 j parse_answer 021474 k parse_answer 021475 operation parse_answer 021501 operand parse_answer 021531 prev_operand parse_answer 021540 i parse_entry_point_into_units 021541 j parse_entry_point_into_units 021542 new_paragraph parse_entry_point_into_units 021543 save_length parse_entry_point_into_units 021554 Lline1 parse_info_into_entry_points 021555 code parse_info_into_entry_points 021556 i parse_info_into_entry_points 021557 j parse_info_into_entry_points 021560 k parse_info_into_entry_points 021656 Iline line$args 021657 continue_line line$args 021666 Iline line$blank 021676 Iline line$contains 021706 Iline line$desc 021724 Iline line$entry 021734 Iline line$HT_SP 021744 Ibreak line$generated 021745 Inonwhite line$generated 021746 Iskip line$generated 021747 Lword_text line$generated 021750 Pword_text line$generated 021752 word line$generated 022175 Nwords line$generated 022176 Ptext line$generated 022200 Ltext line$generated 022216 Iline line$list_items 022226 Iline line$new_pgh 022236 Iline line$next 022254 Pblk_line line$skip_blank_lines 022256 Lblk_line line$skip_blank_lines 022257 Sblk_line line$skip_blank_lines 022266 Iline line$skip_blanks 022276 Iline line$title 022277 text line$title 022404 Lcount print_header 022405 Linfo_name print_header 022406 Lpath print_header 022407 case print_header 022410 line print_header 022520 code print_pgh_2nl 022522 event_info print_pgh_2nl 022540 Sseen seen_pgh 022550 Pnext_space set_space_used THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_l_a r_g_a r_e_as r_ne_as r_ge_a set_stack alloc_char_temp cat_realloc_chars enter_begin_block call_ext_out_desc call_ext_out call_int_this_desc call_int_this return_mac alloc_auto_adj bound_ck_signal mdfx1 signal_op shorten_stack ext_entry_desc int_entry int_entry_desc reverse_cs set_chars_eis index_chars_eis ix_rev_chars THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. command_query_ command_query_$yes_no convert_date_to_binary_ get_line_length_$switch help_ help_$init ioa_ ioa_$nnl ioa_$rsnnl iox_$control iox_$put_chars ipc_$block THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$fatal_error error_table_$noentry error_table_$nomatch iox_$user_output LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 99 002704 1 7 002736 2186 002766 390 002772 391 002774 394 003000 396 003002 397 003004 398 003006 400 003007 402 003010 403 003030 406 003034 407 003036 408 003041 409 003042 410 003045 411 003051 412 003055 413 003057 414 003061 429 003074 432 003105 448 003112 449 003113 450 003115 452 003117 453 003136 454 003144 456 003151 459 003166 460 003170 461 003172 462 003175 466 003211 467 003212 469 003214 471 003216 472 003223 473 003224 474 003226 476 003235 480 003252 481 003255 482 003257 485 003267 486 003301 488 003303 489 003305 491 003307 500 003311 503 003320 504 003322 505 003334 508 003373 511 003433 512 003447 513 003451 514 003467 515 003471 516 003476 517 003500 518 003506 520 003510 521 003516 522 003531 523 003550 524 003552 525 003554 526 003556 527 003576 529 003604 530 003615 532 003633 533 003637 535 003643 536 003646 537 003650 538 003666 540 003672 541 003701 542 003703 545 003704 547 003705 549 003707 550 003720 551 003722 552 003725 555 003727 556 003737 558 003746 559 003750 560 003752 561 003765 562 004005 563 004016 564 004020 567 004021 568 004023 570 004024 580 004057 582 004072 583 004074 584 004076 585 004077 594 004110 596 004116 597 004131 598 004165 599 004167 601 004171 603 004177 604 004211 605 004251 606 004253 619 004255 621 004265 623 004274 624 004317 625 004321 627 004330 628 004331 630 004344 631 004350 632 004351 633 004353 635 004357 636 004372 637 004414 640 004443 641 004445 642 004446 644 004450 645 004464 646 004506 647 004511 648 004513 651 004514 652 004530 654 004554 656 004556 658 004561 659 004565 661 004566 662 004570 663 004571 664 004572 665 004574 669 004575 670 004576 671 004611 672 004627 674 004653 675 004655 676 004657 678 004661 679 004663 680 004665 683 004666 685 004677 686 004712 688 004717 689 004722 691 004723 692 004724 695 004725 706 004734 707 004735 710 004741 712 004744 713 004765 714 005001 715 005015 716 005016 718 005022 721 005061 722 005123 723 005126 725 005127 728 005134 729 005135 758 005136 760 005146 763 005150 765 005151 767 005153 770 005216 772 005220 774 005225 777 005226 778 005227 781 005230 783 005240 785 005244 786 005251 787 005256 788 005326 789 005334 791 005376 792 005405 794 005410 796 005414 799 005416 801 005425 802 005427 806 005433 807 005435 809 005437 811 005445 812 005455 813 005460 814 005534 815 005543 816 005567 817 005571 819 005573 836 005574 837 005600 838 005601 841 005606 843 005620 844 005622 845 005624 846 005627 847 005650 848 005655 850 005663 851 005674 854 005700 855 005701 856 005712 857 005714 858 005716 860 005724 861 005733 862 005746 863 005750 865 005751 879 005752 881 005754 882 005756 883 005757 888 006000 889 006005 891 006007 892 006025 895 006027 897 006035 898 006055 903 006060 905 006066 906 006074 907 006076 910 006077 912 006106 914 006116 917 006130 922 006132 925 006156 926 006162 927 006163 929 006164 931 006165 933 006172 934 006211 935 006225 936 006226 939 006250 941 006264 943 006266 944 006277 948 006322 949 006335 950 006347 951 006351 954 006353 956 006354 957 006355 958 006357 959 006360 961 006365 963 006367 964 006372 965 006377 967 006402 970 006414 972 006420 973 006422 976 006423 979 006430 983 006443 985 006456 986 006464 987 006466 988 006467 991 006504 993 006507 995 006517 996 006525 999 006532 1000 006533 1001 006535 1002 006550 1003 006553 1005 006562 1006 006573 1007 006574 1010 006602 1012 006620 1016 006630 1018 006634 1019 006646 1022 006662 1024 006675 1025 006676 1026 006700 1030 006701 1032 006716 1033 006726 1034 006727 1036 006731 1038 006732 1040 006734 1041 006735 1043 006753 1044 006755 1046 006763 1048 006764 1049 006771 1050 006772 1052 006775 1056 007127 1057 007130 1061 007230 1065 007341 1066 007343 1068 007362 1070 007407 1071 007427 1074 007521 1075 007523 1076 007524 1081 007627 1083 007631 1085 007650 1087 007675 1088 007715 1091 010007 1092 010011 1095 010013 1097 010015 1099 010020 1100 010021 1102 010022 1103 010023 1105 010025 1108 010031 1109 010036 1110 010051 1111 010061 1112 010074 1113 010076 1115 010100 1117 010101 1120 010102 1123 010103 1125 010104 1127 010136 1129 010137 1131 010144 1132 010155 1133 010164 1134 010166 1135 010170 1137 010175 1138 010225 1139 010241 1140 010247 1141 010262 1142 010264 1144 010266 1146 010267 1148 010274 1149 010312 1150 010317 1151 010321 1152 010323 1154 010324 1157 010331 1158 010345 1161 010346 1163 010350 1164 010364 1167 010365 1168 010373 1169 010401 1170 010403 1171 010407 1172 010410 1175 010467 1176 010477 1178 010515 1179 010517 1181 010521 1183 010522 1186 010527 1187 010543 1190 010544 1192 010546 1193 010562 1196 010563 1198 010574 1199 010614 1202 010615 1203 010617 1204 010621 1206 010626 1207 010633 1209 010651 1211 010653 1214 010654 1217 010655 1219 010670 1220 010672 1221 010674 1223 010675 1226 010722 1227 010724 1229 010731 1230 010733 1232 010734 1234 010735 1235 010736 1236 010747 1238 010764 1239 011001 1240 011003 1241 011005 1243 011007 1244 011014 1245 011016 1249 011017 1251 011022 1253 011027 1254 011031 1255 011033 1256 011053 1257 011056 1258 011105 1259 011116 1260 011120 1261 011122 1263 011123 1265 011124 1267 011125 1271 011164 1273 011224 1277 011240 1278 011252 1280 011254 1282 011263 1285 011315 1286 011317 1289 011320 1292 011337 1294 011344 1295 011345 1296 011361 1297 011377 1299 011421 1300 011423 1301 011425 1303 011427 1305 011436 1306 011441 1307 011444 1308 011446 1309 011452 1310 011453 1313 011532 1317 011533 1318 011557 1321 011560 1324 011562 1325 011564 1326 011565 1328 011567 1329 011571 1330 011572 1333 011574 1334 011576 1335 011577 1337 011601 1338 011603 1341 011605 1342 011621 1343 011622 1345 011623 1347 011632 1348 011650 1350 011653 1351 011655 1352 011657 1353 011715 1355 011716 1357 011720 1358 011722 1359 011724 1360 011726 1364 011727 1365 011743 1368 011744 1371 011746 1372 011750 1373 011751 1375 011753 1376 011755 1377 011756 1380 011760 1381 011762 1382 011763 1384 011765 1385 011767 1388 011771 1389 012005 1390 012006 1392 012007 1393 012027 1395 012032 1396 012034 1397 012035 1398 012042 1400 012053 1401 012054 1402 012100 1403 012113 1406 012114 1407 012143 1409 012156 1413 012157 1414 012173 1418 012174 1420 012176 1423 012250 1425 012252 1426 012301 1427 012302 1428 012304 1429 012305 1430 012321 1432 012322 1434 012324 1435 012331 1436 012376 1438 012400 1439 012407 1440 012412 1441 012416 1442 012420 1443 012450 1444 012457 1445 012462 1446 012501 1447 012511 1448 012535 1449 012537 1450 012541 1451 012543 1452 012544 1453 012545 1454 012561 1456 012562 1458 012603 1460 012604 1463 012631 1464 012645 1466 012646 1468 012647 1470 012650 1473 012654 1474 012656 1475 012657 1476 012670 1477 012672 1481 012673 1482 012707 1485 012710 1488 012711 1489 012713 1491 012714 1495 012717 1497 012777 1499 013000 1502 013014 1506 013017 1508 013077 1511 013100 1513 013102 1515 013106 1516 013122 1518 013137 1520 013146 1521 013157 1522 013161 1524 013164 1525 013166 1526 013173 1527 013175 1529 013176 1531 013200 1536 013205 1538 013213 1539 013241 1540 013243 1542 013251 1543 013277 1544 013301 1547 013317 1548 013321 1550 013326 1551 013331 1553 013336 1554 013340 1555 013347 1557 013410 1558 013412 1560 013413 1561 013415 1564 013416 1566 013417 1568 013424 1571 013426 1573 013427 1575 013431 1577 013432 1579 013436 1585 013437 1609 013441 1611 013445 1612 013446 1613 013457 1614 013471 1616 013473 1618 013476 1619 013507 1622 013516 1623 013526 1625 013553 1626 013603 1628 013606 1629 013607 1631 013612 1632 013627 1634 013646 1638 013667 1639 013676 1640 013700 1642 013716 1644 013733 1645 013735 1646 013750 1647 013763 1649 013766 1651 013770 1653 013773 1655 013777 1679 014003 1659 014004 1665 014006 1667 014031 1669 014055 1670 014057 1671 014072 1673 014106 1675 014110 1681 014114 1686 014120 1703 014126 1711 014135 1713 014142 1714 014151 1716 014176 1717 014226 1718 014231 1719 014232 1720 014246 1722 014254 1724 014272 1726 014312 1727 014315 1728 014327 1730 014342 1732 014344 1733 014347 1735 014351 1736 014353 1737 014361 1738 014371 1739 014400 1740 014417 1741 014421 1743 014432 1744 014434 1745 014435 1746 014437 1755 014442 1802 014444 1803 014446 1804 014447 1805 014450 1806 014451 1808 014452 1810 014462 1812 014470 1815 014473 1816 014506 1820 014516 1825 014527 1826 014544 1829 014550 1830 014561 1831 014573 1832 014630 1833 014632 1835 014634 1836 014635 1837 014636 1838 014651 1839 014652 1840 014653 1841 014654 1842 014655 1843 014656 1845 014657 1846 014671 1847 014703 1849 014710 1850 014720 1851 014733 1853 014740 1854 014741 1855 014753 1857 015010 1860 015045 1866 015057 1869 015062 1871 015067 1872 015071 1873 015076 1874 015105 1875 015142 1876 015205 1878 015211 1879 015212 1880 015213 1881 015215 1886 015217 1894 015255 1895 015260 1896 015262 1899 015366 1901 015465 1902 015467 1903 015471 1907 015475 1909 015477 1910 015542 1914 015546 1920 015572 1924 015607 1926 015615 1928 015616 1932 015630 1933 015633 1935 015640 1940 015754 1942 016057 1944 016161 1945 016167 1947 016224 1948 016225 1949 016227 1951 016233 1954 016234 1956 016320 1958 016326 1961 016332 1964 016333 1966 016417 1968 016425 1973 016431 1976 016446 1978 016532 1980 016537 1984 016544 1985 016546 1986 016547 1987 016563 1990 016620 1991 016621 1993 016624 1994 016625 1997 016657 1999 016714 2002 016750 2003 017005 2005 017012 2007 017024 2009 017025 2012 017050 2013 017051 2014 017103 2017 017104 2018 017106 2019 017110 2021 017112 2023 017123 2024 017124 2027 017125 2028 017126 2031 017132 2033 017136 2053 017137 2056 017141 2058 017146 2059 017150 2061 017173 2065 017174 2068 017176 2070 017203 2071 017205 2073 017211 2075 017241 2076 017260 2077 017261 2079 017263 2081 017272 2082 017314 2083 017315 2085 017322 2087 017344 2090 017345 2092 017352 2093 017415 2094 017420 2097 017422 2101 017424 2102 017437 2104 017451 2106 017461 2107 017471 2108 017543 2109 017545 2110 017547 2111 017551 2113 017552 2115 017557 2116 017560 2118 017562 2119 017575 2120 017577 2123 017653 2125 017721 2129 017725 2131 017743 2132 020015 2133 020020 2134 020027 2135 020101 2137 020103 2138 020105 2139 020107 2141 020110 2151 020112 2152 020114 2153 020115 2154 020117 2155 020121 2158 020127 2159 020137 2161 020141 2162 020153 2164 020217 2165 020240 2166 020251 2167 020253 2168 020255 2035 020256 2037 020260 2038 020261 2039 020273 2040 020314 2042 020360 2045 020373 2046 020374 2048 020402 2049 020404 2171 020412 2176 020426 2177 020431 2179 020443 2210 020444 2251 020450 2252 020452 2254 020470 2255 020501 2257 020510 2259 020513 2265 020531 2270 020543 2271 020544 2272 020570 2276 020604 2277 020613 2278 020615 2279 020616 2280 020620 2282 020625 2284 020640 2285 020641 2288 020642 2289 020643 2290 020654 2291 020665 2294 020727 2296 020737 2297 020741 2298 020742 2300 020760 2301 020765 2302 020766 2303 021004 2305 021005 2309 021007 2311 021010 2312 021012 2315 021017 2316 021022 2318 021024 2320 021047 2322 021051 2323 021052 2324 021076 2325 021133 2328 021135 2329 021136 2330 021142 2331 021143 2332 021202 2333 021203 2334 021215 2336 021224 2337 021225 2338 021234 2340 021253 2343 021255 2350 021256 2371 021260 2372 021261 2373 021263 2374 021264 2375 021267 2376 021272 2377 021273 2378 021276 2380 021303 2384 021317 2386 021330 2390 021333 2391 021336 2396 021365 2398 021366 2401 021372 2402 021373 2404 021403 2406 021410 2410 021416 2412 021423 2415 021443 2417 021451 2419 021455 2424 021502 2426 021503 2428 021505 2430 021510 2431 021512 2432 021533 2433 021555 2434 021557 2435 021576 2436 021614 2437 021615 2438 021617 2439 021624 2440 021625 2592 021633 2446 021634 2449 021635 2451 021646 2456 021712 2458 021714 2459 021715 2461 021733 2465 021737 2466 021751 2469 021756 2471 021757 2472 021771 2475 021776 2478 022014 2480 022017 2481 022074 2482 022122 2485 022124 2488 022125 2489 022145 2491 022146 2492 022147 2493 022210 2495 022235 2497 022251 2501 022264 2502 022301 2503 022304 2504 022307 2505 022351 2506 022365 2508 022400 2511 022413 2512 022426 2514 022427 2517 022430 2519 022431 2520 022452 2523 022474 2527 022501 2528 022520 2530 022521 2532 022533 2536 022537 2538 022550 2542 022554 2543 022566 2550 022572 2551 022573 2552 022640 2554 022665 2555 022670 2557 022704 2560 022722 2562 022723 2564 022724 2565 022737 2567 022740 2568 022770 2570 022777 2573 023001 2574 023004 2575 023016 2577 023017 2578 023022 2579 023050 2581 023057 2582 023061 2585 023062 2586 023065 2587 023113 2589 023115 2590 023116 2599 023117 2645 023135 2646 023142 2647 023143 2650 023144 2651 023163 2652 023165 2654 023170 2655 023172 2656 023203 2657 023206 2658 023210 2659 023214 2660 023225 2664 023250 2667 023310 2668 023313 2669 023317 2672 023321 2674 023323 2676 023325 2677 023343 2678 023345 2680 023351 2681 023353 2682 023355 2685 023356 2686 023373 2687 023375 2689 023401 2690 023403 2691 023405 2694 023406 2700 023410 2701 023412 2703 023416 2705 023437 2707 023441 2710 023461 2713 023463 2715 023467 2716 023477 2721 023510 2723 023512 2724 023520 2725 023523 2726 023525 2729 023526 2730 023542 2731 023544 2733 023547 2734 023551 2735 023556 2740 023565 2741 023571 2743 023602 2744 023615 2745 023640 2748 023652 2750 023662 2751 023664 2752 023666 2753 023667 2754 023701 2755 023713 2756 023722 2757 023724 2759 023773 2760 024030 2761 024052 2762 024061 2764 024064 2766 024066 2767 024070 2768 024072 2770 024074 2771 024075 2775 024077 2780 024113 2782 024115 2784 024126 2785 024143 2787 024147 2789 024153 2790 024154 2793 024157 2794 024160 2795 024163 2796 024165 2799 024166 2803 024204 2805 024206 2807 024210 2808 024217 2809 024220 2810 024221 2811 024227 2812 024244 2813 024247 2816 024250 2817 024251 2818 024253 2819 024263 2822 024266 2823 024273 2825 024300 2826 024310 2827 024311 2831 024312 2833 024314 2835 024324 2837 024331 2839 024333 2840 024346 2842 024372 2844 024375 2846 024377 2849 024413 2850 024415 2853 024416 2854 024425 2855 024440 2858 024442 2860 024444 2861 024450 2863 024452 2872 024453 2891 024455 2892 024467 2893 024475 2895 024504 2896 024520 2898 024523 2899 024544 2900 024547 2901 024555 2902 024563 2903 024616 2904 024642 2905 024667 2907 024714 2908 024715 2910 024716 2913 024717 2914 024734 2915 024744 2916 024764 2917 024773 2918 025011 2919 025015 2920 025022 2921 025037 2922 025047 2923 025074 2924 025076 2928 025120 2930 025122 2937 025123 2958 025127 2960 025145 2962 025151 2965 025167 2967 025170 2969 025174 2970 025211 2972 025216 2973 025221 2974 025223 2975 025232 2976 025234 2977 025236 2978 025237 2981 025247 2984 025252 2986 025262 2988 025270 2991 025276 2993 025304 2995 025310 2996 025325 2998 025332 3001 025341 3004 025344 3006 025356 3007 025373 3009 025402 3010 025404 3011 025406 3021 025415 3038 025417 3040 025434 3041 025440 3042 025441 3043 025442 3044 025444 3046 025464 3055 025470 3081 025472 3082 025503 3084 025510 3085 025516 3088 025540 3089 025557 3090 025577 3092 025605 3093 025626 3094 025631 3095 025637 3096 025645 3097 025700 3098 025724 3099 025766 3101 026014 3102 026015 3104 026016 3106 026025 3107 026044 3108 026051 3109 026053 3110 026056 3111 026066 3112 026107 3113 026135 3115 026145 3130 026147 3132 026153 3133 026155 3136 026163 3117 026164 3120 026166 3122 026204 3124 026214 3126 026224 3145 026231 3154 026232 3156 026237 3158 026243 3159 026304 3161 026306 3162 026322 3164 026323 3167 026330 3168 026332 3169 026343 3171 026347 3172 026351 3173 026357 3174 026361 3176 026403 3178 026443 3179 026457 3180 026461 3181 026505 3182 026506 3185 026522 3187 026555 3188 026557 3189 026573 3197 026574 3300 026576 3301 026577 3302 026600 3303 026601 3304 026603 3305 026617 3307 026623 3309 026633 3311 026636 3313 026671 3316 026675 3318 026676 3320 026700 3321 026715 3322 026717 3326 026722 3327 026725 3329 026733 3331 026767 3332 026774 3333 027007 3335 027013 3336 027023 3338 027025 3344 027026 3350 027046 3352 027066 3355 027105 3357 027106 3364 027126 3366 027146 3368 027166 3371 027200 3373 027201 3378 027220 3380 027221 3383 027223 3384 027243 3386 027244 3388 027247 3389 027267 3391 027270 3392 027302 3393 027304 3395 027305 3403 027317 3404 027324 3406 027332 3408 027334 3409 027335 3411 027347 3412 027354 3414 027362 3416 027365 3417 027366 3419 027400 3420 027405 3422 027416 3424 027421 3427 027422 3429 027425 3430 027427 3431 027434 3433 027477 3435 027501 3437 027504 3439 027532 3441 027533 3442 027537 3444 027553 3446 027554 3454 027566 3455 027573 3457 027601 3459 027603 3460 027604 3462 027616 3463 027623 3465 027631 3467 027634 3468 027635 3470 027647 3471 027654 3473 027665 3475 027670 3478 027671 3480 027674 3481 027676 3482 027703 3484 027746 3486 027750 3488 027753 3489 030001 3491 030002 3492 030006 3494 030022 3496 030023 3501 030024 3503 030027 3504 030031 3505 030036 3506 030101 3508 030103 3510 030106 3511 030134 3513 030135 3514 030141 3515 030155 3517 030156 3523 030157 3526 030161 3528 030164 3529 030166 3530 030173 3531 030235 3533 030237 3535 030242 3536 030270 3538 030271 3539 030274 3540 030310 3542 030311 3544 030331 3546 030332 3548 030356 3550 030357 3553 030365 3554 030421 3556 030422 3559 030427 3560 030447 3563 030452 3570 030453 3587 030455 3591 030456 3592 030460 3593 030476 3594 030500 3595 030501 3596 030503 3597 030506 3598 030510 3599 030511 3600 030512 3601 030513 3602 030514 3603 030515 3605 030517 3607 030520 3609 030525 3610 030565 3611 030570 3614 030571 3616 030572 3618 030574 3620 030576 3621 030603 3623 030606 3625 030611 3626 030612 3627 030615 3628 030621 3629 030623 3630 030643 3631 030646 3632 030650 3634 030652 3636 030663 3638 030664 3640 030666 3642 030710 3643 030711 3647 030722 3651 030734 3652 030741 3654 030761 3655 030767 3656 030773 3657 030774 3659 030775 3662 031000 3664 031014 3668 031023 3669 031025 3671 031030 3672 031041 3673 031043 3675 031044 3677 031045 3679 031056 3681 031060 3683 031062 3684 031065 3685 031067 3686 031103 3689 031104 3690 031113 3692 031126 3694 031130 3697 031136 3704 031137 3723 031141 3724 031144 3725 031146 3726 031152 3728 031153 3729 031161 3730 031163 3731 031172 3732 031174 3734 031206 3736 031213 3737 031220 3739 031221 3743 031222 3744 031235 3746 031236 3747 031243 3749 031245 3751 031261 3752 031264 3753 031265 3756 031271 3758 031272 3759 031303 3761 031306 3762 031320 3764 031370 3766 031377 3767 031401 3768 031403 3769 031416 3770 031417 3772 031427 3773 031431 3775 031432 3777 031437 3778 031444 3782 031445 3783 031461 3784 031465 3786 031471 3787 031477 3788 031504 3789 031505 3790 031513 3791 031524 3793 031527 3794 031530 3795 031532 3796 031533 3799 031543 3801 031570 3802 031573 3804 031600 3805 031614 3809 031620 3810 031653 3813 031664 3816 031665 3817 031666 3819 031670 3822 031711 3827 031720 3830 031721 3847 031722 3852 031724 3857 031745 3864 032017 3870 032025 3875 032027 3883 032105 3891 032113 3894 032114 3895 032124 3896 032131 3897 032133 3899 032141 3900 032150 3901 032151 3903 032152 3907 032153 3910 032155 3915 032205 3921 032212 3924 032214 3928 032234 3934 032241 3936 032243 3939 032251 3941 032262 3946 032273 3952 032300 3955 032302 3961 032331 3972 032336 3978 032340 3979 032342 3980 032345 3982 032356 3986 032357 3989 032360 3990 032361 3991 032362 3992 032363 3993 032364 3994 032365 3995 032366 3996 032367 3997 032370 3998 032371 3999 032372 4000 032373 4002 032375 4006 032376 4009 032377 4012 032400 4015 032454 4017 032455 4019 032460 4020 032472 4022 032505 4024 032510 4027 032511 4031 032512 4033 032532 4035 032551 4037 032552 4039 032556 4040 032560 4041 032572 4043 032573 4045 032602 4046 032604 4047 032606 4050 032607 4051 032611 4052 032612 4054 032613 4056 032640 4058 032641 4060 032652 4061 032653 4063 032654 4065 032655 4071 032656 4076 032660 4077 032674 4079 032702 4081 032704 4082 032710 4084 032715 4090 032723 4096 032734 4097 032744 4099 032752 4105 032757 4110 032761 4113 032770 4114 033002 4116 033003 4118 033004 4119 033006 4120 033007 4123 033014 4126 033046 4129 033075 4130 033100 4131 033101 4135 033106 4136 033111 4139 033120 4140 033122 4147 033130 4150 033132 4152 033142 4158 033147 4165 033151 4169 033160 4171 033161 4172 033163 4173 033164 4177 033172 4178 033174 4180 033210 4181 033212 4189 033220 4194 033222 4195 033234 4197 033242 4203 033247 4223 033250 4224 033252 4226 033254 4228 033274 4230 033303 4231 033305 4233 033306 4234 033310 4236 033312 4237 033314 4239 033317 4240 033320 4242 033331 4244 033345 4246 033350 4248 033352 4249 033356 4252 033363 4253 033371 4254 033405 4256 033411 4258 033413 4259 033414 4261 033433 4263 033446 4265 033450 4267 033464 4269 033465 4270 033471 4271 033476 4272 033477 4273 033500 4275 033501 4278 033544 4279 033546 4280 033550 4281 033562 4285 033565 4287 033574 4291 033576 4298 033577 4304 033601 4305 033603 4306 033606 4307 033607 4309 033611 4313 033612 4318 033614 4319 033627 4322 033636 4326 033651 4330 033665 4336 033672 4342 033674 4345 033703 4347 033715 4350 033717 4352 033727 4353 033731 4355 033737 4361 033744 4366 033746 4370 033755 4373 033777 4374 034011 4376 034012 4377 034014 4378 034017 4379 034020 4382 034021 4383 034023 4384 034025 4386 034034 4388 034036 4389 034037 4390 034041 4397 034047 4400 034051 4401 034060 4403 034073 4404 034074 4411 034102 4419 034103 4421 034105 4422 034112 4423 034114 4424 034125 4426 034126 4427 034130 4429 034131 4431 034136 4433 034145 4434 034147 4435 034150 4436 034151 4438 034152 4446 034153 4451 034154 4452 034170 4454 034172 4455 034174 4457 034201 4459 034210 4460 034212 4461 034226 4462 034227 4463 034230 4465 034231 4471 034232 4477 034234 4478 034247 4482 034252 4483 034257 4484 034261 4487 034305 4489 034310 4490 034314 4491 034316 4494 034317 4495 034327 4496 034330 4498 034331 4505 034341 4510 034352 4514 034404 4515 034405 4519 034424 4528 034432 4533 034434 4535 034437 4541 034440 4561 034441 4563 034447 4567 034461 4570 034464 4573 034474 4574 034477 4578 034513 4579 034516 4582 034527 4584 034531 4586 034532 4588 034573 4591 034577 4593 034600 4596 034651 4598 034652 4601 034730 4603 034731 4606 035020 4608 035021 4610 035062 4612 035063 4615 035134 4617 035135 4620 035220 4622 035221 4626 035315 4628 035317 4629 035320 4631 035321 4633 035327 4634 035357 4636 035364 4637 035365 4639 035366 4641 035371 4642 035405 4644 035410 4645 035411 4647 035412 4650 035424 4651 035427 4653 035431 4655 035437 4657 035440 4659 035454 4661 035455 4673 035604 4680 035605 4695 035606 4697 035614 4698 035644 4700 035651 4701 035652 4703 035653 4705 035656 4706 035672 4708 035675 4709 035676 4711 035677 4713 035702 4715 035710 4717 035717 4719 035724 4720 035726 4721 035727 4723 035730 4725 035745 4726 035746 4727 035747 4728 035750 4730 035753 4731 035754 4732 035756 4733 035757 4735 035764 4736 035766 4737 035767 4740 035770 4741 035773 4744 035776 4761 036167 4768 036170 4796 036172 4798 036176 4799 036211 4802 036212 4805 036214 4807 036221 4810 036232 4813 036235 4815 036242 4819 036252 4821 036254 4823 036276 4824 036315 4825 036347 4827 036354 4828 036356 4829 036360 4831 036376 4832 036402 4835 036412 4842 036413 4848 036415 4850 036431 4851 036435 4858 036437 4867 036441 4868 036452 ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved