diff options
author | cinap_lenrek <cinap_lenrek@gmx.de> | 2012-08-01 21:34:14 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@gmx.de> | 2012-08-01 21:34:14 +0200 |
commit | 9b5b68a3022a6503aab296986fec1b463f9e6b1e (patch) | |
tree | ee6973ff01673700f19d423d4e6418655a19bc1a /sys/src/cmd/cdfs/main.c | |
parent | c7ad44a0489ab779e410b58c0c504b9d8a99aa9c (diff) |
cdfs: pull updates from sources
Diffstat (limited to 'sys/src/cmd/cdfs/main.c')
-rw-r--r-- | sys/src/cmd/cdfs/main.c | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/sys/src/cmd/cdfs/main.c b/sys/src/cmd/cdfs/main.c index cf3a3ed28..7ef34f371 100644 --- a/sys/src/cmd/cdfs/main.c +++ b/sys/src/cmd/cdfs/main.c @@ -192,7 +192,7 @@ fsremove(Req *r) case Qwd: if(drive->fixate(drive) < 0) respond(r, geterrstr()); -// let us see if it can figure this out: drive->writeok = 0; +// let us see if it can figure this out: drive->writeok = No; else respond(r, nil); checktoc(drive); @@ -204,7 +204,7 @@ fsremove(Req *r) } /* result is one word, so it can be used as a uid in Dir structs */ -static char * +char * disctype(Drive *drive) { char *type, *rw; @@ -229,9 +229,9 @@ disctype(Drive *drive) } rw = ""; if (drive->mmctype != Mmcnone && drive->dvdtype == nil) - if (drive->erasable) + if (drive->erasable == Yes) rw = drive->mmctype == Mmcbd? "re": "rw"; - else if (drive->recordable) + else if (drive->recordable == Yes) rw = "r"; else rw = "rom"; @@ -271,7 +271,7 @@ fillstat(ulong qid, Dir *d) break; case Qwa: - if(drive->writeok == 0 || + if(drive->writeok == No || drive->mmctype != Mmcnone && drive->mmctype != Mmccd) return 0; @@ -281,7 +281,7 @@ fillstat(ulong qid, Dir *d) break; case Qwd: - if(drive->writeok == 0) + if(drive->writeok == No) return 0; d->name = "wd"; d->qid.type = QTDIR; @@ -340,6 +340,7 @@ static void readctl(Req *r) { int i, isaudio; + ulong nwa; char *p, *e, *ty; char s[1024]; Msf *m; @@ -375,9 +376,14 @@ readctl(Req *r) ty = disctype(drive); p = seprint(p, e, "%s", ty); free(ty); - if (drive->mmctype != Mmcnone) - p = seprint(p, e, " next writable sector %lud", - getnwa(drive)); + if (drive->mmctype != Mmcnone) { + nwa = getnwa(drive); + p = seprint(p, e, " next writable sector "); + if (nwa == ~0ul) + p = seprint(p, e, "none; disc full"); + else + p = seprint(p, e, "%lud", nwa); + } seprint(p, e, "\n"); } readstr(r, s); @@ -718,6 +724,7 @@ main(int argc, char **argv) if(dev == nil || mtpt == nil || argc > 0) usage(); + werrstr(""); if((s = openscsi(dev)) == nil) sysfatal("openscsi '%s': %r", dev); if((drive = mmcprobe(s)) == nil) |