plan9port/src/cmd/sam
Russ Cox 860d327c8f sam: use ulong as type of dev consistently
Otherwise io.c:39 compares int != ulong,
causing spurious file modification warnings
when dev doesn't fit in an int.

R=r
http://codereview.appspot.com/1917045
2010-08-04 17:35:44 -07:00
..
_libc.h Initial import. 2003-09-30 17:47:42 +00:00
address.c Reorg 2003-09-30 19:05:50 +00:00
buff.c Use gcc -ansi -pedantic in 9c. Fix many non-C89-isms. 2006-04-01 19:24:03 +00:00
cmd.c convert to 4-byte UTF-8 and 32-bit Rune 2009-09-11 17:03:06 -04:00
disk.c use full prototypes 2005-05-07 22:42:14 +00:00
err Initial import. 2003-09-30 17:47:42 +00:00
error.c Use gcc -ansi -pedantic in 9c. Fix many non-C89-isms. 2006-04-01 19:24:03 +00:00
errors.h Use gcc -ansi -pedantic in 9c. Fix many non-C89-isms. 2006-04-01 19:24:03 +00:00
file.c sam: fix off-by-one in buffer merge. 2009-12-06 17:27:08 -08:00
io.c Use gcc -ansi -pedantic in 9c. Fix many non-C89-isms. 2006-04-01 19:24:03 +00:00
list.c 64-bit fixes 2006-04-20 20:49:00 +00:00
mesg.c sam: turn off DEBUG logging (oops) 2007-12-04 19:55:22 -05:00
mesg.h Use gcc -ansi -pedantic in 9c. Fix many non-C89-isms. 2006-04-01 19:24:03 +00:00
mkfile Goodbye SHORTLIB 2005-01-04 22:10:29 +00:00
moveto.c Reorg 2003-09-30 19:05:50 +00:00
multi.c 64-bit fixes 2006-04-20 20:49:00 +00:00
parse.h Use gcc -ansi -pedantic in 9c. Fix many non-C89-isms. 2006-04-01 19:24:03 +00:00
plan9.c Many small edits. 2005-01-13 04:49:19 +00:00
plumb.h Initial import. 2003-09-30 17:47:42 +00:00
rasp.c change name 2007-01-12 16:32:11 +00:00
README Initial import. 2003-09-30 17:47:42 +00:00
regexp.c acme, sam: fix regexp code for bigger Runemax 2010-07-14 11:10:59 -07:00
sam.c fix dup file name bug 2006-06-26 05:49:18 +00:00
sam.h sam: use ulong as type of dev consistently 2010-08-04 17:35:44 -07:00
shell.c sam: clean up checkerrs (Rob Pike) 2008-04-16 06:32:43 -07:00
string.c Initial import. 2003-09-30 17:47:42 +00:00
sys.c Initial import. 2003-09-30 17:47:42 +00:00
unix.c Use gcc -ansi -pedantic in 9c. Fix many non-C89-isms. 2006-04-01 19:24:03 +00:00
util.c Initial import. 2003-09-30 17:47:42 +00:00
xec.c Reorg 2003-09-30 19:05:50 +00:00

This is sam (not including samterm) from the 4th edition of Plan 9,
with changes so that it can be compiled under unix.
(Tested on Solaris 7 and Debian 3.0r1.)

Some extra libraries are needed.  First, fetch libutf-2.0 and libfmt-2.0
from
	http://pdos.lcs.mit.edu/~rsc/software/

(Beware that in libfmt/fmt.c there is a line that says:
        'u',    __ifmt,         /* in Plan 9, __flagfmt */
Thus, sam will have to fmtinstall the other thing.  Other ported programs
may have to do the same.  The fmt library should probably print messages
about bad format characters to stderr, since no one seems to check the
return codes.)

Compile and install those two libraries.  
Set PREFIX in the Makefile to match, then compile sam.

Your C compiler will emit many complaints of the form:
  sam.c:496: warning: passing arg 1 of `bufread' from incompatible pointer type

This is because the Plan 9 compiler has a slightly different (better,
ala Oberon) type system than ISO C.  Popular compilers generate the right
code, so in an act of civil disobediance I changed just enough to get
it to compile, but left the type errors in.  Now the next C standard can
adopt this extension, because at least one important C program uses it!

-- Scott Schwartz,  4 July 2003