PROCEDURE OpenCookies(VAR file: CookieFile) : BOOLEAN;
PROCEDURE ReadCookie(VAR pos: Streams.Count) : BOOLEAN;
VAR
line: ARRAY 4 OF CHAR;
BEGIN
LOOP
Streams.GetPos(file.s, pos);
Read.LineS(file.s, line);
(* end of input file? *)
IF file.s.count = 0 THEN RETURN FALSE END;
(* skip commented or empty lines *)
IF (line[0] # "%") & (line[0] # 0X) THEN
RETURN TRUE
END;
END;
END ReadCookie;
BEGIN (* OpenCookies *)
IF ~UnixFiles.Open(file.s, "cookies", UnixFiles.read,
Streams.onebuf, NIL) THEN
RETURN FALSE
END;
file.nofcookies := 0;
WHILE (file.nofcookies < maxcookies) &
ReadCookie(file.pos[file.nofcookies]) DO
INC(file.nofcookies);
END;
RETURN file.nofcookies > 0
END OpenCookies;
|