head     56.1;
access   paws bayes jws quist brad dew jwh;
symbols  ;
locks    ; strict;
comment  @# @;


56.1
date     91.11.05.09.36.47;  author jwh;  state Exp;
branches ;
next     55.2;

55.2
date     91.11.04.16.12.15;  author jwh;  state Exp;
branches ;
next     55.1;

55.1
date     91.08.25.10.15.20;  author jwh;  state Exp;
branches ;
next     54.2;

54.2
date     91.08.21.14.15.12;  author jwh;  state Exp;
branches ;
next     54.1;

54.1
date     91.03.18.15.22.01;  author jwh;  state Exp;
branches ;
next     53.3;

53.3
date     91.03.18.14.03.52;  author jwh;  state Exp;
branches ;
next     53.2;

53.2
date     91.03.15.15.37.16;  author jwh;  state Exp;
branches ;
next     53.1;

53.1
date     91.03.11.19.23.16;  author jwh;  state Exp;
branches ;
next     52.2;

52.2
date     91.03.11.17.19.45;  author jwh;  state Exp;
branches ;
next     52.1;

52.1
date     91.02.19.09.06.56;  author jwh;  state Exp;
branches ;
next     51.2;

51.2
date     91.02.18.21.15.47;  author jwh;  state Exp;
branches ;
next     51.1;

51.1
date     91.01.30.16.06.08;  author jwh;  state Exp;
branches ;
next     50.2;

50.2
date     91.01.30.09.52.24;  author jwh;  state Exp;
branches ;
next     50.1;

50.1
date     90.10.29.16.21.31;  author jwh;  state Exp;
branches ;
next     49.2;

49.2
date     90.10.29.14.40.39;  author jwh;  state Exp;
branches ;
next     49.1;

49.1
date     90.08.14.14.05.49;  author jwh;  state Exp;
branches ;
next     48.2;

48.2
date     90.08.14.10.05.19;  author jwh;  state Exp;
branches ;
next     48.1;

48.1
date     90.07.26.11.11.36;  author jwh;  state Exp;
branches ;
next     47.2;

47.2
date     90.07.24.15.26.40;  author jwh;  state Exp;
branches ;
next     47.1;

47.1
date     90.05.14.10.50.56;  author dew;  state Exp;
branches ;
next     46.1;

46.1
date     90.05.07.08.38.12;  author jwh;  state Exp;
branches ;
next     45.2;

45.2
date     90.05.04.15.20.26;  author jwh;  state Exp;
branches ;
next     45.1;

45.1
date     90.04.19.15.45.34;  author jwh;  state Exp;
branches ;
next     44.2;

44.2
date     90.04.19.13.50.04;  author jwh;  state Exp;
branches ;
next     44.1;

44.1
date     90.04.01.22.03.23;  author jwh;  state Exp;
branches ;
next     43.3;

43.3
date     90.04.01.16.49.08;  author jwh;  state Exp;
branches ;
next     43.2;

43.2
date     90.03.22.11.50.09;  author jwh;  state Exp;
branches ;
next     43.1;

43.1
date     90.03.20.13.53.25;  author jwh;  state Exp;
branches ;
next     42.2;

42.2
date     90.03.19.16.37.33;  author jwh;  state Exp;
branches ;
next     42.1;

42.1
date     90.01.23.17.38.47;  author jwh;  state Exp;
branches ;
next     41.2;

41.2
date     90.01.20.17.14.02;  author jwh;  state Exp;
branches ;
next     41.1;

41.1
date     89.12.22.11.21.04;  author jwh;  state Exp;
branches ;
next     40.2;

40.2
date     89.12.21.15.35.36;  author jwh;  state Exp;
branches ;
next     40.1;

40.1
date     89.09.29.11.43.48;  author jwh;  state Exp;
branches ;
next     39.2;

39.2
date     89.09.28.17.51.32;  author jwh;  state Exp;
branches ;
next     39.1;

39.1
date     89.09.26.16.29.04;  author dew;  state Exp;
branches ;
next     38.2;

38.2
date     89.09.26.15.10.36;  author dew;  state Exp;
branches ;
next     38.1;

38.1
date     89.08.29.11.19.50;  author jwh;  state Exp;
branches ;
next     37.2;

37.2
date     89.08.28.12.52.27;  author jwh;  state Exp;
branches ;
next     37.1;

37.1
date     89.05.12.11.33.12;  author dew;  state Exp;
branches ;
next     36.3;

36.3
date     89.05.12.09.54.01;  author quist;  state Exp;
branches ;
next     36.2;

36.2
date     89.05.11.12.24.16;  author quist;  state Exp;
branches ;
next     36.1;

36.1
date     89.02.06.10.12.06;  author dew;  state Exp;
branches ;
next     35.1;

35.1
date     89.02.02.13.24.22;  author dew;  state Exp;
branches ;
next     34.1;

34.1
date     89.01.23.15.59.34;  author jwh;  state Exp;
branches ;
next     33.2;

33.2
date     89.01.20.17.03.09;  author jwh;  state Exp;
branches ;
next     33.1;

33.1
date     89.01.16.11.34.01;  author dew;  state Exp;
branches ;
next     32.3;

32.3
date     89.01.13.11.59.38;  author dew;  state Exp;
branches ;
next     32.2;

32.2
date     89.01.11.10.29.37;  author jws;  state Exp;
branches ;
next     32.1;

32.1
date     89.01.10.11.40.33;  author bayes;  state Exp;
branches ;
next     31.2;

31.2
date     89.01.09.12.38.47;  author dew;  state Exp;
branches ;
next     31.1;

31.1
date     88.12.14.18.01.38;  author bayes;  state Exp;
branches ;
next     30.2;

30.2
date     88.12.14.14.09.36;  author bayes;  state Exp;
branches ;
next     30.1;

30.1
date     88.12.09.13.39.36;  author dew;  state Exp;
branches ;
next     29.2;

29.2
date     88.12.08.16.20.39;  author bayes;  state Exp;
branches ;
next     29.1;

29.1
date     88.10.31.15.23.49;  author bayes;  state Exp;
branches ;
next     28.2;

28.2
date     88.10.31.11.18.48;  author bayes;  state Exp;
branches ;
next     28.1;

28.1
date     88.10.06.10.52.37;  author dew;  state Exp;
branches ;
next     27.2;

27.2
date     88.10.05.18.19.49;  author bayes;  state Exp;
branches ;
next     27.1;

27.1
date     88.09.29.11.19.23;  author bayes;  state Exp;
branches ;
next     26.6;

26.6
date     88.09.28.12.43.50;  author bayes;  state Exp;
branches ;
next     26.5;

26.5
date     88.09.28.12.43.39;  author bayes;  state Exp;
branches ;
next     26.4;

26.4
date     88.09.28.12.43.28;  author bayes;  state Exp;
branches ;
next     26.3;

26.3
date     88.09.28.12.43.16;  author bayes;  state Exp;
branches ;
next     26.2;

26.2
date     88.09.28.12.43.08;  author bayes;  state Exp;
branches ;
next     26.1;

26.1
date     88.09.28.12.42.53;  author bayes;  state Exp;
branches ;
next     24.1;

24.1
date     87.08.31.09.29.47;  author jws;  state Exp;
branches ;
next     23.2;

23.2
date     87.08.30.15.21.31;  author jws;  state Exp;
branches ;
next     23.1;

23.1
date     87.08.26.10.06.11;  author bayes;  state Exp;
branches ;
next     22.2;

22.2
date     87.08.25.19.02.13;  author jws;  state Exp;
branches ;
next     22.1;

22.1
date     87.08.17.10.48.07;  author bayes;  state Exp;
branches ;
next     21.3;

21.3
date     87.08.15.17.02.32;  author larry;  state Exp;
branches ;
next     21.2;

21.2
date     87.08.13.15.51.56;  author larry;  state Exp;
branches ;
next     21.1;

21.1
date     87.08.12.13.34.25;  author bayes;  state Exp;
branches ;
next     20.2;

20.2
date     87.08.12.10.31.52;  author bayes;  state Exp;
branches ;
next     20.1;

20.1
date     87.07.30.10.46.16;  author bayes;  state Exp;
branches ;
next     18.3;

18.3
date     87.07.29.18.09.50;  author larry;  state Exp;
branches ;
next     18.2;

18.2
date     87.05.31.15.07.03;  author jws;  state Exp;
branches ;
next     18.1;

18.1
date     87.05.20.14.58.58;  author bayes;  state Exp;
branches ;
next     17.2;

17.2
date     87.05.20.10.40.43;  author bayes;  state Exp;
branches ;
next     17.1;

17.1
date     87.04.30.10.15.47;  author jws;  state Exp;
branches ;
next     16.1;

16.1
date     87.04.26.15.28.51;  author jws;  state Exp;
branches ;
next     15.2;

15.2
date     87.04.24.18.16.27;  author jws;  state Exp;
branches ;
next     15.1;

15.1
date     87.04.13.08.58.53;  author jws;  state Exp;
branches ;
next     14.2;

14.2
date     87.04.12.17.02.06;  author jws;  state Exp;
branches ;
next     14.1;

14.1
date     87.04.01.14.57.55;  author jws;  state Exp;
branches ;
next     13.2;

13.2
date     87.04.01.09.30.10;  author jws;  state Exp;
branches ;
next     13.1;

13.1
date     87.02.28.18.16.09;  author jws;  state Exp;
branches ;
next     12.2;

12.2
date     87.02.28.15.51.37;  author jws;  state Exp;
branches ;
next     12.1;

12.1
date     87.02.02.13.04.32;  author jws;  state Exp;
branches ;
next     11.2;

11.2
date     87.02.02.10.25.44;  author jws;  state Exp;
branches ;
next     11.1;

11.1
date     87.01.19.09.30.11;  author jws;  state Exp;
branches ;
next     10.2;

10.2
date     87.01.18.19.09.24;  author jws;  state Exp;
branches ;
next     10.1;

10.1
date     86.12.24.10.37.34;  author jws;  state Exp;
branches ;
next     9.3;

9.3
date     86.12.23.17.04.46;  author jws;  state Exp;
branches ;
next     9.2;

9.2
date     86.12.16.10.44.39;  author jws;  state Exp;
branches ;
next     9.1;

9.1
date     86.12.12.14.06.47;  author bayes;  state Exp;
branches ;
next     8.2;

8.2
date     86.12.12.10.32.01;  author bayes;  state Exp;
branches ;
next     8.1;

8.1
date     86.11.27.11.34.56;  author jws;  state Exp;
branches ;
next     7.2;

7.2
date     86.11.26.17.07.59;  author jws;  state Exp;
branches ;
next     7.1;

7.1
date     86.11.20.13.23.30;  author hal;  state Exp;
branches ;
next     6.2;

6.2
date     86.11.19.16.06.37;  author bayes;  state Exp;
branches ;
next     6.1;

6.1
date     86.11.04.17.27.55;  author paws;  state Exp;
branches ;
next     5.2;

5.2
date     86.11.04.12.48.33;  author paws;  state Exp;
branches ;
next     5.1;

5.1
date     86.10.28.16.14.25;  author hal;  state Exp;
branches ;
next     4.3;

4.3
date     86.10.28.11.41.21;  author hal;  state Exp;
branches ;
next     4.2;

4.2
date     86.10.13.16.52.46;  author geli;  state Exp;
branches ;
next     4.1;

4.1
date     86.09.30.19.26.27;  author hal;  state Exp;
branches ;
next     3.1;

3.1
date     86.09.01.11.37.13;  author hal;  state Exp;
branches ;
next     1.1;

1.1
date     86.08.29.12.39.22;  author hal;  state tmp;
branches ;
next     ;


desc
@Base file for PWS 3.2 release.

@


56.1
log
@Automatic bump of revision number for PWS version 3.25
@
text
@$search 'fsck',
	'PCLIB:CLIBRARY2'$
$modcal$
$partial_eval$
{
{ Pascal shell for FSCK
}
program fsckui(input, output, keyboard);

{-----------------------------------------------------------------------}
module fsckio;

import
    sysdevs, sysglobals;

export
    function yes: integer;
    procedure start_scrolling(var f: text);
    procedure stop_scrolling;

implement

var
    lines_out: integer;
    saved_crtiohook: amtype;
    kbdptr: ^text;

{
{ Read answer to yes/no question.
}
function yes: integer;
var
    c: char;
begin
    repeat
	read(kbdptr^, c);
    until c in ['Y','y','N','n'];
    writeln(c);
    lines_out := 0;
    if (c = 'Y') or (c = 'y') then
	yes := 1
    else
	yes := 0;
end;

{
{ count newlines in string about to go to terminal.
{ if running over screen, pause.
}
procedure scroll(fp: fibp; request: amrequesttype; anyvar buffer: window;
		 bufsize, position: integer);
const
    eolnchr = chr(13);
var
    i: integer;
    startbyte: integer;
{-------------------}
{ write buffer from start to finish, inclusive }
procedure writefrom(start, finish: integer);
var
    bufp: windowp;
    c: char;
begin
    if lines_out > syscom^.crtinfo.height - 2 then begin
	{ set lines_out to 0 to prevent interception of this write }
	lines_out := 0;
	write('Press <space> for more output');
	repeat
	    read(kbdptr^, c);
	until c = ' ';
	writeln;
	{ set lines_out to 0 again because now it's the truth }
	lines_out := 0;
    end;
    bufp := addr(buffer, start);
    call(saved_crtiohook, fp, request, bufp^, finish-start+1, position+start);
end;
{-------------------}
begin
    startbyte := 0;
    if (request = startwrite) or (request = writebytes) then begin
	for i := 0 to bufsize-1 do
	    if buffer[i] = eolnchr then begin
		writefrom(startbyte, i);
		startbyte := i + 1;
		lines_out := lines_out + 1;
	    end;
	if startbyte < bufsize then
	    writefrom(startbyte, bufsize-1);
    end
    else begin
	call(saved_crtiohook, fp, request, buffer, bufsize, position);
	if request = writeeol then
	    lines_out := lines_out + 1;
    end;

end;

procedure start_scrolling(var f: text);
begin
    saved_crtiohook := crtiohook;
    crtiohook := scroll;
    kbdptr := addr(f);
    lines_out := 0;
end;

procedure stop_scrolling;
begin
    if crtiohook = scroll then
	crtiohook := saved_crtiohook;
end;


end; {module fsckio}

{---------------------------------------------------------------------------}
module fsckdone;

import
    sysglobals, fs;

export

procedure isclean;
procedure hfs_done(vol_unit: unitnum);

implement

var
    { set to true by fsck if resulting fs completely clean }
    clean_fs: boolean;

procedure isclean;
begin
    clean_fs := true;
end;

{-------------------------------------}
{
{ hfs_done
{ 1.  If unit is not hfs_unit, and hfs is installed, then invalidate
{         the cache for the base unit.  This allows a MKHFS on #3, when
{         #43 is an HFS unit with data in its cache.
{         If unit IS hfs unit, then the cache is already gone, so we
{         don't do it again.
{         If unit IS hfs unit, the cache is already gone because
{         the C "open" eventually gets to "openunit"
{         which clears cache for that unit.
{ 2.  Reset corrupt bit for base unit.
}
procedure hfs_done(vol_unit: unitnum);
var
  i, volume: integer;
  fvid: vid;
  ftitle: fid;
  fsegs: integer;
  fkind: filekind;
begin
  if h_unitable <> nil then
      with h_unitable^ do begin
	  if not tbl[vol_unit].is_hfsunit then
	      call(inval_cache_proc, tbl[vol_unit].base_unum);
	  if clean_fs then
	      tbl[tbl[vol_unit].base_unum].fs_corrupt := false;
      end;
end;


end; {module fsckdone}

{-------------------------------------------------------------------------}
import sysglobals, fsck, sysdevs, fsckio, fsckdone, clib, misc, fs;

type
  argvtype = array[0..10] of string255ptr;
  uep_type = ^unitentry;

var
  argc: integer;
  argv: argvtype;
  ansc: char;
  volid, sblock: string255;
  i: integer;
  vol_unit: integer;
  keyboard: text;
  oldumaxbytes: integer;
  fvid: vid;
  ftitle: fid;
  fsegs: integer;
  fkind: filekind;

{-------------------------------------------------------------------------}
function on_same_medium(flun: unitnum; uep: uep_type): boolean;
  begin {on_same_medium}
    with unitable^[flun] do
      on_same_medium := (sc=uep^.sc) and (ba=uep^.ba) and
			(du=uep^.du) and (dv=uep^.dv) and
			(letter=uep^.letter)
			{ RAM volumes never on same device }
			and (letter<>'R');
  end; {on_same_medium}

{-------------------------------------------------------------------------}
{
{ physical size of this unit
{ just add up all umaxbytes that refer to it
{ The initial call to ueovbytes means that this function works
{ even on RAM volumes, where on_same_medium ALWAYS returns false.
{ The byteoffset check prevents counting #3 and #43 both.
}
function physical_size(unit: unitnum): integer;
var
    total_size: integer;
    i: unitnum;
begin
    total_size := ueovbytes(unit);
    with unitable^[unit] do
	for i := 1 to maxunit do
	    if (i <> unit)
	    and on_same_medium(unit, addr(unitable^[i]))
	    and (unitable^[i].byteoffset <> byteoffset) then
		total_size := total_size + ueovbytes(i);
    physical_size := total_size;
end;


{--------------------------------------------------------------------------}
{
{ insert s into the argv array
{ argc says where
}
procedure insert(s: string255);
begin
  new(argv[argc]);
  argv[argc]^ := s;
  argc := argc + 1;
end;

{
{ Turn the character into lower case
}
procedure tolower(var c: char);
begin
  if (ord(c) >= ord('A')) and (ord(c) <= ord('Z')) then
    c := chr(ord(c) - ord('A') + ord('a'));
end;

{
{ Write a verbose header so you know it's PAWS
{ Why isn't this in a library somewhere?
}
procedure write_program_header;const
    previd = daterec[year:91, day:28, month:10];
    prevno = '3.25';
    programname = 'HFSCK';        {title}
    copyright1  = '  Copyright Hewlett-Packard Co.,1987,1991.';
    copyright2 =  '             All rights reserved.';
    monthstr = 'JanFebMarAprMayJunJulAugSepOctNovDec';

  var
    date: daterec;
    time: timerec;
    i: integer;
    seconds: integer;
    todaysdate: string[9];
    timestring: string[8];

  begin {write_program_header}

    sysdate(date);
    systime(time);

    with date do
      {LAF 880101 added "mod 10" to "div 10" and removed "year<100" from test}
      if (month in [1..12]) and (day>0) then
	begin
	  todaysdate := '  -'+str(monthstr, month*3-2, 3)+'-  ';
	  if day>9 then todaysdate[1] := chr(day div 10 + ord('0'));
	  todaysdate[2] := chr(day mod 10 + ord('0'));
	  todaysdate[8] := chr(year div 10 mod 10 + ord('0'));
	  todaysdate[9] := chr(year mod 10 + ord('0'));
	end {then}
      else
	todaysdate := '         ';

    setstrlen(timestring,0);
    i := 1;
    if time.hour<10 then
      strwrite(timestring,i,i,'0');
    strwrite(timestring,i,i,time.hour:1,':');
    if time.minute<10 then
      strwrite(timestring,i,i,'0');
    strwrite(timestring,i,i,time.minute:1,':');
    seconds := time.centisecond div 100;
    if seconds<10 then
      strwrite(timestring,i,i,'0');
    strwrite(timestring,i,i,seconds:1);

    writeln(programname,' [Rev ',prevno,' ',previd.month:2,'/',previd.day:2,
	    '/',previd.year:2,']',todaysdate:10,' ',timestring);
    writeln;
    writeln(copyright1);
    writeln(copyright2);
    writeln;

  end; {write_program_header}

  procedure save_umaxbytes;
  begin
    with unitable^[vol_unit] do begin
      oldumaxbytes := umaxbytes;
      umaxbytes := physical_size(vol_unit);
    end;
  end;

  procedure restore_umaxbytes;
  begin
    unitable^[vol_unit].umaxbytes := oldumaxbytes;
  end;



begin

  write_program_header;

  { init and name of program }
  argc := 0;
  insert('fsck');

  { volume to fsck }
  repeat
    write('Volume ID? ');
    readln(volid);
    if (strlen(volid)=0) or (strpos(#27,volid)<>0) then escape(0);
    vol_unit := 0;
    if not scantitle(volid, fvid, ftitle, fsegs, fkind) or (ftitle<>'') then
	writeln('Bad volume syntax')
    else begin
	vol_unit := findvolume(fvid, false);
	if vol_unit = 0 then
	  writeln('Volume not found');
    end;
  until vol_unit <> 0;

  { mode }
  write('Report only, ask always, or normal confirmation (r/a/n)? ');
  repeat
    read(keyboard, ansc);
    tolower(ansc);
  until (ansc = 'r') or (ansc = 'a') or (ansc = 'n');
  writeln(ansc);

  case ansc of
    'r': insert('-n');
    'n': insert('-q');
    otherwise ;
  end;

  { alternate superblock }
  write('Alternate superblock block number (RETURN for default)? ');
  readln(sblock);
  if (sblock <> '') then begin
    insert('-b');
    insert(sblock);
  end;

  { volid must be last }
  insert(volid);

  { contort argv for C }
  for i := 0 to argc - 1 do begin
    { add 1 char for the null byte at the end }
    setstrlen(argv[i]^, strlen(argv[i]^)+1);
    { write the null byte }
    argv[i]^[strlen(argv[i]^)] := chr(0);
    { point past the length byte to the string itself }
    argv[i] := anyptr(addr(argv[i]^, 1));
  end;

  { cross your fingers }
  try
    start_scrolling(keyboard);
    save_umaxbytes;
    i := main(argc, addr(argv));
    restore_umaxbytes;
    stop_scrolling;

  recover
    begin
      stop_scrolling;
      restore_umaxbytes;
      if escapecode = 0 then
	hfs_done(vol_unit)
      else
      if escapecode = -20 then begin
	writeln;
	writeln('HFSCK stopped by user');
      end
      else
	escape(escapecode);
    end;

end.


@


55.2
log
@
pws2rcs automatic delta on Mon Nov  4 13:45:04 MST 1991
@
text
@@


55.1
log
@Automatic bump of revision number for PWS version 3.25A
@
text
@d253 2
a254 2
    previd = daterec[year:91, day:13, month:08];
    prevno = '3.25A';
@


54.2
log
@
pws2rcs automatic delta on Wed Aug 21 13:42:03 MDT 1991
@
text
@@


54.1
log
@Automatic bump of revision number for PWS version 3.24
@
text
@d253 2
a254 2
    previd = daterec[year:91, day:16, month:3];
    prevno = '3.24';
@


53.3
log
@
pws2rcs automatic delta on Mon Mar 18 13:19:08 MST 1991
@
text
@@


53.2
log
@Updated copyright message.
@
text
@d253 2
a254 2
    previd = daterec[year:91, day:10, month:3];
    prevno = '3.24B';
@


53.1
log
@Automatic bump of revision number for PWS version 3.24B
@
text
@d256 1
a256 1
    copyright1  = '  Copyright Hewlett-Packard Co.,1987,1990.';
@


52.2
log
@
pws2rcs automatic delta on Mon Mar 11 16:41:32 MST 1991
@
text
@@


52.1
log
@Automatic bump of revision number for PWS version 3.24A
@
text
@d253 2
a254 2
    previd = daterec[year:91, day:16, month:02];
    prevno = '3.24A';
@


51.2
log
@
pws2rcs automatic delta on Mon Feb 18 20:38:36 MST 1991
@
text
@@


51.1
log
@Automatic bump of revision number for PWS version 3.24d
@
text
@d253 2
a254 2
    previd = daterec[year:91, day:28, month:1];
    prevno = '3.24d';
@


50.2
log
@
pws2rcs automatic delta on Wed Jan 30 09:08:19 MST 1991
@
text
@@


50.1
log
@Automatic bump of revision number for PWS version 3.23c
@
text
@d253 2
a254 2
    previd = daterec[year:90, day:26, month:10];
    prevno = '3.24c';
@


49.2
log
@
pws2rcs automatic delta on Mon Oct 29 14:00:44 MST 1990
@
text
@@


49.1
log
@Automatic bump of revision number for PWS version 3.24b
@
text
@d253 2
a254 2
    previd = daterec[year:90, day:13, month:08];
    prevno = '3.24b';
@


48.2
log
@
pws2rcs automatic delta on Tue Aug 14 09:29:26 MDT 1990
@
text
@@


48.1
log
@Automatic bump of revision number for PWS version 3.24a
@
text
@d253 2
a254 2
    previd = daterec[year:90, day:23, month:07];
    prevno = '3.24a';
@


47.2
log
@
pws2rcs automatic delta on Tue Jul 24 14:47:20 MDT 1990
@
text
@@


47.1
log
@Automatic bump of revision number for PWS version 3.23
@
text
@d253 2
a254 2
    previd = daterec[year:90, day:03, month:05];
    prevno = '3.23';
@


46.1
log
@Automatic bump of revision number for PWS version 3.23
@
text
@@


45.2
log
@
pws2rcs automatic delta on Fri May  4 14:44:01 MDT 1990
@
text
@@


45.1
log
@Automatic bump of revision number for PWS version 3.23C
@
text
@d253 2
a254 2
    previd = daterec[year:90, day:18, month:04];
    prevno = '3.23C';
@


44.2
log
@
pws2rcs automatic delta on Thu Apr 19 13:13:04 MDT 1990
@
text
@@


44.1
log
@Automatic bump of revision number for PWS version 3.23B
@
text
@d253 2
a254 2
    previd = daterec[year:90, day:31, month:03];
    prevno = '3.23B';
@


43.3
log
@
pws2rcs automatic delta on Sun Apr  1 16:13:30 MDT 1990
@
text
@@


43.2
log
@Fixed copyright date.
@
text
@d253 2
a254 2
    previd = daterec[year:90, day:16, month:03];
    prevno = '3.23A';
@


43.1
log
@Automatic bump of revision number for PWS version 3.23aA
@
text
@d256 1
a256 1
    copyright1  = '  Copyright Hewlett-Packard Co.,1987,1989.';
@


42.2
log
@
pws2rcs automatic delta on Mon Mar 19 16:00:53 MST 1990
@
text
@@


42.1
log
@Automatic bump of revision number for PWS version 3.23e
@
text
@d253 2
a254 2
    previd = daterec[year:90, day:19, month:01];
    prevno = '3.23e';
@


41.2
log
@
pws2rcs automatic delta on Sat Jan 20 16:32:46 MST 1990
@
text
@@


41.1
log
@Automatic bump of revision number for PWS version 3.23d
@
text
@d253 2
a254 2
    previd = daterec[year:89, day:19, month:12];
    prevno = '3.23d';
@


40.2
log
@
pws2rcs automatic delta on Thu Dec 21 14:54:59 MST 1989
@
text
@@


40.1
log
@Automatic bump of revision number for PWS version 3.23c
@
text
@d253 2
a254 2
    previd = daterec[year:89, day:27, month:09];
    prevno = '3.23c';
@


39.2
log
@
pws2rcs automatic delta on Thu Sep 28 17:16:32 MDT 1989
@
text
@@


39.1
log
@Automatic bump of revision number for PWS version 3.23b
@
text
@d253 2
a254 2
    previd = daterec[year:89, day:25, month:9];
    prevno = '3.22b';
@


38.2
log
@
pws2rcs automatic delta on Tue Sep 26 14:31:31 MDT 1989
@
text
@@


38.1
log
@Automatic bump of revision number for PWS version 3.23a
@
text
@d253 2
a254 2
    previd = daterec[year:89, day:25, month:08];
    prevno = '3.23a';
@


37.2
log
@
pws2rcs automatic delta on Mon Aug 28 12:16:08 MDT 1989
@
text
@@


37.1
log
@Automatic bump of revision number for PWS version 3.3a
@
text
@d253 2
a254 2
    previd = daterec[year:89, day:11, month:05];
    prevno = '3.3a';
@


36.3
log
@
pws2rcs automatic delta on Fri May 12 09:00:42 MDT 1989
@
text
@@


36.2
log
@
pws2rcs automatic delta on Thu May 11 11:32:36 MDT 1989
@
text
@d253 1
a253 1
    previd = daterec[year:89, day:10, month:05];
@


36.1
log
@Automatic bump of revision number for PWS version 3.22
@
text
@d253 2
a254 2
    previd = daterec[year:89, day:20, month:01];
    prevno = '3.22';
@


35.1
log
@Automatic bump of revision number for PWS version 3.22
@
text
@@


34.1
log
@Automatic bump of revision number for PWS version 3.22
@
text
@@


33.2
log
@
pws2rcs automatic delta on Fri Jan 20 16:16:31 MST 1989
@
text
@@


33.1
log
@Automatic bump of revision number for PWS version 3.22D
@
text
@d253 2
a254 2
    previd = daterec[year:89, day:12, month:01];
    prevno = '3.22D';
@


32.3
log
@
pws2rcs automatic delta on Fri Jan 13 11:19:22 MST 1989
@
text
@@


32.2
log
@Fix copyright message

@
text
@d253 2
a254 2
    previd = daterec[year:89, day:06, month:01];
    prevno = '3.22C';
@


32.1
log
@Automatic bump of revision number for PWS version 3.22C
@
text
@d256 1
a256 1
    copyright1  = '   Copyright Hewlett-Packard Company, 1987.';
@


31.2
log
@
pws2rcs automatic delta on Mon Jan  9 11:50:34 MST 1989
@
text
@@


31.1
log
@Automatic bump of revision number for PWS version 3.22B
@
text
@d253 2
a254 2
    previd = daterec[year:88, day:12, month:12];
    prevno = '3.22B';
@


30.2
log
@
pws2rcs automatic delta on Wed Dec 14 13:22:28 MST 1988
@
text
@@


30.1
log
@Automatic bump of revision number for PWS version 3.22A
@
text
@d253 2
a254 2
    previd = daterec[year:88, day:07, month:12];
    prevno = '3.22A';
@


29.2
log
@
pws2rcs automatic delta on Thu Dec  8 15:31:09 MST 1988
@
text
@@


29.1
log
@Automatic bump of revision number for PWS version 3.22b
@
text
@d253 2
a254 2
    previd = daterec[year:88, day:27, month:10];
    prevno = '3.22b';
@


28.2
log
@
ipws2rcs automatic delta on Mon Oct 31 10:34:17 MST 1988
:w
:q
@
text
@@


28.1
log
@Automatic bump of revision number for PWS version 3.3b
@
text
@d253 2
a254 2
    previd = daterec[year:88, day:5, month:10];
    prevno = '3.3a';
@


27.2
log
@pws2rcs automatic delta on Wed Oct  5 17:32:00 MDT 1988

@
text
@@


27.1
log
@Automatic bump of revision number for PWS version 3.3a
@
text
@d253 2
a254 2
    previd = daterec[year:88, day:16, month:3];
    prevno = '3.21b';
@


26.6
log
@
Comment from auto synch of clock fix:
date: 88/03/18 09:38:43;  author: quist;  state: Exp;  lines added/del: 2/2
Pws2unix automatic delta on Fri Mar 18 09:13:54 MST 1988
@
text
@@


26.5
log
@
Comment from auto synch of clock fix:
date: 88/03/09 08:27:55;  author: quist;  state: Exp;  lines added/del: 2/2
Pws2unix automatic delta on Wed Mar 9 08:03:11 MST 1988
@
text
@d253 2
a254 2
    previd = daterec[year:88, day:8, month:3];
    prevno = '3.21a';
@


26.4
log
@
Comment from auto synch of clock fix:
date: 88/03/02 17:35:40;  author: quist;  state: Exp;  lines added/del: 5/4
SYSDATE fixes, RDQ

@
text
@d253 2
a254 2
    previd = daterec[year:87, day:29, month:8];
    prevno = '3.2';
@


26.3
log
@
Comment from auto synch of clock fix:
date: 88/03/02 09:15:42;  author: bayes;  state: Exp;  lines added/del: 0/0
Automatic bump of revision number for PWS version 3.2Y
@
text
@d253 2
a254 2
    previd = daterec[year:88, day:12, month:2];
    prevno = '3.2Y';
d274 2
a275 1
      if (month in [1..12]) and (day>0) and (year<100) then
d280 1
a280 1
	  todaysdate[8] := chr(year div 10 + ord('0'));
@


26.2
log
@
Comment from auto synch of clock fix:
date: 88/03/01 09:24:59;  author: bayes;  state: Exp;  lines added/del: 2/2
Pws2unix automatic delta on Tue Mar 1 09:01:42 MST 1988
@
text
@@


26.1
log
@Automatic bump of revision number for PWS version 3.3 Synch
@
text
@d253 2
a254 2
    previd = daterec[year:87, day:29, month:8];
    prevno = '3.2';
@


24.1
log
@Automatic bump of revision number for PWS version 3.2
@
text
@@


23.2
log
@Pws2unix automatic delta on Sun Aug 30 14:43:47 MDT 1987
@
text
@@


23.1
log
@Automatic bump of revision number for PWS version 3.2P
@
text
@d253 2
a254 2
    previd = daterec[year:87, day:25, month:8];
    prevno = '3.2P';
@


22.2
log
@Pws2unix automatic delta on Tue Aug 25 18:23:33 MDT 1987
@
text
@@


22.1
log
@Automatic bump of revision number for PWS version 3.2N
@
text
@d253 2
a254 2
    previd = daterec[year:87, day:14, month:8];
    prevno = '3.2N';
d256 2
a257 2
    copyright1  = '   Copyright 1986 Hewlett-Packard Company.';
    copyright2 =  '            All rights reserved.';
@


21.3
log
@Pws2unix automatic delta on Sat Aug 15 16:14:36 MDT 1987
@
text
@@


21.2
log
@added to comment in hfs_done, explaining how cache got cleared
@
text
@d253 2
a254 2
    previd = daterec[year:87, day:11, month:8];
    prevno = '3.2M';
@


21.1
log
@Automatic bump of revision number for PWS version 3.2M
@
text
@d146 3
@


20.2
log
@Pws2unix automatic delta on Wed Aug 12 09:47:30 MDT 1987
@
text
@@


20.1
log
@Automatic bump of revision number for PWS version 3.2L
@
text
@d250 2
a251 2
    previd = daterec[year:87, day:28, month:7];
    prevno = '3.2L';
@


18.3
log
@Pws2unix automatic delta on Wed Jul 29 17:29:01 MDT 1987
@
text
@@


18.2
log
@Pws2unix automatic delta on Sun May 31 14:33:16 MDT 1987
@
text
@d250 2
a251 2
    previd = daterec[year:87, day:30, month:5];
    prevno = '3.2K';
@


18.1
log
@Automatic bump of revision number for PWS version 3.2J
@
text
@d250 2
a251 2
    previd = daterec[year:87, day:19, month:5];
    prevno = '3.2J';
@


17.2
log
@Pws2unix automatic delta on Wed May 20 09:57:02 MDT 1987
@
text
@@


17.1
log
@Automatic bump of revision number for PWS version 3.2I+
@
text
@d250 2
a251 2
    previd = daterec[year:87, day:24, month:4];
    prevno = '3.2I';
@


16.1
log
@Automatic bump of revision number for PWS version 3.2I
@
text
@@


15.2
log
@Pws2unix automatic delta on Fri Apr 24 18:41:36 MDT 1987
@
text
@@


15.1
log
@Automatic bump of revision number for PWS version 3.2H
@
text
@d250 2
a251 2
    previd = daterec[year:87, day:11, month:4];
    prevno = '3.2H';
@


14.2
log
@Pws2unix automatic delta on Sun Apr 12 17:10:24 MDT 1987
@
text
@@


14.1
log
@Automatic bump of revision number for PWS version 3.2G
@
text
@d250 2
a251 2
    previd = daterec[year:87, day:31, month:3];
    prevno = '3.2G';
@


13.2
log
@Pws2unix automatic delta on Wed Apr  1 08:30:27 MST 1987
@
text
@@


13.1
log
@Automatic bump of revision number for PWS version 3.2F
@
text
@d250 2
a251 2
    previd = daterec[year:87, day:27, month:2];
    prevno = '3.2F';
@


12.2
log
@Pws2unix automatic delta on Sat Feb 28 15:17:33 MST 1987
@
text
@@


12.1
log
@Automatic bump of revision number for PWS version 3.2E
@
text
@d250 2
a251 2
    previd = daterec[year:87, day:30, month:01];
    prevno = '3.2';
@


11.2
log
@Pws2unix automatic delta on Mon Feb  2 09:47:34 MST 1987
@
text
@@


11.1
log
@Automatic bump of revision number for PWS version 3.2D
@
text
@d250 2
a251 2
    previd = daterec[year:87, day:18, month:1];
    prevno = '3.2D';
@


10.2
log
@Pws2unix automatic delta on Sun Jan 18 18:33:43 MST 1987
@
text
@@


10.1
log
@Automatic bump of revision number for PWS version 3.2C
@
text
@d250 2
a251 2
    previd = daterec[year:86, day:23, month:12];
    prevno = '3.2C';
@


9.3
log
@Pws2unix automatic delta on Tue Dec 23 16:24:27 MST 1986
@
text
@@


9.2
log
@FSDat00617 -- Check volid from user immediately
FSDat00618 -- Fix input loop so question doesn't repeat on same line
FSdat00619 -- Set umaxbytes to cover entire disc (in case soft volumes
              exist)
@
text
@d250 2
a251 2
    previd = daterec[year:86, day:26, month:11];
    prevno = '3.2A';
@


9.1
log
@Automatic bump of revision number for PWS version 3.2B
@
text
@d4 1
d125 1
a125 1
procedure hfs_done(var volname: string255);
d148 1
a148 3
procedure hfs_done(var volname: string255);
label
  999;
a155 12
  { legal file name? }
  if not scantitle(volname, fvid, ftitle, fsegs, fkind) then
    goto 999;

  { just a volume id? }
  if ftitle <> '' then
    goto 999;

  { get volume number }
  volume := findvolume(fvid, TRUE);
  if (volume = 0) then goto 999;

d158 2
a159 2
	  if not tbl[volume].is_hfsunit then
	      call(inval_cache_proc, tbl[volume].base_unum);
d161 1
a161 1
	      tbl[tbl[volume].base_unum].fs_corrupt := false;
a162 1
999:
d169 1
a169 1
import sysglobals, fsck, sysdevs, fsckio, fsckdone, clib;
d173 1
d183 5
d189 12
d202 24
d250 2
a251 2
    previd = daterec[year:86, day:11, month:12];
    prevno = '3.2B';
d304 7
d312 7
d328 13
a340 4
  { should verify, but want to fsck files too for now }
  write('Volume ID? ');
  readln(volid);
  if volid = '' then escape(0);
d343 1
a344 1
    write('Report only, ask always, or normal confirmation (r/a/n)? ');
d380 1
d382 1
d388 1
d390 1
a390 1
	hfs_done(volid)
@


8.2
log
@Pws2unix automatic delta on Fri Dec 12 09:42:40 MST 1986
@
text
@@


8.1
log
@Automatic bump of revision number for PWS version 3.2A
@
text
@d222 2
a223 2
    previd = daterec[year:86, day:26, month:11];
    prevno = '3.2A';
@


7.2
log
@Pws2unix automatic delta on Wed Nov 26 16:18:22 MST 1986
@
text
@@


7.1
log
@Automatic bump of revision number for PWS version 3.2l
@
text
@d222 2
a223 2
    previd = daterec[year:86, day:10, month:11];
    prevno = '3.2l';
@


6.2
log
@Pws2unix automatic delta on Wed Nov 19 15:16:12 MST 1986
@
text
@@


6.1
log
@Automatic bump of revision number for PWS version 3.2k
@
text
@d222 2
a223 2
    previd = daterec[year:86, day:3, month:11];
    prevno = '3.2k';
@


5.2
log
@Pws2unix automatic delta on Tue Nov  4 11:36:56 MEZ 1986
@
text
@@


5.1
log
@Automatic bump of revision number for PWS version 3.2j
@
text
@d222 2
a223 2
    previd = daterec[year:86, day:23, month:10];
    prevno = '3.2j';
@


4.3
log
@Pws2unix automatic delta on Tue Oct 28 10:57:29 MEZ 1986
@
text
@@


4.2
log
@$SEARCH for PCLIB:CLIBRARY2$
@
text
@d1 1
a1 1
$search 'FSCKC',
d183 1
a183 1
import sysglobals, fsckc, sysdevs, fsckio, fsckdone, clib;
d221 3
a223 5
procedure write_program_header;

  const
    previd = daterec[year:86, day:28, month:8];
    prevno = '3.2g';
@


4.1
log
@Automatic bump of revision number for PWS version 3.2i
@
text
@d2 1
a2 1
	'CLIBRARY'$
@


3.1
log
@Automatic bump of revision number for PWS version 3.2h
@
text
@@


1.1
log
@Initial revision
@
text
@@
