diff options
author | Ondřej Surý <ondrej@sury.org> | 2011-09-13 13:11:55 +0200 |
---|---|---|
committer | Ondřej Surý <ondrej@sury.org> | 2011-09-13 13:11:55 +0200 |
commit | 80f18fc933cf3f3e829c5455a1023d69f7b86e52 (patch) | |
tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /src/libbio | |
parent | 28592ee1ea1f5cdffcf85472f9de0285d928cf12 (diff) | |
download | golang-80f18fc933cf3f3e829c5455a1023d69f7b86e52.tar.gz |
Imported Upstream version 60
Diffstat (limited to 'src/libbio')
-rw-r--r-- | src/libbio/Makefile | 51 | ||||
-rw-r--r-- | src/libbio/bbuffered.c | 46 | ||||
-rw-r--r-- | src/libbio/bfildes.c | 35 | ||||
-rw-r--r-- | src/libbio/bflush.c | 59 | ||||
-rw-r--r-- | src/libbio/bgetc.c | 79 | ||||
-rw-r--r-- | src/libbio/bgetd.c | 62 | ||||
-rw-r--r-- | src/libbio/bgetrune.c | 73 | ||||
-rw-r--r-- | src/libbio/binit.c | 179 | ||||
-rw-r--r-- | src/libbio/boffset.c | 51 | ||||
-rw-r--r-- | src/libbio/bprint.c | 82 | ||||
-rw-r--r-- | src/libbio/bputc.c | 46 | ||||
-rw-r--r-- | src/libbio/bputrune.c | 49 | ||||
-rw-r--r-- | src/libbio/brdline.c | 120 | ||||
-rw-r--r-- | src/libbio/brdstr.c | 60 | ||||
-rw-r--r-- | src/libbio/bread.c | 71 | ||||
-rw-r--r-- | src/libbio/bseek.c | 93 | ||||
-rw-r--r-- | src/libbio/bwrite.c | 64 |
17 files changed, 0 insertions, 1220 deletions
diff --git a/src/libbio/Makefile b/src/libbio/Makefile deleted file mode 100644 index 4340b0eae..000000000 --- a/src/libbio/Makefile +++ /dev/null @@ -1,51 +0,0 @@ -# Derived from http://code.google.com/p/inferno-os/source/browse/libbio/mkfile -# -# Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. -# Revisions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com). All rights reserved. -# Portions Copyright © 2009 The Go Authors. All rights reserved. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -include ../Make.inc -O:=$(HOST_O) - -LIB=libbio.a - -OFILES=\ - bbuffered.$O\ - bfildes.$O\ - bflush.$O\ - bgetc.$O\ - bgetrune.$O\ - bgetd.$O\ - binit.$O\ - boffset.$O\ - bprint.$O\ - bputc.$O\ - bputrune.$O\ - brdline.$O\ - brdstr.$O\ - bread.$O\ - bseek.$O\ - bwrite.$O\ - -HFILES=\ - ../../include/bio.h - -include ../Make.clib diff --git a/src/libbio/bbuffered.c b/src/libbio/bbuffered.c deleted file mode 100644 index 2ddb29b77..000000000 --- a/src/libbio/bbuffered.c +++ /dev/null @@ -1,46 +0,0 @@ -/* -http://code.google.com/p/inferno-os/source/browse/libbio/bbuffered.c - - Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. - Revisions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com). All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -#include <u.h> -#include <libc.h> -#include <bio.h> - -int -Bbuffered(Biobuf *bp) -{ - switch(bp->state) { - case Bracteof: - case Bractive: - return -bp->icount; - - case Bwactive: - return bp->bsize + bp->ocount; - - case Binactive: - return 0; - } - fprint(2, "Bbuffered: unknown state %d\n", bp->state); - return 0; -} diff --git a/src/libbio/bfildes.c b/src/libbio/bfildes.c deleted file mode 100644 index aef1f70bb..000000000 --- a/src/libbio/bfildes.c +++ /dev/null @@ -1,35 +0,0 @@ -/* -http://code.google.com/p/inferno-os/source/browse/libbio/bfildes.c - - Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. - Revisions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com). All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -#include <u.h> -#include <libc.h> -#include <bio.h> - -int -Bfildes(Biobuf *bp) -{ - - return bp->fid; -} diff --git a/src/libbio/bflush.c b/src/libbio/bflush.c deleted file mode 100644 index 8a071cb5c..000000000 --- a/src/libbio/bflush.c +++ /dev/null @@ -1,59 +0,0 @@ -/* -http://code.google.com/p/inferno-os/source/browse/libbio/bflush.c - - Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. - Revisions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com). All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -#include <u.h> -#include <libc.h> -#include <bio.h> - -int -Bflush(Biobuf *bp) -{ - int n, c; - - switch(bp->state) { - case Bwactive: - n = bp->bsize+bp->ocount; - if(n == 0) - return 0; - c = write(bp->fid, bp->bbuf, n); - if(n == c) { - bp->offset += n; - bp->ocount = -bp->bsize; - return 0; - } - bp->state = Binactive; - bp->ocount = 0; - break; - - case Bracteof: - bp->state = Bractive; - - case Bractive: - bp->icount = 0; - bp->gbuf = bp->ebuf; - return 0; - } - return Beof; -} diff --git a/src/libbio/bgetc.c b/src/libbio/bgetc.c deleted file mode 100644 index 52ed241f9..000000000 --- a/src/libbio/bgetc.c +++ /dev/null @@ -1,79 +0,0 @@ -/* -http://code.google.com/p/inferno-os/source/browse/libbio/bgetc.c - - Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. - Revisions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com). All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -#include <u.h> -#include <libc.h> -#include <bio.h> - -int -Bgetc(Biobuf *bp) -{ - int i; - -loop: - i = bp->icount; - if(i != 0) { - bp->icount = i+1; - return bp->ebuf[i]; - } - if(bp->state != Bractive) { - if(bp->state == Bracteof) - bp->state = Bractive; - return Beof; - } - /* - * get next buffer, try to keep Bungetsize - * characters pre-catenated from the previous - * buffer to allow that many ungets. - */ - memmove(bp->bbuf-Bungetsize, bp->ebuf-Bungetsize, Bungetsize); - i = read(bp->fid, bp->bbuf, bp->bsize); - bp->gbuf = bp->bbuf; - if(i <= 0) { - bp->state = Bracteof; - if(i < 0) - bp->state = Binactive; - return Beof; - } - if(i < bp->bsize) { - memmove(bp->ebuf-i-Bungetsize, bp->bbuf-Bungetsize, i+Bungetsize); - bp->gbuf = bp->ebuf-i; - } - bp->icount = -i; - bp->offset += i; - goto loop; -} - -int -Bungetc(Biobuf *bp) -{ - - if(bp->state == Bracteof) - bp->state = Bractive; - if(bp->state != Bractive) - return Beof; - bp->icount--; - return 1; -} diff --git a/src/libbio/bgetd.c b/src/libbio/bgetd.c deleted file mode 100644 index cf76a755a..000000000 --- a/src/libbio/bgetd.c +++ /dev/null @@ -1,62 +0,0 @@ -/* -http://code.google.com/p/inferno-os/source/browse/libbio/bgetd.c - - Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. - Revisions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com). All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -#include <u.h> -#include <libc.h> -#include <bio.h> - -struct bgetd -{ - Biobuf* b; - int eof; -}; - -static int -Bgetdf(void *vp) -{ - int c; - struct bgetd *bg = vp; - - c = Bgetc(bg->b); - if(c == Beof) - bg->eof = 1; - return c; -} - -int -Bgetd(Biobuf *bp, double *dp) -{ - double d; - struct bgetd b; - - b.b = bp; - b.eof = 0; - d = fmtcharstod(Bgetdf, &b); - if(b.eof) - return -1; - Bungetc(bp); - *dp = d; - return 1; -} diff --git a/src/libbio/bgetrune.c b/src/libbio/bgetrune.c deleted file mode 100644 index 1538f3ea7..000000000 --- a/src/libbio/bgetrune.c +++ /dev/null @@ -1,73 +0,0 @@ -/* -http://code.google.com/p/inferno-os/source/browse/libbio/bgetrune.c - - Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. - Revisions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com). All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -#include <u.h> -#include <libc.h> -#include <bio.h> -#include <utf.h> - -long -Bgetrune(Biobuf *bp) -{ - int c, i; - Rune rune; - char str[UTFmax]; - - c = Bgetc(bp); - if(c < Runeself) { /* one char */ - bp->runesize = 1; - return c; - } - str[0] = c; - - for(i=1;;) { - c = Bgetc(bp); - if(c < 0) - return c; - str[i++] = c; - - if(fullrune(str, i)) { - bp->runesize = chartorune(&rune, str); - while(i > bp->runesize) { - Bungetc(bp); - i--; - } - return rune; - } - } -} - -int -Bungetrune(Biobuf *bp) -{ - - if(bp->state == Bracteof) - bp->state = Bractive; - if(bp->state != Bractive) - return Beof; - bp->icount -= bp->runesize; - bp->runesize = 0; - return 1; -} diff --git a/src/libbio/binit.c b/src/libbio/binit.c deleted file mode 100644 index a7ade5081..000000000 --- a/src/libbio/binit.c +++ /dev/null @@ -1,179 +0,0 @@ -/* -http://code.google.com/p/inferno-os/source/browse/libbio/binit.c - - Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. - Revisions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com). All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -#include <u.h> -#include <libc.h> -#include <bio.h> - -enum -{ - MAXBUFS = 20 -}; - -static Biobuf* wbufs[MAXBUFS]; -static int atexitflag; - -static -void -batexit(void) -{ - Biobuf *bp; - int i; - - for(i=0; i<MAXBUFS; i++) { - bp = wbufs[i]; - if(bp != 0) { - wbufs[i] = 0; - Bflush(bp); - } - } -} - -static -void -deinstall(Biobuf *bp) -{ - int i; - - for(i=0; i<MAXBUFS; i++) - if(wbufs[i] == bp) - wbufs[i] = 0; -} - -static -void -install(Biobuf *bp) -{ - int i; - - deinstall(bp); - for(i=0; i<MAXBUFS; i++) - if(wbufs[i] == 0) { - wbufs[i] = bp; - break; - } - if(atexitflag == 0) { - atexitflag = 1; - atexit(batexit); - } -} - -int -Binits(Biobuf *bp, int f, int mode, unsigned char *p, int size) -{ - - p += Bungetsize; /* make room for Bungets */ - size -= Bungetsize; - - switch(mode&~(ORCLOSE|OTRUNC)) { - default: - fprint(2, "Bopen: unknown mode %d\n", mode); - return Beof; - - case OREAD: - bp->state = Bractive; - bp->ocount = 0; - break; - - case OWRITE: - install(bp); - bp->state = Bwactive; - bp->ocount = -size; - break; - } - bp->bbuf = p; - bp->ebuf = p+size; - bp->bsize = size; - bp->icount = 0; - bp->gbuf = bp->ebuf; - bp->fid = f; - bp->flag = 0; - bp->rdline = 0; - bp->offset = 0; - bp->runesize = 0; - return 0; -} - - -int -Binit(Biobuf *bp, int f, int mode) -{ - return Binits(bp, f, mode, bp->b, sizeof(bp->b)); -} - -Biobuf* -Bfdopen(int f, int mode) -{ - Biobuf *bp; - - bp = malloc(sizeof(Biobuf)); - if(bp == 0) - return 0; - Binits(bp, f, mode, bp->b, sizeof(bp->b)); - bp->flag = Bmagic; - return bp; -} - -Biobuf* -Bopen(char *name, int mode) -{ - Biobuf *bp; - int f; - - switch(mode&~(ORCLOSE|OTRUNC)) { - default: - fprint(2, "Bopen: unknown mode %d\n", mode); - return 0; - - case OREAD: - f = open(name, OREAD); - if(f < 0) - return 0; - break; - - case OWRITE: - f = create(name, OWRITE|OTRUNC, 0666); - if(f < 0) - return 0; - } - bp = Bfdopen(f, mode); - if(bp == 0) - close(f); - return bp; -} - -int -Bterm(Biobuf *bp) -{ - - deinstall(bp); - Bflush(bp); - if(bp->flag == Bmagic) { - bp->flag = 0; - close(bp->fid); - free(bp); - } - return 0; -} diff --git a/src/libbio/boffset.c b/src/libbio/boffset.c deleted file mode 100644 index 15dd609e1..000000000 --- a/src/libbio/boffset.c +++ /dev/null @@ -1,51 +0,0 @@ -/* -http://code.google.com/p/inferno-os/source/browse/libbio/boffset.c - - Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. - Revisions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com). All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -#include <u.h> -#include <libc.h> -#include <bio.h> - -vlong -Boffset(Biobuf *bp) -{ - vlong n; - - switch(bp->state) { - default: - fprint(2, "Boffset: unknown state %d\n", bp->state); - n = Beof; - break; - - case Bracteof: - case Bractive: - n = bp->offset + bp->icount; - break; - - case Bwactive: - n = bp->offset + (bp->bsize + bp->ocount); - break; - } - return n; -} diff --git a/src/libbio/bprint.c b/src/libbio/bprint.c deleted file mode 100644 index b5d3e9ece..000000000 --- a/src/libbio/bprint.c +++ /dev/null @@ -1,82 +0,0 @@ -/* -http://code.google.com/p/inferno-os/source/browse/libbio/bprint.c - - Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. - Revisions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com). All rights reserved. - Revisions Copyright © 2010 Google Inc. All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -#include <u.h> -#include <libc.h> -#include <bio.h> - -int -Bprint(Biobuf *bp, char *fmt, ...) -{ - int n; - va_list arg; - - va_start(arg, fmt); - n = Bvprint(bp, fmt, arg); - va_end(arg); - return n; -} - -static int -bflush(Fmt *f) -{ - Biobuf *bp; - - if(f->stop == nil) - return 0; - - bp = f->farg; - bp->ocount = (char*)f->to - (char*)f->stop; - if(Bflush(bp) < 0) { - f->stop = nil; - f->to = nil; - return 0; - } - f->to = (char*)f->stop + bp->ocount; - - return 1; -} - -int -Bvprint(Biobuf *bp, char *fmt, va_list arg) -{ - int n; - Fmt f; - - memset(&f, 0, sizeof f); - fmtlocaleinit(&f, nil, nil, nil); - f.stop = bp->ebuf; - f.to = (char*)f.stop + bp->ocount; - f.flush = bflush; - f.farg = bp; - - n = fmtvprint(&f, fmt, arg); - - if(f.stop != nil) - bp->ocount = (char*)f.to - (char*)f.stop; - - return n; -} diff --git a/src/libbio/bputc.c b/src/libbio/bputc.c deleted file mode 100644 index 4cdbe8f7a..000000000 --- a/src/libbio/bputc.c +++ /dev/null @@ -1,46 +0,0 @@ -/* -http://code.google.com/p/inferno-os/source/browse/libbio/bputc.c - - Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. - Revisions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com). All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -#include <u.h> -#include <libc.h> -#include <bio.h> - -int -Bputc(Biobuf *bp, int c) -{ - int i; - - for(;;) { - i = bp->ocount; - if(i) { - bp->ebuf[i++] = c; - bp->ocount = i; - return 0; - } - if(Bflush(bp) == Beof) - break; - } - return Beof; -} diff --git a/src/libbio/bputrune.c b/src/libbio/bputrune.c deleted file mode 100644 index e46f3c710..000000000 --- a/src/libbio/bputrune.c +++ /dev/null @@ -1,49 +0,0 @@ -/* -http://code.google.com/p/inferno-os/source/browse/libbio/bputrune.c - - Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. - Revisions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com). All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -#include <u.h> -#include <libc.h> -#include <bio.h> -#include <utf.h> - -int -Bputrune(Biobuf *bp, long c) -{ - Rune rune; - char str[UTFmax]; - int n; - - rune = c; - if(rune < Runeself) { - Bputc(bp, rune); - return 1; - } - n = runetochar(str, &rune); - if(n == 0) - return Bbad; - if(Bwrite(bp, str, n) != n) - return Beof; - return n; -} diff --git a/src/libbio/brdline.c b/src/libbio/brdline.c deleted file mode 100644 index a02bf106d..000000000 --- a/src/libbio/brdline.c +++ /dev/null @@ -1,120 +0,0 @@ -/* -http://code.google.com/p/inferno-os/source/browse/libbio/brdline.c - - Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. - Revisions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com). All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -#include <u.h> -#include <libc.h> -#include <bio.h> - -void* -Brdline(Biobuf *bp, int delim) -{ - char *ip, *ep; - int i, j; - - i = -bp->icount; - if(i == 0) { - /* - * eof or other error - */ - if(bp->state != Bractive) { - if(bp->state == Bracteof) - bp->state = Bractive; - bp->rdline = 0; - bp->gbuf = bp->ebuf; - return 0; - } - } - - /* - * first try in remainder of buffer (gbuf doesn't change) - */ - ip = (char*)bp->ebuf - i; - ep = memchr(ip, delim, i); - if(ep) { - j = (ep - ip) + 1; - bp->rdline = j; - bp->icount += j; - return ip; - } - - /* - * copy data to beginning of buffer - */ - if(i < bp->bsize) - memmove(bp->bbuf, ip, i); - bp->gbuf = bp->bbuf; - - /* - * append to buffer looking for the delim - */ - ip = (char*)bp->bbuf + i; - while(i < bp->bsize) { - j = read(bp->fid, ip, bp->bsize-i); - if(j <= 0) { - /* - * end of file with no delim - */ - memmove(bp->ebuf-i, bp->bbuf, i); - bp->rdline = i; - bp->icount = -i; - bp->gbuf = bp->ebuf-i; - return 0; - } - bp->offset += j; - i += j; - ep = memchr(ip, delim, j); - if(ep) { - /* - * found in new piece - * copy back up and reset everything - */ - ip = (char*)bp->ebuf - i; - if(i < bp->bsize){ - memmove(ip, bp->bbuf, i); - bp->gbuf = (unsigned char*)ip; - } - j = (ep - (char*)bp->bbuf) + 1; - bp->rdline = j; - bp->icount = j - i; - return ip; - } - ip += j; - } - - /* - * full buffer without finding - */ - bp->rdline = bp->bsize; - bp->icount = -bp->bsize; - bp->gbuf = bp->bbuf; - return 0; -} - -int -Blinelen(Biobuf *bp) -{ - - return bp->rdline; -} diff --git a/src/libbio/brdstr.c b/src/libbio/brdstr.c deleted file mode 100644 index 0398ab07b..000000000 --- a/src/libbio/brdstr.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - Copyright © 2009 The Go Authors. All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -#include <u.h> -#include <libc.h> -#include <bio.h> - -char* -Brdstr(Biobuf *bp, int delim, int nulldelim) -{ - char *p, *q, *nq; - int n, linelen; - - q = nil; - n = 0; - for(;;) { - p = Brdline(bp, delim); - linelen = Blinelen(bp); - if(n == 0 && linelen == 0) - return nil; - nq = realloc(q, n+linelen+1); - if(nq == nil) { - free(q); - return nil; - } - q = nq; - if(p != nil) { - memmove(q+n, p, linelen); - n += linelen; - if(nulldelim) - q[n-1] = '\0'; - break; - } - if(linelen == 0) - break; - Bread(bp, q+n, linelen); - n += linelen; - } - q[n] = '\0'; - return q; -} diff --git a/src/libbio/bread.c b/src/libbio/bread.c deleted file mode 100644 index 5cf9a05c8..000000000 --- a/src/libbio/bread.c +++ /dev/null @@ -1,71 +0,0 @@ -/* -http://code.google.com/p/inferno-os/source/browse/libbio/bread.c - - Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. - Revisions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com). All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -#include <u.h> -#include <libc.h> -#include <bio.h> - -long -Bread(Biobuf *bp, void *ap, long count) -{ - long c; - unsigned char *p; - int i, n, ic; - - p = ap; - c = count; - ic = bp->icount; - - while(c > 0) { - n = -ic; - if(n > c) - n = c; - if(n == 0) { - if(bp->state != Bractive) - break; - i = read(bp->fid, bp->bbuf, bp->bsize); - if(i <= 0) { - bp->state = Bracteof; - if(i < 0) - bp->state = Binactive; - break; - } - bp->gbuf = bp->bbuf; - bp->offset += i; - if(i < bp->bsize) { - memmove(bp->ebuf-i, bp->bbuf, i); - bp->gbuf = bp->ebuf-i; - } - ic = -i; - continue; - } - memmove(p, bp->ebuf+ic, n); - c -= n; - ic += n; - p += n; - } - bp->icount = ic; - return count-c; -} diff --git a/src/libbio/bseek.c b/src/libbio/bseek.c deleted file mode 100644 index 291498108..000000000 --- a/src/libbio/bseek.c +++ /dev/null @@ -1,93 +0,0 @@ -/* -http://code.google.com/p/inferno-os/source/browse/libbio/bseek.c - - Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. - Revisions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com). All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -#include <u.h> -#include <libc.h> -#include <bio.h> - -vlong -Bseek(Biobuf *bp, vlong offset, int base) -{ - vlong n, d; - int bufsz; - -#ifndef _WIN32 - if(sizeof(offset) != sizeof(off_t)) { - fprint(2, "Bseek: libbio compiled with %d-byte offset\n", sizeof(off_t)); - abort(); - } -#endif - - switch(bp->state) { - default: - fprint(2, "Bseek: unknown state %d\n", bp->state); - return Beof; - - case Bracteof: - bp->state = Bractive; - bp->icount = 0; - bp->gbuf = bp->ebuf; - - case Bractive: - n = offset; - if(base == 1) { - n += Boffset(bp); - base = 0; - } - - /* - * try to seek within buffer - */ - if(base == 0) { - d = n - Boffset(bp); - bufsz = bp->ebuf - bp->gbuf; - if(-bufsz <= d && d <= bufsz){ - bp->icount += d; - if(d >= 0) { - if(bp->icount <= 0) - return n; - } else { - if(bp->ebuf - bp->gbuf >= -bp->icount) - return n; - } - } - } - - /* - * reset the buffer - */ - n = lseek(bp->fid, n, base); - bp->icount = 0; - bp->gbuf = bp->ebuf; - break; - - case Bwactive: - Bflush(bp); - n = lseek(bp->fid, offset, base); - break; - } - bp->offset = n; - return n; -} diff --git a/src/libbio/bwrite.c b/src/libbio/bwrite.c deleted file mode 100644 index daed161cb..000000000 --- a/src/libbio/bwrite.c +++ /dev/null @@ -1,64 +0,0 @@ -/* -http://code.google.com/p/inferno-os/source/browse/libbio/bwrite.c - - Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. - Revisions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuova.com). All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -#include <u.h> -#include <libc.h> -#include <bio.h> - -long -Bwrite(Biobuf *bp, void *ap, long count) -{ - long c; - unsigned char *p; - int i, n, oc; - - p = ap; - c = count; - oc = bp->ocount; - - while(c > 0) { - n = -oc; - if(n > c) - n = c; - if(n == 0) { - if(bp->state != Bwactive) - return Beof; - i = write(bp->fid, bp->bbuf, bp->bsize); - if(i != bp->bsize) { - bp->state = Binactive; - return Beof; - } - bp->offset += i; - oc = -bp->bsize; - continue; - } - memmove(bp->ebuf+oc, p, n); - oc += n; - c -= n; - p += n; - } - bp->ocount = oc; - return count-c; -} |