COMPILATION LISTING OF SEGMENT xmail_review_defers_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 09/02/88 0746.8 mst Fri Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 /* Begin xmail_review_defers_ */ 12 /* Written by R. Ignagni 1/7/82 13* 14* 83-07-07 DJ Schimke: Removed unreferenced dcl of date and declared 15* addr, divide, null, rtrim, and sum builtin functions. 16* 17* 83-10-06 DJ Schimke: Replaced all calls to xmail_get_str_ with calls to 18* xmail_get_str_$yes_no. 19* 20* 84-06-21 JAFalksen: replaced date_time_$fstime/convert_date_to_binary_ 21* with cv_fstime_ 22**/ 23 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 24 /* */ 25 /* The purpose of this proc is to see if there are deferred replies in the xmail */ 26 /* directory that are over a certain time limit. If so, the user is querired to see if */ 27 /* he/she wishes to review them. If so these will be displayed and the user will be */ 28 /* asked if he/she wishes to delete them */ 29 /* */ 30 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 31 32 xmail_review_defers_: proc (file_type, file_suffix, delta); 33 34 /* Parameter */ 35 36 dcl file_type char (*) parameter; 37 dcl file_suffix char (*) parameter; 38 dcl delta fixed bin; 39 40 /* External Static */ 41 42 dcl iox_$user_output ptr ext static; 43 44 /* Constant */ 45 46 dcl DELETE_SEG_FORCE bit (6) int static options (constant) init ("100100"b); 47 dcl NAME char (20) static options (constant) init ("xmail_review_defers_"); 48 dcl N_MICROSECONDS_PER_DAY fixed bin (71) int static options (constant) init (86400000000); /* (60000000 * 60 * 24) */ 49 50 /* Condition */ 51 52 dcl cleanup condition; 53 54 /* Automatic */ 55 56 dcl clock_now fixed bin (71); 57 dcl clock_then fixed bin (71); 58 dcl code fixed bin (35); 59 dcl difference fixed bin; 60 dcl idx fixed bin; 61 dcl prompt_string char (100) var; 62 dcl yes_sw bit (1) aligned; 63 64 65 dcl 1 auto_status_branch like status_branch; 66 67 /* Entries */ 68 69 dcl convert_date_to_binary_ entry (char (*), fixed bin (71), fixed bin (35)); 70 dcl cv_fstime_ entry (bit (36) aligned) returns (fixed bin (71)); 71 dcl delete_$ptr entry (ptr, bit (6), char (*), fixed bin (35)); 72 dcl get_system_free_area_ entry () returns (ptr); 73 dcl hcs_$make_seg entry (char (*), char (*), char (*), fixed bin (5), ptr, fixed bin (35)); 74 dcl hcs_$star_ entry (char (*), char (*), fixed bin (2), ptr, fixed bin, ptr, ptr, fixed bin (35)); 75 dcl hcs_$status_mins entry (ptr, fixed bin (2), fixed bin (24), fixed bin (35)); 76 dcl hcs_$status_ entry (char (*), char (*), fixed bin (1), ptr, ptr, fixed bin (35)); 77 dcl ioa_ entry () options (variable); 78 dcl ioa_$rsnnl entry () options (variable); 79 dcl iox_$control entry (ptr, char (*), ptr, fixed bin (35)); 80 dcl xmail_get_str_$yes_no entry (char (*) var, bit (1) aligned); 81 82 /* Builtin */ 83 84 dcl (addr, divide, null, rtrim, sum) builtin; 85 86 /* Include */ 87 88 1 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 1 2* 1 3* Values for the "access mode" argument so often used in hardcore 1 4* James R. Davis 26 Jan 81 MCR 4844 1 5* Added constants for SM access 4/28/82 Jay Pattin 1 6* Added text strings 03/19/85 Chris Jones 1 7**/ 1 8 1 9 1 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 1 11 dcl ( 1 12 N_ACCESS init ("000"b), 1 13 R_ACCESS init ("100"b), 1 14 E_ACCESS init ("010"b), 1 15 W_ACCESS init ("001"b), 1 16 RE_ACCESS init ("110"b), 1 17 REW_ACCESS init ("111"b), 1 18 RW_ACCESS init ("101"b), 1 19 S_ACCESS init ("100"b), 1 20 M_ACCESS init ("010"b), 1 21 A_ACCESS init ("001"b), 1 22 SA_ACCESS init ("101"b), 1 23 SM_ACCESS init ("110"b), 1 24 SMA_ACCESS init ("111"b) 1 25 ) bit (3) internal static options (constant); 1 26 1 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 1 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 1 29 1 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 1 31 static options (constant); 1 32 1 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 1 34 static options (constant); 1 35 1 36 dcl ( 1 37 N_ACCESS_BIN init (00000b), 1 38 R_ACCESS_BIN init (01000b), 1 39 E_ACCESS_BIN init (00100b), 1 40 W_ACCESS_BIN init (00010b), 1 41 RW_ACCESS_BIN init (01010b), 1 42 RE_ACCESS_BIN init (01100b), 1 43 REW_ACCESS_BIN init (01110b), 1 44 S_ACCESS_BIN init (01000b), 1 45 M_ACCESS_BIN init (00010b), 1 46 A_ACCESS_BIN init (00001b), 1 47 SA_ACCESS_BIN init (01001b), 1 48 SM_ACCESS_BIN init (01010b), 1 49 SMA_ACCESS_BIN init (01011b) 1 50 ) fixed bin (5) internal static options (constant); 1 51 1 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 89 90 2 1 /* --------------- BEGIN include file status_structures.incl.pl1 --------------- */ 2 2 2 3 /* Revised from existing include files 09/26/78 by C. D. Tavares */ 2 4 2 5 /* This include file contains branch and link structures returned by 2 6* hcs_$status_ and hcs_$status_long. */ 2 7 2 8 dcl 1 status_branch aligned based (status_ptr), 2 9 2 short aligned, 2 10 3 type fixed bin (2) unaligned unsigned, /* seg, dir, or link */ 2 11 3 nnames fixed bin (16) unaligned unsigned, /* number of names */ 2 12 3 names_relp bit (18) unaligned, /* see entry_names dcl */ 2 13 3 dtcm bit (36) unaligned, /* date/time contents last modified */ 2 14 3 dtu bit (36) unaligned, /* date/time last used */ 2 15 3 mode bit (5) unaligned, /* caller's effective access */ 2 16 3 raw_mode bit (5) unaligned, /* caller's raw "rew" modes */ 2 17 3 pad1 bit (8) unaligned, 2 18 3 records_used fixed bin (18) unaligned unsigned, /* number of NONZERO pages used */ 2 19 2 20 /* Limit of information returned by hcs_$status_ */ 2 21 2 22 2 long aligned, 2 23 3 dtd bit (36) unaligned, /* date/time last dumped */ 2 24 3 dtem bit (36) unaligned, /* date/time branch last modified */ 2 25 3 lvid bit (36) unaligned, /* logical volume ID */ 2 26 3 current_length fixed bin (12) unaligned unsigned, /* number of last page used */ 2 27 3 bit_count fixed bin (24) unaligned unsigned, /* reported length in bits */ 2 28 3 pad2 bit (8) unaligned, 2 29 3 copy_switch bit (1) unaligned, /* copy switch */ 2 30 3 tpd_switch bit (1) unaligned, /* transparent to paging device switch */ 2 31 3 mdir_switch bit (1) unaligned, /* is a master dir */ 2 32 3 damaged_switch bit (1) unaligned, /* salvager warned of possible damage */ 2 33 3 synchronized_switch bit (1) unaligned, /* DM synchronized file */ 2 34 3 pad3 bit (5) unaligned, 2 35 3 ring_brackets (0:2) fixed bin (6) unaligned unsigned, 2 36 3 uid bit (36) unaligned; /* unique ID */ 2 37 2 38 dcl 1 status_link aligned based (status_ptr), 2 39 2 type fixed bin (2) unaligned unsigned, /* as above */ 2 40 2 nnames fixed bin (16) unaligned unsigned, 2 41 2 names_relp bit (18) unaligned, 2 42 2 dtem bit (36) unaligned, 2 43 2 dtd bit (36) unaligned, 2 44 2 pathname_length fixed bin (17) unaligned, /* see pathname */ 2 45 2 pathname_relp bit (18) unaligned; /* see pathname */ 2 46 2 47 dcl status_entry_names (status_branch.nnames) character (32) aligned 2 48 based (pointer (status_area_ptr, status_branch.names_relp)), 2 49 /* array of names returned */ 2 50 status_pathname character (status_link.pathname_length) aligned 2 51 based (pointer (status_area_ptr, status_link.pathname_relp)), 2 52 /* link target path */ 2 53 status_area_ptr pointer, 2 54 status_ptr pointer; 2 55 2 56 dcl (Link initial (0), 2 57 Segment initial (1), 2 58 Directory initial (2)) fixed bin internal static options (constant); 2 59 /* values for type fields declared above */ 2 60 2 61 /* ---------------- END include file status_structures.incl.pl1 ---------------- */ 91 92 3 1 /* BEGIN INCLUDE FILE . . . star_structures.incl.pl1 */ 3 2 3 3 /* This include file contains structures for the hcs_$star_, 3 4* hcs_$star_list_ and hcs_$star_dir_list_ entry points. 3 5* 3 6* Written 23 October 1978 by Monte Davidoff. 3 7* Modified January 1979 by Michael R. Jordan to use unsigned and different pointers for different structures. 3 8* Modified June 1981 by C. Hornig to count link pathnames more efficiently. 3 9**/ 3 10 3 11 /* automatic */ 3 12 3 13 declare star_branch_count fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: matching branch count */ 3 14 declare star_entry_count fixed binary; /* hcs_$star_: number of matching entries */ 3 15 declare star_entry_ptr pointer; /* hcs_$star_: pointer to array of entry information */ 3 16 declare star_list_branch_ptr pointer; /* hcs_$star_list_, hcs_$star_dir_list_: ptr to array of info */ 3 17 declare star_link_count fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: matching link count */ 3 18 declare star_linkx fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: index into star_links */ 3 19 declare star_names_ptr pointer; /* hcs_$star_: pointer to array of entry names */ 3 20 declare star_list_names_ptr pointer; /* hcs_$star_list_, hcs_$star_dir_list_: ptr to entry names */ 3 21 declare star_select_sw fixed binary (3); /* hcs_$star_list_, hcs_$star_dir_list_: what info to return */ 3 22 3 23 /* based */ 3 24 3 25 /* hcs_$star_ entry structure */ 3 26 3 27 declare 1 star_entries (star_entry_count) aligned based (star_entry_ptr), 3 28 2 type fixed binary (2) unsigned unaligned, 3 29 /* storage system type */ 3 30 2 nnames fixed binary (16) unsigned unaligned, 3 31 /* number of names of entry that match star_name */ 3 32 2 nindex fixed binary (18) unsigned unaligned; 3 33 /* index of first name in star_names */ 3 34 3 35 /* hcs_$star_ name structure */ 3 36 3 37 declare star_names (sum (star_entries (*).nnames)) char (32) based (star_names_ptr); 3 38 3 39 /* hcs_$star_list_ branch structure */ 3 40 3 41 declare 1 star_list_branch (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 3 42 2 type fixed binary (2) unsigned unaligned, 3 43 /* storage system type */ 3 44 2 nnames fixed binary (16) unsigned unaligned, 3 45 /* number of names of entry that match star_name */ 3 46 2 nindex fixed binary (18) unsigned unaligned, 3 47 /* index of first name in star_list_names */ 3 48 2 dtcm bit (36) unaligned, /* date-time contents of branch were last modified */ 3 49 2 dtu bit (36) unaligned, /* date-time branch was last used */ 3 50 2 mode bit (5) unaligned, /* user's access mode to the branch */ 3 51 2 raw_mode bit (5) unaligned, /* user's ACL access mode */ 3 52 2 master_dir bit (1) unaligned, /* is branch a master directory */ 3 53 2 pad bit (7) unaligned, 3 54 2 records fixed binary (18) unsigned unaligned; 3 55 /* records used by branch */ 3 56 3 57 /* hcs_$star_dir_list_ branch structure */ 3 58 3 59 declare 1 star_dir_list_branch (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 3 60 2 type fixed binary (2) unsigned unaligned, 3 61 /* storage system type */ 3 62 2 nnames fixed binary (16) unsigned unaligned, 3 63 /* number of names of entry that match star_name */ 3 64 2 nindex fixed binary (18) unsigned unaligned, 3 65 /* index of first name in star_list_names */ 3 66 2 dtem bit (36) unaligned, /* date-time directory entry of branch was last modified */ 3 67 2 pad bit (36) unaligned, 3 68 2 mode bit (5) unaligned, /* user's access mode to the branch */ 3 69 2 raw_mode bit (5) unaligned, /* user's ACL access mode */ 3 70 2 master_dir bit (1) unaligned, /* is branch a master directory */ 3 71 2 bit_count fixed binary (24) unaligned; 3 72 /* bit count of the branch */ 3 73 3 74 /* hcs_$star_list_ and hcs_$star_dir_list_ link structure */ 3 75 3 76 declare 1 star_links (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 3 77 2 type fixed binary (2) unsigned unaligned, 3 78 /* storage system type */ 3 79 2 nnames fixed binary (16) unsigned unaligned, 3 80 /* number of names of entry that match star_name */ 3 81 2 nindex fixed binary (18) unsigned unaligned, 3 82 /* index of first name in star_list_names */ 3 83 2 dtem bit (36) unaligned, /* date-time link was last modified */ 3 84 2 dtd bit (36) unaligned, /* date-time the link was last dumped */ 3 85 2 pathname_len fixed binary (18) unsigned unaligned, 3 86 /* length of the pathname of the link */ 3 87 2 pathname_index fixed binary (18) unsigned unaligned; 3 88 /* index of start of pathname in star_list_names */ 3 89 3 90 /* hcs_$star_list_ and hcs_$star_dir_list_ name array */ 3 91 3 92 declare star_list_names char (32) based (star_list_names_ptr) 3 93 dimension (star_links (star_branch_count + star_link_count).nindex 3 94 + star_links (star_branch_count + star_link_count).nnames 3 95 + divide (star_links (star_branch_count + star_link_count).pathname_len + 31, 32, 17, 0) 3 96 * binary ( 3 97 (star_links (star_branch_count + star_link_count).type = star_LINK) 3 98 & (star_select_sw >= star_LINKS_ONLY_WITH_LINK_PATHS), 1)); 3 99 3 100 /* hcs_$star_list_ and hcs_$star_dir_list_ link pathname */ 3 101 3 102 declare star_link_pathname char (star_links (star_linkx).pathname_len) 3 103 based (addr (star_list_names (star_links (star_linkx).pathname_index))); 3 104 3 105 /* internal static */ 3 106 3 107 /* star_select_sw values */ 3 108 3 109 declare star_LINKS_ONLY fixed binary (2) internal static options (constant) initial (1); 3 110 declare star_BRANCHES_ONLY fixed binary (2) internal static options (constant) initial (2); 3 111 declare star_ALL_ENTRIES fixed binary (2) internal static options (constant) initial (3); 3 112 declare star_LINKS_ONLY_WITH_LINK_PATHS 3 113 fixed binary (3) internal static options (constant) initial (5); 3 114 declare star_ALL_ENTRIES_WITH_LINK_PATHS 3 115 fixed binary (3) internal static options (constant) initial (7); 3 116 3 117 /* storage system types */ 3 118 3 119 declare star_LINK fixed binary (2) unsigned internal static options (constant) initial (0); 3 120 declare star_SEGMENT fixed binary (2) unsigned internal static options (constant) initial (1); 3 121 declare star_DIRECTORY fixed binary (2) unsigned internal static options (constant) initial (2); 3 122 3 123 /* END INCLUDE FILE . . . star_structures.incl.pl1 */ 93 94 4 1 /* BEGIN INCLUDE FILE: xmail_data.incl.pl1 */ 4 2 4 3 4 4 /****^ HISTORY COMMENTS: 4 5* 1) change(85-12-20,Blair), approve(86-03-06,MCR7358), 4 6* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 4 7* Modified 03/15/85 by Joanne Backs adding confirm_print flag. 4 8* 2) change(85-12-20,LJAdams), approve(86-03-06,MCR7358), 4 9* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 4 10* Adding switch to indicate request for menu display came from general help. 4 11* This is so general help menu will be displayed in top screen. 4 12* 3) change(86-01-10,Blair), approve(86-03-06,MCR7358), 4 13* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 4 14* Add switch to indicate whether or not it is permissible to process mail 4 15* in other users' mailboxes (foreign_mailbox). 4 16* 4) change(86-01-13,Blair), approve(86-03-06,MCR7358), 4 17* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 4 18* Add bit to indicate whether or not this is a true cleanup condition. 4 19* 5) change(86-02-06,Blair), approve(86-03-06,MCR7358), 4 20* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 4 21* Rearrange to group all the bit flags together in one word with a pad. 4 22* 6) change(86-03-05,Blair), approve(86-03-05,MCR7358), 4 23* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 4 24* Change value_seg ptr to value_seg_pathname to avoid the situation where 4 25* you keep around a pointer to a structure which no longer exists. 4 26* 7) change(87-01-16,Blair), approve(87-02-05,MCR7618), 4 27* audit(87-04-15,RBarstad), install(87-04-26,MR12.1-1025): 4 28* Add a field to indicate whether or not we should process interactive msgs. 4 29* Increment version to 4.1 so default value will get set. 4 30* 8) change(87-02-13,Blair), approve(87-02-13,MCR7618), 4 31* audit(87-04-15,RBarstad), install(87-04-26,MR12.1-1025): 4 32* Add a field to indicate whether or not we're processing a reply so that we 4 33* will be able to rebuild the screens properly after a disconnect occurs. 4 34* Error_list #114. 4 35* 9) change(88-07-26,Blair), approve(88-07-26,MCR7959), 4 36* audit(88-08-25,RBarstad), install(88-09-02,MR12.2-1098): 4 37* Add a bit to indicate whether or not the error segment had to be created 4 38* in the pdir (because we didn't have sma access to the mlsys_dir). 4 39* END HISTORY COMMENTS */ 4 40 4 41 4 42 /* Written 5/13/81 by Paul H. Kyzivat */ 4 43 /* Modified 12/16/81 by S. Krupp to delete unused parts of structure 4 44* and to add n_fkeys_used */ 4 45 /* Modified 12/14/82 by Dave Schimke to make the xmail version a 10 character 4 46* varying string. */ 4 47 /* Modified 09/12/83 by Dave Schimke adding interactive_msgs flag */ 4 48 /* Modified 09/14/83 by Dave Schimke adding moved_user_io */ 4 49 /* Modified 09/06/84 by Joanne Backs adding lists_as_menus flag */ 4 50 /* Modified 09/21/84 by Joanne Backs adding remove_menus flag */ 4 51 4 52 dcl xmail_data_ptr external static ptr init (null); 4 53 4 54 dcl 1 xmail_data aligned based (xmail_data_ptr), 4 55 2 mail_dir char (168) varying, 4 56 2 first_label label, 4 57 2 quit_label label, 4 58 2 value_seg_pathname char (168) varying, 4 59 2 moved_user_io ptr, 4 60 2 normal_usage char (80) unal, 4 61 2 function_key_info, 4 62 3 function_key_data_ptr ptr, 4 63 3 n_fkeys_used fixed bin, 4 64 2 actee, 4 65 3 person char(32) varying, 4 66 3 project char(32) varying, 4 67 2 flags aligned, 4 68 3 mail_in_incoming bit (1) unal, 4 69 3 lists_as_menus bit (1) unal, /* personalization */ 4 70 3 remove_menus bit (1) unal, /* personalization */ 4 71 3 confirm_print bit (1) unal, /* personalization */ 4 72 3 multics_mode bit (1) unal, /* personalization */ 4 73 3 interactive_msgs bit (1) unal, /* personalization */ 4 74 3 foreign_mailbox bit (1) unal, /* read others' mailboxes */ 4 75 3 general_help bit (1) unal, /* indicated requesting gen help*/ 4 76 3 cleanup_signalled bit (1) unal, /* on when true cleanup condition */ 4 77 3 msgs_as_mail bit (1) unal, /* on for include_msgs */ 4 78 3 reply_request bit (1) unal, /* on if we're doing a reply */ 4 79 3 error_seg_in_pdir bit (1) unal, /* on if the error_seg is in the pdir */ 4 80 3 pad bit (24) unal; 4 81 4 82 4 83 4 84 dcl xmail_version char(10) var static options(constant) init("4.1"); 4 85 4 86 /* END INCLUDE FILE: xmail_data.incl.pl1 */ 95 96 5 1 /* BEGIN INCLUDE FILE xmail_responses.incl.pl1 */ 5 2 5 3 /****^ HISTORY COMMENTS: 5 4* 1) change(86-02-07,Blair), approve(86-03-06,MCR7358), 5 5* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 5 6* 85-03-05 JG Backs: Modified to add a response of date. 5 7* 85-03-11 JG Backs: Modified to add short forms of keywords (a,l,p,f). 5 8* 85-03-14 JG Backs: Modified to add ASK, SET, and S. 5 9* 2) change(86-02-07,Blair), approve(86-03-06,MCR7358), 5 10* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 5 11* Modify to add SEEN and UNSEEN. 5 12* END HISTORY COMMENTS */ 5 13 5 14 /* Created 06/17/81 by Suzanne Krupp */ 5 15 5 16 dcl (QUESTION char(1) init("?"), 5 17 LIST char(2) init("??"), 5 18 A char(1) init("a"), 5 19 ALL char(3) init("all"), 5 20 ASK char(3) init("ask"), 5 21 DATE char(4) init("date"), 5 22 F char(1) init("f"), 5 23 FIRST char(5) init("first"), 5 24 L char(1) init("l"), 5 25 LAST char(4) init("last"), 5 26 N char (1) init ("n"), 5 27 NO char(2) init("no"), 5 28 NEXT char(4) init("next"), 5 29 NEW char(3) init("new"), 5 30 P char(1) init("p"), 5 31 PREV char(4) init("prev"), 5 32 S char(1) init("s"), 5 33 SEEN char (4) init("seen"), 5 34 SET char(3) init("set"), 5 35 SEARCH char(6) init("search"), 5 36 UNSEEN char (6) init("unseen"), 5 37 Y char (1) init ("y"), 5 38 YES char(3) init("yes")) 5 39 int static options(constant); 5 40 5 41 /* END INCLUDE FILE ... xmail_responses.incl.pl1 */ 97 98 99 star_entry_ptr, star_names_ptr = null; 100 101 on condition (cleanup) call CLEANUP; 102 103 call hcs_$star_ ((xmail_data.mail_dir), "*." || file_suffix, star_BRANCHES_ONLY, get_system_free_area_ (), star_entry_count, star_entry_ptr, star_names_ptr, (0)); 104 if star_entry_count > 0 105 then do; 106 call convert_date_to_binary_ ("", clock_now, code); /* get current time */ 107 do idx = 1 to star_entry_count; 108 call hcs_$status_ ((xmail_data.mail_dir), (rtrim (star_names (idx))), 0, addr (auto_status_branch), null (), code); 109 clock_then = cv_fstime_ ((auto_status_branch.short.dtu)); 110 difference = divide ((clock_now - clock_then), N_MICROSECONDS_PER_DAY, 17, 0); 111 if difference > delta 112 then do; 113 call iox_$control (iox_$user_output, "reset_more", null (), (0)); 114 call ioa_$rsnnl ("You have a deferred ^a at least ^d days old. Do you wish to review it? ", prompt_string, (0), file_type, difference); 115 call xmail_get_str_$yes_no (prompt_string, yes_sw); 116 if yes_sw then call review_this_seg; 117 end; 118 end; /* end of do loop */ 119 end; 120 call CLEANUP; 121 return; 122 123 review_this_seg: 124 proc; 125 dcl seg_string char (siz) based (seg_ptr); 126 dcl siz fixed bin; 127 dcl seg_ptr ptr; 128 dcl no_of_bits fixed bin (24); 129 130 call hcs_$make_seg ((xmail_data.mail_dir), (rtrim (star_names (idx))), "", RW_ACCESS_BIN, seg_ptr, (0)); 131 call hcs_$status_mins (seg_ptr, 1, no_of_bits, (0)); 132 siz = divide (no_of_bits, 9, 17, 0); 133 call ioa_ ("^/^a ^/", seg_string); 134 call iox_$control (iox_$user_output, "reset_more", null (), (0)); 135 call ioa_$rsnnl ("Do you wish to discard the deferred ^a? ", prompt_string, (0), file_type, code); 136 call xmail_get_str_$yes_no (prompt_string, yes_sw); 137 if yes_sw then call delete_$ptr (seg_ptr, DELETE_SEG_FORCE, NAME, (0)); 138 end review_this_seg; 139 140 CLEANUP: proc; 141 142 if star_names_ptr ^= null () then free star_names; 143 if star_entry_ptr ^= null () then free star_entries; 144 145 end CLEANUP; 146 end xmail_review_defers_; 147 SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/02/88 0746.8 xmail_review_defers_.pl1 >spec>install>MR12.2-1098>xmail_review_defers_.pl1 89 1 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.incl.pl1 91 2 11/22/82 0955.7 status_structures.incl.pl1 >ldd>include>status_structures.incl.pl1 93 3 06/10/82 1045.5 star_structures.incl.pl1 >ldd>include>star_structures.incl.pl1 95 4 09/02/88 0743.4 xmail_data.incl.pl1 >spec>install>MR12.2-1098>xmail_data.incl.pl1 97 5 05/28/86 1117.7 xmail_responses.incl.pl1 >ldd>include>xmail_responses.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. DELETE_SEG_FORCE 000011 constant bit(6) initial packed unaligned dcl 46 set ref 137* NAME 000004 constant char(20) initial packed unaligned dcl 47 set ref 137* N_MICROSECONDS_PER_DAY 000002 constant fixed bin(71,0) initial dcl 48 ref 110 RW_ACCESS_BIN 000000 constant fixed bin(5,0) initial dcl 1-36 set ref 130* addr builtin function dcl 84 ref 108 108 auto_status_branch 000150 automatic structure level 1 unaligned dcl 65 set ref 108 108 cleanup 000100 stack reference condition dcl 52 ref 101 clock_now 000106 automatic fixed bin(71,0) dcl 56 set ref 106* 110 clock_then 000110 automatic fixed bin(71,0) dcl 57 set ref 109* 110 code 000112 automatic fixed bin(35,0) dcl 58 set ref 106* 108* 135* convert_date_to_binary_ 000012 constant entry external dcl 69 ref 106 cv_fstime_ 000014 constant entry external dcl 70 ref 109 delete_$ptr 000016 constant entry external dcl 71 ref 137 delta parameter fixed bin(17,0) dcl 38 ref 32 111 difference 000113 automatic fixed bin(17,0) dcl 59 set ref 110* 111 114* divide builtin function dcl 84 ref 110 132 dtu 2 000150 automatic bit(36) level 3 packed packed unaligned dcl 65 set ref 109 file_suffix parameter char packed unaligned dcl 37 ref 32 103 file_type parameter char packed unaligned dcl 36 set ref 32 114* 135* get_system_free_area_ 000020 constant entry external dcl 72 ref 103 103 hcs_$make_seg 000022 constant entry external dcl 73 ref 130 hcs_$star_ 000024 constant entry external dcl 74 ref 103 hcs_$status_ 000030 constant entry external dcl 76 ref 108 hcs_$status_mins 000026 constant entry external dcl 75 ref 131 idx 000114 automatic fixed bin(17,0) dcl 60 set ref 107* 108* 130 ioa_ 000032 constant entry external dcl 77 ref 133 ioa_$rsnnl 000034 constant entry external dcl 78 ref 114 135 iox_$control 000036 constant entry external dcl 79 ref 113 134 iox_$user_output 000010 external static pointer dcl 42 set ref 113* 134* mail_dir based varying char(168) level 2 dcl 4-54 ref 103 108 130 nnames 0(02) based fixed bin(16,0) array level 2 packed packed unsigned unaligned dcl 3-27 ref 142 no_of_bits 000206 automatic fixed bin(24,0) dcl 128 set ref 131* 132 null builtin function dcl 84 ref 99 108 108 113 113 134 134 142 143 prompt_string 000115 automatic varying char(100) dcl 61 set ref 114* 115* 135* 136* rtrim builtin function dcl 84 ref 108 130 seg_ptr 000204 automatic pointer dcl 127 set ref 130* 131* 133 137* seg_string based char packed unaligned dcl 125 set ref 133* short 000150 automatic structure level 2 dcl 65 siz 000202 automatic fixed bin(17,0) dcl 126 set ref 132* 133 133 star_BRANCHES_ONLY 000033 constant fixed bin(2,0) initial dcl 3-110 set ref 103* star_entries based structure array level 1 dcl 3-27 ref 143 star_entry_count 000162 automatic fixed bin(17,0) dcl 3-14 set ref 103* 104 107 142 143 star_entry_ptr 000164 automatic pointer dcl 3-15 set ref 99* 103* 142 143 143 star_names based char(32) array packed unaligned dcl 3-37 ref 108 130 142 star_names_ptr 000166 automatic pointer dcl 3-19 set ref 99* 103* 108 130 142 142 status_branch based structure level 1 dcl 2-8 sum builtin function dcl 84 ref 142 xmail_data based structure level 1 dcl 4-54 xmail_data_ptr 000042 external static pointer initial dcl 4-52 ref 103 108 130 xmail_get_str_$yes_no 000040 constant entry external dcl 80 ref 115 136 yes_sw 000147 automatic bit(1) dcl 62 set ref 115* 116 136* 137 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. A internal static char(1) initial packed unaligned dcl 5-16 ALL internal static char(3) initial packed unaligned dcl 5-16 ASK internal static char(3) initial packed unaligned dcl 5-16 A_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 DATE internal static char(4) initial packed unaligned dcl 5-16 DIR_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 1-33 Directory internal static fixed bin(17,0) initial dcl 2-56 E_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 F internal static char(1) initial packed unaligned dcl 5-16 FIRST internal static char(5) initial packed unaligned dcl 5-16 L internal static char(1) initial packed unaligned dcl 5-16 LAST internal static char(4) initial packed unaligned dcl 5-16 LIST internal static char(2) initial packed unaligned dcl 5-16 Link internal static fixed bin(17,0) initial dcl 2-56 M_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 N internal static char(1) initial packed unaligned dcl 5-16 NEW internal static char(3) initial packed unaligned dcl 5-16 NEXT internal static char(4) initial packed unaligned dcl 5-16 NO internal static char(2) initial packed unaligned dcl 5-16 N_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 P internal static char(1) initial packed unaligned dcl 5-16 PREV internal static char(4) initial packed unaligned dcl 5-16 QUESTION internal static char(1) initial packed unaligned dcl 5-16 REW_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RE_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RW_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 R_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 S internal static char(1) initial packed unaligned dcl 5-16 SA_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SEARCH internal static char(6) initial packed unaligned dcl 5-16 SEEN internal static char(4) initial packed unaligned dcl 5-16 SEG_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 1-30 SET internal static char(3) initial packed unaligned dcl 5-16 SMA_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SM_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 S_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 Segment internal static fixed bin(17,0) initial dcl 2-56 UNSEEN internal static char(6) initial packed unaligned dcl 5-16 W_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 Y internal static char(1) initial packed unaligned dcl 5-16 YES internal static char(3) initial packed unaligned dcl 5-16 star_ALL_ENTRIES internal static fixed bin(2,0) initial dcl 3-111 star_ALL_ENTRIES_WITH_LINK_PATHS internal static fixed bin(3,0) initial dcl 3-114 star_DIRECTORY internal static fixed bin(2,0) initial unsigned dcl 3-121 star_LINK internal static fixed bin(2,0) initial unsigned dcl 3-119 star_LINKS_ONLY internal static fixed bin(2,0) initial dcl 3-109 star_LINKS_ONLY_WITH_LINK_PATHS internal static fixed bin(3,0) initial dcl 3-112 star_SEGMENT internal static fixed bin(2,0) initial unsigned dcl 3-120 star_branch_count automatic fixed bin(17,0) dcl 3-13 star_dir_list_branch based structure array level 1 dcl 3-59 star_link_count automatic fixed bin(17,0) dcl 3-17 star_link_pathname based char packed unaligned dcl 3-102 star_links based structure array level 1 dcl 3-76 star_linkx automatic fixed bin(17,0) dcl 3-18 star_list_branch based structure array level 1 dcl 3-41 star_list_branch_ptr automatic pointer dcl 3-16 star_list_names based char(32) array packed unaligned dcl 3-92 star_list_names_ptr automatic pointer dcl 3-20 star_select_sw automatic fixed bin(3,0) dcl 3-21 status_area_ptr automatic pointer dcl 2-47 status_entry_names based char(32) array dcl 2-47 status_link based structure level 1 dcl 2-38 status_pathname based char dcl 2-47 status_ptr automatic pointer dcl 2-47 xmail_version internal static varying char(10) initial dcl 4-84 NAMES DECLARED BY EXPLICIT CONTEXT. CLEANUP 001107 constant entry internal dcl 140 ref 101 120 review_this_seg 000575 constant entry internal dcl 123 ref 116 xmail_review_defers_ 000111 constant entry external dcl 32 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1366 1432 1162 1376 Length 1744 1162 44 276 204 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME xmail_review_defers_ 264 external procedure is an external procedure. on unit on line 101 64 on unit review_this_seg internal procedure shares stack frame of external procedure xmail_review_defers_. CLEANUP 64 internal procedure is called by several nonquick procedures. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME xmail_review_defers_ 000106 clock_now xmail_review_defers_ 000110 clock_then xmail_review_defers_ 000112 code xmail_review_defers_ 000113 difference xmail_review_defers_ 000114 idx xmail_review_defers_ 000115 prompt_string xmail_review_defers_ 000147 yes_sw xmail_review_defers_ 000150 auto_status_branch xmail_review_defers_ 000162 star_entry_count xmail_review_defers_ 000164 star_entry_ptr xmail_review_defers_ 000166 star_names_ptr xmail_review_defers_ 000202 siz review_this_seg 000204 seg_ptr review_this_seg 000206 no_of_bits review_this_seg THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_ext_out call_int_this call_int_other return_mac mpfx2 enable_op shorten_stack ext_entry_desc int_entry divide_fx4 op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. convert_date_to_binary_ cv_fstime_ delete_$ptr get_system_free_area_ hcs_$make_seg hcs_$star_ hcs_$status_ hcs_$status_mins ioa_ ioa_$rsnnl iox_$control xmail_get_str_$yes_no THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. iox_$user_output xmail_data_ptr LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 32 000105 99 000131 101 000134 103 000156 104 000266 106 000271 107 000312 108 000321 109 000426 110 000442 111 000450 113 000453 114 000506 115 000545 116 000562 118 000566 120 000570 121 000574 123 000575 130 000576 131 000700 132 000721 133 000724 134 000745 135 001000 136 001037 137 001054 138 001105 140 001106 142 001114 143 001151 145 001160 ----------------------------------------------------------- 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