1BSD/tests/t13.p

program rec(output);
type
	alfa = packed array[1..10] of char;
	status = (married, widowed, divorced, single);
	date = record
		mo: (jan, feb, mar, apr, may, jun,
			july, aug, sept, oct, nov, dec);
		day: 1..31;
		year: integer
		end;
	person = record
		name: record
			first, last: alfa
			end;
		ss: integer;
		sex: (male, female);
		birth: date;
		depdts: integer;
		case ms: status of
			married, widowed: (
				mdate: date);
			divorced: (
				ddate: date;
				firstd: boolean);
			single: (
				indepdt: boolean)
		end;
var
	pp: person;
	p: ^person;
begin
	pp.name.last := 'woodyard';
	pp.name.first := 'edward';
	pp.ss := 845680539;
	pp.sex := male;
	pp.birth.mo := aug;
	pp.birth.day := 30;
	pp.birth.year := 1941;
	pp.depdts := 1;
	pp.ms := single;
	pp.indepdt := true;

	new(p);
	p^.name.last := 'woodyard';
	p^.name.first := 'edward';
	p^.ss := 845680539;
	p^.sex := male;
	p^.birth.mo := aug;
	p^.birth.day := 30;
	p^.birth.year := 1941;
	p^.depdts := 1;
	p^.ms := single;
	p^.indepdt := true;
	if pp = p^ then
		writeln(true);
end.