ref: 819fc1850e53f5094cc06431ed719759dd685885
parent: 7d3fb4d665372fe975403ff80f32500204454d3b
author: 9ferno <[email protected]>
date: Mon Jan 10 14:16:09 EST 2022
read takes a file argument
--- a/appl/cmd/read.b
+++ b/appl/cmd/read.b
@@ -9,7 +9,7 @@
usage()
{
- sys->fprint(sys->fildes(2), "usage: read [-[ero] offset] count\n");
+ sys->fprint(sys->fildes(2), "usage: read [-[ero] offset] count [file]\n");
raise "fail:usage";
}
@@ -20,6 +20,7 @@
count := Sys->ATOMICIO;
offset := big 0;
seeking := -1;
+ fd := sys->fildes(0);
if (argv != nil)
argv = tl argv;
if (argv != nil && hd argv != nil && (hd argv)[0] == '-') {
@@ -39,11 +40,16 @@
argv = tl tl argv;
}
if (argv != nil) {
- if (tl argv != nil)
- usage();
count = int hd argv;
+ if (tl argv != nil){
+ file := hd tl argv; # usage();
+ fd = sys->open(file, Sys->OREAD);
+ if(fd == nil){
+ sys->fprint(sys->fildes(2), "read: cannot open %s: %r\n", file);
+ raise "fail:bad open";
+ }
+ }
}
- fd := sys->fildes(0);
if (seeking != -1)
sys->seek(fd, offset, seeking);
if (count == 0)