COMPILATION LISTING OF SEGMENT forum_create Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Multics Op. - System M Compiled on: 08/19/86 2045.3 mst Tue Options: optimize map 1 /****^ *************************************************************** 2* * * 3* * Copyright, (C) Massachusetts Institute of Technology, 1986 * 4* * * 5* * Copyright (c) 1982 by Massachusetts Institute of Technology * 6* * * 7* *************************************************************** */ 8 9 10 11 /****^ HISTORY COMMENTS: 12* 1) change(86-07-29,Pattin), approve(86-07-29,MCR7354), 13* audit(86-08-07,Margolin), install(86-08-16,MR12.0-1128): 14* Added 'do you really want to announce?' query and -force, 15* -no_force to suppress it. Made announce report read_only 16* public. 17* 2) change(86-08-19,Pattin), approve(86-08-19,MCR7354), 18* audit(86-08-19,Margolin), install(86-08-19,MR12.0-1135): 19* PBF to above change. Copy user's long_name into fname with the char 20* builtin instead of substr, which does not pad with blanks. 21* END HISTORY COMMENTS */ 22 23 24 forum_create: 25 fcr: 26 procedure (); 27 28 /* Version 2 Forum - Create Forum meetings 29* 1/4/83 Jay Pattin from version 1 fcr 30* Modified 6/4/83 Jay Pattin for meeting announcements */ 31 32 declare active_fnc_err_ entry options (variable), 33 command_query_ entry options (variable), 34 com_err_ entry options (variable), 35 cu_$af_return_arg entry (fixed bin, ptr, fixed bin (21)) returns (fixed bin (35)), 36 cu_$arg_list_ptr entry returns (ptr), 37 expand_pathname_ entry (char (*), char (*), char (*), fixed bin (35)), 38 format_document_$string entry (char (*), char (*), fixed bin (21), ptr, fixed bin (35)), 39 forum$enter_first_trans entry (char (*)), 40 forum_requests_$find_forum entry (char (*), char (*), char (*), fixed bin, fixed bin (35)), 41 forum_$chname_forum_idx entry (fixed bin, char (*), char (*), fixed bin (35)), 42 forum_$close_forum entry (fixed bin, fixed bin (35)), 43 forum_$create_forum entry (char (*), char (*), fixed bin (35)), 44 forum_$delete_forum entry (char (*), char (*), fixed bin (35)), 45 forum_$enter_trans entry (fixed bin, char (*), fixed bin, char (*), bit (36) aligned, fixed bin, 46 fixed bin (35)), 47 forum_$forum_info entry (char (*), char (*), char (*), fixed bin (71), ptr, fixed bin (35)), 48 forum_$list_forum_acl entry (char (*), char (*), ptr, ptr, ptr, fixed bin, fixed bin (35)), 49 forum_$open_forum entry (char (*), char (*), fixed bin, fixed bin (35)), 50 forum_$read_trans entry (fixed bin, fixed bin, ptr, ptr, fixed bin (35)), 51 forum_$set_forum_acl entry (char (*), char (*), ptr, fixed bin, fixed bin (35)), 52 forum_$set_message entry (fixed bin, char (*), fixed bin (35)), 53 get_system_free_area_ entry returns (ptr), 54 get_temp_segment_ entry (char (*), ptr, fixed bin (35)), 55 get_wdir_ entry returns (char (168)), 56 hcs_$list_acl entry (char (*), char (*), ptr, ptr, ptr, fixed bin, fixed bin (35)), 57 hcs_$status_ entry (char (*), char (*), fixed bin (1), ptr, ptr, fixed bin (35)), 58 (ioa_, ioa_$rsnnl) entry options (variable), 59 iox_$get_line entry (ptr, ptr, fixed bin (21), fixed bin (21), fixed bin (35)), 60 pathname_ entry (char (*), char (*)) returns (char (168)), 61 release_temp_segment_ entry (char (*), ptr, fixed bin (35)), 62 ssu_$abort_line entry options (variable), 63 ssu_$arg_count entry (ptr, fixed bin), 64 ssu_$arg_ptr entry (ptr, fixed bin, ptr, fixed bin (21)), 65 ssu_$destroy_invocation entry (ptr), 66 ssu_$get_subsystem_and_request_name 67 entry (ptr) returns (char (72) var), 68 ssu_$print_message entry options(variable), 69 ssu_$standalone_invocation entry (ptr, char (*), char (*), ptr, entry, fixed bin (35)), 70 user_info_$whoami entry (char (*), char (*), char (*)); 71 72 declare (P_passport_info_ptr ptr, 73 P_ssu_ptr ptr) 74 parameter; 75 76 declare arg_count fixed bin, 77 arg_idx fixed bin, 78 arg_len fixed bin (21), 79 arg_ptr ptr, 80 arg char (arg_len) based (arg_ptr), 81 answer char (256) varying, 82 area_ptr ptr, 83 code fixed bin (35), 84 enter_description bit (1) aligned, 85 force bit (1) aligned, 86 forum_name char (32), 87 fname char (32), 88 forum_idx fixed bin, 89 forum_directory char (168), 90 forum_dir_dir char (168), 91 forum_dir_ent char (32), 92 message char (512), 93 meeting_switch bit (1) aligned, 94 name_len fixed bin, 95 person_id char (22), 96 project char (9), 97 public_switch bit (1) aligned, 98 query_info_ptr ptr, 99 read_only bit (1) aligned, 100 short_name char (128), 101 ssu_ptr ptr, 102 subsystem bit (1) aligned, 103 temp_seg char (104480) based (temp_seg_ptr), 104 temp_seg_ptr ptr, 105 text char (text_len) based (temp_seg_ptr), 106 text_len fixed bin (21), 107 trans_pic pic "zz9999", 108 whoami char (32), 109 cleanup condition, 110 (addr, after, before, char, index, length, ltrim, maxlength, null, pointer, reverse, rtrim, string, substr) 111 builtin; 112 113 declare 1 fdoc aligned like format_document_options, 114 1 fi aligned like forum_info, 115 1 sb aligned like status_branch; 116 117 declare 1 one_acl aligned, 118 2 access_name char (32), 119 2 modes bit (36) aligned, 120 2 xmodes bit (36) aligned, 121 2 code fixed bin (35); 122 123 declare forum_data_$meetings_directory 124 char (32) external, 125 (error_table_$badopt, 126 error_table_$noarg, 127 forum_et_$cant_notify, 128 forum_et_$no_forum) fixed bin (35) external, 129 iox_$user_input ptr external; 130 131 declare (RW_XACL init ("110"b), 132 R_XACL init ("100"b), 133 RW_ACCESS init ("101"b)) 134 bit (3) static options (constant); 135 136 declare (DIR init ("Enter the pathname of the directory where the meeting is to be placed.^/Entering a carriage return will create the meeting in the current working directory.^/^/Pathname: "), 137 NAME init ("Enter the primary name of the new meeting. The name may be from 1 to 26 characters long.^/^/Primary name: "), 138 SNAME init ("Enter a secondary name for the meeting, or a carriage return if no second name is desired.^/^/Short name: "), 139 PUBLIC init ("Answering ""yes"" will allow all users on the system to participate in the meeting.^/Answering ""no"" will restrict participation to users you explicitly allow.^/"), 140 PROJECT init ("Answering ""yes"" will allow you to specify projects whose users will be allowed to participate in the meeting.^/Answering ""no"" will restrict participation to users you explicitly allow.^/"), 141 PROJECTS init ("Enter the name of a project whose users will be allowed to participate in the meeting.^/Enter a period (""."") if there are no more projects to be specified.^/"), 142 PERSON init ("Answering ""yes"" will allow you to add individuals to the list of users allowed to participate in the meeting.^/"), 143 PEOPLE init ("Enter the person_id of a user to be allowed to participate in the meeting.^/Enter a period (""."") if there are no more users to be specified.^/"), 144 ANNOUNCE init ("Answering ""yes"" will allow you to enter an announcement of this meeting^/into another meeting so that others may easily add it to their search list.^/"), 145 ANN_MTG init ("Enter the name of the meeting in which the announcement should be entered.^/Enter a carriage return to announce it in the ^a meeting.^/Enter ""quit"" to not make the announcement.^/^/")) 146 char (256) static options (constant); 147 148 declare CMSG_EXP char (300); /* Not a constant because it's too big */ 149 1 1 /* START OF: forum_passport.incl.pl1 * * * * * * * * * * * * * * * * */ 1 2 1 3 1 4 1 5 /****^ HISTORY COMMENTS: 1 6* 1) change(86-07-30,Pattin), approve(86-07-30,MCR7354), 1 7* audit(86-08-03,Margolin), install(86-08-16,MR12.0-1128): 1 8* Added trailer_format. 1 9* END HISTORY COMMENTS */ 1 10 1 11 1 12 declare passport_info_ptr ptr; 1 13 1 14 declare 1 passport aligned based (passport_info_ptr), 1 15 2 version fixed bin, /* 2 */ 1 16 2 forum_idx fixed bin, /* current forum */ 1 17 2 forum_dir char (168) unal, /* where forum lives */ 1 18 2 forum_name char (32) unal, /* Current forum I'm at */ 1 19 2 forum_name_len fixed bin, /* length of forum_name without suffix */ 1 20 2 flags unal, 1 21 3 brief_sw bit (1) unal, /* specified at invocation */ 1 22 3 talk_fill bit (1) unal, /* God knows */ 1 23 3 print_fill bit (1) unal, /* God doesn't know */ 1 24 3 read_only bit (1) unal, 1 25 3 print_message bit (1) unal, /* Print chairman message on talk/reply */ 1 26 3 auto_write bit (1) unal, 1 27 3 mbz bit (30) unal, /* Future expansion */ 1 28 2 current_trans fixed bin, /* current transaction number */ 1 29 2 input_fill_width fixed bin, /* line length used for input filling */ 1 30 2 output_fill_width fixed bin, /* line length used for output filling */ 1 31 2 public_channel fixed bin (71), /* My transaction wakeup channel. */ 1 32 2 area_ptr ptr, /* used for random temporary storage */ 1 33 2 first_trans_ptr ptr, /* ptrs to linked list of transactions copied to */ 1 34 2 last_trans_ptr ptr, /* user ring */ 1 35 2 unprocessed_trans_ptr ptr, /* If this isn't null, we got one pending. */ 1 36 2 unprocessed_reply_trans fixed bin, /* If nonzero, unprocessed trans is a reply. */ 1 37 2 unprocessed_forum_dir char (168), /* Directory containing meeting unproc is for. */ 1 38 2 unprocessed_forum_name char (32), /* Name of meeting unproc is for */ 1 39 2 unprocessed_name_len fixed bin, /* length (w/o suffix) of Name of meeting unproc is for */ 1 40 2 ssu_ptr ptr, /* Department of Redundancy Department. */ 1 41 2 next_passport_ptr ptr, /* list of all invocations */ 1 42 2 trailer_format fixed bin; 1 43 1 44 declare passport_version_2 fixed bin static options (constant) initial (2); 1 45 1 46 declare forum_area area based (passport.area_ptr), 1 47 no_suffix_name char (passport.forum_name_len) based (addr (passport.forum_name)); 1 48 1 49 declare forum_data_$version_string character (8) external, 1 50 forum_data_$central_directory 1 51 character (168) unaligned external, 1 52 forum_data_$info_directory character (168) unaligned external; 1 53 1 54 declare (TFMT_none init (0), 1 55 TFMT_number init (1), 1 56 TFMT_more init (2), 1 57 TFMT_reference init (3)) 1 58 fixed bin static options (constant); 1 59 1 60 /* END OF: forum_passport.incl.pl1 * * * * * * * * * * * * * * * * */ 150 151 2 1 /* BEGIN INCLUDE FILE: forum_user_trans.incl.pl1 */ 2 2 2 3 dcl alloc_text_length fixed bin (21); /* length of text area to allocate */ 2 4 dcl alloc_subject_length fixed bin (21); /* length of subject area to allocate */ 2 5 dcl forum_user_trans_ptr ptr; /* pointer to below structure */ 2 6 2 7 dcl 1 forum_user_trans based (forum_user_trans_ptr) aligned, 2 8 2 type fixed bin, /* type of transaction */ 2 9 2 person_id char (22), /* person_id of author of this transaction */ 2 10 2 project_id char (9), /* project_id of author of this transaction */ 2 11 2 time fixed bin (71), /* time transaction was entered */ 2 12 2 trans_no fixed bin, /* number of this transaction */ 2 13 2 next_trans_ptr ptr, /* pointer (in user ring) of next transaction */ 2 14 2 prev_trans_ptr ptr, /* pointer (in user ring) of previous transaction */ 2 15 2 subject_length fixed bin (21), /* length of subject field of transaction */ 2 16 2 text_length fixed bin (21), /* length of text field of transaction */ 2 17 2 unfilled bit (1) aligned, /* set if transaction is NOT stored filled */ 2 18 2 subject char (alloc_subject_length refer (forum_user_trans.subject_length)) unaligned, /* subject of transaction */ 2 19 2 text char (alloc_text_length refer (forum_user_trans.text_length)) unaligned; /* text of transaction */ 2 20 2 21 declare user_trans_type fixed bin static options (constant) initial (1); 2 22 declare message_type fixed bin static options (constant) initial (2); 2 23 2 24 declare (ONLY_UNDELETED init (0), 2 25 INCLUDE_DELETED init (1), 2 26 ONLY_DELETED init (2)) 2 27 fixed bin static options (constant); 2 28 2 29 /* END INCLUDE FILE: forum_user_trans.incl.pl1 */ 152 153 3 1 /* START OF: forum_info.incl.pl1 * * * * * * * * * * * * * * * * * * * */ 3 2 3 3 3 4 3 5 /****^ HISTORY COMMENTS: 3 6* 1) change(86-07-30,Pattin), approve(86-07-30,MCR7354), 3 7* audit(86-08-03,Margolin), install(86-08-16,MR12.0-1128): 3 8* Changed to version 2, speed up call by not calculating remove count. 3 9* END HISTORY COMMENTS */ 3 10 3 11 3 12 declare forum_info_ptr ptr; 3 13 3 14 declare 1 forum_info aligned based (forum_info_ptr), 3 15 2 version fixed bin, /* Must be 1 or 2 */ 3 16 2 forum_uid bit (36), 3 17 2 chairman unaligned, 3 18 3 username char (20), 3 19 3 project char (9), 3 20 3 pad char (3), 3 21 2 attendee_count fixed bin, 3 22 2 removal_count fixed bin, /* always 0 in version 2 */ 3 23 2 transaction_count fixed bin, 3 24 2 deletion_count fixed bin, 3 25 2 last_seen_trans_idx fixed bin, 3 26 2 last_time_changed fixed bin (71), 3 27 2 last_time_attended fixed bin (71), 3 28 2 changes_count fixed bin, 3 29 2 flags unaligned, 3 30 3 eligible bit (1), 3 31 3 mbz1 bit (1), 3 32 3 removed bit (1), 3 33 3 notify bit (1), 3 34 3 attending bit (1), 3 35 3 mbz2 bit (2), 3 36 3 read_only bit (1), 3 37 3 adjourned bit (1), 3 38 3 mbz3 bit (27); 3 39 3 40 declare forum_info_version_1 fixed bin static options (constant) initial (1), 3 41 forum_info_version_2 fixed bin static options (constant) initial (2); 3 42 3 43 /* END OF: forum_info.incl.pl1 * * * * * * * * * * * * * * * * * * * */ 154 155 4 1 /* BEGIN INCLUDE FILE query_info.incl.pl1 TAC June 1, 1973 */ 4 2 /* Renamed to query_info.incl.pl1 and cp_escape_control added, 08/10/78 WOS */ 4 3 /* version number changed to 4, 08/10/78 WOS */ 4 4 /* Version 5 adds explanation_(ptr len) 05/08/81 S. Herbst */ 4 5 /* Version 6 adds literal_sw, prompt_after_explanation switch 12/15/82 S. Herbst */ 4 6 4 7 dcl 1 query_info aligned, /* argument structure for command_query_ call */ 4 8 2 version fixed bin, /* version of this structure - must be set, see below */ 4 9 2 switches aligned, /* various bit switch values */ 4 10 3 yes_or_no_sw bit (1) unaligned init ("0"b), /* not a yes-or-no question, by default */ 4 11 3 suppress_name_sw bit (1) unaligned init ("0"b), /* do not suppress command name */ 4 12 3 cp_escape_control bit (2) unaligned init ("00"b), /* obey static default value */ 4 13 /* "01" -> invalid, "10" -> don't allow, "11" -> allow */ 4 14 3 suppress_spacing bit (1) unaligned init ("0"b), /* whether to print extra spacing */ 4 15 3 literal_sw bit (1) unaligned init ("0"b), /* ON => do not strip leading/trailing white space */ 4 16 3 prompt_after_explanation bit (1) unaligned init ("0"b), /* ON => repeat question after explanation */ 4 17 3 padding bit (29) unaligned init (""b), /* pads it out to t word */ 4 18 2 status_code fixed bin (35) init (0), /* query not prompted by any error, by default */ 4 19 2 query_code fixed bin (35) init (0), /* currently has no meaning */ 4 20 4 21 /* Limit of data defined for version 2 */ 4 22 4 23 2 question_iocbp ptr init (null ()), /* IO switch to write question */ 4 24 2 answer_iocbp ptr init (null ()), /* IO switch to read answer */ 4 25 2 repeat_time fixed bin (71) init (0), /* repeat question every N seconds if no answer */ 4 26 /* minimum of 30 seconds required for repeat */ 4 27 /* otherwise, no repeat will occur */ 4 28 /* Limit of data defined for version 4 */ 4 29 4 30 2 explanation_ptr ptr init (null ()), /* explanation of question to be printed if */ 4 31 2 explanation_len fixed bin (21) init (0); /* user answers "?" (disabled if ptr=null or len=0) */ 4 32 4 33 dcl query_info_version_3 fixed bin int static options (constant) init (3); 4 34 dcl query_info_version_4 fixed bin int static options (constant) init (4); 4 35 dcl query_info_version_5 fixed bin int static options (constant) init (5); 4 36 dcl query_info_version_6 fixed bin int static options (constant) init (6); /* the current version number */ 4 37 4 38 /* END INCLUDE FILE query_info.incl.pl1 */ 156 157 5 1 /* BEGIN INCLUDE FILE format_document_options.incl.pl1 5 2* 5 3* Modified 82.10.18 by Paul W. Benjamin to add dont_compress_sw and upgrade 5 4* to version_2. 5 5* Modified 83.02.15 by PWB to add break_word_sw and max_line_length_sw. 5 6* Modified 83.03.01 by PWB to add dont_break_indented_lines_sw. 5 7* Modified 83.03.03 by PWB to add sub_err_sw. 5 8* Modified 83.06.07 by PWB to add dont_fill_sw. 5 9* Modified 83.06.09 by PWB to add hyphenation_sw and syllable_size. 5 10**/ 5 11 5 12 dcl 1 format_document_options aligned based (format_document_options_ptr), 5 13 2 version_number fixed bin, /* input */ 5 14 /* must be format_document_version_2 */ 5 15 2 indentation fixed bin, /* input */ 5 16 /* all lines must be indented by this value */ 5 17 2 line_length fixed bin, /* input */ 5 18 /* initial line length */ 5 19 2 switches, 5 20 3 pgno_sw bit (1) unal, /* input */ 5 21 /* end each page with a centered page number */ 5 22 3 adj_sw bit (1) unal, /* input */ 5 23 /* adjust mode initially on */ 5 24 /* only meaningful if dont_fill_sw = "0"b */ 5 25 3 galley_sw bit (1) unal, /* input */ 5 26 /* galley mode -- no page breaks */ 5 27 3 error_sw bit (1) unal, /* input */ 5 28 /* report all errors on error_output */ 5 29 3 literal_sw bit (1) unal, /* input */ 5 30 /* "1"b - interpret all lines as text */ 5 31 /* "0"b - lines that start with "." are controls */ 5 32 3 file_sw bit (1) unal, /* output */ 5 33 /* has meaning for non-zero storage system status codes */ 5 34 /* "1"b code refers to output file */ 5 35 /* "0"b code refers to input file */ 5 36 3 dont_compress_sw bit (1) unal, /* input */ 5 37 /* "1"b - don't compress white space */ 5 38 /* "0"b - compress white space when filling */ 5 39 3 break_word_sw bit (1) unal, /* input */ 5 40 /* "1"b - break a word rather than exceed line_length */ 5 41 /* "0"b - write an overlength line if no spaces found */ 5 42 3 max_line_length_sw bit (1) unal, /* input */ 5 43 /* "1"b - line_length cannot be exceeded */ 5 44 /* "0"b - line_length can be exceeded (by .pdw controls) */ 5 45 3 dont_break_indented_lines_sw /* input */ 5 46 bit (1) unal, /* don't break a line that begins with whitespace */ 5 47 /* when it is the last line, or the next line is */ 5 48 /* null or the next line begins with whitespace */ 5 49 3 sub_err_sw bit (1) unal, /* input */ 5 50 /* quietly call sub_err_ with diagnostic errors */ 5 51 3 dont_fill_sw bit (1) unal, /* input */ 5 52 /* "1"b - fill mode off initially */ 5 53 /* "0"b - fill mode on initially */ 5 54 3 hyphenation_sw bit (1) unal, 5 55 3 mbz bit (23) unal, /* input */ 5 56 /* MUST be zero */ 5 57 2 syllable_size 5 58 fixed bin; /* input */ 5 59 /* smallest portion of word */ 5 60 /* to be left by hyphenation */ 5 61 5 62 dcl format_document_options_ptr ptr; 5 63 dcl format_document_version_2 fixed bin int static options (constant) init (2); 5 64 dcl format_document_version_1 fixed bin int static options (constant) init (1); 5 65 5 66 /* END INCLUDE FILE format_document_options.incl.pl1 */ 158 159 6 1 /* --------------- BEGIN include file status_structures.incl.pl1 --------------- */ 6 2 6 3 /* Revised from existing include files 09/26/78 by C. D. Tavares */ 6 4 6 5 /* This include file contains branch and link structures returned by 6 6* hcs_$status_ and hcs_$status_long. */ 6 7 6 8 dcl 1 status_branch aligned based (status_ptr), 6 9 2 short aligned, 6 10 3 type fixed bin (2) unaligned unsigned, /* seg, dir, or link */ 6 11 3 nnames fixed bin (16) unaligned unsigned, /* number of names */ 6 12 3 names_relp bit (18) unaligned, /* see entry_names dcl */ 6 13 3 dtcm bit (36) unaligned, /* date/time contents last modified */ 6 14 3 dtu bit (36) unaligned, /* date/time last used */ 6 15 3 mode bit (5) unaligned, /* caller's effective access */ 6 16 3 raw_mode bit (5) unaligned, /* caller's raw "rew" modes */ 6 17 3 pad1 bit (8) unaligned, 6 18 3 records_used fixed bin (18) unaligned unsigned, /* number of NONZERO pages used */ 6 19 6 20 /* Limit of information returned by hcs_$status_ */ 6 21 6 22 2 long aligned, 6 23 3 dtd bit (36) unaligned, /* date/time last dumped */ 6 24 3 dtem bit (36) unaligned, /* date/time branch last modified */ 6 25 3 lvid bit (36) unaligned, /* logical volume ID */ 6 26 3 current_length fixed bin (12) unaligned unsigned, /* number of last page used */ 6 27 3 bit_count fixed bin (24) unaligned unsigned, /* reported length in bits */ 6 28 3 pad2 bit (8) unaligned, 6 29 3 copy_switch bit (1) unaligned, /* copy switch */ 6 30 3 tpd_switch bit (1) unaligned, /* transparent to paging device switch */ 6 31 3 mdir_switch bit (1) unaligned, /* is a master dir */ 6 32 3 damaged_switch bit (1) unaligned, /* salvager warned of possible damage */ 6 33 3 synchronized_switch bit (1) unaligned, /* DM synchronized file */ 6 34 3 pad3 bit (5) unaligned, 6 35 3 ring_brackets (0:2) fixed bin (6) unaligned unsigned, 6 36 3 uid bit (36) unaligned; /* unique ID */ 6 37 6 38 dcl 1 status_link aligned based (status_ptr), 6 39 2 type fixed bin (2) unaligned unsigned, /* as above */ 6 40 2 nnames fixed bin (16) unaligned unsigned, 6 41 2 names_relp bit (18) unaligned, 6 42 2 dtem bit (36) unaligned, 6 43 2 dtd bit (36) unaligned, 6 44 2 pathname_length fixed bin (17) unaligned, /* see pathname */ 6 45 2 pathname_relp bit (18) unaligned; /* see pathname */ 6 46 6 47 dcl status_entry_names (status_branch.nnames) character (32) aligned 6 48 based (pointer (status_area_ptr, status_branch.names_relp)), 6 49 /* array of names returned */ 6 50 status_pathname character (status_link.pathname_length) aligned 6 51 based (pointer (status_area_ptr, status_link.pathname_relp)), 6 52 /* link target path */ 6 53 status_area_ptr pointer, 6 54 status_ptr pointer; 6 55 6 56 dcl (Link initial (0), 6 57 Segment initial (1), 6 58 Directory initial (2)) fixed bin internal static options (constant); 6 59 /* values for type fields declared above */ 6 60 6 61 /* ---------------- END include file status_structures.incl.pl1 ---------------- */ 160 161 162 whoami = "forum_create"; 163 subsystem = "0"b; 164 call user_info_$whoami (person_id, project, ""); 165 forum_idx = 0; 166 167 forum_user_trans_ptr, temp_seg_ptr = null (); 168 forum_directory, forum_name = ""; 169 on cleanup call clean_up ("1"b); 170 171 call ssu_$standalone_invocation (ssu_ptr, whoami, "1", cu_$arg_list_ptr (), punt, code); 172 if code ^= 0 then do; /* UGH */ 173 if cu_$af_return_arg ((0), null (), (0)) = 0 then 174 call active_fnc_err_ (code, whoami, "Unable to create subsystem invocation."); 175 else call com_err_ (code, whoami, "Unable to create subsystem invocation."); 176 return; 177 end; 178 179 call ssu_$arg_count (ssu_ptr, arg_count); 180 if arg_count ^= 0 then call ssu_$abort_line (ssu_ptr, 0, "Usage: fcr"); 181 182 query_info_ptr = addr (query_info); 183 query_info.version = query_info_version_6; 184 query_info.suppress_spacing = "1"b; 185 query_info.explanation_ptr = addr (DIR); 186 query_info.explanation_len = length (rtrim (DIR)); 187 188 call command_query_ (query_info_ptr, answer, "", 189 "Enter pathname of meeting directory (carriage return for working_dir)^/"); 190 if answer = "" then 191 forum_directory = get_wdir_ (); 192 else do; 193 forum_directory = answer; 194 call expand_pathname_ (forum_directory, forum_dir_dir, forum_dir_ent, code); 195 if code ^= 0 then 196 call ssu_$abort_line (ssu_ptr, code, "Expanding ""^a""", answer); 197 forum_directory = rtrim (forum_dir_dir) || ">" || rtrim (forum_dir_ent); 198 end; 199 200 query_info.suppress_spacing = "0"b; 201 query_info.explanation_ptr = addr (NAME); 202 query_info.explanation_len = length (rtrim (NAME)); 203 204 BLANK: 205 call command_query_ (query_info_ptr, answer, "", "Please enter long meeting name (<27 characters): "); 206 if answer = "" then goto BLANK; 207 208 forum_name = rtrim (answer) || ".forum"; 209 call forum_$create_forum (forum_directory, forum_name, code); 210 if code ^= 0 then 211 call ssu_$abort_line (ssu_ptr, code, "Error creating meeting."); 212 213 fname = char (answer, 32); 214 215 call forum_$open_forum (forum_directory, forum_name, forum_idx, code); 216 if code ^= 0 then 217 call ssu_$abort_line (ssu_ptr, code, "Unable to open newly created meeting."); 218 219 query_info.explanation_ptr = addr (SNAME); 220 query_info.explanation_len = length (rtrim (SNAME)); 221 222 call command_query_ (query_info_ptr, answer, "", "Now enter abbreviated meeting name: "); 223 224 short_name = answer; 225 if short_name ^= "" then do; 226 call forum_$chname_forum_idx (forum_idx, "", rtrim (short_name) || ".forum", code); 227 if code ^= 0 then 228 call ssu_$abort_line (ssu_ptr, code, "Unable to add short name to meeting ^a.", fname); 229 end; 230 231 query_info.explanation_ptr = addr (PUBLIC); 232 query_info.explanation_len = length (rtrim (PUBLIC)); 233 234 one_acl.modes = RW_ACCESS; 235 query_info.yes_or_no_sw = "1"b; 236 query_info.prompt_after_explanation = "1"b; 237 call command_query_ (query_info_ptr, answer, "", "Should the meeting be public? "); 238 if answer = "yes" then do; 239 public_switch = "1"b; 240 read_only = "0"b; 241 one_acl.access_name = "*.*.*"; 242 one_acl.xmodes = RW_XACL; 243 call forum_$set_forum_acl (forum_directory, forum_name, addr (one_acl), 1, code); 244 if code ^= 0 then 245 call ssu_$print_message (ssu_ptr, code, "Unable to make meeting public."); 246 goto CMSG; 247 end; 248 249 public_switch = "0"b; 250 query_info.explanation_ptr = addr (PERSON); 251 query_info.explanation_len = length (rtrim (PERSON)); 252 253 query_info.yes_or_no_sw = "1"b; 254 call command_query_ (query_info_ptr, answer, "", "Should specified individuals be allowed to participate?"); 255 if answer = "yes" then do; 256 query_info.yes_or_no_sw = ""b; 257 call ioa_ ("^/Now please type person_id's of attendees when prompted."); 258 call ioa_ ("Signal the end of the list by typing a period only."); 259 260 query_info.explanation_ptr = addr (PEOPLE); 261 query_info.explanation_len = length (rtrim (PEOPLE)); 262 263 call set_acl ("1"b); 264 end; 265 266 query_info.explanation_ptr = addr (PROJECT); 267 query_info.explanation_len = length (rtrim (PROJECT)); 268 269 query_info.yes_or_no_sw = "1"b; 270 call command_query_ (query_info_ptr, answer, "", "Should specified projects be allowed to participate?"); 271 if answer = "yes" then do; 272 call ioa_ ("^/Now please type project_ids when prompted."); 273 call ioa_ ("Signal the end of the list by typing a period only."); 274 query_info.explanation_ptr = addr (PROJECTS); 275 query_info.explanation_len = length (rtrim (PROJECTS)); 276 277 query_info.yes_or_no_sw = ""b; 278 call set_acl ("0"b); 279 end; 280 281 CMSG: CMSG_EXP = "The chairman message is printed each time a participant attends a meeting^/after the message has changed and the first time he enters a transaction^/after going to a meeting."; 282 CMSG_EXP = rtrim (CMSG_EXP) || " It is intended to a serve as a reminder of the^/purpose of the meeting and of the meeting's audience.^2/Do you want to enter a chairman message? "; 283 284 query_info.yes_or_no_sw = "1"b; 285 query_info.prompt_after_explanation = "0"b; 286 query_info.explanation_ptr = addr (CMSG_EXP); 287 query_info.explanation_len = length (rtrim (CMSG_EXP)); 288 call command_query_ (query_info_ptr, answer, "", "Do you want to enter a chairman message (? for explanation)?"); 289 290 if answer = "yes" then call get_message (); 291 292 call ioa_ ("The ^a meeting has been established in ^a.", fname, forum_directory); 293 294 call ioa_ ("You must now enter the first transaction in the ^a meeting, which will^/act as an introduction.", fname); 295 call forum$enter_first_trans (rtrim (forum_directory) || ">" || fname); 296 297 query_info.prompt_after_explanation = "1"b; 298 query_info.explanation_ptr = addr (ANNOUNCE); 299 query_info.explanation_len = length (rtrim (ANNOUNCE)); 300 call command_query_ (query_info_ptr, answer, "", "Do you want to announce this meeting?"); 301 if answer = "yes" then call announce (); 302 303 EGRESS: call clean_up ("0"b); 304 return; 305 306 set_acl: 307 proc (person); 308 309 declare person bit (1) aligned; 310 311 do while ("1"b); 312 call command_query_ (query_info_ptr, answer, "", "^[Person^;Project^]_id: ", person); 313 if answer = "." then return; 314 315 read_only = "1"b; 316 if substr (answer, length (answer) - length (" -ro") + 1) = " -ro" then 317 answer = substr (answer, 1, length (answer) - length (" -ro")); 318 else if substr (answer, length (answer) - length (" -read_only") + 1) = " -read_only" then 319 answer = substr (answer, 1, length (answer) - length (" -read_only")); 320 else read_only = "0"b; 321 322 if index (answer, ".") > 0 | index (answer, "*") > 0 then 323 call ssu_$print_message (ssu_ptr, 0, "^[Person^;Project^]_ids may not contain ""."" or ""*"".", person); 324 else if answer ^= "" then do; 325 if person then do; 326 if answer = person_id then do; 327 call ssu_$print_message (ssu_ptr, 0, "You are already a participant."); 328 goto NEXT_ID; 329 end; 330 one_acl.access_name = rtrim (answer) || ".*.*"; 331 end; 332 else one_acl.access_name = "*." || rtrim (answer) || ".*"; 333 if read_only then one_acl.xmodes = R_XACL; 334 else one_acl.xmodes = RW_XACL; 335 call forum_$set_forum_acl (forum_directory, forum_name, addr (one_acl), 1, code); 336 if code ^= 0 then 337 call ssu_$print_message (ssu_ptr, code, "Unable to add ^[project ^]^a to new meeting.", 338 ^person, answer); 339 end; 340 NEXT_ID: end; 341 end set_acl; 342 343 get_message: 344 proc (); 345 346 call ioa_ ("Message (End with "".""):"); 347 348 call get_input (); 349 call forum_$set_message (forum_idx, rtrim (message), code); 350 if code ^= 0 then 351 call ssu_$print_message (ssu_ptr, code, "Setting chairman message."); 352 return; 353 end get_message; 354 355 get_input: 356 proc (); 357 358 declare buffer char (256), 359 len fixed bin (21); 360 361 message = ""; 362 do while ("1"b); 363 buffer = ""; 364 call iox_$get_line (iox_$user_input, addr (buffer), 256, len, code); 365 if code ^= 0 then do; 366 call ssu_$print_message (ssu_ptr, code, "Reading message."); 367 return; 368 end; 369 370 if len > 0 then do; 371 if len = 2 & substr (buffer, 1, 1) = "." then return; 372 buffer = substr (buffer, 1, len); 373 if length (rtrim (message)) + length (rtrim (buffer)) > maxlength (message) then 374 call ssu_$abort_line (ssu_ptr, 0, "Input must be less than 512 characters."); 375 message = rtrim (message) || buffer; 376 end; 377 end; 378 end get_input; 379 380 announce_meeting: 381 entry (P_ssu_ptr, P_passport_info_ptr); 382 383 ssu_ptr = P_ssu_ptr; 384 passport_info_ptr = P_passport_info_ptr; 385 forum_idx = passport.forum_idx; 386 387 subsystem = "1"b; 388 meeting_switch, enter_description, force = "0"b; 389 forum_user_trans_ptr, temp_seg_ptr = null (); 390 sb.names_relp = ""b; 391 on cleanup call clean_up ("1"b); 392 393 call ssu_$arg_count (ssu_ptr, arg_count); 394 395 do arg_idx = 1 to arg_count; 396 call ssu_$arg_ptr (ssu_ptr, arg_idx, arg_ptr, arg_len); 397 if index (arg, "-") ^= 1 then 398 call ssu_$abort_line (ssu_ptr, 0, "Usage: anm {-control_arg}"); 399 else if arg = "-enter_description" | arg = "-eds" then enter_description = "1"b; 400 else if arg = "-force" | arg = "-fc" then force = "1"b; 401 else if arg = "-meeting" | arg = "-mtg" then do; 402 meeting_switch = "1"b; 403 arg_idx = arg_idx + 1; 404 if arg_idx > arg_count then 405 call ssu_$abort_line (ssu_ptr, error_table_$noarg, "Following ^a.", arg); 406 call ssu_$arg_ptr (ssu_ptr, arg_idx, arg_ptr, arg_len); 407 call forum_requests_$find_forum (arg, forum_dir_dir, forum_dir_ent, name_len, code); 408 if code ^= 0 then 409 call ssu_$abort_line (ssu_ptr, code, "Locating ^a.", arg); 410 end; 411 else if arg = "-no_force" | arg = "-nfc" then force = "0"b; 412 else call ssu_$abort_line (ssu_ptr, error_table_$badopt, "^a", arg); 413 end; 414 415 if forum_idx = 0 then call ssu_$abort_line (ssu_ptr, forum_et_$no_forum); 416 if ^meeting_switch then do; 417 forum_dir_dir = forum_data_$central_directory; 418 forum_dir_ent = forum_data_$meetings_directory; 419 name_len = index (forum_data_$meetings_directory, ".forum") - 1; 420 if name_len < 0 then name_len = index (forum_data_$meetings_directory, ".control") - 1; 421 end; 422 forum_directory = passport.forum_dir; 423 forum_name = passport.forum_name; 424 fname = no_suffix_name; 425 426 if ^force then do; 427 query_info.version = query_info_version_6; 428 string (query_info.switches) = ""b; 429 query_info.yes_or_no_sw = "1"b; 430 query_info.explanation_ptr, query_info.question_iocbp, query_info.answer_iocbp = null (); 431 call command_query_ (addr (query_info), answer, ssu_$get_subsystem_and_request_name (ssu_ptr), 432 "Do you really want to announce the ^a meeting in the ^a meeting?", 433 fname, pathname_ (forum_dir_dir, substr (forum_dir_ent, 1, name_len))); 434 if answer = "no" then return; 435 end; 436 437 area_ptr, status_area_ptr = passport.area_ptr; 438 status_ptr = addr (sb); 439 440 short_name = ""; 441 call hcs_$status_ (forum_directory, forum_name, 0, status_ptr, area_ptr, code); 442 if code = 0 then do; 443 fname = reverse (after (reverse (status_entry_names (1)), ".")); 444 if sb.nnames > 1 then 445 short_name = reverse (after (reverse (status_entry_names (2)), ".")); 446 do arg_idx = 3 to sb.nnames while (length (rtrim (short_name)) < 102); 447 short_name = rtrim (short_name) || ", " || reverse (after (reverse (status_entry_names (arg_idx)), ".")); 448 end; 449 end; 450 451 fi.version = forum_info_version_1; 452 call forum_$forum_info (forum_directory, forum_name, "", 0, addr (fi), code); 453 if code ^= 0 then call ssu_$abort_line (ssu_ptr, code); 454 person_id = fi.chairman.username; 455 project = fi.chairman.project; 456 457 one_acl.access_name = "*.*.*"; 458 if forum_idx < 0 then do; 459 call forum_$list_forum_acl (forum_directory, forum_name, null (), null (), addr (one_acl), 1, code); 460 if code ^= 0 then public_switch = "0"b; 461 else do; 462 public_switch = (one_acl.xmodes ^= ""b); 463 read_only = (one_acl.xmodes = R_XACL); 464 end; 465 end; 466 else do; 467 call hcs_$list_acl (forum_directory, forum_name, null (), null (), addr (one_acl), 1, code); 468 if code ^= 0 then public_switch = "1"b; 469 else public_switch = (one_acl.modes = RW_ACCESS); 470 end; 471 472 call announce_existing (); 473 return; 474 475 announce: 476 proc (); 477 478 declare (announce_idx, idx) fixed bin, 479 announce_path char (168); 480 481 query_info.yes_or_no_sw, query_info.prompt_after_explanation = "0"b; 482 query_info.suppress_spacing = "1"b; 483 484 query_info.explanation_ptr = addr (ANN_MTG); 485 query_info.explanation_len = length (rtrim (ANN_MTG)); 486 AGAIN: call command_query_ (query_info_ptr, answer, "", "^/Enter the name of the meeting where the announcement should be made.^/(Enter carriage return for ^a>^a.)^/", 487 forum_data_$central_directory, before (forum_data_$meetings_directory, ".")); 488 if answer = "quit" then return; 489 490 if answer = "" then do; 491 forum_dir_dir = forum_data_$central_directory; 492 forum_dir_ent = forum_data_$meetings_directory; 493 end; 494 else do; 495 call forum_requests_$find_forum ((answer), forum_dir_dir, forum_dir_ent, (0), code); 496 if code ^= 0 then do; 497 BADMTG: call ssu_$print_message (ssu_ptr, code, "Unable to locate ^a meeting.", answer); 498 goto AGAIN; 499 end; 500 end; 501 502 area_ptr = get_system_free_area_ (); 503 call user_info_$whoami (person_id, project, ""); 504 enter_description = "0"b; 505 goto JOIN; 506 507 announce_existing: 508 entry (); 509 510 JOIN: announce_idx = 0; 511 on cleanup call forum_$close_forum (announce_idx, (0)); 512 513 call forum_$open_forum (forum_dir_dir, forum_dir_ent, announce_idx, code); 514 if code ^= 0 then 515 if subsystem then call ssu_$abort_line (ssu_ptr, code, "Opening ^a>^a.", forum_dir_dir, forum_dir_ent); 516 else goto BADMTG; 517 518 announce_path = rtrim (forum_dir_dir) || ">" || forum_dir_ent; 519 call get_temp_segment_ (whoami, temp_seg_ptr, code); 520 if code ^= 0 then 521 call ssu_$abort_line (ssu_ptr, code, "Unable to obtain temp segment."); 522 523 call ioa_$rsnnl (" Names:^2-^a^[, ^a^;^s^]^/ Location:^-^a^/ Chairman:^-^a.^a^/ Participation:^-^[Public^[ (read-only)^]^/^/^]", 524 temp_seg, text_len, fname, (short_name ^= ""), short_name, forum_directory, person_id, project, 525 public_switch, read_only); 526 527 if ^public_switch then do; 528 call ioa_ ("Enter a short description of the access to the meeting (End with ""."")."); 529 call get_input (); 530 531 idx = length (rtrim (message)); 532 if idx = 0 then do; 533 substr (temp_seg, text_len, 2) = " 534 535 "; 536 text_len = text_len + 2; 537 end; 538 else begin; 539 540 declare temp char (2 * idx + 20), 541 len fixed bin (21); 542 543 fdoc.version_number = format_document_version_2; 544 fdoc.indentation = 20; 545 fdoc.line_length = 52; 546 string (fdoc.switches) = ""b; 547 fdoc.galley_sw, fdoc.literal_sw, fdoc.dont_break_indented_lines_sw = "1"b; 548 fdoc.syllable_size = 3; /* Make fdoc happy */ 549 550 call format_document_$string (substr (message, 1, idx), temp, len, addr (fdoc), code); 551 if code ^= 0 then 552 call ssu_$abort_line (ssu_ptr, code, "Unable to fill announcement."); 553 554 len = len - 20; /* remove indentation from first line. */ 555 substr (temp_seg, text_len + 1, len + 1) = substr (temp, 21, len) || " 556 "; 557 text_len = text_len + len + 1; 558 end; /* BEGIN */ 559 end; 560 561 if enter_description then call enter_meeting_description (); 562 else do; 563 call forum_$read_trans (forum_idx, 1, area_ptr, forum_user_trans_ptr, code ); 564 if code ^= 0 then do; 565 call ssu_$print_message (ssu_ptr, code, "Unable to read first transaction."); 566 call enter_meeting_description (); 567 end; 568 else do; 569 substr (temp_seg, text_len + 1, forum_user_trans.text_length) = forum_user_trans.text; 570 text_len = text_len + forum_user_trans.text_length; 571 end; 572 end; 573 574 forum_dir_dir = rtrim (fname) || " meeting"; 575 call forum_$enter_trans (announce_idx, text, 0, forum_dir_dir, "11"b, idx, code); 576 if code ^= 0 then 577 if code ^= forum_et_$cant_notify then 578 call ssu_$abort_line (ssu_ptr, code, "Unable to enter announcement."); 579 580 trans_pic = idx; 581 call ioa_ ("Announcement [^a] entered in the ^a meeting.", ltrim (trans_pic), announce_path); 582 583 call forum_$close_forum (announce_idx, (0)); 584 585 return; 586 end announce; 587 588 enter_meeting_description: 589 proc (); 590 591 declare idx fixed bin (21); 592 593 call ioa_ ("Please enter a short description of the meeting (End with ""."")."); 594 call get_input (); 595 596 idx = length (rtrim (message)); 597 substr (temp_seg, text_len + 1, idx) = message; 598 text_len = text_len + idx; 599 return; 600 end enter_meeting_description; 601 602 clean_up: 603 proc (cleanup_sw); 604 605 declare cleanup_sw bit (1) aligned; 606 607 if forum_user_trans_ptr ^= null () then free forum_user_trans; 608 if temp_seg_ptr ^= null () then 609 call release_temp_segment_ (whoami, temp_seg_ptr, (0)); 610 611 if subsystem then do; 612 if sb.names_relp ^= ""b then free status_entry_names; 613 return; 614 end; 615 616 call forum_$close_forum (forum_idx, (0)); 617 if ^cleanup_sw then return; 618 619 call forum_$delete_forum (forum_directory, forum_name, (0)); 620 call ssu_$destroy_invocation (ssu_ptr); 621 622 return; 623 end clean_up; 624 625 626 punt: 627 proc (); 628 629 goto EGRESS; 630 631 end punt; 632 633 end forum_create; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/19/86 2045.0 forum_create.pl1 >spec>install>1135>forum_create.pl1 150 1 08/16/86 1538.0 forum_passport.incl.pl1 >ldd>include>forum_passport.incl.pl1 152 2 10/31/84 1115.4 forum_user_trans.incl.pl1 >ldd>include>forum_user_trans.incl.pl1 154 3 08/16/86 1538.0 forum_info.incl.pl1 >ldd>include>forum_info.incl.pl1 156 4 03/11/83 1204.3 query_info.incl.pl1 >ldd>include>query_info.incl.pl1 158 5 11/01/84 1514.0 format_document_options.incl.pl1 >ldd>include>format_document_options.incl.pl1 160 6 11/22/82 0955.7 status_structures.incl.pl1 >ldd>include>status_structures.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. ANNOUNCE 000100 constant char(256) initial unaligned dcl 136 set ref 298 299 ANN_MTG 000000 constant char(256) initial unaligned dcl 136 set ref 484 485 CMSG_EXP 000763 automatic char(300) unaligned dcl 148 set ref 281* 282* 282 286 287 DIR 001100 constant char(256) initial unaligned dcl 136 set ref 185 186 NAME 001000 constant char(256) initial unaligned dcl 136 set ref 201 202 PEOPLE 000200 constant char(256) initial unaligned dcl 136 set ref 260 261 PERSON 000300 constant char(256) initial unaligned dcl 136 set ref 250 251 PROJECT 000500 constant char(256) initial unaligned dcl 136 set ref 266 267 PROJECTS 000400 constant char(256) initial unaligned dcl 136 set ref 274 275 PUBLIC 000600 constant char(256) initial unaligned dcl 136 set ref 231 232 P_passport_info_ptr parameter pointer dcl 72 ref 380 384 P_ssu_ptr parameter pointer dcl 72 ref 380 383 RW_ACCESS constant bit(3) initial unaligned dcl 131 ref 234 469 RW_XACL constant bit(3) initial unaligned dcl 131 ref 242 334 R_XACL constant bit(3) initial unaligned dcl 131 ref 333 463 SNAME 000700 constant char(256) initial unaligned dcl 136 set ref 219 220 access_name 000750 automatic char(32) level 2 dcl 117 set ref 241* 330* 332* 457* active_fnc_err_ 000010 constant entry external dcl 32 ref 173 addr builtin function dcl 76 ref 182 185 201 219 231 243 243 250 260 266 274 286 298 335 335 364 364 424 431 431 438 452 452 459 459 467 467 484 550 550 after builtin function dcl 76 ref 443 444 447 announce_idx 000100 automatic fixed bin(17,0) dcl 478 set ref 510* 511* 513* 575* 583* announce_path 000102 automatic char(168) unaligned dcl 478 set ref 518* 581* answer 000106 automatic varying char(256) dcl 76 set ref 188* 190 193 195* 204* 206 208 213 222* 224 237* 238 254* 255 270* 271 288* 290 300* 301 312* 313 316 316 316* 316 316 318 318 318* 318 318 322 322 324 326 330 332 336* 431* 434 486* 488 490 495 497* answer_iocbp 6 001102 automatic pointer initial level 2 dcl 4-7 set ref 430* 4-7* area_ptr 74 based pointer level 2 in structure "passport" dcl 1-14 in procedure "fcr" ref 437 area_ptr 000210 automatic pointer dcl 76 in procedure "fcr" set ref 437* 441* 502* 563* arg based char unaligned dcl 76 set ref 397 399 399 400 400 401 401 404* 407* 408* 411 411 412* arg_count 000100 automatic fixed bin(17,0) dcl 76 set ref 179* 180 393* 395 404 arg_idx 000101 automatic fixed bin(17,0) dcl 76 set ref 395* 396* 403* 403 404 406* 446* 447* arg_len 000102 automatic fixed bin(21,0) dcl 76 set ref 396* 397 399 399 400 400 401 401 404 404 406* 407 407 408 408 411 411 412 412 arg_ptr 000104 automatic pointer dcl 76 set ref 396* 397 399 399 400 400 401 401 404 406* 407 408 411 411 412 before builtin function dcl 76 ref 486 486 buffer 000100 automatic char(256) unaligned dcl 358 set ref 363* 364 364 371 372* 372 373 375 chairman 2 000710 automatic structure level 2 packed unaligned dcl 113 char builtin function dcl 76 ref 213 cleanup 000674 stack reference condition dcl 76 ref 169 391 511 cleanup_sw parameter bit(1) dcl 605 ref 602 617 code 000212 automatic fixed bin(35,0) dcl 76 set ref 171* 172 173* 175* 194* 195 195* 209* 210 210* 215* 216 216* 226* 227 227* 243* 244 244* 335* 336 336* 349* 350 350* 364* 365 366* 407* 408 408* 441* 442 452* 453 453* 459* 460 467* 468 495* 496 497* 513* 514 514* 519* 520 520* 550* 551 551* 563* 564 565* 575* 576 576 576* com_err_ 000014 constant entry external dcl 32 ref 175 command_query_ 000012 constant entry external dcl 32 ref 188 204 222 237 254 270 288 300 312 431 486 cp_escape_control 1(02) 001102 automatic bit(2) initial level 3 packed unaligned dcl 4-7 set ref 4-7* cu_$af_return_arg 000016 constant entry external dcl 32 ref 173 cu_$arg_list_ptr 000020 constant entry external dcl 32 ref 171 171 dont_break_indented_lines_sw 3(09) 000702 automatic bit(1) level 3 packed unaligned dcl 113 set ref 547* enter_description 000213 automatic bit(1) dcl 76 set ref 388* 399* 504* 561 error_table_$badopt 000126 external static fixed bin(35,0) dcl 123 set ref 412* error_table_$noarg 000130 external static fixed bin(35,0) dcl 123 set ref 404* expand_pathname_ 000022 constant entry external dcl 32 ref 194 explanation_len 14 001102 automatic fixed bin(21,0) initial level 2 dcl 4-7 set ref 186* 202* 220* 232* 251* 261* 267* 275* 287* 299* 4-7* 485* explanation_ptr 12 001102 automatic pointer initial level 2 dcl 4-7 set ref 185* 201* 219* 231* 250* 260* 266* 274* 286* 298* 430* 4-7* 484* fdoc 000702 automatic structure level 1 dcl 113 set ref 550 550 fi 000710 automatic structure level 1 dcl 113 set ref 452 452 fname 000225 automatic char(32) unaligned dcl 76 set ref 213* 227* 292* 294* 295 424* 431* 443* 523* 574 force 000214 automatic bit(1) dcl 76 set ref 388* 400* 411* 426 format_document_$string 000024 constant entry external dcl 32 ref 550 format_document_options based structure level 1 dcl 5-12 format_document_version_2 constant fixed bin(17,0) initial dcl 5-63 ref 543 forum$enter_first_trans 000026 constant entry external dcl 32 ref 295 forum_$chname_forum_idx 000032 constant entry external dcl 32 ref 226 forum_$close_forum 000034 constant entry external dcl 32 ref 511 583 616 forum_$create_forum 000036 constant entry external dcl 32 ref 209 forum_$delete_forum 000040 constant entry external dcl 32 ref 619 forum_$enter_trans 000042 constant entry external dcl 32 ref 575 forum_$forum_info 000044 constant entry external dcl 32 ref 452 forum_$list_forum_acl 000046 constant entry external dcl 32 ref 459 forum_$open_forum 000050 constant entry external dcl 32 ref 215 513 forum_$read_trans 000052 constant entry external dcl 32 ref 563 forum_$set_forum_acl 000054 constant entry external dcl 32 ref 243 335 forum_$set_message 000056 constant entry external dcl 32 ref 349 forum_data_$central_directory 000140 external static char(168) unaligned dcl 1-49 set ref 417 486* 491 forum_data_$meetings_directory 000124 external static char(32) unaligned dcl 123 ref 418 419 420 486 486 492 forum_dir 2 based char(168) level 2 packed unaligned dcl 1-14 ref 422 forum_dir_dir 000310 automatic char(168) unaligned dcl 76 set ref 194* 197 407* 417* 431* 431* 491* 495* 513* 514* 518 574* 575* forum_dir_ent 000362 automatic char(32) unaligned dcl 76 set ref 194* 197 407* 418* 431 431 431 431 492* 495* 513* 514* 518 forum_directory 000236 automatic char(168) unaligned dcl 76 set ref 168* 190* 193* 194* 197* 209* 215* 243* 292* 295 335* 422* 441* 452* 459* 467* 523* 619* forum_et_$cant_notify 000132 external static fixed bin(35,0) dcl 123 ref 576 forum_et_$no_forum 000134 external static fixed bin(35,0) dcl 123 set ref 415* forum_idx 1 based fixed bin(17,0) level 2 in structure "passport" dcl 1-14 in procedure "fcr" ref 385 forum_idx 000235 automatic fixed bin(17,0) dcl 76 in procedure "fcr" set ref 165* 215* 226* 349* 385* 415 458 563* 616* forum_info based structure level 1 dcl 3-14 forum_info_version_1 constant fixed bin(17,0) initial dcl 3-40 ref 451 forum_name 000215 automatic char(32) unaligned dcl 76 in procedure "fcr" set ref 168* 208* 209* 215* 243* 335* 423* 441* 452* 459* 467* 619* forum_name 54 based char(32) level 2 in structure "passport" packed unaligned dcl 1-14 in procedure "fcr" set ref 423 424 forum_name_len 64 based fixed bin(17,0) level 2 dcl 1-14 ref 424 forum_requests_$find_forum 000030 constant entry external dcl 32 ref 407 495 forum_user_trans based structure level 1 dcl 2-7 ref 607 forum_user_trans_ptr 001100 automatic pointer dcl 2-5 set ref 167* 389* 563* 569 569 570 607 607 galley_sw 3(02) 000702 automatic bit(1) level 3 packed unaligned dcl 113 set ref 547* get_system_free_area_ 000060 constant entry external dcl 32 ref 502 get_temp_segment_ 000062 constant entry external dcl 32 ref 519 get_wdir_ 000064 constant entry external dcl 32 ref 190 hcs_$list_acl 000066 constant entry external dcl 32 ref 467 hcs_$status_ 000070 constant entry external dcl 32 ref 441 idx 000170 automatic fixed bin(21,0) dcl 591 in procedure "enter_meeting_description" set ref 596* 597 598 idx 000101 automatic fixed bin(17,0) dcl 478 in procedure "announce" set ref 531* 532 540 550 550 575* 580 indentation 1 000702 automatic fixed bin(17,0) level 2 dcl 113 set ref 544* index builtin function dcl 76 ref 322 322 397 419 420 ioa_ 000072 constant entry external dcl 32 ref 257 258 272 273 292 294 346 528 581 593 ioa_$rsnnl 000074 constant entry external dcl 32 ref 523 iox_$get_line 000076 constant entry external dcl 32 ref 364 iox_$user_input 000136 external static pointer dcl 123 set ref 364* len 000100 automatic fixed bin(21,0) dcl 540 in begin block on line 538 set ref 550* 554* 554 555 555 557 len 000200 automatic fixed bin(21,0) dcl 358 in procedure "get_input" set ref 364* 370 371 372 length builtin function dcl 76 ref 186 202 220 232 251 261 267 275 287 299 316 316 316 316 318 318 318 318 373 373 446 485 531 596 line_length 2 000702 automatic fixed bin(17,0) level 2 dcl 113 set ref 545* literal_sw 1(05) 001102 automatic bit(1) initial level 3 in structure "query_info" packed unaligned dcl 4-7 in procedure "fcr" set ref 4-7* literal_sw 3(04) 000702 automatic bit(1) level 3 in structure "fdoc" packed unaligned dcl 113 in procedure "fcr" set ref 547* ltrim builtin function dcl 76 ref 581 581 maxlength builtin function dcl 76 ref 373 meeting_switch 000572 automatic bit(1) dcl 76 set ref 388* 402* 416 message 000372 automatic char(512) unaligned dcl 76 set ref 349 349 361* 373 373 375* 375 531 550 550 596 597 modes 10 000750 automatic bit(36) level 2 dcl 117 set ref 234* 469 name_len 000573 automatic fixed bin(17,0) dcl 76 set ref 407* 419* 420 420* 431 431 431 431 names_relp 0(18) 000736 automatic bit(18) level 3 in structure "sb" packed unaligned dcl 113 in procedure "fcr" set ref 390* 612 names_relp 0(18) based bit(18) level 3 in structure "status_branch" packed unaligned dcl 6-8 in procedure "fcr" ref 443 444 447 612 nnames 0(02) 000736 automatic fixed bin(16,0) level 3 in structure "sb" packed unsigned unaligned dcl 113 in procedure "fcr" set ref 444 446 nnames 0(02) based fixed bin(16,0) level 3 in structure "status_branch" packed unsigned unaligned dcl 6-8 in procedure "fcr" ref 612 no_suffix_name based char unaligned dcl 1-46 ref 424 null builtin function dcl 76 ref 167 173 173 389 430 459 459 459 459 467 467 467 467 4-7 4-7 4-7 607 608 one_acl 000750 automatic structure level 1 dcl 117 set ref 243 243 335 335 459 459 467 467 padding 1(07) 001102 automatic bit(29) initial level 3 packed unaligned dcl 4-7 set ref 4-7* passport based structure level 1 dcl 1-14 passport_info_ptr 001076 automatic pointer dcl 1-12 set ref 384* 385 422 423 424 424 437 pathname_ 000100 constant entry external dcl 32 ref 431 431 person parameter bit(1) dcl 309 set ref 306 312* 322* 325 336 person_id 000574 automatic char(22) unaligned dcl 76 set ref 164* 326 454* 503* 523* pointer builtin function dcl 76 ref 443 444 447 612 project 000602 automatic char(9) unaligned dcl 76 in procedure "fcr" set ref 164* 455* 503* 523* project 7 000710 automatic char(9) level 3 in structure "fi" packed unaligned dcl 113 in procedure "fcr" set ref 455 prompt_after_explanation 1(06) 001102 automatic bit(1) initial level 3 packed unaligned dcl 4-7 set ref 236* 285* 297* 4-7* 481* public_switch 000605 automatic bit(1) dcl 76 set ref 239* 249* 460* 462* 468* 469* 523* 527 query_code 3 001102 automatic fixed bin(35,0) initial level 2 dcl 4-7 set ref 4-7* query_info 001102 automatic structure level 1 dcl 4-7 set ref 182 431 431 query_info_ptr 000606 automatic pointer dcl 76 set ref 182* 188* 204* 222* 237* 254* 270* 288* 300* 312* 486* query_info_version_6 constant fixed bin(17,0) initial dcl 4-36 ref 183 427 question_iocbp 4 001102 automatic pointer initial level 2 dcl 4-7 set ref 430* 4-7* read_only 000610 automatic bit(1) dcl 76 set ref 240* 315* 320* 333 463* 523* release_temp_segment_ 000102 constant entry external dcl 32 ref 608 repeat_time 10 001102 automatic fixed bin(71,0) initial level 2 dcl 4-7 set ref 4-7* reverse builtin function dcl 76 ref 443 443 444 444 447 447 rtrim builtin function dcl 76 ref 186 197 197 202 208 220 226 232 251 261 267 275 282 287 295 299 330 332 349 349 373 373 375 446 447 485 518 531 574 596 sb 000736 automatic structure level 1 dcl 113 set ref 438 short based structure level 2 in structure "status_branch" dcl 6-8 in procedure "fcr" short 000736 automatic structure level 2 in structure "sb" dcl 113 in procedure "fcr" short_name 000611 automatic char(128) unaligned dcl 76 set ref 224* 225 226 440* 444* 446 447* 447 523 523* ssu_$abort_line 000104 constant entry external dcl 32 ref 180 195 210 216 227 373 397 404 408 412 415 453 514 520 551 576 ssu_$arg_count 000106 constant entry external dcl 32 ref 179 393 ssu_$arg_ptr 000110 constant entry external dcl 32 ref 396 406 ssu_$destroy_invocation 000112 constant entry external dcl 32 ref 620 ssu_$get_subsystem_and_request_name 000114 constant entry external dcl 32 ref 431 ssu_$print_message 000116 constant entry external dcl 32 ref 244 322 327 336 350 366 497 565 ssu_$standalone_invocation 000120 constant entry external dcl 32 ref 171 ssu_ptr 000652 automatic pointer dcl 76 set ref 171* 179* 180* 195* 210* 216* 227* 244* 322* 327* 336* 350* 366* 373* 383* 393* 396* 397* 404* 406* 408* 412* 415* 431* 453* 497* 514* 520* 551* 565* 576* 620* status_area_ptr 001120 automatic pointer dcl 6-47 set ref 437* 443 444 447 612 status_branch based structure level 1 dcl 6-8 status_code 2 001102 automatic fixed bin(35,0) initial level 2 dcl 4-7 set ref 4-7* status_entry_names based char(32) array dcl 6-47 ref 443 444 447 612 status_ptr 001122 automatic pointer dcl 6-47 set ref 438* 441* 443 444 447 612 612 string builtin function dcl 76 set ref 428* 546* subject_length 22 based fixed bin(21,0) level 2 dcl 2-7 ref 569 607 substr builtin function dcl 76 set ref 316 316 318 318 371 372 431 431 431 431 533* 550 550 555* 555 569* 597* subsystem 000654 automatic bit(1) dcl 76 set ref 163* 387* 514 611 suppress_name_sw 1(01) 001102 automatic bit(1) initial level 3 packed unaligned dcl 4-7 set ref 4-7* suppress_spacing 1(04) 001102 automatic bit(1) initial level 3 packed unaligned dcl 4-7 set ref 184* 200* 4-7* 482* switches 3 000702 automatic structure level 2 in structure "fdoc" dcl 113 in procedure "fcr" set ref 546* switches 1 001102 automatic structure level 2 in structure "query_info" dcl 4-7 in procedure "fcr" set ref 428* syllable_size 4 000702 automatic fixed bin(17,0) level 2 dcl 113 set ref 548* temp 000100 automatic char unaligned dcl 540 set ref 550* 555 temp_seg based char(104480) unaligned dcl 76 set ref 523* 533* 555* 569* 597* temp_seg_ptr 000656 automatic pointer dcl 76 set ref 167* 389* 519* 523 533 555 569 575 597 608 608* text based char unaligned dcl 76 in procedure "fcr" set ref 575* text based char level 2 in structure "forum_user_trans" packed unaligned dcl 2-7 in procedure "fcr" ref 569 text_len 000660 automatic fixed bin(21,0) dcl 76 set ref 523* 533 536* 536 555 557* 557 569 570* 570 575 575 597 598* 598 text_length 23 based fixed bin(21,0) level 2 dcl 2-7 ref 569 569 570 607 trans_pic 000662 automatic picture(6) unaligned dcl 76 set ref 580* 581 581 user_info_$whoami 000122 constant entry external dcl 32 ref 164 503 username 2 000710 automatic char(20) level 3 packed unaligned dcl 113 set ref 454 version 001102 automatic fixed bin(17,0) level 2 in structure "query_info" dcl 4-7 in procedure "fcr" set ref 183* 427* version 000710 automatic fixed bin(17,0) level 2 in structure "fi" dcl 113 in procedure "fcr" set ref 451* version_number 000702 automatic fixed bin(17,0) level 2 dcl 113 set ref 543* whoami 000664 automatic char(32) unaligned dcl 76 set ref 162* 171* 173* 175* 519* 608* xmodes 11 000750 automatic bit(36) level 2 dcl 117 set ref 242* 333* 334* 462 463 yes_or_no_sw 1 001102 automatic bit(1) initial level 3 packed unaligned dcl 4-7 set ref 235* 253* 256* 269* 277* 284* 429* 4-7* 481* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Directory internal static fixed bin(17,0) initial dcl 6-56 INCLUDE_DELETED internal static fixed bin(17,0) initial dcl 2-24 Link internal static fixed bin(17,0) initial dcl 6-56 ONLY_DELETED internal static fixed bin(17,0) initial dcl 2-24 ONLY_UNDELETED internal static fixed bin(17,0) initial dcl 2-24 Segment internal static fixed bin(17,0) initial dcl 6-56 TFMT_more internal static fixed bin(17,0) initial dcl 1-54 TFMT_none internal static fixed bin(17,0) initial dcl 1-54 TFMT_number internal static fixed bin(17,0) initial dcl 1-54 TFMT_reference internal static fixed bin(17,0) initial dcl 1-54 alloc_subject_length automatic fixed bin(21,0) dcl 2-4 alloc_text_length automatic fixed bin(21,0) dcl 2-3 format_document_options_ptr automatic pointer dcl 5-62 format_document_version_1 internal static fixed bin(17,0) initial dcl 5-64 forum_area based area(1024) dcl 1-46 forum_data_$info_directory external static char(168) unaligned dcl 1-49 forum_data_$version_string external static char(8) unaligned dcl 1-49 forum_info_ptr automatic pointer dcl 3-12 forum_info_version_2 internal static fixed bin(17,0) initial dcl 3-40 message_type internal static fixed bin(17,0) initial dcl 2-22 passport_version_2 internal static fixed bin(17,0) initial dcl 1-44 query_info_version_3 internal static fixed bin(17,0) initial dcl 4-33 query_info_version_4 internal static fixed bin(17,0) initial dcl 4-34 query_info_version_5 internal static fixed bin(17,0) initial dcl 4-35 status_link based structure level 1 dcl 6-38 status_pathname based char dcl 6-47 user_trans_type internal static fixed bin(17,0) initial dcl 2-21 NAMES DECLARED BY EXPLICIT CONTEXT. AGAIN 007216 constant label dcl 486 ref 498 BADMTG 007371 constant label dcl 497 ref 514 BLANK 003212 constant label dcl 204 ref 206 CMSG 004240 constant label dcl 281 set ref 246 EGRESS 004543 constant label dcl 303 ref 629 JOIN 007465 constant label dcl 510 ref 505 NEXT_ID 006631 constant label dcl 340 ref 328 announce 007166 constant entry internal dcl 475 ref 301 announce_existing 007460 constant entry internal dcl 507 ref 472 announce_meeting 004560 constant entry external dcl 380 clean_up 010631 constant entry internal dcl 602 ref 169 303 391 enter_meeting_description 010564 constant entry internal dcl 588 ref 561 566 fcr 002431 constant entry external dcl 24 forum_create 002441 constant entry external dcl 24 get_input 006751 constant entry internal dcl 355 ref 348 529 594 get_message 006633 constant entry internal dcl 343 ref 290 punt 010777 constant entry internal dcl 626 ref 171 171 set_acl 006167 constant entry internal dcl 306 ref 263 278 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 11670 12032 11031 11700 Length 12500 11031 142 431 636 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME fcr 860 external procedure is an external procedure. on unit on line 169 72 on unit set_acl internal procedure shares stack frame of external procedure fcr. get_message internal procedure shares stack frame of external procedure fcr. get_input 159 internal procedure is called by several nonquick procedures. on unit on line 391 72 on unit announce 249 internal procedure enables or reverts conditions. on unit on line 511 72 on unit begin block on line 538 112 begin block uses auto adjustable storage. enter_meeting_description internal procedure shares stack frame of internal procedure announce. clean_up 82 internal procedure is called by several nonquick procedures. punt 64 internal procedure is assigned to an entry variable. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME announce 000100 announce_idx announce 000101 idx announce 000102 announce_path announce 000170 idx enter_meeting_description begin block on line 538 000100 len begin block on line 538 000100 temp begin block on line 538 fcr 000100 arg_count fcr 000101 arg_idx fcr 000102 arg_len fcr 000104 arg_ptr fcr 000106 answer fcr 000210 area_ptr fcr 000212 code fcr 000213 enter_description fcr 000214 force fcr 000215 forum_name fcr 000225 fname fcr 000235 forum_idx fcr 000236 forum_directory fcr 000310 forum_dir_dir fcr 000362 forum_dir_ent fcr 000372 message fcr 000572 meeting_switch fcr 000573 name_len fcr 000574 person_id fcr 000602 project fcr 000605 public_switch fcr 000606 query_info_ptr fcr 000610 read_only fcr 000611 short_name fcr 000652 ssu_ptr fcr 000654 subsystem fcr 000656 temp_seg_ptr fcr 000660 text_len fcr 000662 trans_pic fcr 000664 whoami fcr 000702 fdoc fcr 000710 fi fcr 000736 sb fcr 000750 one_acl fcr 000763 CMSG_EXP fcr 001076 passport_info_ptr fcr 001100 forum_user_trans_ptr fcr 001102 query_info fcr 001120 status_area_ptr fcr 001122 status_ptr fcr get_input 000100 buffer get_input 000200 len get_input THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as r_ne_as alloc_char_temp cat_realloc_chars enter_begin_block leave_begin_block call_ext_out_desc call_ext_out call_int_this call_int_other return_mac tra_ext_1 alloc_auto_adj enable_op shorten_stack ext_entry int_entry reverse_cs set_chars_eis index_chars_eis op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. active_fnc_err_ com_err_ command_query_ cu_$af_return_arg cu_$arg_list_ptr expand_pathname_ format_document_$string forum$enter_first_trans forum_$chname_forum_idx forum_$close_forum forum_$create_forum forum_$delete_forum forum_$enter_trans forum_$forum_info forum_$list_forum_acl forum_$open_forum forum_$read_trans forum_$set_forum_acl forum_$set_message forum_requests_$find_forum get_system_free_area_ get_temp_segment_ get_wdir_ hcs_$list_acl hcs_$status_ ioa_ ioa_$rsnnl iox_$get_line pathname_ release_temp_segment_ ssu_$abort_line ssu_$arg_count ssu_$arg_ptr ssu_$destroy_invocation ssu_$get_subsystem_and_request_name ssu_$print_message ssu_$standalone_invocation user_info_$whoami THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt error_table_$noarg forum_data_$central_directory forum_data_$meetings_directory forum_et_$cant_notify forum_et_$no_forum iox_$user_input LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 4 7 002376 24 002430 162 002447 163 002452 164 002453 165 002474 167 002475 168 002500 169 002506 171 002534 172 002604 173 002606 175 002656 176 002702 179 002703 180 002714 182 002745 183 002747 184 002751 185 002753 186 002755 188 002767 190 003017 193 003034 194 003040 195 003064 197 003121 198 003173 200 003174 201 003176 202 003200 204 003212 206 003242 208 003247 209 003276 210 003320 213 003351 215 003355 216 003402 219 003430 220 003432 222 003444 224 003474 225 003500 226 003504 227 003557 231 003612 232 003614 234 003626 235 003630 236 003632 237 003634 238 003664 239 003671 240 003673 241 003674 242 003677 243 003701 244 003736 246 003764 249 003765 250 003766 251 003770 253 004002 254 004004 255 004034 256 004041 257 004043 258 004057 260 004073 261 004075 263 004107 266 004113 267 004115 269 004127 270 004131 271 004161 272 004166 273 004202 274 004216 275 004220 277 004232 278 004234 281 004240 282 004243 284 004271 285 004274 286 004276 287 004300 288 004312 290 004342 292 004350 294 004374 295 004414 297 004463 298 004466 299 004470 300 004502 301 004532 303 004543 304 004553 380 004554 383 004566 384 004572 385 004575 387 004577 388 004601 389 004604 390 004607 391 004611 393 004637 395 004650 396 004657 397 004674 399 004736 400 004751 401 004764 402 004774 403 004776 404 004777 406 005040 407 005055 408 005111 410 005147 411 005150 412 005162 413 005214 415 005216 416 005235 417 005237 418 005244 419 005250 420 005260 422 005271 423 005275 424 005300 426 005304 427 005306 428 005310 429 005311 430 005313 431 005317 434 005421 437 005427 438 005433 440 005435 441 005440 442 005475 443 005477 444 005537 446 005603 447 005626 448 005721 451 005724 452 005726 453 005767 454 006006 455 006011 457 006014 458 006017 459 006021 460 006067 462 006073 463 006076 465 006102 467 006103 468 006151 469 006156 472 006162 473 006166 306 006167 311 006171 312 006172 313 006232 315 006240 316 006242 318 006263 320 006303 322 006304 324 006363 325 006370 326 006374 327 006401 328 006426 330 006427 331 006456 332 006460 333 006520 334 006527 335 006531 336 006566 340 006631 341 006632 343 006633 346 006634 348 006653 349 006657 350 006720 352 006747 355 006750 361 006756 363 006762 364 006765 365 007011 366 007014 367 007043 370 007044 371 007046 372 007054 373 007060 375 007133 376 007162 377 007163 378 007164 475 007165 481 007173 482 007200 484 007202 485 007204 486 007216 488 007275 490 007304 491 007311 492 007316 493 007322 495 007323 496 007365 497 007371 498 007422 502 007423 503 007432 504 007454 505 007456 507 007457 510 007465 511 007466 513 007515 514 007543 518 007607 519 007647 520 007671 523 007720 527 010010 528 010014 529 010030 531 010035 532 010050 533 010051 536 010056 537 010060 538 010061 540 010064 550 010076 543 010101 544 010104 545 010106 546 010110 547 010111 548 010117 550 010121 551 010163 554 010214 555 010216 557 010243 558 010250 561 010251 563 010256 564 010277 565 010302 566 010326 567 010327 569 010330 570 010342 574 010344 575 010373 576 010441 580 010472 581 010503 583 010550 585 010563 588 010564 593 010565 594 010601 596 010606 597 010621 598 010626 599 010627 602 010630 607 010636 608 010653 611 010702 612 010705 613 010723 616 010724 617 010736 619 010742 620 010765 622 010775 626 010776 629 011004 ----------------------------------------------------------- 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