COMPILATION LISTING OF SEGMENT help Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: CGI Compiled on: 2000-04-17_1936.66_Mon_mdt Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1985 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 14 15 /****^ HISTORY COMMENTS: 16* 1) change(86-03-05,LJAdams), approve(86-03-05,MCR7327), 17* audit(86-03-10,Lippard), install(86-04-24,MR12.0-1048): 18* There are three main programs used in help they are: help, help_, and 19* help_rql_. 20* 21* Some of the changes made include: 22* 23* restructuring the programs to use line parsing 24* 25* change the help command to use ssu_$create_standalone_invocation, and 26* to be callable as a request from within ssu_ 27* 28* withdraw support of old format info segs (those containing "\006" as 29* paragraph indicators) 30* 31* make help -bf always return some information 32* 33* allow "List of" sections to have multiple consecutive list item lines 34* starting in the left margin. Item descriptions are no longer required 35* but if present, must be indented three spaces 36* 2) change(87-04-27,LJAdams), approve(87-09-03,MCR7766), 37* audit(88-08-07,GDixon), install(88-09-13,MR12.2-1109): 38* Changed version to Vhelp_args_3. 39* Added support for -cs (case_sensitive) and -ncs (non_case_sensitive). 40* 3) change(88-02-17,LJAdams), approve(88-03-07,MCR7857), 41* audit(88-08-07,GDixon), install(88-09-13,MR12.2-1109): 42* The cleanup procedure was not deleting all the temporary segments. 43* Changed cleanup to use the help_args.help_data_ptr which points to a 44* second help_args structure that is used only for the list_request 45* operation. 46* END HISTORY COMMENTS */ 47 48 49 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 50 /* */ 51 /* Name: help */ 52 /* */ 53 /* This is the command interface to the Multics help facility. It does the following. */ 54 /* */ 55 /* 1) call help_$init to obtain a help_args structure in which arguments and control */ 56 /* arguments can be stored. */ 57 /* 2) process caller-supplied arguments, filling in the help_args structure. */ 58 /* 3) call help_ with the help_args structure to actually find and print the info segs. */ 59 /* 4) call help_$term to release the help_args structure. */ 60 /* */ 61 /* help searches for info segments (having a suffix of info) in the directories given in */ 62 /* the search paths of the info_segments (info_segs or infos) search list, which */ 63 /* is maintained by the Multics search facility. */ 64 /* */ 65 /* Status */ 66 /* */ 67 /* 0) Created: November, 1969 by T. H. VanVleck */ 68 /* 1) Modified: February, 1975 by T. H. VanVleck - complete rewrite */ 69 /* 2) Modified: September,1976 by Steve Herbst - accept -pathname ctl_arg */ 70 /* 3) Modified: June, 1977 by Paul Green - diagnose zero-length info segs */ 71 /* 4) Modified: October, 1978 by Gary Dixon - complete rewrite; split into help */ 72 /* command and separate help_ subroutine. */ 73 /* 5) Modified: June, 1983 by Gary Dixon - add ssu_help_request entrypoint. */ 74 /* */ 75 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 76 77 /* format: style2,ind2,ll131,dclind4,idind15,comcol41,linecom,ifthen */ 78 help: 79 procedure; 80 81 dcl (Iarg, Iarg_end_ca, Iarg_end_scn, Iarg_start_ca, Iarg_start_scn, Iarg_start_srh, Ipath) 82 fixed bin, 83 (Larg, Lop) fixed bin (21), 84 Nargs fixed bin, 85 Nctl_args fixed bin, 86 (Parg, 87 Pop) ptr, 88 Serror bit (1), 89 Slist_requests bit (1), 90 Stopics bit (1), 91 Sstandalone_invocation 92 bit (1), 93 (cleanup, conversion, size) 94 condition, 95 code fixed bin (35), 96 error_type fixed bin, 97 j fixed bin, 98 sci_ptr ptr; 99 100 dcl arg char (Larg) based (Parg), 101 op char (Lop) based (Pop); 102 103 dcl (bin, convert, dim, index, maxlength, null, substr) 104 builtin; 105 106 dcl com_err_ entry options (variable), 107 cu_$arg_count entry (fixed bin, fixed bin (35)), 108 ssu_$abort_line 109 entry () options (variable), 110 ssu_$arg_count entry (ptr, fixed bin), 111 ssu_$arg_ptr entry (ptr, fixed bin, ptr, fixed bin (21)), 112 ssu_$destroy_invocation 113 entry (ptr), 114 ssu_$get_subsystem_and_request_name 115 entry (ptr) returns (char (72) var), 116 ssu_$standalone_invocation 117 entry (ptr, char (*), char (*), ptr, entry, fixed bin (35)); 118 119 dcl ( 120 FALSE init ("0"b), 121 TRUE init ("1"b) 122 ) bit (1) aligned int static options (constant), 123 ctl_abbrev (14) char (6) varying int static options (constant) init ("-scn", 124 /* 1 */ 125 "-srh", /* 2 */ 126 "-bf", /* 3 */ 127 "-ca", /* 4 */ 128 "-ep", /* 5 */ 129 "-he", /* 6 */ 130 "-bfhe", /* 7 */ 131 "-pn", /* 8 */ 132 "-a", /* 9 */ 133 "-title", /*10 */ 134 "-topic", /*11 ssu_ only */ 135 "-lep", /*12 */ 136 "-cs", /*13 */ 137 "-ncs"), /*14 */ 138 ctl_word (16) char (20) varying int static options (constant) init ("-section", 139 /* 1 */ 140 "-search", /* 2 */ 141 "-brief", /* 3 */ 142 "-control_arg", /* 4 */ 143 "-entry_point", /* 5 */ 144 "-header", /* 6 */ 145 "-brief_header", /* 7 */ 146 "-pathname", /* 8 */ 147 "-all", /* 9 */ 148 "-titles", /*10 */ 149 "-topics", /*11 ssu_ only */ 150 "-list_entry_points", 151 /*12 */ 152 "-case_sensitive", 153 /*13 */ 154 "-non_case_sensitive", 155 /*14 */ 156 "-maxlines", /*15 */ 157 "-minlines"), /*16 */ 158 ctl_obsolete (2) char (3) varying int static options (constant) init ("-sc", 159 /* 1 */ 160 "-sh"), /* 2 */ 161 ( 162 error_table_$active_function, 163 error_table_$bad_arg, 164 error_table_$badopt, 165 error_table_$bigarg, 166 error_table_$inconsistent, 167 error_table_$noarg, 168 error_table_$noentry, 169 error_table_$unimplemented_version 170 ) fixed bin (35) ext static; 171 1 1 /* BEGIN: help_args_.incl.pl1 * * * * * */ 1 2 1 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 4 /* */ 1 5 /* Name: help_args_.incl.pl1 */ 1 6 /* */ 1 7 /* This include file declares the structure used by the help command and other subsystems */ 1 8 /* to pass info segment selection and printing control information to the help_ */ 1 9 /* subroutine. This based structure is NEVER allocated. Instead, the caller of help_ */ 1 10 /* must call help_$init to get a pointer to a temporary segment which is used for */ 1 11 /* storage for the structure. The structure contains 5 arrays with refer extents, */ 1 12 /* allowing complete freedom in the numbers of selection values given. Typically, the */ 1 13 /* caller fills in the arrays at the top of the structure first, growing the arrays */ 1 14 /* as each new element is added. After each array is filled, the caller begins filling */ 1 15 /* in the next array. Note that, on return from help_$init, all of the arrays have 0 */ 1 16 /* extents, except that the search_dirs array contains the list of directories to be */ 1 17 /* searched in to find info segments, as defined by the search facility. The caller */ 1 18 /* may of course change or replace these search directories. */ 1 19 /* */ 1 20 /* A legend describing the variable naming convention follows. */ 1 21 /* */ 1 22 /* STARTING LETTER STANDS FOR */ 1 23 /* P pointer to */ 1 24 /* L length of */ 1 25 /* D descriptor of */ 1 26 /* S switch */ 1 27 /* V version */ 1 28 /* */ 1 29 /* Status */ 1 30 /* */ 1 31 /* 0) Created: October, 1978 by Gary Dixon */ 1 32 /* 1) Modified: June 4, 1983 by Gary Dixon - add Sctl.inhibit_errors flag. */ 1 33 /* 2) Modified: April, 1985 by L.Adams - use Vhelp_args_2. */ 1 34 /* */ 1 35 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 36 1 37 /****^ HISTORY COMMENTS: 1 38* 1) change(86-03-07,LJAdams), approve(86-03-07,MCR7327), 1 39* audit(86-03-10,Lippard), install(86-04-24,MR12.0-1048): 1 40* Declares structure used by the help command and other subsystems to pass 1 41* info segment selection and printing control information the help_ 1 42* subroutine. 1 43* 2) change(87-01-26,LJAdams), approve(87-09-03,MCR7766), 1 44* audit(88-05-03,GDixon), install(88-09-13,MR12.2-1109): 1 45* Added lep to Sctl. 1 46* Added Sctl.cs to indicate if search or section requests are to be case 1 47* sensitive or not. 1 48* Changed version to Vhelp_args_3. 1 49* 3) change(88-02-12,LJAdams), approve(88-03-07,MCR7857), 1 50* audit(88-05-03,GDixon), install(88-09-13,MR12.2-1109): 1 51* Added help_data_ptr to point to a second help_args structure that will be 1 52* used for list_requests. 1 53* END HISTORY COMMENTS */ 1 54 1 55 dcl 1 help_args aligned based (Phelp_args), /* help's input arguments. */ 1 56 2 version fixed bin, /* = 3, currently. Use Vhelp_args_3. */ 1 57 /* (set by help_$init, checked by caller) */ 1 58 2 Sctl, /* control argument switches. */ 1 59 /* (SET BY CALLER OF help_) */ 1 60 (3 he_only, /* print only a heading, nothing else. */ 1 61 3 he_pn, /* when heading printed, include info pathname. */ 1 62 3 he_info_name, /* when heading printed, include info_name. */ 1 63 3 he_counts, /* when heading printed, include line counts. */ 1 64 /* If none of the 3 switches above are set, */ 1 65 /* then only info header is incl. in heading. */ 1 66 3 title, /* -title */ 1 67 3 scn, /* -section */ 1 68 3 srh, /* -search */ 1 69 3 bf, /* -brief */ 1 70 3 ca, /* -control_arg */ 1 71 3 ep, /* -entry_point */ 1 72 3 all, /* -all */ 1 73 3 lep, /* -lep */ 1 74 3 cs, /* -case_sensitive */ 1 75 3 inhibit_errors) /* inhibits error diagnostics when desired */ 1 76 /* information is not found. Useful for */ 1 77 /* subsystems like ted that want to diagnose */ 1 78 /* their own errors. */ 1 79 bit(1) unal, 1 80 3 mbz1 bit(22) unal, 1 81 2 Nsearch_dirs fixed bin, /* number of info_segment (or other) search dirs. */ 1 82 /* (set by help_$init, CALLER CAN CHANGE) */ 1 83 2 Npaths fixed bin, /* number of info segment names. */ 1 84 /* (SET BY CALLER OF help_) */ 1 85 2 Ncas fixed bin, /* number of control arg names given with -ca */ 1 86 /* (SET BY CALLER OF help_) */ 1 87 2 Nscns fixed bin, /* number of section substrings. */ 1 88 /* (SET BY CALLER OF help_) */ 1 89 2 Nsrhs fixed bin, /* number of search strings. */ 1 90 /* (SET BY CALLER OF help_) */ 1 91 2 min_Lpgh fixed bin, /* minimum length of a paragraph. */ 1 92 /* (set by help_$init, CALLER CAN CHANGE) */ 1 93 2 max_Lpgh fixed bin, /* maximum lines in group of aggregated paragraphs*/ 1 94 /* or in paragraphs constructed by help_. */ 1 95 /* (set by help_$init, CALLER CAN CHANGE) */ 1 96 2 Lspace_between_infos fixed bin, /* spaces inserted between infos when several */ 1 97 /* printed by one invocation. */ 1 98 /* (set by help_$init, CALLER CAN CHANGE) */ 1 99 2 min_date_time fixed bin(71), /* do not process infos modified before this date.*/ 1 100 /* (SET BY CALLER OF help_) */ 1 101 2 sci_ptr ptr, /* sci_ptr when help_ is invoked by a subsystem. */ 1 102 /* This must be set to null when not invoked */ 1 103 /* from a subsystem. */ 1 104 2 help_data_ptr ptr, /* ptr to second help_args (used for list rqts) */ 1 105 2 pad2 (6) fixed bin, /* reserved for future expansion. */ 1 106 1 107 /* End of fixed-length part of the structure. */ 1 108 1 109 2 search_dirs (0 refer (help_args.Nsearch_dirs)) 1 110 char (168) unal, /* directories help_ will look in to find info */ 1 111 /* segments when relative paths (without < or >)*/ 1 112 /* are given. When help_$init is called, the */ 1 113 /* current search rules (from a search list of */ 1 114 /* caller's choice) will be given here. Caller */ 1 115 /* may modify this list if desired before */ 1 116 /* calling help_. */ 1 117 2 path (0 refer (help_args.Npaths)), /* names of sought info segments. */ 1 118 3 value char(425) varying, /* These are the args themselves, without */ 1 119 /* processing by expand_pathname_, etc. */ 1 120 /* Their length is length(path) + length("$") */ 1 121 /* + length(entry_point_name). */ 1 122 /* Note that entry_point_names can be 256 chars.*/ 1 123 /* (SET BY CALLER OF help_) */ 1 124 3 info_name char(32) unal, /* name of logical info to be printed. */ 1 125 /* (SET BY CALLER OF help_) */ 1 126 /* "" = help_ should set this to entry part */ 1 127 /* of path.value, minus the suffix. */ 1 128 /* other = logical info name not a name on the */ 1 129 /* physical info segment. */ 1 130 3 dir (1) char(168) unal, /* dir part of a pathname (set by help_). */ 1 131 3 ent char(32) unal, /* ent part of name (set by help_). */ 1 132 3 ep char(32) varying, /* entry point part of name. (set by help_) */ 1 133 3 code fixed bin(35), /* error code while processing this path. */ 1 134 /* (set by help_) */ 1 135 3 S, /* switches indicating path type. */ 1 136 (4 pn_ctl_arg, /* -pn ctl given before this path. */ 1 137 /* (SET BY CALLER OF help_) */ 1 138 4 info_name_not_starname, /* caller-supplied path.info_name is not a */ 1 139 /* star name, even if it has * or ? chars. */ 1 140 /* (SET BY CALLER OF help_) */ 1 141 4 less_greater, /* A < or > appears in path.value. */ 1 142 /* (set by help_) */ 1 143 4 starname_ent, /* on if ent is a starname. */ 1 144 /* (set by help_) */ 1 145 4 starname_info_name, /* on if info_name is a starname. */ 1 146 /* (set by help_) */ 1 147 4 separate_info_name) bit(1) unal, /* on if info_name given by caller. */ 1 148 /* (set by help_) */ 1 149 4 pad3 bit(30) unal, 1 150 2 ca (0 refer (help_args.Ncas)) /* the ctl_arg names, without leading - just as */ 1 151 char(32) varying, /* req'd by the -ca ctl_arg of help. */ 1 152 /* (SET BY CALLER OF help_) */ 1 153 2 scn (0 refer (help_args.Nscns)) /* substrings sought in section titles. */ 1 154 char(80) varying, /* (SET BY CALLER OF help_) */ 1 155 2 srh (0 refer (help_args.Nsrhs)) /* search strings. */ 1 156 char(80) varying, /* (SET BY CALLER OF help_) */ 1 157 Phelp_args ptr, 1 158 Vhelp_args_3 fixed bin int static options(constant) init(3); 1 159 1 160 dcl help_ entry (char(*), ptr, char(*), fixed bin, fixed bin(35)), 1 161 help_$init entry (char(*), char(*), char(*), fixed bin, ptr, fixed bin(35)), 1 162 help_$term entry (char(*), ptr, fixed bin(35)); 1 163 1 164 /* END OF: help_args_.incl.pl1 * * * * * */ 172 173 174 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 175 176 177 call cu_$arg_count (Nargs, code); /* help cannot be invoked as active function. */ 178 if code = error_table_$active_function then 179 do; 180 call com_err_ (code, "help"); 181 return; 182 end; 183 184 Sstandalone_invocation = TRUE; 185 Slist_requests = FALSE; 186 sci_ptr = null; 187 Phelp_args = null; 188 on cleanup call janitor (); /* Cleanup help arg segment if help aborted. */ 189 190 call ssu_$standalone_invocation (sci_ptr, "help", "1", null, abort_help_command, code); 191 if code ^= 0 then 192 do; 193 call com_err_ (code, "help", "Calling ssu_$standalone_invocation"); 194 return; 195 end; 196 go to COMMON; 197 198 ssu_help_request: 199 entry (Asci_ptr, AStopics, find_subsystem_info_file); 200 201 dcl Asci_ptr ptr, 202 AStopics bit (1), 203 find_subsystem_info_file 204 entry (ptr, char (*)) returns (char (300) var); 205 206 sci_ptr = Asci_ptr; 207 AStopics = FALSE; 208 Sstandalone_invocation = FALSE; 209 Phelp_args = null; 210 on cleanup call janitor (); 211 212 COMMON: 213 call help_$init (ssu_$get_subsystem_and_request_name (sci_ptr), "info_segments", "", Vhelp_args_3, Phelp_args, code); 214 if Phelp_args = null then /* get help input arguments. */ 215 go to ARG_STRUC_ERR; 216 if help_args.version ^= Vhelp_args_3 then 217 do; /* check version of structure for validity. */ 218 code = error_table_$unimplemented_version; 219 go to ARG_STRUC_ERR; 220 end; 221 help_args.sci_ptr = sci_ptr; 222 223 call ssu_$arg_count (sci_ptr, Nargs); 224 /* get count of input arguments. */ 225 Serror = FALSE; /* Remember if error encountered in args. */ 226 Iarg_start_srh = Nargs + 1; /* -search not encountered so far. */ 227 Iarg_start_ca = Nargs + 1; /* Same for -control_arg. */ 228 Iarg_start_scn = Nargs + 1; /* Same for -section */ 229 Iarg_end_ca = 0; 230 Iarg_end_scn = 0; 231 if Sstandalone_invocation then 232 help_args.Sctl.he_pn = TRUE; /* Output long heading by default. */ 233 help_args.Sctl.he_counts = TRUE; 234 Stopics = FALSE; 235 Nctl_args = 0; 236 do Iarg = 1 to Nargs; /* Process args. */ 237 call ssu_$arg_ptr (sci_ptr, Iarg, Parg, Larg); 238 if index (arg, "-") = 1 then 239 do; 240 Nctl_args = Nctl_args + 1; 241 do j = 1 to dim (ctl_abbrev, 1) while (arg ^= ctl_abbrev (j)); 242 end; 243 if j > dim (ctl_abbrev, 1) then 244 do; 245 do j = 1 to dim (ctl_word, 1) while (arg ^= ctl_word (j)); 246 end; 247 if j > dim (ctl_word, 1) then 248 do; 249 do j = 1 to dim (ctl_obsolete, 1) while (arg ^= ctl_obsolete (j)); 250 end; 251 if j > dim (ctl_obsolete, 1) then 252 do; 253 Serror = TRUE; 254 call ssu_$abort_line (sci_ptr, error_table_$badopt, arg); 255 go to NEXT_ARG; 256 end; 257 end; 258 end; 259 go to DO_ARG (j); 260 261 DO_ARG (1): 262 if Iarg = Nargs then 263 go to NO_OPERAND; 264 call ssu_$arg_ptr (sci_ptr, Iarg + 1, Pop, Lop); 265 if Lop >= 1 then 266 if substr (op, 1, 1) = "-" then 267 go to NO_OPERAND; 268 help_args.Sctl.scn = TRUE; 269 Iarg = Iarg + 1; /* -section: next arg guaranteed part of */ 270 Iarg_start_scn = Iarg; /* section name. */ 271 Iarg_end_scn = Iarg; 272 do Iarg = Iarg + 1 to Nargs; /* Remaining args not starting with - are part */ 273 /* of section name too. */ 274 call ssu_$arg_ptr (sci_ptr, Iarg, Pop, Lop); 275 if Lop >= 1 then 276 if substr (op, 1, 1) = "-" then 277 do; 278 Iarg = Iarg - 1; 279 go to NEXT_ARG; 280 end; 281 Iarg_end_scn = Iarg; 282 end; 283 go to NEXT_ARG; 284 285 DO_ARG (2): 286 if Iarg = Nargs then 287 go to NO_OPERAND; 288 help_args.Sctl.srh = TRUE; /* -search: All remaining args are search */ 289 /* strings. Last arg could be -cs/-ncs */ 290 Iarg_start_srh = Iarg + 1; /* Remember where search args begin. */ 291 Iarg = Nargs; 292 go to NEXT_ARG; 293 294 DO_ARG (3): 295 help_args.Sctl.bf = TRUE; /* -brief */ 296 go to NEXT_ARG; 297 298 DO_ARG (4): 299 if Iarg = Nargs then 300 go to NO_OPERAND; 301 Iarg = Iarg + 1; /* -control_arg: args not starting with - are */ 302 /* control argument names. */ 303 Iarg_start_ca = Iarg; /* Remember where ca names start. */ 304 Iarg_end_ca = Iarg; /* Remember where last ca name is. */ 305 help_args.Sctl.ca = TRUE; /* -ca */ 306 do Iarg = Iarg + 1 to Nargs; 307 call ssu_$arg_ptr (sci_ptr, Iarg, Pop, Lop); 308 if Lop >= 1 then 309 if substr (op, 1, 1) = "-" then 310 do; 311 Iarg = Iarg - 1; 312 go to NEXT_ARG; 313 end; 314 Iarg_end_ca = Iarg; 315 end; 316 go to NEXT_ARG; 317 318 DO_ARG (5): 319 help_args.Sctl.ep = TRUE; /* -entry_point */ 320 go to NEXT_ARG; 321 322 DO_ARG (6): 323 help_args.Sctl.he_only = TRUE;/* -header (print only heading) */ 324 go to NEXT_ARG; 325 326 DO_ARG (7): 327 help_args.Sctl.he_pn = FALSE; /* -brief_header (output brief headings) */ 328 go to NEXT_ARG; 329 330 DO_ARG (8): 331 if Iarg = Nargs then 332 go to NO_OPERAND; /* -pathname: following arg is a pathname, */ 333 Iarg = Iarg + 1; /* no matter what it looks like. */ 334 call ssu_$arg_ptr (sci_ptr, Iarg, Pop, Lop); 335 j = 1; 336 if maxlength (help_args.path (j).value) < Lop then 337 do; 338 call ssu_$abort_line (sci_ptr, error_table_$bigarg, " ^a ^a", arg, op); 339 Serror = TRUE; 340 end; 341 else 342 do; 343 help_args.Npaths, j = help_args.Npaths + 1; 344 help_args.path (j).S = "0"b; 345 help_args.path (j).S.pn_ctl_arg = TRUE; 346 help_args.path (j).value = op; 347 help_args.path (j).info_name = ""; 348 end; 349 go to NEXT_ARG; 350 351 DO_ARG (9): 352 help_args.Sctl.all = TRUE; /* -all */ 353 go to NEXT_ARG; 354 355 DO_ARG (10): 356 help_args.Sctl.title = TRUE; /* -title */ 357 go to NEXT_ARG; 358 359 DO_ARG (11): 360 Stopics = TRUE; /* -topics - This arg is allowed only in the */ 361 go to NEXT_ARG; /* ssu_ help request, not in help command. */ 362 /* It supports obsolete function of listing */ 363 /* all available subsystem info segs. Proper */ 364 /* method of doing this is list_help request. */ 365 366 DO_ARG (12): 367 help_args.Sctl.lep = TRUE; /* -list_entrypoints */ 368 goto NEXT_ARG; 369 370 DO_ARG (13): 371 help_args.Sctl.cs = TRUE; /* -case_sensitive */ 372 goto NEXT_ARG; 373 374 DO_ARG (14): 375 help_args.Sctl.cs = FALSE; /* -non_case_sensitive */ 376 goto NEXT_ARG; 377 378 DO_ARG (15): 379 if Iarg = Nargs then 380 go to NO_OPERAND; /* -maxlines N */ 381 Iarg = Iarg + 1; 382 call ssu_$arg_ptr (sci_ptr, Iarg, Pop, Lop); 383 on conversion, size go to BAD_OPERAND; 384 help_args.min_Lpgh = convert (help_args.min_Lpgh, op); 385 revert conversion, size; 386 if help_args.min_Lpgh < 1 | help_args.min_Lpgh > 50 then 387 go to BAD_OPERAND; 388 go to NEXT_ARG; 389 390 DO_ARG (16): 391 if Iarg = Nargs then 392 go to NO_OPERAND; /* -minlines N */ 393 Iarg = Iarg + 1; 394 call ssu_$arg_ptr (sci_ptr, Iarg, Pop, Lop); 395 on conversion, size go to BAD_OPERAND; 396 help_args.min_Lpgh = convert (help_args.min_Lpgh, op); 397 revert conversion, size; 398 if help_args.min_Lpgh < 1 | help_args.min_Lpgh > 50 then 399 go to BAD_OPERAND; 400 go to NEXT_ARG; 401 402 NO_OPERAND: 403 Serror = TRUE; /* No operand given with -scn, -srh, -ca, -pn */ 404 call ssu_$abort_line (sci_ptr, error_table_$noarg, "No operand given following ^a.", arg); 405 go to NEXT_ARG; 406 407 BAD_OPERAND: 408 Serror = TRUE; /* Bad numeric operand with -minlines. */ 409 call ssu_$abort_line (sci_ptr, error_table_$bad_arg, " ^a^/Operand of ^a must be integer from 1 to 50.", op, arg); 410 end; 411 else 412 do; 413 j = 1; 414 if maxlength (help_args.path (j).value) < Larg then 415 do; 416 call ssu_$abort_line (sci_ptr, error_table_$bigarg, " ^a", arg); 417 Serror = TRUE; 418 end; 419 else 420 do; 421 help_args.Npaths, j = help_args.Npaths + 1; 422 help_args.path (j).S = "0"b; 423 help_args.path (j).info_name = ""; 424 if Sstandalone_invocation then 425 help_args.path (j).value = arg; 426 else help_args.path (j).value = find_subsystem_info_file (sci_ptr, arg); 427 end; 428 end; 429 NEXT_ARG: 430 end; 431 432 if Stopics then 433 do; 434 if Nctl_args ^= 1 | help_args.Npaths ^= 0 then 435 call ssu_$abort_line (sci_ptr, error_table_$inconsistent, "-topics and any other arguments"); 436 AStopics = TRUE; 437 go to RETURN; 438 end; 439 440 if help_args.Sctl.bf then /* Complain if other ctl_args given with -brief */ 441 if help_args.Sctl.title | help_args.Sctl.all | help_args.Sctl.lep then 442 do; 443 Serror = TRUE; 444 call ssu_$abort_line (sci_ptr, error_table_$inconsistent, 445 "^/-brief may not be given with: ^[ -title^]^[ -all^]^[ -lep^].", 446 help_args.Sctl.title, help_args.Sctl.all, help_args.Sctl.lep); 447 end; 448 if help_args.Sctl.ca then /* Complain if other ctl_args given with -ca */ 449 if help_args.Sctl.title | help_args.Sctl.all | help_args.Sctl.lep then 450 do; 451 Serror = TRUE; 452 call ssu_$abort_line (sci_ptr, error_table_$inconsistent, 453 "^/-control_arg may not be given with: ^[ -title^]^[ -all^]^ -lep^].", 454 help_args.Sctl.title, help_args.Sctl.all, help_args.Sctl.lep); 455 end; 456 if help_args.Sctl.he_only then 457 if help_args.Sctl.title | help_args.Sctl.bf | help_args.Sctl.all | 458 help_args.Sctl.ca | help_args.Sctl.cs | help_args.Sctl.lep then 459 do; 460 Serror = TRUE; 461 call ssu_$abort_line (sci_ptr, error_table_$inconsistent, " 462 -header may not be given with: ^[ -brief^]^[ -title^]^[ -control_arg^]^[ -all^]^[ -cs^]^[ -lep^].", 463 help_args.Sctl.bf, help_args.Sctl.title, help_args.Sctl.ca, 464 help_args.Sctl.all, help_args.Sctl.cs, help_args.Sctl.lep); 465 end; 466 if help_args.Sctl.cs then /* complain if cs given without scn or srh */ 467 if ^help_args.Sctl.srh & ^help_args.Sctl.scn then 468 do; 469 Serror = TRUE; 470 call ssu_$abort_line (sci_ptr, error_table_$inconsistent, " 471 ^[-cs^] may only be used with the -srh or -scn arguments.", help_args.Sctl.cs); 472 end; 473 if help_args.Sctl.lep then /* Complain if scn or srh given with lep */ 474 if help_args.Sctl.srh | help_args.Sctl.scn then 475 do; 476 Serror = TRUE; 477 call ssu_$abort_line (sci_ptr, error_table_$inconsistent, 478 "-lep may not be given with : ^[ -srh^]^[ -scn^].", 479 help_args.Sctl.srh, help_args.Sctl.scn); 480 end; 481 if help_args.Npaths = 0 then 482 do; /* Supply default pathname of help_system.gi.info.*/ 483 if Sstandalone_invocation then 484 do; 485 help_args.Npaths = 1; 486 help_args.path (1).value = "help_system.gi.info"; 487 /* Give info for installed help command. */ 488 help_args.path (1).info_name = ""; 489 help_args.path (1).S = "0"b; 490 end; 491 else call ssu_$abort_line (sci_ptr, error_table_$noarg, "One or more topic names."); 492 end; 493 494 do Iarg = Iarg_start_ca to Iarg_end_ca; 495 /* Add control arg names to arg structure. */ 496 call ssu_$arg_ptr (sci_ptr, Iarg, Parg, Larg); 497 j = 1; 498 if maxlength (help_args.ca (j)) < Larg then 499 do; 500 Serror = TRUE; 501 call ssu_$abort_line (sci_ptr, error_table_$bigarg, " -ca ^a 502 Maximum length is ^d characters.", arg, maxlength (help_args.ca (j))); 503 end; 504 else 505 do; 506 help_args.Ncas, j = help_args.Ncas + 1; 507 help_args.ca (j) = arg; 508 end; 509 end; 510 do Iarg = Iarg_start_scn to Iarg_end_scn; 511 /* Add -section substrings to arg structure. */ 512 call ssu_$arg_ptr (sci_ptr, Iarg, Parg, Larg); 513 j = 1; 514 if maxlength (help_args.scn (j)) < Larg then 515 do; 516 Serror = TRUE; 517 call ssu_$abort_line (sci_ptr, error_table_$bigarg, " -scn ^a 518 Maximum length is ^d characters.", arg, maxlength (help_args.scn (j))); 519 end; 520 else 521 do; 522 help_args.Nscns, j = help_args.Nscns + 1; 523 help_args.scn (j) = arg; 524 end; 525 end; 526 do Iarg = Iarg_start_srh to Nargs; /* Add -search args to control structure. */ 527 call ssu_$arg_ptr (sci_ptr, Iarg, Parg, Larg); 528 j = 1; 529 if maxlength (help_args.srh (j)) < Larg then 530 do; 531 Serror = TRUE; 532 call ssu_$abort_line (sci_ptr, error_table_$bigarg, " -srh ^a 533 Maximum length is ^d characters.", arg, maxlength (help_args.srh (j))); 534 end; 535 else 536 do; 537 help_args.Nsrhs, j = help_args.Nsrhs + 1; 538 help_args.srh (j) = arg; 539 end; 540 end; 541 if Serror then 542 do; 543 call janitor (); 544 return; 545 end; 546 547 call help_ (ssu_$get_subsystem_and_request_name (sci_ptr), Phelp_args, "info", error_type, code); 548 go to ERROR (error_type); 549 550 ARG_STRUC_ERR: 551 ERROR (1): /* bad help_args version. */ 552 ERROR (2): /* No pathnames given in help_args. */ 553 call ssu_$abort_line (sci_ptr, code, "^/Processing the argument structure used by help_."); 554 call janitor (); 555 return; 556 557 ERROR (3): /* Error encountered in processing one or more */ 558 /* of the pathnames given in help_args. */ 559 do Ipath = 1 to help_args.Npaths; 560 if help_args.path (Ipath).code ^= 0 then 561 call ssu_$abort_line (sci_ptr, help_args.path (Ipath).code, " ^[-pn ^]^a", help_args.path (Ipath).S.pn_ctl_arg, 562 help_args.path (Ipath).value); 563 end; 564 call janitor (); 565 return; 566 567 ERROR (5): /* If a nonzero error code is returned, it means */ 568 /* than -section and -search failed to find any */ 569 /* matching info segs to print. This error must */ 570 /* be reported to the user. */ 571 if code ^= 0 then 572 call ssu_$abort_line (sci_ptr, error_table_$noentry, " 573 Looking for infos matching info_name^[s^]^[^; and -search criteria^; and -section criteria^;" || 574 ", plus -section and -search criteria^].", 575 (help_args.Npaths > 1), (1 + 2 * bin (help_args.Sctl.scn, 1) + bin (help_args.Sctl.srh, 1))); 576 577 ERROR (4): /* No fatal errors encountered. Most nonfatal */ 578 RETURN: /* errors have been reported by help_. */ 579 call janitor (); 580 return; 581 582 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 583 584 585 abort_help_command: 586 procedure (); 587 588 go to RETURN; 589 590 end abort_help_command; 591 592 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 593 594 595 janitor: 596 procedure; 597 598 dcl Acode fixed bin (35); 599 600 if Phelp_args ^= null then 601 call help_$term (ssu_$get_subsystem_and_request_name (sci_ptr), Phelp_args, Acode); 602 if Sstandalone_invocation then 603 call ssu_$destroy_invocation (sci_ptr); 604 605 end janitor; 606 607 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 608 609 end help; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/17/00 1936.6 help.pl1 >udd>sm>ds>w>ml>help.pl1 172 1 09/15/88 2112.3 help_args_.incl.pl1 >ldd>incl>help_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. AStopics parameter bit(1) packed unaligned dcl 201 set ref 198 207* 436* Acode 000100 automatic fixed bin(35,0) dcl 598 set ref 600* Asci_ptr parameter pointer dcl 201 ref 198 206 FALSE constant bit(1) initial dcl 119 ref 185 207 208 225 234 326 374 Iarg 000100 automatic fixed bin(17,0) dcl 81 set ref 236* 237* 261 264 269* 269 270 271 272* 272* 274* 278* 278 281* 285 290 291* 298 301* 301 303 304 306* 306* 307* 311* 311 314* 330 333* 333 334* 378 381* 381 382* 390 393* 393 394* 494* 496* 510* 512* 526* 527* Iarg_end_ca 000101 automatic fixed bin(17,0) dcl 81 set ref 229* 304* 314* 494 Iarg_end_scn 000102 automatic fixed bin(17,0) dcl 81 set ref 230* 271* 281* 510 Iarg_start_ca 000103 automatic fixed bin(17,0) dcl 81 set ref 227* 303* 494 Iarg_start_scn 000104 automatic fixed bin(17,0) dcl 81 set ref 228* 270* 510 Iarg_start_srh 000105 automatic fixed bin(17,0) dcl 81 set ref 226* 290* 526 Ipath 000106 automatic fixed bin(17,0) dcl 81 set ref 557* 560 560 560 560* Larg 000107 automatic fixed bin(21,0) dcl 81 set ref 237* 238 241 245 249 254 254 338 338 404 404 409 409 414 416 416 424 426 426 496* 498 501 501 507 512* 514 517 517 523 527* 529 532 532 538 Lop 000110 automatic fixed bin(21,0) dcl 81 set ref 264* 265 265 274* 275 275 307* 308 308 334* 336 338 338 346 382* 384 394* 396 409 409 Nargs 000111 automatic fixed bin(17,0) dcl 81 set ref 177* 223* 226 227 228 236 261 272 285 291 298 306 330 378 390 526 Ncas 4 based fixed bin(17,0) level 2 dcl 1-55 set ref 506 506* 514 517 517 523 529 532 532 538 Nctl_args 000112 automatic fixed bin(17,0) dcl 81 set ref 235* 240* 240 434 Npaths 3 based fixed bin(17,0) level 2 dcl 1-55 set ref 343 343* 421 421* 434 481 485* 498 501 501 507 514 517 517 523 529 532 532 538 557 567 Nscns 5 based fixed bin(17,0) level 2 dcl 1-55 set ref 522 522* 529 532 532 538 Nsearch_dirs 2 based fixed bin(17,0) level 2 dcl 1-55 ref 336 344 344 344 344 344 344 344 344 345 346 347 414 422 422 422 422 422 422 422 422 423 424 426 486 488 489 489 489 489 489 489 489 489 498 501 501 507 514 517 517 523 529 532 532 538 560 560 560 560 Nsrhs 6 based fixed bin(17,0) level 2 dcl 1-55 set ref 537 537* Parg 000114 automatic pointer dcl 81 set ref 237* 238 241 245 249 254 338 404 409 416 424 426 496* 501 507 512* 517 523 527* 532 538 Phelp_args 000154 automatic pointer dcl 1-55 set ref 187* 209* 212* 214 216 221 231 233 268 288 294 305 318 322 326 336 343 343 344 345 346 347 351 355 366 370 374 384 384 386 386 396 396 398 398 414 421 421 422 423 424 426 434 440 440 440 440 444 444 444 448 448 448 448 452 452 452 456 456 456 456 456 456 456 461 461 461 461 461 461 466 466 466 470 473 473 473 477 477 481 485 486 488 489 498 501 501 506 506 507 514 517 517 522 522 523 529 532 532 537 537 538 547* 557 560 560 560 560 567 567 567 600 600* Pop 000116 automatic pointer dcl 81 set ref 264* 265 274* 275 307* 308 334* 338 346 382* 384 394* 396 409 S based structure array level 3 dcl 1-55 set ref 344* 422* 489* Sctl 1 based structure level 2 dcl 1-55 Serror 000120 automatic bit(1) packed unaligned dcl 81 set ref 225* 253* 339* 402* 407* 417* 443* 451* 460* 469* 476* 500* 516* 531* 541 Slist_requests 000121 automatic bit(1) packed unaligned dcl 81 set ref 185* Sstandalone_invocation 000123 automatic bit(1) packed unaligned dcl 81 set ref 184* 208* 231 424 483 602 Stopics 000122 automatic bit(1) packed unaligned dcl 81 set ref 234* 359* 432 TRUE constant bit(1) initial dcl 119 ref 184 231 233 253 268 288 294 305 318 322 339 345 351 355 359 366 370 402 407 417 436 443 451 460 469 476 500 516 531 Vhelp_args_3 000025 constant fixed bin(17,0) initial dcl 1-55 set ref 212* 216 all 1(10) based bit(1) level 3 packed packed unaligned dcl 1-55 set ref 351* 440 444* 448 452* 456 461* arg based char packed unaligned dcl 100 set ref 238 241 245 249 254* 338* 404* 409* 416* 424 426* 501* 507 517* 523 532* 538 bf 1(07) based bit(1) level 3 packed packed unaligned dcl 1-55 set ref 294* 440 456 461* bin builtin function dcl 103 ref 567 567 ca 1(08) based bit(1) level 3 in structure "help_args" packed packed unaligned dcl 1-55 in procedure "help" set ref 305* 448 456 461* ca based varying char(32) array level 2 in structure "help_args" dcl 1-55 in procedure "help" set ref 498 501 501 507* cleanup 000124 stack reference condition dcl 81 ref 188 210 code 000146 automatic fixed bin(35,0) dcl 81 in procedure "help" set ref 177* 178 180* 190* 191 193* 212* 218* 547* 550* 567 code based fixed bin(35,0) array level 3 in structure "help_args" dcl 1-55 in procedure "help" set ref 560 560* com_err_ 000010 constant entry external dcl 106 ref 180 193 conversion 000132 stack reference condition dcl 81 ref 383 385 395 397 convert builtin function dcl 103 ref 384 396 cs 1(12) based bit(1) level 3 packed packed unaligned dcl 1-55 set ref 370* 374* 456 461* 466 470* ctl_abbrev 000171 constant varying char(6) initial array dcl 119 ref 241 241 243 ctl_obsolete 000025 constant varying char(3) initial array dcl 119 ref 249 249 251 ctl_word 000031 constant varying char(20) initial array dcl 119 ref 245 245 247 cu_$arg_count 000012 constant entry external dcl 106 ref 177 dim builtin function dcl 103 ref 241 243 245 247 249 251 ep 1(09) based bit(1) level 3 packed packed unaligned dcl 1-55 set ref 318* error_table_$active_function 000030 external static fixed bin(35,0) dcl 119 ref 178 error_table_$bad_arg 000032 external static fixed bin(35,0) dcl 119 set ref 409* error_table_$badopt 000034 external static fixed bin(35,0) dcl 119 set ref 254* error_table_$bigarg 000036 external static fixed bin(35,0) dcl 119 set ref 338* 416* 501* 517* 532* error_table_$inconsistent 000040 external static fixed bin(35,0) dcl 119 set ref 434* 444* 452* 461* 470* 477* error_table_$noarg 000042 external static fixed bin(35,0) dcl 119 set ref 404* 491* error_table_$noentry 000044 external static fixed bin(35,0) dcl 119 set ref 567* error_table_$unimplemented_version 000046 external static fixed bin(35,0) dcl 119 ref 218 error_type 000147 automatic fixed bin(17,0) dcl 81 set ref 547* 548 find_subsystem_info_file parameter entry variable dcl 201 ref 198 426 he_counts 1(03) based bit(1) level 3 packed packed unaligned dcl 1-55 set ref 233* he_only 1 based bit(1) level 3 packed packed unaligned dcl 1-55 set ref 322* 456 he_pn 1(01) based bit(1) level 3 packed packed unaligned dcl 1-55 set ref 231* 326* help_ 000050 constant entry external dcl 1-160 ref 547 help_$init 000052 constant entry external dcl 1-160 ref 212 help_$term 000054 constant entry external dcl 1-160 ref 600 help_args based structure level 1 dcl 1-55 index builtin function dcl 103 ref 238 info_name based char(32) array level 3 packed packed unaligned dcl 1-55 set ref 347* 423* 488* j 000150 automatic fixed bin(17,0) dcl 81 set ref 241* 241* 243 245* 245* 247 249* 249* 251 259 335* 336 343* 344 344 344 344 344 344 344 345 346 347 413* 414 421* 422 422 422 422 422 422 422 423 424 426 497* 498 501 501 506* 507 513* 514 517 517 522* 523 528* 529 532 532 537* 538 lep 1(11) based bit(1) level 3 packed packed unaligned dcl 1-55 set ref 366* 440 444* 448 452* 456 461* 473 maxlength builtin function dcl 103 ref 336 414 498 501 501 514 517 517 529 532 532 min_Lpgh 7 based fixed bin(17,0) level 2 dcl 1-55 set ref 384* 384 386 386 396* 396 398 398 null builtin function dcl 103 ref 186 187 190 190 209 214 600 op based char packed unaligned dcl 100 set ref 265 275 308 338* 346 384 396 409* path based structure array level 2 dcl 1-55 pn_ctl_arg based bit(1) array level 4 packed packed unaligned dcl 1-55 set ref 345* 560* sci_ptr 14 based pointer level 2 in structure "help_args" dcl 1-55 in procedure "help" set ref 221* sci_ptr 000152 automatic pointer dcl 81 in procedure "help" set ref 186* 190* 206* 212* 221 223* 237* 254* 264* 274* 307* 334* 338* 382* 394* 404* 409* 416* 426* 434* 444* 452* 461* 470* 477* 491* 496* 501* 512* 517* 527* 532* 547* 550* 560* 567* 600* 602* scn based varying char(80) array level 2 in structure "help_args" dcl 1-55 in procedure "help" set ref 514 517 517 523* scn 1(05) based bit(1) level 3 in structure "help_args" packed packed unaligned dcl 1-55 in procedure "help" set ref 268* 466 473 477* 567 size 000140 stack reference condition dcl 81 ref 383 385 395 397 srh based varying char(80) array level 2 in structure "help_args" dcl 1-55 in procedure "help" set ref 529 532 532 538* srh 1(06) based bit(1) level 3 in structure "help_args" packed packed unaligned dcl 1-55 in procedure "help" set ref 288* 466 473 477* 567 ssu_$abort_line 000014 constant entry external dcl 106 ref 254 338 404 409 416 434 444 452 461 470 477 491 501 517 532 550 560 567 ssu_$arg_count 000016 constant entry external dcl 106 ref 223 ssu_$arg_ptr 000020 constant entry external dcl 106 ref 237 264 274 307 334 382 394 496 512 527 ssu_$destroy_invocation 000022 constant entry external dcl 106 ref 602 ssu_$get_subsystem_and_request_name 000024 constant entry external dcl 106 ref 212 547 600 ssu_$standalone_invocation 000026 constant entry external dcl 106 ref 190 substr builtin function dcl 103 ref 265 275 308 title 1(04) based bit(1) level 3 packed packed unaligned dcl 1-55 set ref 355* 440 444* 448 452* 456 461* value based varying char(425) array level 3 dcl 1-55 set ref 336 346* 414 424* 426* 486* 560* version based fixed bin(17,0) level 2 dcl 1-55 ref 216 NAMES DECLARED BY EXPLICIT CONTEXT. ARG_STRUC_ERR 004045 constant label dcl 550 ref 214 219 BAD_OPERAND 002332 constant label dcl 407 ref 383 386 395 398 COMMON 001107 constant label dcl 212 ref 196 DO_ARG 000000 constant label array(16) dcl 261 ref 259 ERROR 000020 constant label array(5) dcl 550 ref 548 NEXT_ARG 002626 constant label dcl 429 ref 255 279 283 292 296 312 316 320 324 328 349 353 357 361 368 372 376 388 400 405 NO_OPERAND 002274 constant label dcl 402 ref 261 265 285 298 330 378 390 RETURN 004262 constant label dcl 577 ref 437 588 abort_help_command 004270 constant entry internal dcl 585 ref 190 190 help 000652 constant entry external dcl 78 janitor 004301 constant entry internal dcl 595 ref 188 210 543 554 564 577 ssu_help_request 001045 constant entry external dcl 198 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 4674 4752 4401 4704 Length 5220 4401 56 232 272 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME help 352 external procedure is an external procedure. on unit on line 188 64 on unit on unit on line 210 64 on unit on unit on line 383 64 on unit on unit on line 395 64 on unit abort_help_command 64 internal procedure is assigned to an entry variable. janitor 108 internal procedure is called by several nonquick procedures. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME help 000100 Iarg help 000101 Iarg_end_ca help 000102 Iarg_end_scn help 000103 Iarg_start_ca help 000104 Iarg_start_scn help 000105 Iarg_start_srh help 000106 Ipath help 000107 Larg help 000110 Lop help 000111 Nargs help 000112 Nctl_args help 000114 Parg help 000116 Pop help 000120 Serror help 000121 Slist_requests help 000122 Stopics help 000123 Sstandalone_invocation help 000146 code help 000147 error_type help 000150 j help 000152 sci_ptr help 000154 Phelp_args help janitor 000100 Acode janitor THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a alloc_char_temp call_ent_var_desc call_ext_out_desc call_ext_out call_int_this call_int_other return_mac tra_ext_1 enable_op shorten_stack ext_entry int_entry any_to_any_truncate_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_count help_ help_$init help_$term ssu_$abort_line ssu_$arg_count ssu_$arg_ptr ssu_$destroy_invocation ssu_$get_subsystem_and_request_name ssu_$standalone_invocation THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$active_function error_table_$bad_arg error_table_$badopt error_table_$bigarg error_table_$inconsistent error_table_$noarg error_table_$noentry error_table_$unimplemented_version LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 78 000651 177 000657 178 000667 180 000673 181 000711 184 000712 185 000714 186 000715 187 000717 188 000720 190 000742 191 001007 193 001011 194 001037 196 001040 198 001041 206 001052 207 001056 208 001062 209 001063 210 001065 212 001107 214 001171 216 001176 218 001201 219 001204 221 001205 223 001210 225 001221 226 001222 227 001225 228 001230 229 001233 230 001234 231 001235 233 001242 234 001245 235 001246 236 001247 237 001257 238 001274 240 001310 241 001311 242 001330 243 001332 245 001335 246 001354 247 001356 249 001361 250 001400 251 001402 253 001405 254 001407 255 001433 259 001434 261 001435 264 001440 265 001457 268 001467 269 001472 270 001473 271 001475 272 001476 274 001505 275 001522 278 001532 279 001534 281 001535 282 001537 283 001541 285 001542 288 001545 290 001550 291 001552 292 001554 294 001555 296 001560 298 001561 301 001564 303 001565 304 001567 305 001570 306 001573 307 001601 308 001616 311 001626 312 001630 314 001631 315 001633 316 001635 318 001636 320 001641 322 001642 324 001645 326 001646 328 001651 330 001652 333 001655 334 001656 335 001673 336 001675 338 001700 339 001741 340 001743 343 001744 344 001751 345 002040 346 002042 347 002057 349 002066 351 002067 353 002072 355 002073 357 002076 359 002077 361 002101 366 002102 368 002105 370 002106 372 002111 374 002112 376 002115 378 002116 381 002121 382 002122 383 002137 384 002163 385 002174 386 002176 388 002204 390 002205 393 002210 394 002211 395 002226 396 002252 397 002263 398 002265 400 002273 402 002274 404 002276 405 002331 407 002332 409 002334 410 002376 413 002377 414 002401 416 002404 417 002436 418 002440 421 002441 422 002446 423 002534 424 002543 426 002562 429 002626 432 002630 434 002632 436 002664 437 002671 440 002672 443 002701 444 002703 448 002747 451 002756 452 002760 456 003024 460 003033 461 003035 466 003120 469 003127 470 003131 473 003163 476 003172 477 003174 481 003233 483 003236 485 003240 486 003242 488 003253 489 003257 490 003300 491 003301 494 003325 496 003335 497 003352 498 003354 500 003357 501 003361 503 003422 506 003423 507 003430 509 003455 510 003457 512 003467 513 003504 514 003506 516 003511 517 003513 519 003554 522 003555 523 003562 525 003613 526 003615 527 003625 528 003642 529 003644 531 003647 532 003651 534 003712 537 003713 538 003720 540 003755 541 003757 543 003761 544 003765 547 003766 548 004042 550 004045 554 004071 555 004075 557 004076 560 004107 563 004175 564 004177 565 004203 567 004204 577 004262 580 004266 585 004267 588 004275 595 004300 600 004306 602 004355 605 004370 ----------------------------------------------------------- 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