{PICS0I.INC Pascal Integrated Communications System Overlays} { 6/19/87 Ver 1.6 Copyright 1987 by Les Archambault} overlay Procedure SysopCmds(Var update : boolean); Var Ch : Char; work:filename; this:areaptr; begin repeat Writeln(USR); st:=prompt('Sysop Brief-Befehl

',80, 'ES?'); if length(st)=1 then ch:=st[1] else ch:='?'; case ch of 'L': begin summ_rec.status:=deleted; summ_rec.num_prev:=0; end; 'H': summ_rec.status:=restricted; 'P': summ_rec.status := private; 'V': begin repeat this:=areabase; work:=prompt('Briefkasten ',12,'ES?M'); if work='?' then begin writeln(usr,'Vorhandene Briefkaesten:'); writeln(usr); while (not brk) and (this<>nil) do begin writeln(usr,this^.areaname); this:=this^.next; end; end; this:=areabase; {set up to find name match} while (this<>nil) and (this^.areaname<>work) do this:=this^.next; until (work=this^.areaname) or (brk) or (not online); summ_rec.area:=this^.area; end; 'N': begin if summ_rec.num_prev=0 then summ_rec.num_prev:=255 else summ_rec.num_prev:=0; if summ_rec.num_prev=255 then write(usr,'NICHT '); writeln(usr,'loeschbar.'); end; 'O': summ_rec.status := public; 'G': summ_rec.status := read else begin Writeln(USR, 'als elesen markieren, ide = Verstecken, oeschen, '); Writeln(USR, 'icht loeschbar, effentlich,

rivat, erschieben, uit') end end until (not online) or (ch in ['G','H','L','N','O','P','V','Q']); update := true; end; {SysopCmds} overlay procedure edit_user(fn:Firstname;Ln:Lastname); { Display and edit user record } type section_rec= record sdrive:char; suser:integer; saccs:integer; confnum:integer; sname:filename; sdesc:strpr; mode:char; end; var sect_file:file of section_rec; sect_rec:section_rec; this:SectPtr; this1:AreaPtr; i,user_num,num: integer; ed_fn: firstname; ed_ln: lastname; key: StrName; temp_user_rec: user_list; found:boolean; procedure display_user; var disp_case, disp_nois: str3; str: StrTAD; begin with temp_user_rec do begin writeln(usr); writeln(usr); writeln(USR, ' Name : ', fn, ' ', ln); writeln(USR, ' 1 Adresse : ', ad); writeln(USR, ' 2 Wohnort : ', cy); writeln(USR, ' 3 Telefon : ', ph); writeln(USR, ' 4 Passwort : ', pw); writeln(USR, ' 5 Computer : ', comp); writeln(USR, ' 6 Zugr. Level: ', access); writeln(USR, ' 7 Zeit Grenze: ', limit); str:=intstr(laston[3],2)+'-'+intstr(laston[4],2)+'-'+intstr(laston[5],2); writeln(USR, ' 8 Nullen : ', nulls:1,' ':20,'Letzter Anruf am ',str); if shift_lock then disp_case := 'EIN' else disp_case := 'AUS'; writeln(USR, ' 9 Shiftlock : ', disp_case); if noisy then disp_nois := 'EIN' else disp_nois := 'AUS'; writeln(USR, '10 Bell : ', disp_nois); write(USR, '11 Konferenz : '); found:=false; for i:=1 to 7 do begin if test_bit(conf_flags,i) then begin write(usr,i,' '); found:=true; end; end; if not found then write(usr,'Keine'); writeln(usr); writeln(usr, '12 Protokoll : ', prot); write(USR, '13 Spalten : ', columns:6,' ':15,'20 Downloads erlaubt: '); if test_bit(flags,1) then writeln(usr,'Nein') else writeln(usr,'Ja '); write(USR, '14 Zeilen : ', lines:6,' ':15,'21 Private Briefe erlaubt: '); if test_bit(flags,2) then writeln(usr,'Nein') else writeln(usr,'Ja '); write(USR, '15 Zeit heute: ', time_today:6,' ':15,'22 Oeffentl. Briefe erl.: '); if test_bit(flags,3) then writeln(usr,'Nein') else writeln(usr,'Ja '); write(USR, '16 Zeit insg.: ', time_total:6,' ':15,'23 Allgemein Briefe erlaubt: '); if test_bit(flags,4) then writeln(usr,'Nein') else writeln(usr,'Ja '); write(USR, '17 Zul. gel. : ', lasthi:6,' ':15,'24 Von Reinigung ausgen.: '); if test_bit(flags,5) then writeln(usr,'Ja ') else writeln(usr,'Nein'); writeln(USR, '18 Uploads : ', upload:6); writeln(USR, '19 Downloads : ', download:6); writeln(usr); end; end; begin { edit_user } OK:=true; SetSect(HomDrv,HomUsr); assign(sect_file,sect_name+ext); reset(sect_file); if (fn<>'') or (ln<>'') then begin ed_fn:=fn; ed_ln:=ln; end else begin ed_fn:=trim(prompt('Vorname ',len_fn,'ESNU')); if ed_fn='SYSOP' then ed_ln:='' else if ed_fn<>'' then ed_ln:=trim(prompt('Zuname ',len_ln,'ESNU')); end; if ((ed_fn='') or (ed_ln='')) and (ed_fn<>'SYSOP') then OK:=false; if ok then begin key := pad(ed_ln, len_ln) + pad(ed_fn, len_fn); SearchKey(IdxF, user_num, key); end; if OK then begin if user_num = user_loc then temp_user_rec := user_rec else GetRec(DatF, user_num, temp_user_rec); if (temp_user_rec.access <= user_rec.access) or (not remote_copy) { Only edit users <= self } then begin repeat display_user; num:=strint(prompt('Nummer zu aendern...[ 0 = Abbruch, 99 = Speichern] ',2,'EL')); if (num<>0) and (num<>99) then begin if num=11 then begin found:=false; writeln(usr,'Brief-Konferenzen:'); this1:=AreaBase; while this1<>nil do begin if this1^.areaconf>0 then begin found:=true; seek(sect_file,this1^.arearec); read(sect_file,sect_rec); writeln(usr,' ',this1^.areaconf,' ',this1^.areaname, ' ',sect_rec.sdesc); end; this1:=this1^.next; end; if not found then writeln(usr,'Keine.'); writeln(usr); found:=false; writeln(usr,'Datei-Konferenzen:'); this:=SectBase; while this<>nil do begin if this^.sectconf>0 then begin found:=true; seek(sect_file,this^.sectrec); read(sect_file,sect_rec); writeln(usr,' ',this^.sectconf,' ',this^.sectname, ' ',sect_rec.sdesc); end; this:=this^.next; end; if not found then writeln(usr,'Keine.'); writeln(usr); end; if num<14 then change_user_params_A(num,temp_user_rec); if num>13 then change_user_params_B(num,temp_user_rec); end; until (num=0) or (num=99); if num<>0 then begin if user_num = user_loc then begin if not remote_copy then if Ask('Geaenderten Datensatz uebernehmen') then begin PutRec(DatF,user_num,temp_user_rec); writeln(usr,'Datensatz wird abgeaendert und gespeichert.'); end; user_rec := temp_user_rec; end else begin PutRec(DatF,user_num,temp_user_rec); writeln(usr,'Geaenderter Datensatz wird gespeichert.'); end; end; end; end else writeln(USR, 'Name nicht gefunden.'); close(sect_file); end; procedure dummy2; { FORCE NEW OVERLAY } begin end; { end of PICS0I.INC }