COMPILATION LISTING OF SEGMENT tedhelp_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/07/88 1306.3 mst Fri Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1981 * 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-01-21,LJAdams), approve(86-01-21,MCR7327), 17* audit(86-04-17,Lippard), install(86-04-24,MR12.0-1048): 18* Added ssu_ references so subsytem call to help_ work properly. Added 19* include file "help_args" which contains the new version number for help. 20* 2) change(88-08-03,RWaters), approve(88-08-03,MCR7950), 21* audit(88-09-29,Huen), install(88-10-07,MR12.2-1146): 22* Bug fixes for MR12.2. 23* END HISTORY COMMENTS */ 24 25 26 /**** format: ind3,ll80,initcol6,indattr,^inddcls,dclind4,idind16 */ 27 /**** format: struclvlind2,^ifthenstmt,^ifthendo,^ifthen,^indnoniterdo */ 28 /**** format: ^inditerdo,^indnoniterend,^indthenelse,case,^indproc,^indend */ 29 /**** format: ^delnl,^insnl,comcol41,^indcom,^indblkcom,linecom,^indcomtxt */ 30 31 tedhelp_: proc (rstr); 32 33 dcl rstr char (*); 34 35 /* UPDATE HISTORY */ 36 /* EL# date TR comments */ 37 /* 143 84-10-10 phx17314 "help -about " == "help " */ 38 /* modified April, 1985 by L. Adams - use new help_args_ incl file */ 39 /* 202 88-07-08 phx20819 sci_ptr must be set to null() */ 40 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 * * * * * */ 41 2 1 /* BEGIN INCLUDE FILE ..... tedcommon_.incl.pl1 ..... 02/15/82 J Falksen */ 2 2 2 3 /* ted common data area */ 2 4 2 5 dcl 1 tedcommon_$id ext static, 2 6 2 ted_vers char(12)var; /* version.revision */ 2 7 2 8 dcl 1 tedcommon_$no_data like buf_des ext static; 2 9 dcl 1 tedcommon_$no_seg like seg_des ext static; 2 10 2 11 dcl 1 tedcommon_$etc ext static, 2 12 2 com_blank bit(1)aligned, 2 13 2 com1_blank bit(1)aligned, 2 14 2 caps bit(1)aligned, 2 15 2 reset_read bit(1)aligned, 2 16 2 sws, 2 17 3 (db_ted, lg_ted) bit(1)aligned, 2 18 3 (db_addr, lg_addr) bit(1)aligned, 2 19 3 (db_eval, lg_eval) bit(1)aligned, 2 20 3 (db_sort, lg_sort) bit(1)aligned, 2 21 3 (db_gv, lg_gv) bit(1)aligned, 2 22 3 (db_util, lg_util) bit(1)aligned, 2 23 3 (db_srch, lg_srch) bit(1)aligned, 2 24 3 (db_glob, lg_glob) bit(1)aligned, 2 25 3 (db_trac, lg_sp4) bit(1)aligned, 2 26 3 (db_Ed, lg_sp3) bit(1)aligned, 2 27 3 (db_sp2, lg_sp2) bit(1)aligned, 2 28 3 (db_sp1, lg_sp1) bit(1)aligned, 2 29 3 (db_catch, lg_catch)bit(1)aligned, 2 30 2 db_output ptr; 2 31 2 32 /* END INCLUDE FILE ..... tedcommon_.incl.pl1 ..... */ 42 43 dcl 1 buf_des, 2 des; /* These 2 lines are to fulfill */ 44 dcl 1 seg_des, 2 des; /* ..refs in tedcommon. */ 45 46 dcl about_sw bit (1); 47 dcl err_ct fixed bin; 48 dcl error_table_$badopt fixed bin (35) ext static; 49 dcl error_table_$nomatch fixed bin (35) ext static; 50 dcl first_rule_p ptr; 51 dcl i fixed bin; 52 dcl me char (8) int static init ("ted_help"); 53 dcl msg char (168) var; 54 dcl code fixed bin (35); 55 dcl msg_sw bit (1); 56 dcl bar_info bit (1); 57 dcl progress fixed bin; 58 /* =1: bad help_args version */ 59 /* =2: no pathnames given. */ 60 /* =3: evaluating pathnames. */ 61 /* =4: finding help segs. */ 62 /* =5: -section/-search */ 63 /* & printing help segs. */ 64 dcl rstr_b fixed bin; 65 dcl sci_ptr ptr; 66 dcl sec_sw bit (1); 67 dcl state fixed bin; 68 dcl tp ptr; 69 dcl dname char (168); 70 dcl command_error condition; 71 72 dcl com_err_ entry options (variable); 73 dcl convert_date_to_binary_ entry (char (*), fixed bin (71), fixed bin (35)); 74 dcl hcs_$fs_get_path_name entry (ptr, char (*), fixed bin, char (*), 75 fixed bin (35)); 76 dcl hcs_$make_ptr entry (ptr, char (*), char (*), ptr, fixed bin (35)); 77 dcl hcs_$status_minf entry (char(*), char(*), fixed bin(1), fixed bin(2), 78 fixed bin(24), fixed bin(35)); 79 dcl ioa_ entry options (variable); 80 81 dcl ssu_$destroy_invocation entry (ptr), 82 ssu_$standalone_invocation entry (ptr, char(*), char(*), ptr, entry, fixed bin(35)); 83 84 85 dcl (addr, codeptr, index, length, null, rtrim, string, substr, verify 86 ) builtin; 87 88 dcl cleanup condition; 89 90 91 call help_$init (me, "info", "", Vhelp_args_3, Phelp_args, code); 92 if (code ^= 0) 93 then call com_err_ (code, me, "init"); 94 95 help_args.Sctl.title = "1"b; 96 help_args.Lspace_between_infos = 1; 97 bar_info = "0"b; 98 help_args.min_Lpgh = 2; 99 help_args.Npaths = 1; 100 help_args.path (1).value = "ted"; 101 string (help_args.path (1).S) = "0"b; 102 help_args.dir (1, 1) = ""; 103 help_args.ent (1) = ""; 104 help_args.S (1).info_name_not_starname = "1"b; 105 /* RW 88 */ 106 help_args.sci_ptr = null; /*#202*/ 107 108 xxxxx: first_rule_p = codeptr (xxxxx); /* get pointer to me */ 109 rstr_b = verify (rstr, " "); /* skip any leading SP */ 110 msg_sw, about_sw, sec_sw = "0"b; 111 state = 1; 112 113 /* . 1 2 3 4 5 6 7 <-- STATE */ 114 /* . |func info section -about topic -from X */ 115 /* . Expected combinations: */ 116 /* . info */ 117 /* . info section */ 118 /* . ** section */ 119 /* . -about topic */ 120 /* . -from X */ 121 /* . ** section -from X */ 122 /* . |func */ 123 /* . |func info */ 124 /* . |info -about topic */ 125 /* . -msg xxx)etc */ 126 127 do while (rstr_b < length (rstr)); 128 i = index (substr (rstr, rstr_b), " "); 129 if (i = 0) 130 then i = length (rstr) - rstr_b; 131 else i = i - 1; 132 if (i > 1) 133 then do; 134 if (substr (rstr, rstr_b, 1) = "|") 135 then do; 136 if (state ^= 1) 137 then do; 138 msg = "External function name must be first."; 139 goto err_ret; 140 end; 141 call find_external_info; 142 bar_info = "1"b; 143 state = 2; 144 goto update; 145 end; 146 if (substr (rstr, rstr_b, i) = "-msg") 147 then do; 148 if (state = 1) 149 then do; 150 help_args.title = "0"b; 151 msg_sw = "1"b; 152 help_args.path (1).value = "ted_msgs"; 153 state = 2; 154 goto update; 155 end; 156 end; 157 if (substr (rstr, rstr_b, i) = "-about") 158 then do; 159 help_args.title = "0"b; /* #143*/ 160 if (state < 3) 161 then do; 162 help_args.info_name (1) = "**"; 163 help_args.S (1).info_name_not_starname = "0"b; 164 about_sw = "1"b; 165 state = 5; 166 goto update; 167 end; 168 if (state < 5) 169 then do; 170 state = 5; 171 goto update; 172 end; 173 msg = "Misplaced -about."; 174 goto err_ret; 175 end; 176 if (substr (rstr, rstr_b, i) = "-from") 177 then do; 178 if (state = 5) 179 then do; 180 msg = "-from cannot follow -about."; 181 goto err_ret; 182 end; 183 if (state = 1) 184 then do; 185 help_args.Sctl.he_only = "1"b; 186 help_args.Sctl.he_info_name = "1"b; 187 help_args.Sctl.he_counts = "1"b; 188 help_args.info_name (1) = "**"; 189 help_args.S (1).info_name_not_starname = "0"b; 190 end; 191 rstr_b = rstr_b + i; 192 i = length (rstr) - rstr_b; 193 msg = substr (rstr, rstr_b, i); 194 call convert_date_to_binary_ ((msg), 195 help_args.min_date_time, code); 196 if (code ^= 0) 197 then goto err_ret; 198 goto update; 199 end; 200 if (substr (rstr, rstr_b, 1) = "-") 201 then do; 202 msg = substr (rstr, rstr_b, i); 203 code = error_table_$badopt; 204 goto err_ret; 205 end; 206 end; 207 if (state < 3) 208 then do; 209 help_args.info_name (1) = substr (rstr, rstr_b, i); 210 if (help_args.info_name (1) = "**") 211 then help_args.info_name_not_starname (1) = "0"b; 212 state = 3; 213 if msg_sw 214 then if (i > 5) 215 then if (substr (help_args.info_name (1), 5, 1) = "|") 216 then do; /* external function error */ 217 rstr_b = rstr_b + 4; 218 i = i - 4; 219 call find_external_info; 220 221 /* The form here is */ 222 /* -msg xxx)|yyyy */ 223 /* The action to be done is to search for ted_yyyy_ and then use the */ 224 /* directory containing it as the search directory. The segment looked for */ 225 /* is ted_yyyy_.info. The info looked for is "xxx)|yyyy". If that is not */ 226 /* found, then "xxx)" is looked for. */ 227 228 end; 229 goto update; 230 end; 231 if (state = 3) 232 then do; 233 help_args.title = "0"b; 234 help_args.Sctl.scn, sec_sw = "1"b; 235 help_args.Nscns = 1; 236 help_args.scn (1) = substr (rstr, rstr_b, i); 237 state = 4; 238 goto update; 239 end; 240 if (state = 5) 241 then do; 242 help_args.Nsrhs = 1; 243 help_args.Sctl.srh = "1"b; 244 i = length (rstr) - rstr_b; 245 help_args.srh = substr (rstr, rstr_b, i); 246 goto update; 247 end; 248 msg = "Improper arguments."; 249 err_ret: 250 call com_err_ (code, me, "^a", msg); 251 goto return_; 252 update: 253 rstr_b = rstr_b + i; 254 rstr_b = rstr_b - 1 + verify (substr (rstr, rstr_b), " "); 255 /* skip any leading SP */ 256 end; 257 258 259 on condition (command_error) begin; 260 dcl 1 command_error_info aligned based (cond_info.infoptr), 261 2 length fixed bin, 262 2 version fixed bin init (2), 263 2 action_flags, 264 3 cant_restart bit (1) unal, 265 3 default_restart bit (1) unal, 266 3 reserved bit (34) unal, 267 2 info_string char (256) var, 268 2 status_code fixed bin (35), 269 2 name_p ptr, 270 2 name_l fixed bin, 271 2 msg_p ptr, 272 2 msg_l fixed bin, 273 2 msg_maxl fixed bin, 274 2 print_sw bit (1); 275 dcl 1 cond_info aligned, 3 1 /* BEGIN INCLUDE FILE ... cond_info.incl.pl1 3 2* coded by M. Weaver 12 July 1973 */ 3 3 3 4 2 mcptr ptr, /* ptr to machine conditions at time of fault */ 3 5 2 version fixed bin, /* version of this structure (now=1) */ 3 6 2 condition_name char(32) var, /* name of condition */ 3 7 2 infoptr ptr, /* ptr to software info structure */ 3 8 2 wcptr ptr, /* ptr to wall crossing machine conditions */ 3 9 2 loc_ptr ptr, /* ptr to location where condition occurred */ 3 10 2 flags aligned, 3 11 3 crawlout bit(1) unal, /* = "1"b if condition occurred in inner ring */ 3 12 3 pad1 bit(35) unal, 3 13 2 pad_word bit(36) aligned, 3 14 2 user_loc_ptr ptr, /* ptr to last non-support loc before condition */ 3 15 2 pad (4) bit(36) aligned; 3 16 3 17 /* END INCLUDE FILE ... cond_info.incl.pl1 */ 276 277 dcl find_condition_info_ entry (ptr, ptr, fixed bin (35)); 278 279 call find_condition_info_ (null (), addr (cond_info), code); 280 if (code = 0) 281 then do; 282 command_error_info.print_sw = "0"b; 283 err_ct = err_ct + 1; 284 end; 285 286 end; 287 dcl l fixed bin; 288 call hcs_$fs_get_path_name (first_rule_p, dname, l, "", code); 289 if (code ^= 0) 290 then do; 291 call com_err_ (code, me, "Getting pathname from ^p", first_rule_p); 292 goto return_; 293 end; 294 call hcs_$status_minf (dname, help_args.path (1).value || ".info", 295 0, 0, 0, code); 296 if (code = 0) /* if name was found, use that'un */ 297 then help_args.path (1).value 298 = rtrim (dname) || ">" || help_args.path (1).value; 299 300 re_help: 301 err_ct = 0; 302 sci_ptr = null; 303 304 on cleanup 305 begin; 306 if Phelp_args ^= null then 307 call ssu_$destroy_invocation (help_args.sci_ptr); 308 else if sci_ptr ^= null then 309 call ssu_$destroy_invocation (sci_ptr); 310 end; 311 312 call ssu_$standalone_invocation (sci_ptr, me, (ted_vers), null, abort_help_command, code); 313 if code ^= 0 then 314 call com_err_ (code, me, "Unable to invoke ssu."); 315 316 help_args.sci_ptr = sci_ptr; 317 318 call help_ (me, Phelp_args, "info", progress, code); 319 if (err_ct > 0) & msg_sw 320 then do; 321 if (substr (help_args.info_name (1), 4, 1) = ")") 322 then do; 323 substr (help_args.info_name (1), 4) = ""; 324 goto re_help; 325 end; 326 call ioa_ ("No additional help available.^/"); 327 code = 0; 328 end; 329 if (code ^= 0) 330 then do; 331 if (progress = 3) 332 then code = help_args.path (1).code; 333 if (progress = 5) & (sec_sw | about_sw) & (err_ct = 0) 334 then call ioa_ ( 335 "^[^; Info ""^a"" does not contain section ""^a""" 336 || "^[ (in ^a)^]^/^]", about_sw, help_args.info_name (1), 337 help_args.scn (1), bar_info, help_args.search_dirs (1)); 338 else if (progress = 4) 339 then call ioa_ ("Info segment not found. ^a.info", 340 help_args.value (1)); 341 else do; 342 if (code = error_table_$nomatch) 343 then call ioa_ ("No info found. ^a^[ (in ^a)^]", 344 help_args.info_name (1), bar_info, help_args.search_dirs (1)); 345 else call com_err_ (code, me); 346 end; 347 end; 348 349 return_: 350 if Phelp_args ^= null then 351 call ssu_$destroy_invocation (help_args.sci_ptr); 352 else if sci_ptr ^= null then 353 call ssu_$destroy_invocation (sci_ptr); 354 call help_$term (me, Phelp_args, 0); 355 return; 356 357 358 abort_help_command: 359 proc; 360 361 return; 362 end abort_help_command; 363 364 365 find_external_info: proc; 366 help_args.value (1) = "ted_"; 367 help_args.info_name (1) = ""; 368 help_args.value (1) 369 = help_args.value (1) || substr (rstr, rstr_b + 1, i - 1); 370 help_args.value (1) = help_args.value (1) || "_"; 371 372 call hcs_$make_ptr (first_rule_p, (help_args.value (1)), 373 (help_args.value (1)), tp, code); 374 if (code ^= 0) 375 then do; 376 call com_err_ (code, me, "Searching for ^a", 377 help_args.value (1)); 378 goto return_; 379 end; 380 first_rule_p = tp; 381 end; 382 383 end tedhelp_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/07/88 1306.3 tedhelp_.pl1 >spec>install>1146>tedhelp_.pl1 41 1 09/15/88 2012.3 help_args_.incl.pl1 >ldd>include>help_args_.incl.pl1 42 2 12/18/84 0954.3 tedcommon_.incl.pl1 >ldd>include>tedcommon_.incl.pl1 276 3 05/06/74 1741.0 cond_info.incl.pl1 >ldd>include>cond_info.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. Lspace_between_infos 11 based fixed bin(17,0) level 2 dcl 1-55 set ref 96* Ncas 4 based fixed bin(17,0) level 2 dcl 1-55 ref 236 245 245 333 Npaths 3 based fixed bin(17,0) level 2 dcl 1-55 set ref 99* 236 245 245 333 Nscns 5 based fixed bin(17,0) level 2 dcl 1-55 set ref 235* 245 245 Nsearch_dirs 2 based fixed bin(17,0) level 2 dcl 1-55 ref 100 101 102 103 104 152 162 163 188 189 209 210 210 213 236 245 245 294 296 296 321 323 331 333 333 338 342 366 367 368 368 370 370 372 372 376 Nsrhs 6 based fixed bin(17,0) level 2 dcl 1-55 set ref 242* 245 Phelp_args 000100 automatic pointer dcl 1-55 set ref 91* 95 96 98 99 100 101 102 103 104 106 150 152 159 162 163 185 186 187 188 189 194 209 210 210 213 233 234 235 236 242 243 245 294 296 296 306 306 316 318* 321 323 331 333 333 333 338 342 342 349 349 354* 366 367 368 368 370 370 372 372 376 S based structure array level 3 dcl 1-55 set ref 101* Sctl 1 based structure level 2 dcl 1-55 Vhelp_args_3 000034 constant fixed bin(17,0) initial dcl 1-55 set ref 91* about_sw 000104 automatic bit(1) packed unaligned dcl 46 set ref 110* 164* 333 333* addr builtin function dcl 85 ref 279 279 bar_info 000166 automatic bit(1) packed unaligned dcl 56 set ref 97* 142* 333* 342* buf_des 000102 automatic structure level 1 unaligned dcl 43 cleanup 000260 stack reference condition dcl 88 ref 304 code based fixed bin(35,0) array level 3 in structure "help_args" dcl 1-55 in procedure "tedhelp_" ref 331 code 000164 automatic fixed bin(35,0) dcl 54 in procedure "tedhelp_" set ref 91* 92 92* 194* 196 203* 249* 279* 280 288* 289 291* 294* 296 312* 313 313* 318* 327* 329 331* 342 345* 372* 374 376* codeptr builtin function dcl 85 ref 108 com_err_ 000026 constant entry external dcl 72 ref 92 249 291 313 345 376 command_error 000252 stack reference condition dcl 70 ref 259 command_error_info based structure level 1 dcl 260 cond_info 000100 automatic structure level 1 dcl 275 set ref 279 279 convert_date_to_binary_ 000030 constant entry external dcl 73 ref 194 dir based char(168) array level 3 packed packed unaligned dcl 1-55 set ref 102* dname 000200 automatic char(168) packed unaligned dcl 69 set ref 288* 294* 296 ent based char(32) array level 3 packed packed unaligned dcl 1-55 set ref 103* err_ct 000105 automatic fixed bin(17,0) dcl 47 set ref 283* 283 300* 319 333 error_table_$badopt 000022 external static fixed bin(35,0) dcl 48 ref 203 error_table_$nomatch 000024 external static fixed bin(35,0) dcl 49 ref 342 find_condition_info_ 000046 constant entry external dcl 277 ref 279 first_rule_p 000106 automatic pointer dcl 50 set ref 108* 288* 291* 372* 380* hcs_$fs_get_path_name 000032 constant entry external dcl 74 ref 288 hcs_$make_ptr 000034 constant entry external dcl 76 ref 372 hcs_$status_minf 000036 constant entry external dcl 77 ref 294 he_counts 1(03) based bit(1) level 3 packed packed unaligned dcl 1-55 set ref 187* he_info_name 1(02) based bit(1) level 3 packed packed unaligned dcl 1-55 set ref 186* he_only 1 based bit(1) level 3 packed packed unaligned dcl 1-55 set ref 185* help_ 000012 constant entry external dcl 1-160 ref 318 help_$init 000014 constant entry external dcl 1-160 ref 91 help_$term 000016 constant entry external dcl 1-160 ref 354 help_args based structure level 1 dcl 1-55 i 000110 automatic fixed bin(17,0) dcl 51 set ref 128* 129 129* 131* 131 132 146 157 176 191 192* 193 202 209 213 218* 218 236 244* 245 252 368 index builtin function dcl 85 ref 128 info_name based char(32) array level 3 packed packed unaligned dcl 1-55 set ref 162* 188* 209* 210 213 321 323* 333* 342* 367* info_name_not_starname based bit(1) array level 4 packed packed unaligned dcl 1-55 set ref 104* 163* 189* 210* infoptr 14 000100 automatic pointer level 2 dcl 275 set ref 282 ioa_ 000040 constant entry external dcl 79 ref 326 333 338 342 l 000266 automatic fixed bin(17,0) dcl 287 set ref 288* length builtin function dcl 85 ref 127 129 192 244 me 000010 internal static char(8) initial packed unaligned dcl 52 set ref 91* 92* 249* 291* 312* 313* 318* 345* 354* 376* min_Lpgh 7 based fixed bin(17,0) level 2 dcl 1-55 set ref 98* min_date_time 12 based fixed bin(71,0) level 2 dcl 1-55 set ref 194* msg 000111 automatic varying char(168) dcl 53 set ref 138* 173* 180* 193* 194 202* 248* 249* msg_sw 000165 automatic bit(1) packed unaligned dcl 55 set ref 110* 151* 213 319 null builtin function dcl 85 ref 106 279 279 302 306 308 312 312 349 352 path based structure array level 2 dcl 1-55 print_sw 116 based bit(1) level 2 dcl 260 set ref 282* progress 000167 automatic fixed bin(17,0) dcl 57 set ref 318* 331 333 338 rstr parameter char packed unaligned dcl 33 ref 31 109 127 128 129 134 146 157 176 192 193 200 202 209 236 244 245 254 368 rstr_b 000170 automatic fixed bin(17,0) dcl 64 set ref 109* 127 128 129 134 146 157 176 191* 191 192 193 200 202 209 217* 217 236 244 245 252* 252 254* 254 254 368 rtrim builtin function dcl 85 ref 296 sci_ptr 000172 automatic pointer dcl 65 in procedure "tedhelp_" set ref 302* 308 308* 312* 316 352 352* sci_ptr 14 based pointer level 2 in structure "help_args" dcl 1-55 in procedure "tedhelp_" set ref 106* 306* 316* 349* scn based varying char(80) array level 2 in structure "help_args" dcl 1-55 in procedure "tedhelp_" set ref 236* 333* scn 1(05) based bit(1) level 3 in structure "help_args" packed packed unaligned dcl 1-55 in procedure "tedhelp_" set ref 234* search_dirs 26 based char(168) array level 2 packed packed unaligned dcl 1-55 set ref 333* 342* sec_sw 000174 automatic bit(1) packed unaligned dcl 66 set ref 110* 234* 333 seg_des 000103 automatic structure level 1 unaligned dcl 44 srh 1(06) based bit(1) level 3 in structure "help_args" packed packed unaligned dcl 1-55 in procedure "tedhelp_" set ref 243* srh based varying char(80) array level 2 in structure "help_args" dcl 1-55 in procedure "tedhelp_" set ref 245* ssu_$destroy_invocation 000042 constant entry external dcl 81 ref 306 308 349 352 ssu_$standalone_invocation 000044 constant entry external dcl 81 ref 312 state 000175 automatic fixed bin(17,0) dcl 67 set ref 111* 136 143* 148 153* 160 165* 168 170* 178 183 207 212* 231 237* 240 string builtin function dcl 85 set ref 101* substr builtin function dcl 85 set ref 128 134 146 157 176 193 200 202 209 213 236 245 254 321 323* 368 ted_vers 000020 external static varying char(12) level 2 dcl 2-5 ref 312 tedcommon_$id 000020 external static structure level 1 unaligned dcl 2-5 title 1(04) based bit(1) level 3 packed packed unaligned dcl 1-55 set ref 95* 150* 159* 233* tp 000176 automatic pointer dcl 68 set ref 372* 380 value based varying char(425) array level 3 dcl 1-55 set ref 100* 152* 294 296* 296 338* 366* 368* 368 370* 370 372 372 376* verify builtin function dcl 85 ref 109 254 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. tedcommon_$etc external static structure level 1 unaligned dcl 2-11 tedcommon_$no_data external static structure level 1 unaligned dcl 2-8 tedcommon_$no_seg external static structure level 1 unaligned dcl 2-9 NAMES DECLARED BY EXPLICIT CONTEXT. abort_help_command 002213 constant entry internal dcl 358 ref 312 312 err_ret 001074 constant label dcl 249 ref 139 174 181 196 204 find_external_info 002221 constant entry internal dcl 365 ref 141 219 re_help 001445 constant label dcl 300 ref 324 return_ 002137 constant label dcl 349 ref 251 292 378 tedhelp_ 000203 constant entry external dcl 31 update 001124 constant label dcl 252 ref 144 154 166 171 198 229 238 246 xxxxx 000337 constant label dcl 108 set ref 108 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2636 2706 2412 2646 Length 3160 2412 50 235 223 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME tedhelp_ 292 external procedure is an external procedure. on unit on line 259 102 on unit on unit on line 304 68 on unit abort_help_command 64 internal procedure is assigned to an entry variable. find_external_info internal procedure shares stack frame of external procedure tedhelp_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 me tedhelp_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME on unit on line 259 000100 cond_info on unit on line 259 tedhelp_ 000100 Phelp_args tedhelp_ 000102 buf_des tedhelp_ 000103 seg_des tedhelp_ 000104 about_sw tedhelp_ 000105 err_ct tedhelp_ 000106 first_rule_p tedhelp_ 000110 i tedhelp_ 000111 msg tedhelp_ 000164 code tedhelp_ 000165 msg_sw tedhelp_ 000166 bar_info tedhelp_ 000167 progress tedhelp_ 000170 rstr_b tedhelp_ 000172 sci_ptr tedhelp_ 000174 sec_sw tedhelp_ 000175 state tedhelp_ 000176 tp tedhelp_ 000200 dname tedhelp_ 000266 l tedhelp_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp cat_realloc_chars call_ext_out_desc call_ext_out return_mac enable_op shorten_stack ext_entry_desc int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ convert_date_to_binary_ find_condition_info_ hcs_$fs_get_path_name hcs_$make_ptr hcs_$status_minf help_ help_$init help_$term ioa_ ssu_$destroy_invocation ssu_$standalone_invocation THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt error_table_$nomatch tedcommon_$id LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 31 000200 91 000216 92 000254 95 000301 96 000304 97 000306 98 000307 99 000311 100 000313 101 000321 102 000322 103 000326 104 000332 106 000335 108 000337 109 000341 110 000356 111 000361 127 000363 128 000367 129 000407 131 000414 132 000416 134 000421 136 000427 138 000432 139 000437 141 000440 142 000441 143 000443 144 000445 146 000446 148 000452 150 000455 151 000460 152 000462 153 000472 154 000474 157 000475 159 000502 160 000505 162 000510 163 000516 164 000521 165 000523 166 000525 168 000526 170 000530 171 000532 173 000533 174 000540 176 000541 178 000545 180 000550 181 000555 183 000556 185 000560 186 000563 187 000565 188 000567 189 000575 191 000600 192 000602 193 000605 194 000615 196 000647 198 000652 200 000653 202 000655 203 000665 204 000670 207 000671 209 000674 210 000704 212 000714 213 000716 217 000730 218 000732 219 000734 229 000735 231 000736 233 000737 234 000742 235 000746 236 000750 237 000775 238 000777 240 001000 242 001002 243 001005 244 001007 245 001012 246 001065 248 001067 249 001074 251 001123 252 001124 254 001126 256 001153 259 001154 279 001170 280 001207 282 001212 283 001214 286 001215 288 001216 289 001247 291 001251 292 001304 294 001305 296 001370 300 001445 302 001447 304 001451 306 001465 308 001502 310 001514 312 001515 313 001567 316 001621 318 001624 319 001657 321 001663 323 001672 324 001700 326 001701 327 001715 329 001716 331 001720 333 001730 338 002027 342 002060 345 002123 349 002137 352 002154 354 002167 355 002211 358 002212 361 002220 365 002221 366 002222 367 002231 368 002235 370 002257 372 002267 374 002340 376 002343 378 002401 380 002402 381 002404 ----------------------------------------------------------- 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