By downloading this code you agree to the
Source Code Use License (PDF). |
{ version = 2.03; (* of emptytest.p 2005 Sep 13}
(* begin module describe.emptytest *)
(*
name
emptytest: Test for file empty
synopsis
emptytest(empty: in, notempty: in, output: out)
files
empty: an empty file. There should be no characters in this file.
You can create it under Unix with:
echo -n "" > empty
or if there is none before,
touch empty
notempty: any file with at least one character
You can create it under Unix with:
echo -n "some text" > empty
description
The GPC compiler has a serious bug in it. When one resets an empty
file, it is not eof.
In contrast, the p2c translator/compiler works perfectly.
So this program provides a routine, emptyfile, that tests for eof
and responds properly. The method is to count the actual number of
characters in the file.
examples
Results from p2c:
---- emptytest: -------------------------
empty file is eof ......... OK!
notempty file is not eof .. OK!
---- test emptyfile:
lines = 0
chars = 0
empty file is empty
lines = 0
chars = 1
notempty file is not empty
------------------------------------------
So p2c works perfectly.
Results from GPC:
---- emptytest: -------------------------
empty file is not eof ..... OOPS!
notempty file is not eof .. OK!
---- test emptyfile:
lines = 1
chars = 0
empty file is empty
lines = 0
chars = 1
notempty file is not empty
------------------------------------------
So GPC failed to detect the eof correctly and thought that there was
one line in the empty file. FORTUNATELY counting characters works.
There are at least three ways to test for a file in Unix:
ls -l
wc
file
These can be used to PROVE that the file is empty. A script,
emptyunixtests, can be used to check the files. The results are:
version = 1.00 of emptyunixtests 2005 Sep 13
tests for empty file:
% ls -l empty
-rw------- 1 toms delila 0 Jan 27 2005 empty
% wc empty
0 0 0 empty
% file empty
empty: empty file
------
tests for notempty file:
% ls -l notempty
-rw------- 1 toms delila 29 Sep 13 19:04 notempty
% wc notempty
1 5 29 notempty
documentation
see also
GPC discussion, patch given:
http://www.gnu-pascal.de/crystal/gpc/en/mail11285.html
GPC Gnu Pascal Compiler:
https://alum.mit.edu/www/toms/pascalgpc.html
P2C Pascal Translator and Compiler:
https://alum.mit.edu/www/toms/pascalp2c.html
The alist program was messed up by this bug:
https://alum.mit.edu/www/toms/delila/alist.html
Three tests for files named empty and notempty
determine if the files are empty or not:
emptyunixtests
empty file:
empty
not empty file:
notempty
author
Thomas Dana Schneider
bugs
technical notes
*)
(* end module describe.emptytest *)
{This manual page was created by makman 1.45}
{created by htmlink 1.62}