COMPILATION LISTING OF SEGMENT xforum_help_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 09/13/88 1321.7 mst Tue Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 6* * * 7* *********************************************************** */ 8 9 10 11 /****^ HISTORY COMMENTS: 12* 1) change(85-01-08,Davids), approve(86-02-04,MCR7350), 13* audit(86-04-24,Gilcrease), install(86-04-24,MR12.0-1048): 14* Removed the function_key_data_ptr and the 15* handle_interactive_messages arguments from the calling sequence of 16* the get_help entry. The function_key_data_ptr is obtained from 17* xforum_user_profile. The value of handle_interactive_messages was 18* just passed to other routines and goes away. Changed calling 19* sequence of xforum_window_mgr$menu_get_choice to remove the 20* arguments function_key_data_ptr and handle_interactive_messages. 21* Added calls to xforum_user_profile$set_function_key_data_ptr both 22* before the call to menu_get_choice to set the special 23* function_key_data_ptr and after to reset it. Also changed calling 24* sequence of xforum_dyn_menu_$get_choice to remove the 25* function_key_data_ptr. 26* 27* 85-01-10 Davids: Modified call to 28* xforum_user_profile$set_function_key_data_ptr so that it returns a 29* bit (1) value. The value is not used since its defined to be "1"b 30* but it is returned. 31* 32* 85-02-13 Davids: Changed calling sequence of xforum_help_line_$change 33* to include the new F3_message argument. 34* 35* 85-02-14 Davids: Removed the general_help_menu internal proc and 36* replaced it with a call to xforum_help_menus$general_help_topics. 37* Modified the display entry so that if the menu name is "Topics" 38* It will not ouput the line saying that ?? can be used to get a menu 39* of general help topics and if ?? is typed it will beep. The code to 40* created a new function_key_data structure was left intact so that 41* the checks for input Fkey < highest would not have to be changed. 42* 43* 85-06-25 Davids: Added declarations for all the variables and updated 44* the header comments. Also removed the menu_dcls include file which was 45* not being used. 46* 2) change(86-01-21,LJAdams), approve(86-01-21,MCR7327), 47* audit(86-04-24,Gilcrease), install(86-04-24,MR12.0-1048): 48* Changed Vhelp_args_1 to new version Vhelp_args_2. Made hard coded help 49* search directories a cds segment. Added ssu_ (create/destroy) so 50* subsystem calls to help_ work properly. 51* 3) change(86-05-09,LJAdams), approve(86-05-14,MCR7416), 52* audit(86-05-19,Gilcrease), install(86-06-12,MR12.0-1074): 53* Added err_$no_ssu entry point to avoid trying to destroy ssu invocation 54* before it had actually been invoked. 55* 4) change(87-08-20,LJAdams), approve(87-09-03,MCR7766), 56* audit(88-08-14,GDixon), install(88-09-13,MR12.2-1109): 57* Changed Vhelp_args_2 to Vhelp_args_3. Initialize xh_help_args_ptr to 58* null and use it with help_$init rather then Phelp_args. Removed the 59* cleanup handler (xforum will handle cleanup). 60* END HISTORY COMMENTS */ 61 62 63 xforum_help_: proc; 64 65 /* 66* BEGIN DESCRIPTION 67* 68* function: 69* This routine contains the entry points used by xforum to display 70* help to the user. 71* 72* description of entry points: 73* xforum_help_: 74* input: 75* output: 76* It is an error to call the main entry point. The xforum_fatal_error 77* condition is signaled with an "internal programming error" error 78* message. 79* 80* init: 81* input: 82* output: 83* This entry is used to initialize the help_ system. The help_args 84* structure is allocated by calling help_$init and the pointer saved in 85* internal static. The values in the help_args structure are also set. 86* The xforum info directory and help file suffix are set in this entry. 87* The flags in this structure also control when help_ will ask the user 88* if he wants more help. The flag is set so that the user always gets 89* all the help without being asked if he wanst more help. Hew can of 90* course abort the help at the video system more prompt. 91* 92* get_help: 93* input: ptr pointer to menu structure for displayed 94* menu 95* char (*) name of the menu 96* (*) char (*) var the choices that are on the menu in the 97* same order as they appear on the menu 98* ptr pointer to the spy structure 99* ptr pointer to the xforum area for allocating 100* stuff 101* output: 102* This entry prompts the user to enter the menu option or function key 103* that he wants help with. The response is obtained via a call 104* to xforum_window_mgr$menu_get_choice. The response is interpreted and 105* a call to display_internal with the appropriate info file name and 106* section within the info file is made. Help for all menu options is 107* contained in the same info seg. The section names are obtained by 108* taking the text of the menu option and changing all the spaces to 109* underscore characters. Help for all the function keys is also in a 110* single info seg. A function key response may have 2 different function 111* key numbers. The first set 1-8 correspond to either function keys 112* or the escape sequences ESCx where x is a lower case letter (or ?). 113* The second set 9-15 correspond to ESCx where x is an upper case 114* letter. Note that the second set is valid only if the user is using 115* escape sequences. This means that a function key user cannot press F10 116* and get a help message. There is no upper case equivalent for the 117* first escape sequence ESC?. Before making the call to get the user's 118* response this entry creates a special version of the function key data 119* structure. This special version has an extra function key character 120* sequence, i.e. ??. This is the highest function key sequence and is 121* used so that the user can request the general help topics menu without 122* having to do something special - like pressing the RETURN key. The 123* space used to hold this special function key data is allocated in the 124* xforum_system_free_area and is freed right before the entry returns. 125* A cleanup handler is set up to be sure that the space is freed in case 126* a cleanup is done. The user's response is recorded in the spyt 127* structure. A quit handler is set up so that the user can exit this 128* help mode by pressing QUIT. This fact will also be recorded in the spy 129* structure. After the help is displayed the entry returns to the 130* caller. The bottom window is not cleared so that the user can continue 131* to read it. 132* 133* display: 134* input: char (*) name of info seg 135* char (*) section within info seg 136* output: 137* Given the name of an info segment and a section within that info 138* segment this entry calls the internal proc display_internal to display 139* the help associated with that info segment and section. 140* 141* term: 142* input: 143* output: 144* This entry is used to terminate the help system. help_$term is 145* called to free the help_args structure and do other internal things. 146* 147* description of internal procs: 148* display_internal: Given the name of an info segment and the section 149* within the info segment this will call help_ to display the associated 150* information. The segment and section names are passed to help_ by loading 151* the value and info_name elements of the help_args structure. A reset_more 152* is done after the display. 153* 154* collect_spy_data: Similar to all the other collect_spy_data procedures. 155* See the xforum module. Note that this procedure is duplicated so as to 156* save the expense of an external call for a commonly executed, very short 157* program, whose output is used only durning development or special site 158* exposure. 159* 160* error: Similar to all the other error procedures. It records in an 161* internal static structure the details of an error and then signals the 162* xforum_fatal_error condition. 163* 164* known bugs: 165* 166* notes: 167* 168* history: 169* 84-01-?? Barker: written, based on xmail_display_help. 170* 171* 84-08-16 Davids: converted to standard format. Replaced the get_choice 172* entry, which required that the user enter the option he wants help with 173* in the form of a prompt response, with the get_help entry which takes a 174* standard menu input (or ?? for general help). Also added the code for 175* displaying the general help menu. This module now also controls the 176* output of the help file. Before it just returned the users response to 177* xforum. 178* 179* 84-08-17 Davids: Added code to general_help_menu so that it queries the 180* user after displaying help. The user can answer yes and get the general 181* help menu again or answer no and return to the top menu. 182* 183* 84-09-03 Davids: Removed reference to gh_code. It was never being set 184* but was being tested - this obviously caused problems. It was not needed 185* so it was deleted. 186* 187* 84-09-17 Davids: Added code for processing upper case escapse sequences. 188* 189* 84-09-28 Davids: Replaced call to xforum_status_$update_usage and 190* redisplay_usage with a call to xforum_help_line$change. 191* 192* 84-10-11 Davids: Changed display_internal to call com_err_$supress_name 193* instead of error if an error is returned by help_. A bad info file should 194* not cause xforum to die. 195* 196* 84-10-17 Davids: Added code to the get_help entry so that function 197* key choices 9 through 15 are used only if the user is using escape 198* sequences. "function keys" 9 - 15 are really upper case escape sequences. 199* Also the prompt now indicates either function keys or escape sequences 200* depending on what the user is using. 201* 202* 84-10-18 Davids: Added code so that the title "General Help Topics" 203* appears when the general help menu is displayed. The title is overwritten 204* on the last line of the main menu so that it appears padded with dashes. 205* 206* 84-11-06 Davids: Changed references to xforum_help_line to 207* xforum_help_line_. 208* 209* 84-11-13 Davids: Auditing changes: Removed unnecessary rtrims from the 210* call to collect_spy_data in general_help_menu (the ltrims were left). 211* END DESCRIPTION 212**/ 213 214 /* PARAMETERS */ 215 216 /* EXTERNAL STATIC */ 217 218 /* ENTRIES */ 219 220 dcl com_err_$suppress_name entry () options (variable); 221 dcl ioa_ entry () options (variable); 222 dcl iox_$control entry (ptr, char (*), ptr, fixed bin (35)); 223 dcl signal_ entry () options (variable); 224 dcl window_$bell entry (ptr, fixed bin (35)); 225 dcl window_$clear_window entry (ptr, fixed bin (35)); 226 dcl xforum_help_menus$general_help_topics entry (ptr, ptr, char (*)); 227 dcl xforum_user_profile$get_function_key_data_ptr entry () returns (ptr); 228 dcl xforum_user_profile$get_use_function_keys entry () returns (bit (1)); 229 dcl xforum_user_profile$set_function_key_data_ptr entry (ptr) returns (bit (1)); 230 dcl xforum_window_mgr$check_window_status entry options (variable); 231 dcl xforum_window_mgr$menu_get_choice entry (ptr, bit (1) aligned, fixed bin); 232 233 /* CONDITIONS */ 234 235 dcl ( 236 cleanup, 237 quit 238 ) condition; 239 240 /* INTERNAL STATIC */ 241 242 dcl xh_help_args_ptr ptr internal static init(null); 243 /* pointer to help_args structure created by call to help_$init */ 244 dcl 01 xh_xforum_error_info like xforum_error_info internal static; 245 /* used to record error info to be output to user */ 246 247 /* CONSTANTS */ 248 249 dcl ( 250 xh_SEARCH_LIST char (4) init ("info"), /* default search rules */ 251 xh_HELP_SUFFIX char (10) init ("info"), /* segments must have a suffix of info */ 252 xh_ME_CHAR char (12) init ("xforum_help_") 253 ) int static options (constant); 254 255 /* BUILTINS */ 256 257 dcl ( 258 addr, 259 char, 260 dim, 261 ltrim, 262 null, 263 rtrim, 264 translate 265 ) builtin; 266 267 /* BASED */ 268 269 /* INCLUDES */ 270 1 1 /* BEGIN INCLUDE FILE ... function_key_data.incl.pl1 1 2* 1 3* This include file defines the structure used for ttt_info_$function_key_data 1 4* MCR 4671 James R. Davis Sept 80 1 5**/ 1 6 1 7 dcl 1 function_key_data aligned based (function_key_data_ptr), 1 8 2 version fixed bin, 1 9 2 highest fixed bin, /* highest fkey */ 1 10 2 sequence, /* string of all seqs. */ 1 11 3 seq_ptr pointer, 1 12 3 seq_len fixed bin (21), 1 13 2 cursor_motion_keys, 1 14 3 home (0:3) like key_info, 1 15 3 left (0:3) like key_info, 1 16 3 up (0:3) like key_info, 1 17 3 right (0:3) like key_info, 1 18 3 down (0:3) like key_info, 1 19 2 function_keys (0:function_key_data_highest refer 1 20 (function_key_data.highest), 0:3) like key_info; 1 21 1 22 dcl (KEY_PLAIN init (0), 1 23 KEY_SHIFT init (1), 1 24 KEY_CTRL init (2), 1 25 KEY_CTRL_AND_SHIFT init (3) 1 26 ) fixed bin internal static options (constant); 1 27 1 28 dcl 1 key_info unaligned based (key_info_ptr), 1 29 2 sequence_index fixed bin (12) unsigned unaligned, 1 30 2 sequence_length fixed bin (6) unsigned unaligned; /* 0 -> not exist */ 1 31 1 32 dcl function_key_seqs char (function_key_data.sequence.seq_len) 1 33 based (function_key_data.sequence.seq_ptr); 1 34 dcl function_key_data_ptr ptr; 1 35 dcl function_key_data_highest fixed bin; 1 36 dcl function_key_data_version_1 1 37 fixed bin internal static options (constant) init (1); 1 38 dcl key_info_ptr ptr; 1 39 1 40 1 41 /* END INCLUDE FILE ... function_key_data.incl.pl1 */ 271 272 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 * * * * * */ 273 274 3 1 /* BEGIN INCLUDE FILE xforum_error_info 84-06-19 Davids */ 3 2 3 3 dcl 01 xforum_error_info based, 3 4 02 name char (32), 3 5 02 entry char (32), 3 6 02 doing char (100), 3 7 02 code fixed bin (35), 3 8 02 reason char (512); 3 9 3 10 /* END INCLUDE FILE xforum_error_info */ 275 276 4 1 /* BEGIN INCLUDE FILE xforum_spy 84-06-19 NSDavids */ 4 2 4 3 4 4 4 5 /****^ HISTORY COMMENTS: 4 6* 1) change(85-01-01,Davids), approve(85-01-01,MCR7350), 4 7* audit(86-04-24,Gilcrease), install(86-04-24,MR12.0-1048): 4 8* Modified to include personalization and subject selection. 4 9* END HISTORY COMMENTS */ 4 10 4 11 4 12 dcl 01 spy based (spy_ptr), 4 13 02 version char (8), 4 14 02 user_name char (32), 4 15 02 date_time char (32), 4 16 02 args char (80), 4 17 02 eligible fixed bin, 4 18 02 attending fixed bin, 4 19 02 changed fixed bin, 4 20 02 count fixed bin, 4 21 02 choices (0 refer (count)), 4 22 03 at fixed bin, 4 23 03 choice char (10); 4 24 4 25 4 26 dcl spy_ptr ptr; 4 27 dcl SPY_VERSION_1 char (8) init ("spy_0001"); 4 28 4 29 dcl SPY_AT_1 fixed bin init (1) internal static options (constant); 4 30 /* At Executive Forum Main menu */ 4 31 dcl SPY_AT_2 fixed bin init (2) internal static options (constant); 4 32 /* Requesting Help */ 4 33 dcl SPY_AT_3 fixed bin init (3) internal static options (constant); 4 34 /* At General Help menu */ 4 35 dcl SPY_AT_4 fixed bin init (4) internal static options (constant); 4 36 /* At query for a meeting name to goto */ 4 37 dcl SPY_AT_5 fixed bin init (5) internal static options (constant); 4 38 /* At menu of meeting names */ 4 39 dcl SPY_AT_6 fixed bin init (6) internal static options (constant); 4 40 /* At query for a meeting name to resign from */ 4 41 dcl SPY_AT_7 fixed bin init (7) internal static options (constant); 4 42 /* At Attending Meeting menu */ 4 43 dcl SPY_AT_8 fixed bin init (8) internal static options (constant); 4 44 /* At replying to a transaction */ 4 45 dcl SPY_AT_9 fixed bin init (9) internal static options (constant); 4 46 /* At entering a new transaction */ 4 47 dcl SPY_AT_10 fixed bin init (10) internal static options (constant); 4 48 /* At query for a transaction specifier */ 4 49 dcl SPY_AT_11 fixed bin init (11) internal static options (constant); 4 50 /* At query to check for changed meetings */ 4 51 dcl SPY_AT_12 fixed bin init (12) internal static options (constant); 4 52 /* At Getting Started menu */ 4 53 dcl SPY_AT_13 fixed bin init (13) internal static options (constant); 4 54 /* Meeting list update query, change in number of search paths */ 4 55 dcl SPY_AT_14 fixed bin init (14) internal static options (constant); 4 56 /* Meeting list update query, change in search paths listed */ 4 57 dcl SPY_AT_15 fixed bin init (15) internal static options (constant); 4 58 /* Copy Comments file name query */ 4 59 dcl SPY_AT_16 fixed bin init (16) internal static options (constant); 4 60 /* At Personalization menu */ 4 61 dcl SPY_AT_17 fixed bin init (17) internal static options (constant); 4 62 /* Personalizing an item prompt */ 4 63 dcl SPY_AT_18 fixed bin init (18) internal static options (constant); 4 64 /* string search prompt for comment selection */ 4 65 dcl SPY_AT_19 fixed bin init (19) internal static options (constant); 4 66 /* subject selection */ 4 67 4 68 dcl SPY_LOCATION (19) char (20) varying init ( 4 69 "XForum Main menu", 4 70 "Requesting Help", 4 71 "General Help menu", 4 72 "Meeting to goto?", 4 73 "Meeting names menu", 4 74 "Meeting to resign?", 4 75 "Meeting menu", 4 76 "Repling", 4 77 "Talking", 4 78 "Trans. spec?", 4 79 "Check changed mtgs", 4 80 "Getting Started", 4 81 "List update, num", 4 82 "List update, list", 4 83 "Copy to file name", 4 84 "Personalizing menu", 4 85 "Personalizing prompt", 4 86 "String search prompt", 4 87 "Subject selection") internal static options (constant); 4 88 4 89 /* END INCLUDE FILE xforum_spy */ 277 278 5 1 /* START OF: xforum_windows.incl.pl1 * * * * * */ 5 2 5 3 /* structures for windows used by xforum - Deryk Barker January 1984 */ 5 4 5 5 dcl 1 xforum_windows aligned external static, 5 6 2 (status, menu, bottom, orig_user_io, help_line) aligned like xforum_window_info; 5 7 5 8 dcl 1 xforum_window_info, 5 9 2 iocb ptr, 5 10 2 position aligned like window_position_info; 5 11 6 1 /* BEGIN INCLUDE FILE ... window_control_info.incl.pl1 JRD */ 6 2 /* format: style3 */ 6 3 6 4 /* Modified 26 January 1982 by William York to add the set_more_handler 6 5* and reset_more_handler control orders. */ 6 6 /* Modified October 1982 by WMY to add set and get_token_characters, 6 7* set and get_more_prompt. */ 6 8 /* Modified February 1983 by WMY to add the line_editor_key_binding_info 6 9* structure. */ 6 10 /* Modified 30 September 1983 by Jon A. Rochlis to add the origin.column for 6 11* partial screen width windows. */ 6 12 /* Modified 9 October 1983 by JR to add version 1 window_edit_line_info. 6 13* This should be removed when window_info.incl.pl1 is created. */ 6 14 /* Modified 29 February 1984 by Barmar to add version 1 6 15* get_editor_key_bindings_info. */ 6 16 /* Modified 1 March 1984 by Barmar to add version 1 6 17* set_editor_key_bindings_info. */ 6 18 /* Modified 2 March 1984 by Barmar to upgrade to version 3 6 19* line_editor_key_bindings_info, which includes the name, description, and 6 20* info path */ 6 21 6 22 /* structure for the set_window_info and get_window_info 6 23* control orders. */ 6 24 6 25 dcl 1 window_position_info 6 26 based (window_position_info_ptr), 6 27 2 version fixed bin, 6 28 2 origin, 6 29 3 column fixed bin, 6 30 3 line fixed bin, 6 31 2 extent, 6 32 3 width fixed bin, 6 33 3 height fixed bin; 6 34 6 35 dcl (window_position_info_version, window_position_info_version_1) 6 36 fixed bin internal static init (1) options (constant); 6 37 dcl window_position_info_ptr 6 38 pointer; 6 39 6 40 /* structure for the set_window_status and get_window_status 6 41* control orders */ 6 42 6 43 declare window_status_info_ptr 6 44 pointer; 6 45 declare 1 window_status_info 6 46 aligned based (window_status_info_ptr), 6 47 2 version fixed bin, 6 48 2 status_string bit (36) aligned; /* string (window_status) */ 6 49 /* see window_status.incl.pl1 for the contents of this string */ 6 50 6 51 6 52 declare (window_status_version, window_status_version_1) 6 53 fixed bin internal static init (1) options (constant); 6 54 6 55 /* info structure for the set_more_responses and get_more_responses control 6 56* orders */ 6 57 6 58 6 59 dcl 1 more_responses_info 6 60 aligned based (more_responses_info_ptr), 6 61 2 version fixed bin, 6 62 2 n_yeses fixed bin, /* how many valid characters in the strings below */ 6 63 2 n_noes fixed bin, 6 64 2 yeses char (32) unaligned, 6 65 2 noes char (32) unaligned; 6 66 6 67 dcl (more_responses_info_version_1, more_responses_version) 6 68 fixed bin internal static init (1) options (constant); 6 69 dcl more_responses_info_ptr 6 70 pointer; 6 71 6 72 /* structure for the set_break_table and get_break_table 6 73* control orders */ 6 74 6 75 declare break_table_ptr pointer; 6 76 declare 1 break_table_info aligned based (break_table_ptr), 6 77 2 version fixed bin, 6 78 2 breaks (0:127) bit (1) unaligned; 6 79 6 80 declare (break_table_info_version, break_table_info_version_1) 6 81 fixed bin init (1) internal static options (constant); 6 82 6 83 declare 1 more_handler_info aligned based (more_handler_info_ptr), 6 84 2 version fixed bin, 6 85 2 flags unaligned, 6 86 3 old_handler_valid 6 87 bit(1), 6 88 3 pad bit(35), 6 89 2 more_handler entry (pointer, bit(1) aligned), 6 90 2 old_more_handler entry (pointer, bit(1) aligned); 6 91 6 92 declare more_handler_info_ptr pointer; 6 93 6 94 declare (more_handler_info_version, more_handler_info_version_3) 6 95 fixed bin internal static options (constant) init (3); 6 96 6 97 declare 1 token_characters_info aligned based (token_characters_info_ptr), 6 98 2 version char(8), 6 99 2 token_character_count 6 100 fixed bin, 6 101 2 token_characters 6 102 char (128) unaligned; 6 103 6 104 declare token_characters_info_ptr pointer; 6 105 6 106 declare token_characters_info_version_1 char(8) internal static options (constant) init ("wtci0001"); 6 107 6 108 declare 1 more_prompt_info aligned based (more_prompt_info_ptr), 6 109 2 version char(8), 6 110 2 more_prompt char(80); 6 111 6 112 declare more_prompt_info_ptr pointer; 6 113 6 114 declare more_prompt_info_version_1 char(8) static options (constant) init ("wsmp0001"); 6 115 6 116 /* Line editor stuff ... */ 6 117 6 118 dcl line_editor_key_binding_info_ptr 6 119 pointer; 6 120 6 121 dcl line_editor_binding_count 6 122 fixed bin; 6 123 dcl line_editor_longest_sequence 6 124 fixed bin; 6 125 /* For each binding, action defines what to do for that sequence. Constants 6 126* are defined in window_editor_values.incl.pl1. Only if action is set to 6 127* EXTERNAL_ROUTINE does the editor_routine entry variable get examined. */ 6 128 6 129 dcl 1 line_editor_key_binding_info 6 130 aligned based (line_editor_key_binding_info_ptr), 6 131 2 version char(8), 6 132 2 binding_count fixed bin, 6 133 2 longest_sequence fixed bin, 6 134 2 bindings (line_editor_binding_count refer 6 135 (line_editor_key_binding_info.binding_count)), 6 136 3 sequence char(line_editor_longest_sequence refer 6 137 (line_editor_key_binding_info.longest_sequence)) varying, 6 138 3 action fixed bin, 6 139 3 numarg_action fixed binary, 6 140 3 editor_routine entry (pointer, fixed bin(35)), 6 141 3 name char (64) varying unaligned, 6 142 3 description char (256) varying unaligned, 6 143 3 info_path unaligned, 6 144 4 info_dir char (168), 6 145 4 info_entry char (32); 6 146 6 147 6 148 dcl line_editor_key_binding_info_version_3 6 149 char(8) static options (constant) init ("lekbi003"); 6 150 6 151 dcl 1 get_editor_key_bindings_info aligned based (get_editor_key_bindings_info_ptr), 6 152 2 version char (8), 6 153 2 flags, 6 154 3 entire_state bit (1) unaligned, 6 155 3 mbz bit (35) unaligned, 6 156 2 key_binding_info_ptr ptr, 6 157 2 entire_state_ptr ptr; 6 158 6 159 dcl get_editor_key_bindings_info_ptr ptr; 6 160 dcl get_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("gekbi_01"); 6 161 6 162 dcl 1 set_editor_key_bindings_info aligned 6 163 based (set_editor_key_bindings_info_ptr), 6 164 2 version char (8), 6 165 2 flags, 6 166 3 replace bit (1) unaligned, 6 167 3 update bit (1) unaligned, 6 168 3 mbz bit (34) unaligned, 6 169 2 key_binding_info_ptr ptr; 6 170 6 171 dcl set_editor_key_bindings_info_ptr ptr; 6 172 dcl set_editor_key_bindings_info_version_1 char (8) int static options (constant) init ("sekbi_01"); 6 173 6 174 /* This should be moved to window_info.incl.pl1 when that include file is 6 175* created. JR 2/1/84 */ 6 176 6 177 dcl 1 window_edit_line_info 6 178 based (window_edit_line_info_ptr), 6 179 2 version char (8), 6 180 2 line_ptr ptr, 6 181 2 line_length fixed bin (21); /* later we will hack initial cursor position, key bindings, etc. */ 6 182 6 183 dcl window_edit_line_info_version_1 6 184 char (8) static options (constant) init ("wedl0001"); 6 185 6 186 dcl window_edit_line_info_ptr 6 187 ptr; 6 188 6 189 /* END INCLUDE FILE window_control_info.incl.pl1 */ 5 12 5 13 5 14 /* END OF: xforum_windows.incl.pl1 * * * * * */ 279 280 281 call error (0, "Internal programming error - xforum_help_$xforum_help_ called."); 282 283 init: entry; 284 285 /* AUTOMATIC */ 286 7 1 /* BEGIN INCLUDE FILE xforum_data_.incl.pl1 */ 7 2 7 3 7 4 /****^ HISTORY COMMENTS: 7 5* 1) change(86-01-17,LJAdams), approve(86-03-07,MCR7327), 7 6* audit(86-03-10,Lippard), install(86-04-24,MR12.0-1048): 7 7* Structure defining the help search paths that will be used by xforum. 7 8* 2) change(87-11-11,LJAdams), approve(87-11-11,MCR7800), 7 9* audit(87-12-01,Gilcrease), install(87-12-07,MR12.2-1008): 7 10* Change version number to 2.1. 7 11* END HISTORY COMMENTS */ 7 12 7 13 dcl xforum_data_$help_dirs fixed bin ext static; 7 14 7 15 dcl 1 xforum_HELP_DIRS based (addr(xforum_data_$help_dirs)), 7 16 2 N fixed bin, 7 17 2 path (0 refer (xforum_HELP_DIRS.N)) char(168); 7 18 7 19 dcl xforum_version char(3) int static options (constant) init ("2.1"); 7 20 7 21 /* END INCLUDE FILE xforum_data.incl.pl1 */ 287 288 289 dcl i_code fixed bin (35); /* standard error code */ 290 291 Phelp_args = null; 292 xh_help_args_ptr = null; 293 294 call help_$init (xh_ME_CHAR, xh_SEARCH_LIST, "", Vhelp_args_3, xh_help_args_ptr, i_code); 295 if i_code ^= 0 296 then call error_no_ssu (i_code, "Could not initiate help_"); 297 298 Phelp_args = xh_help_args_ptr; 299 help_args.Nsearch_dirs = dim(xforum_HELP_DIRS.path, 1); 300 help_args.search_dirs = xforum_HELP_DIRS.path; 301 help_args.Sctl.all = "1"b; /* No questions asked */ 302 help_args.Npaths = 1; 303 help_args.path (1).S.pn_ctl_arg = "0"b; 304 help_args.path (1).S.info_name_not_starname = "0"b; 305 306 return; 307 308 get_help: entry (gh_menu_ptr, gh_menu_name, gh_menu_choices, gh_spy_ptr, gh_xforum_system_area_ptr); 309 310 /* PARAMETERS */ 311 312 dcl gh_menu_ptr ptr; /* (input) pointer to menu structure for displayed menu */ 313 dcl gh_menu_name char (*); /* (input) name of the menu */ 314 dcl gh_menu_choices (*) char (*) var; /* (input) the choices that are on the menu - */ 315 /* in the same order as they appear on the menu */ 316 dcl gh_spy_ptr ptr; /* (input) pointer to the spy structure */ 317 dcl gh_xforum_system_area_ptr ptr; /* (input) pointer to the xforum area for allocating stuff */ 318 319 /* INTERNAL AUTOMATIC */ 320 321 dcl gh_fkey_flag bit (1) aligned; /* "1"b implies user wants help with a function key */ 322 dcl gh_choice fixed bin; /* indicates choice or fkey user wants help with */ 323 dcl gh_highest fixed bin; /* number of function keys in the */ 324 /* special function key data structure */ 325 dcl gh_special_fkey_data_ptr ptr; /* pointer to the special function key data structure */ 326 dcl gh_special_fkey_data_sequence_seq_len fixed bin; /* total number of chars in */ 327 /* the special function key data structure */ 328 dcl gh_special_fkey_seqs_ptr ptr; /* pointer to the string containing */ 329 /* the special function key chars */ 330 dcl gh_unusedb1 bit (1); /* unused output from procedure call */ 331 dcl gh_using_esc_seq bit (1); /* "1" imples that the user is using */ 332 /* escape sequences and not function keys */ 333 334 /* BASED */ 335 336 dcl gh_special_fkey_seqs char (gh_special_fkey_data_sequence_seq_len) based (gh_special_fkey_seqs_ptr); 337 /* place to store the special function key characters */ 338 339 gh_special_fkey_data_ptr = null (); 340 gh_special_fkey_seqs_ptr = null (); 341 function_key_data_ptr = xforum_user_profile$get_function_key_data_ptr (); 342 spy_ptr = gh_spy_ptr; 343 344 on cleanup 345 begin; 346 if gh_special_fkey_data_ptr ^= null () 347 then free gh_special_fkey_data_ptr -> function_key_data.sequence.seq_ptr -> gh_special_fkey_seqs; 348 349 if gh_special_fkey_seqs_ptr ^= null () 350 then free gh_special_fkey_data_ptr -> function_key_data; 351 end; 352 353 on quit 354 begin; 355 call xforum_window_mgr$check_window_status; 356 call window_$clear_window (xforum_windows.bottom.iocb, (0)); 357 call collect_spy_data (SPY_AT_2, "QUIT"); 358 gh_unusedb1 = xforum_user_profile$set_function_key_data_ptr (function_key_data_ptr); 359 goto exit_get_help; 360 end; 361 362 gh_using_esc_seq = ^xforum_user_profile$get_use_function_keys (); 363 364 call window_$clear_window (xforum_windows.bottom.iocb, (0)); 365 if gh_using_esc_seq 366 then call ioa_ ("Press the option or type the escape sequence for which you want help"); 367 else call ioa_ ("Press the option or function key for which you want help"); 368 if gh_menu_name ^= "Topics" 369 then call ioa_ (" (or type ?? for a menu of general help topics):"); 370 371 function_key_data_highest = function_key_data_ptr -> function_key_data.highest + 1; 372 gh_highest = function_key_data_highest; 373 allocate function_key_data set (gh_special_fkey_data_ptr); 374 gh_special_fkey_data_ptr -> function_key_data.highest = gh_highest - 1; 375 gh_special_fkey_data_ptr -> function_key_data = function_key_data_ptr -> function_key_data; 376 gh_special_fkey_data_ptr -> function_key_data.highest = gh_highest; 377 378 gh_special_fkey_data_ptr -> function_key_data.sequence.seq_len = gh_special_fkey_data_ptr -> function_key_data.sequence.seq_len + 2; 379 gh_special_fkey_data_sequence_seq_len = gh_special_fkey_data_ptr -> function_key_data.sequence.seq_len; 380 allocate gh_special_fkey_seqs; 381 382 gh_special_fkey_seqs = function_key_seqs || "??"; 383 gh_special_fkey_data_ptr -> function_key_data.function_keys (gh_highest, KEY_PLAIN).sequence_index = gh_special_fkey_data_sequence_seq_len - 1; 384 gh_special_fkey_data_ptr -> function_key_data.function_keys.sequence_length = 2; 385 gh_special_fkey_data_ptr -> function_key_data.sequence.seq_ptr = gh_special_fkey_seqs_ptr; 386 387 gh_unusedb1 = xforum_user_profile$set_function_key_data_ptr (gh_special_fkey_data_ptr); 388 call xforum_window_mgr$menu_get_choice (gh_menu_ptr, gh_fkey_flag, gh_choice); 389 gh_unusedb1 = xforum_user_profile$set_function_key_data_ptr (function_key_data_ptr); 390 391 call window_$clear_window (xforum_windows.bottom.iocb, (0)); 392 393 if gh_fkey_flag 394 then do; 395 if gh_choice < gh_highest 396 then call collect_spy_data (SPY_AT_2, "F" || rtrim (ltrim (char (gh_choice)))); 397 else 398 if gh_menu_name ^= "Topics" 399 then call collect_spy_data (SPY_AT_2, "general help"); 400 end; 401 else call collect_spy_data (SPY_AT_2, rtrim (ltrim (char (gh_choice)))); 402 403 if gh_fkey_flag 404 then do; 405 if gh_choice = gh_highest 406 then do; 407 if gh_menu_name ^= "Topics" 408 then call xforum_help_menus$general_help_topics (spy_ptr, gh_xforum_system_area_ptr, gh_menu_name); 409 else call window_$bell (xforum_windows.bottom.iocb, (0)); 410 end; 411 else 412 if gh_choice = 1 413 then call display_internal ("xforum_function_keys", "F1"); 414 else 415 if gh_choice = 2 | (gh_choice = 9 & gh_using_esc_seq) 416 then call display_internal ("xforum_function_keys", "F2"); 417 else 418 if gh_choice = 3 | (gh_choice = 10 & gh_using_esc_seq) 419 then call display_internal ("xforum_function_keys", "F3"); 420 else 421 if gh_choice = 4 | (gh_choice = 11 & gh_using_esc_seq) 422 then call display_internal ("xforum_function_keys", "F4"); 423 else 424 if gh_choice = 5 | (gh_choice = 12 & gh_using_esc_seq) 425 then call display_internal ("xforum_function_keys", "F5"); 426 else 427 if gh_choice = 6 | (gh_choice = 13 & gh_using_esc_seq) 428 then call display_internal ("xforum_function_keys", "F6"); 429 else 430 if gh_choice = 7 | (gh_choice = 14 & gh_using_esc_seq) 431 then call display_internal ("xforum_function_keys", "F7"); 432 else 433 if gh_choice = 8 | (gh_choice = 15 & gh_using_esc_seq) 434 then call display_internal ("xforum_function_keys", "F8"); 435 else call ioa_ ("Function key F^d has no function within Executive Forum", gh_choice); 436 end; 437 else call display_internal ("xforum_menu_option", translate (gh_menu_choices (gh_choice), "_", " ")); 438 439 exit_get_help: 440 441 if gh_special_fkey_data_ptr ^= null () 442 then free gh_special_fkey_data_ptr -> function_key_data.sequence.seq_ptr -> gh_special_fkey_seqs; 443 444 if gh_special_fkey_seqs_ptr ^= null () 445 then free gh_special_fkey_data_ptr -> function_key_data; 446 447 return; 448 449 display: entry (d_seg_name, d_info_name); 450 451 /* PARAMETERS */ 452 453 dcl d_seg_name char (*); /* (input) name of info seg */ 454 dcl d_info_name char (*); /* (input) section within info seg */ 455 456 457 458 459 460 call display_internal (d_seg_name, d_info_name); 461 462 return; 463 464 term: entry; 465 466 call help_$term ("xforum", xh_help_args_ptr, (0)); 467 468 return; 469 470 display_internal: proc (di_seg_name, di_info_name); 471 472 /* PARAMETERS */ 473 474 dcl di_seg_name char (*); /* (input) name of info seg */ 475 dcl di_info_name char (*); /* (input) section within info seg */ 476 477 /* AUTOMATIC */ 478 479 dcl di_code fixed bin (35); /* (standard error code */ 480 481 482 483 484 485 call window_$clear_window (xforum_windows.bottom.iocb, (0)); 486 487 Phelp_args = xh_help_args_ptr; /* recover it */ 488 489 help_args.path (1).value = di_seg_name; 490 help_args.path (1).info_name = di_info_name; 491 492 call help_ (xh_ME_CHAR, Phelp_args, xh_HELP_SUFFIX, (0), di_code); 493 if di_code ^= 0 494 then call com_err_$suppress_name (di_code, "Could not display the help text"); 495 496 call iox_$control (xforum_windows.bottom.iocb, "reset_more", null, (0)); 497 498 return; 499 500 end display_internal; 501 502 collect_spy_data: proc (csd_where, csd_response); 503 504 dcl csd_where fixed bin; /* (input) location response was collected */ 505 dcl csd_response char (*); /* (input) user's response */ 506 507 508 509 510 511 spy.count = spy.count + 1; 512 spy.choices (count).at = csd_where; 513 spy.choices (count).choice = csd_response; 514 515 return; 516 517 end collect_spy_data; 518 519 error: proc (e_code, e_reason); 520 521 /* PARAMETERS */ 522 523 dcl e_code fixed bin (35); /* (input) error code associated with the error */ 524 dcl e_reason char (*); /* (input) message to be output to user */ 525 526 527 call help_$term ("xforum", Phelp_args, (0)); 528 529 error_no_ssu: entry (e_code, e_reason); 530 531 xh_xforum_error_info.name = xh_ME_CHAR; 532 xh_xforum_error_info.entry = ""; 533 xh_xforum_error_info.doing = ""; 534 xh_xforum_error_info.code = e_code; 535 xh_xforum_error_info.reason = e_reason; 536 537 call signal_ ("xforum_fatal_error", null (), addr (xh_xforum_error_info), null ()); 538 539 end error; 540 541 end xforum_help_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/13/88 1257.6 xforum_help_.pl1 >spec>install>MR12.2-1109>xforum_help_.pl1 271 1 02/23/81 2146.3 function_key_data.incl.pl1 >ldd>include>function_key_data.incl.pl1 273 2 09/13/88 1257.6 help_args_.incl.pl1 >spec>install>MR12.2-1109>help_args_.incl.pl1 275 3 12/03/84 1241.6 xforum_error_info.incl.pl1 >ldd>include>xforum_error_info.incl.pl1 277 4 04/25/86 0859.6 xforum_spy.incl.pl1 >ldd>include>xforum_spy.incl.pl1 279 5 12/03/84 1241.6 xforum_windows.incl.pl1 >ldd>include>xforum_windows.incl.pl1 5-12 6 09/12/84 0916.7 window_control_info.incl.pl1 >ldd>include>window_control_info.incl.pl1 287 7 12/10/87 1457.0 xforum_data_.incl.pl1 >ldd>include>xforum_data_.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. KEY_PLAIN constant fixed bin(17,0) initial dcl 1-22 ref 383 N based fixed bin(17,0) level 2 dcl 7-15 ref 299 300 300 300 300 Npaths 3 based fixed bin(17,0) level 2 dcl 2-55 set ref 302* Nsearch_dirs 2 based fixed bin(17,0) level 2 dcl 2-55 set ref 299* 300 303 304 489 490 Phelp_args 000120 automatic pointer dcl 2-55 set ref 291* 298* 299 300 301 302 303 304 487* 489 490 492* 527* S based structure array level 3 dcl 2-55 SPY_AT_2 000036 constant fixed bin(17,0) initial dcl 4-31 set ref 357* 395* 397* 401* SPY_VERSION_1 000124 automatic char(8) initial packed unaligned dcl 4-27 set ref 4-27* Sctl 1 based structure level 2 dcl 2-55 Vhelp_args_3 000035 constant fixed bin(17,0) initial dcl 2-55 set ref 294* addr builtin function dcl 257 ref 299 300 537 537 all 1(10) based bit(1) level 3 packed packed unaligned dcl 2-55 set ref 301* at 52 based fixed bin(17,0) array level 3 dcl 4-12 set ref 512* bottom 20 000322 external static structure level 2 dcl 5-5 char builtin function dcl 257 ref 395 401 401 choice 53 based char(10) array level 3 packed packed unaligned dcl 4-12 set ref 513* choices 52 based structure array level 2 unaligned dcl 4-12 cleanup 000100 stack reference condition dcl 235 ref 344 code 51 000012 internal static fixed bin(35,0) level 2 dcl 244 set ref 534* com_err_$suppress_name 000264 constant entry external dcl 220 ref 493 count 51 based fixed bin(17,0) level 2 dcl 4-12 set ref 511* 511 512 513 csd_response parameter char packed unaligned dcl 505 ref 502 513 csd_where parameter fixed bin(17,0) dcl 504 ref 502 512 d_info_name parameter char packed unaligned dcl 454 set ref 449 460* d_seg_name parameter char packed unaligned dcl 453 set ref 449 460* di_code 000100 automatic fixed bin(35,0) dcl 479 set ref 492* 493 493* di_info_name parameter char packed unaligned dcl 475 ref 470 490 di_seg_name parameter char packed unaligned dcl 474 ref 470 489 dim builtin function dcl 257 ref 299 doing 20 000012 internal static char(100) level 2 packed packed unaligned dcl 244 set ref 533* e_code parameter fixed bin(35,0) dcl 523 ref 519 529 534 e_reason parameter char packed unaligned dcl 524 ref 519 529 535 entry 10 000012 internal static char(32) level 2 packed packed unaligned dcl 244 set ref 532* function_key_data based structure level 1 dcl 1-7 set ref 349 373 375* 375 444 function_key_data_highest 000116 automatic fixed bin(17,0) dcl 1-35 set ref 371* 372 373 373 function_key_data_ptr 000114 automatic pointer dcl 1-34 set ref 341* 358* 371 375 382 382 389* function_key_seqs based char packed unaligned dcl 1-32 ref 382 function_keys 31 based structure array level 2 dcl 1-7 gh_choice 000137 automatic fixed bin(17,0) dcl 322 set ref 388* 395 395 401 401 405 411 414 414 417 417 420 420 423 423 426 426 429 429 432 432 435* 437 437 gh_fkey_flag 000136 automatic bit(1) dcl 321 set ref 388* 393 403 gh_highest 000140 automatic fixed bin(17,0) dcl 323 set ref 372* 374 376 383 395 405 gh_menu_choices parameter varying char array dcl 314 ref 308 437 437 gh_menu_name parameter char packed unaligned dcl 313 set ref 308 368 397 407 407* gh_menu_ptr parameter pointer dcl 312 set ref 308 388* gh_special_fkey_data_ptr 000142 automatic pointer dcl 325 set ref 339* 346 346 349 373* 374 375 376 378 378 379 383 384 385 387* 439 439 444 gh_special_fkey_data_sequence_seq_len 000144 automatic fixed bin(17,0) dcl 326 set ref 346 346 379* 380 380 382 383 439 439 gh_special_fkey_seqs based char packed unaligned dcl 336 set ref 346 380 382* 439 gh_special_fkey_seqs_ptr 000146 automatic pointer dcl 328 set ref 340* 349 380* 382 385 444 gh_spy_ptr parameter pointer dcl 316 ref 308 342 gh_unusedb1 000150 automatic bit(1) packed unaligned dcl 330 set ref 358* 387* 389* gh_using_esc_seq 000151 automatic bit(1) packed unaligned dcl 331 set ref 362* 365 414 417 420 423 426 429 432 gh_xforum_system_area_ptr parameter pointer dcl 317 set ref 308 407* help_ 000314 constant entry external dcl 2-160 ref 492 help_$init 000316 constant entry external dcl 2-160 ref 294 help_$term 000320 constant entry external dcl 2-160 ref 466 527 help_args based structure level 1 dcl 2-55 highest 1 based fixed bin(17,0) level 2 dcl 1-7 set ref 349 371 373* 374* 375 376* 384 444 i_code 000135 automatic fixed bin(35,0) dcl 289 set ref 294* 295 295* info_name based char(32) array level 3 packed packed unaligned dcl 2-55 set ref 490* info_name_not_starname based bit(1) array level 4 packed packed unaligned dcl 2-55 set ref 304* ioa_ 000266 constant entry external dcl 221 ref 365 367 368 435 iocb 20 000322 external static pointer level 3 dcl 5-5 set ref 356* 364* 391* 409* 485* 496* iox_$control 000270 constant entry external dcl 222 ref 496 key_info based structure level 1 packed packed unaligned dcl 1-28 ltrim builtin function dcl 257 ref 395 401 401 name 000012 internal static char(32) level 2 packed packed unaligned dcl 244 set ref 531* null builtin function dcl 257 ref 291 292 339 340 346 349 439 444 496 496 537 537 537 537 path 1 based char(168) array level 2 in structure "xforum_HELP_DIRS" packed packed unaligned dcl 7-15 in procedure "xforum_help_" ref 299 300 path based structure array level 2 in structure "help_args" dcl 2-55 in procedure "xforum_help_" pn_ctl_arg based bit(1) array level 4 packed packed unaligned dcl 2-55 set ref 303* quit 000106 stack reference condition dcl 235 ref 353 reason 52 000012 internal static char(512) level 2 packed packed unaligned dcl 244 set ref 535* rtrim builtin function dcl 257 ref 395 401 401 search_dirs 26 based char(168) array level 2 packed packed unaligned dcl 2-55 set ref 300* seq_len 4 based fixed bin(21,0) level 3 dcl 1-7 set ref 378* 378 379 382 seq_ptr 2 based pointer level 3 dcl 1-7 set ref 346 382 385* 439 sequence 2 based structure level 2 dcl 1-7 sequence_index 31 based fixed bin(12,0) array level 3 packed packed unsigned unaligned dcl 1-7 set ref 383* sequence_length 31(12) based fixed bin(6,0) array level 3 packed packed unsigned unaligned dcl 1-7 set ref 384* signal_ 000272 constant entry external dcl 223 ref 537 spy based structure level 1 unaligned dcl 4-12 spy_ptr 000122 automatic pointer dcl 4-26 set ref 342* 407* 511 511 512 512 513 513 translate builtin function dcl 257 ref 437 437 value based varying char(425) array level 3 dcl 2-55 set ref 489* window_$bell 000274 constant entry external dcl 224 ref 409 window_$clear_window 000276 constant entry external dcl 225 ref 356 364 391 485 window_position_info based structure level 1 unaligned dcl 6-25 xforum_HELP_DIRS based structure level 1 unaligned dcl 7-15 xforum_data_$help_dirs 000324 external static fixed bin(17,0) dcl 7-13 set ref 299 300 xforum_error_info based structure level 1 unaligned dcl 3-3 xforum_help_menus$general_help_topics 000300 constant entry external dcl 226 ref 407 xforum_user_profile$get_function_key_data_ptr 000302 constant entry external dcl 227 ref 341 xforum_user_profile$get_use_function_keys 000304 constant entry external dcl 228 ref 362 xforum_user_profile$set_function_key_data_ptr 000306 constant entry external dcl 229 ref 358 387 389 xforum_window_info 000126 automatic structure level 1 unaligned dcl 5-8 xforum_window_mgr$check_window_status 000310 constant entry external dcl 230 ref 355 xforum_window_mgr$menu_get_choice 000312 constant entry external dcl 231 ref 388 xforum_windows 000322 external static structure level 1 dcl 5-5 xh_HELP_SUFFIX 000003 constant char(10) initial packed unaligned dcl 249 set ref 492* xh_ME_CHAR 000000 constant char(12) initial packed unaligned dcl 249 set ref 294* 492* 531 xh_SEARCH_LIST 000006 constant char(4) initial packed unaligned dcl 249 set ref 294* xh_help_args_ptr 000010 internal static pointer initial dcl 242 set ref 292* 294* 298 466* 487 xh_xforum_error_info 000012 internal static structure level 1 unaligned dcl 244 set ref 537 537 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. KEY_CTRL internal static fixed bin(17,0) initial dcl 1-22 KEY_CTRL_AND_SHIFT internal static fixed bin(17,0) initial dcl 1-22 KEY_SHIFT internal static fixed bin(17,0) initial dcl 1-22 SPY_AT_1 internal static fixed bin(17,0) initial dcl 4-29 SPY_AT_10 internal static fixed bin(17,0) initial dcl 4-47 SPY_AT_11 internal static fixed bin(17,0) initial dcl 4-49 SPY_AT_12 internal static fixed bin(17,0) initial dcl 4-51 SPY_AT_13 internal static fixed bin(17,0) initial dcl 4-53 SPY_AT_14 internal static fixed bin(17,0) initial dcl 4-55 SPY_AT_15 internal static fixed bin(17,0) initial dcl 4-57 SPY_AT_16 internal static fixed bin(17,0) initial dcl 4-59 SPY_AT_17 internal static fixed bin(17,0) initial dcl 4-61 SPY_AT_18 internal static fixed bin(17,0) initial dcl 4-63 SPY_AT_19 internal static fixed bin(17,0) initial dcl 4-65 SPY_AT_3 internal static fixed bin(17,0) initial dcl 4-33 SPY_AT_4 internal static fixed bin(17,0) initial dcl 4-35 SPY_AT_5 internal static fixed bin(17,0) initial dcl 4-37 SPY_AT_6 internal static fixed bin(17,0) initial dcl 4-39 SPY_AT_7 internal static fixed bin(17,0) initial dcl 4-41 SPY_AT_8 internal static fixed bin(17,0) initial dcl 4-43 SPY_AT_9 internal static fixed bin(17,0) initial dcl 4-45 SPY_LOCATION internal static varying char(20) initial array dcl 4-68 break_table_info based structure level 1 dcl 6-76 break_table_info_version internal static fixed bin(17,0) initial dcl 6-80 break_table_info_version_1 internal static fixed bin(17,0) initial dcl 6-80 break_table_ptr automatic pointer dcl 6-75 function_key_data_version_1 internal static fixed bin(17,0) initial dcl 1-36 get_editor_key_bindings_info based structure level 1 dcl 6-151 get_editor_key_bindings_info_ptr automatic pointer dcl 6-159 get_editor_key_bindings_info_version_1 internal static char(8) initial packed unaligned dcl 6-160 key_info_ptr automatic pointer dcl 1-38 line_editor_binding_count automatic fixed bin(17,0) dcl 6-121 line_editor_key_binding_info based structure level 1 dcl 6-129 line_editor_key_binding_info_ptr automatic pointer dcl 6-118 line_editor_key_binding_info_version_3 internal static char(8) initial packed unaligned dcl 6-148 line_editor_longest_sequence automatic fixed bin(17,0) dcl 6-123 more_handler_info based structure level 1 dcl 6-83 more_handler_info_ptr automatic pointer dcl 6-92 more_handler_info_version internal static fixed bin(17,0) initial dcl 6-94 more_handler_info_version_3 internal static fixed bin(17,0) initial dcl 6-94 more_prompt_info based structure level 1 dcl 6-108 more_prompt_info_ptr automatic pointer dcl 6-112 more_prompt_info_version_1 internal static char(8) initial packed unaligned dcl 6-114 more_responses_info based structure level 1 dcl 6-59 more_responses_info_ptr automatic pointer dcl 6-69 more_responses_info_version_1 internal static fixed bin(17,0) initial dcl 6-67 more_responses_version internal static fixed bin(17,0) initial dcl 6-67 set_editor_key_bindings_info based structure level 1 dcl 6-162 set_editor_key_bindings_info_ptr automatic pointer dcl 6-171 set_editor_key_bindings_info_version_1 internal static char(8) initial packed unaligned dcl 6-172 token_characters_info based structure level 1 dcl 6-97 token_characters_info_ptr automatic pointer dcl 6-104 token_characters_info_version_1 internal static char(8) initial packed unaligned dcl 6-106 window_edit_line_info based structure level 1 unaligned dcl 6-177 window_edit_line_info_ptr automatic pointer dcl 6-186 window_edit_line_info_version_1 internal static char(8) initial packed unaligned dcl 6-183 window_position_info_ptr automatic pointer dcl 6-37 window_position_info_version internal static fixed bin(17,0) initial dcl 6-35 window_position_info_version_1 internal static fixed bin(17,0) initial dcl 6-35 window_status_info based structure level 1 dcl 6-45 window_status_info_ptr automatic pointer dcl 6-43 window_status_version internal static fixed bin(17,0) initial dcl 6-52 window_status_version_1 internal static fixed bin(17,0) initial dcl 6-52 xforum_version internal static char(3) initial packed unaligned dcl 7-19 NAMES DECLARED BY EXPLICIT CONTEXT. collect_spy_data 002371 constant entry internal dcl 502 ref 357 395 397 401 display 002077 constant entry external dcl 449 display_internal 002174 constant entry internal dcl 470 ref 411 414 417 420 423 426 429 432 437 460 error 002426 constant entry internal dcl 519 ref 281 error_no_ssu 002464 constant entry internal dcl 529 ref 295 exit_get_help 002044 constant label dcl 439 ref 359 get_help 000444 constant entry external dcl 308 init 000262 constant entry external dcl 283 term 002140 constant entry external dcl 464 xforum_help_ 000243 constant entry external dcl 63 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3330 3656 3010 3340 Length 4250 3010 326 355 317 254 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME xforum_help_ 206 external procedure is an external procedure. on unit on line 344 64 on unit on unit on line 353 84 on unit display_internal 108 internal procedure is called during a stack extension. collect_spy_data 66 internal procedure is called during a stack extension. error internal procedure shares stack frame of external procedure xforum_help_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 xh_help_args_ptr xforum_help_ 000012 xh_xforum_error_info xforum_help_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME display_internal 000100 di_code display_internal xforum_help_ 000114 function_key_data_ptr xforum_help_ 000116 function_key_data_highest xforum_help_ 000120 Phelp_args xforum_help_ 000122 spy_ptr xforum_help_ 000124 SPY_VERSION_1 xforum_help_ 000126 xforum_window_info xforum_help_ 000135 i_code xforum_help_ 000136 gh_fkey_flag xforum_help_ 000137 gh_choice xforum_help_ 000140 gh_highest xforum_help_ 000142 gh_special_fkey_data_ptr xforum_help_ 000144 gh_special_fkey_data_sequence_seq_len xforum_help_ 000146 gh_special_fkey_seqs_ptr xforum_help_ 000150 gh_unusedb1 xforum_help_ 000151 gh_using_esc_seq xforum_help_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp alloc_temp call_ext_out_desc call_ext_out call_int_this_desc call_int_other_desc return_mac tra_ext_1 bound_ck_signal enable_op shorten_stack ext_entry ext_entry_desc int_entry int_entry_desc alloc_storage op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_$suppress_name help_ help_$init help_$term ioa_ iox_$control signal_ window_$bell window_$clear_window xforum_help_menus$general_help_topics xforum_user_profile$get_function_key_data_ptr xforum_user_profile$get_use_function_keys xforum_user_profile$set_function_key_data_ptr xforum_window_mgr$check_window_status xforum_window_mgr$menu_get_choice THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. xforum_data_$help_dirs xforum_windows LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 4 27 000236 63 000242 281 000251 283 000260 291 000270 292 000272 294 000274 295 000330 298 000340 299 000343 300 000346 301 000421 302 000425 303 000427 304 000433 306 000436 308 000437 339 000465 340 000467 341 000470 342 000477 344 000503 346 000517 349 000532 351 000546 353 000547 355 000563 356 000567 357 000602 358 000621 359 000633 362 000636 364 000651 365 000664 367 000703 368 000717 371 000742 372 000746 373 000747 374 000760 375 000763 376 000774 378 000776 379 001000 380 001002 382 001010 383 001031 384 001043 385 001075 387 001077 388 001110 389 001124 391 001135 393 001150 395 001153 397 001244 400 001275 401 001276 403 001357 405 001363 407 001366 409 001417 410 001432 411 001433 414 001462 417 001515 420 001550 423 001603 426 001636 429 001671 432 001724 435 001757 436 001777 437 002000 439 002044 444 002057 447 002072 449 002073 460 002120 462 002136 464 002137 466 002146 468 002172 470 002173 485 002214 487 002226 489 002232 490 002251 492 002260 493 002311 496 002333 498 002367 502 002370 511 002404 512 002407 513 002415 515 002425 519 002426 527 002437 529 002463 531 002475 532 002501 533 002504 534 002507 535 002512 537 002517 539 002554 ----------------------------------------------------------- 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