X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=ucw%2Ffb-file.c;h=d45ee0ef1e44eaee9020cfe79e0fa1e3fb524eb2;hb=bc5f818d21b7aceaf2c0e263b00aa4295211d8f9;hp=a7af6108742fcd4f7326bf1bc17b4f58384dbaaf;hpb=92c1eac70f981f73950853ecedf556d2a9addf8a;p=libucw.git diff --git a/ucw/fb-file.c b/ucw/fb-file.c index a7af6108..d45ee0ef 100644 --- a/ucw/fb-file.c +++ b/ucw/fb-file.c @@ -8,9 +8,9 @@ * of the GNU Lesser General Public License. */ -#include "ucw/lib.h" -#include "ucw/fastbuf.h" -#include "ucw/lfs.h" +#include +#include +#include #include #include @@ -23,9 +23,9 @@ struct fb_file { int is_temp_file; int keep_back_buf; /* Optimize for backwards reading */ ucw_off_t wpos; /* Real file position */ - uns wlen; /* Window size */ + uint wlen; /* Window size */ }; -#define FB_FILE(f) ((struct fb_file *)(f)->is_fastbuf) +#define FB_FILE(f) ((struct fb_file *)(f)) #define FB_BUFFER(f) (byte *)(FB_FILE(f) + 1) static int @@ -33,7 +33,7 @@ bfd_refill(struct fastbuf *f) { struct fb_file *F = FB_FILE(f); byte *read_ptr = (f->buffer = FB_BUFFER(f)); - uns blen = f->bufend - f->buffer, back = F->keep_back_buf ? blen >> 2 : 0, read_len = blen; + uint blen = f->bufend - f->buffer, back = F->keep_back_buf ? blen >> 2 : 0, read_len = blen; /* Forward or no seek */ if (F->wpos <= f->pos) { @@ -47,16 +47,16 @@ long_seek: goto seek; } /* Short forward seek (prefer read() to skip data )*/ - else if ((uns)diff >= back) + else if ((uint)diff >= back) { - uns skip = diff - back; + uint skip = diff - back; F->wpos += skip; while (skip) { int l = read(F->fd, f->buffer, MIN(skip, blen)); if (unlikely(l <= 0)) if (l < 0) - bthrow(f, "fb.read", "Error reading %s: %m", f->name); + bthrow(f, "read", "Error reading %s: %m", f->name); else { F->wpos -= skip; @@ -68,7 +68,7 @@ long_seek: /* Reuse part of the previous window and append new data (also F->wpos == f->pos) */ else { - uns keep = back - (uns)diff; + uint keep = back - (uint)diff; if (keep >= F->wlen) back = diff + (keep = F->wlen); else @@ -91,7 +91,7 @@ long_seek: goto long_seek; } /* Seek into previous window (do nothing... for example brewind) */ - else if ((uns)diff <= F->wlen) + else if ((uint)diff <= F->wlen) { f->bstop = f->buffer + F->wlen; f->bptr = f->bstop - diff; @@ -107,21 +107,21 @@ long_seek: /* Reuse part of previous window */ if (F->wlen && read_len <= back + diff && read_len > back + diff - F->wlen) { - uns keep = read_len + F->wlen - back - diff; + uint keep = read_len + F->wlen - back - diff; memmove(f->buffer + read_len - keep, f->buffer, keep); } seek: /* Do lseek() */ F->wpos = f->pos + (f->buffer - f->bptr); if (ucw_seek(F->fd, F->wpos, SEEK_SET) < 0) - bthrow(f, "fb.read", "Error seeking %s: %m", f->name); + bthrow(f, "read", "Error seeking %s: %m", f->name); } /* Read (part of) buffer */ do { int l = read(F->fd, read_ptr, read_len); if (unlikely(l < 0)) - bthrow(f, "fb.read", "Error reading %s: %m", f->name); + bthrow(f, "read", "Error reading %s: %m", f->name); if (!l) if (unlikely(read_ptr < f->bptr)) goto eof; @@ -149,7 +149,7 @@ bfd_spout(struct fastbuf *f) { /* Do delayed lseek() if needed */ if (FB_FILE(f)->wpos != f->pos && ucw_seek(FB_FILE(f)->fd, f->pos, SEEK_SET) < 0) - bthrow(f, "fb.write", "Error seeking %s: %m", f->name); + bthrow(f, "write", "Error seeking %s: %m", f->name); int l = f->bptr - f->buffer; byte *c = f->buffer; @@ -161,7 +161,7 @@ bfd_spout(struct fastbuf *f) { int z = write(FB_FILE(f)->fd, c, l); if (z <= 0) - bthrow(f, "fb.write", "Error writing %s: %m", f->name); + bthrow(f, "write", "Error writing %s: %m", f->name); l -= z; c += z; } @@ -181,7 +181,7 @@ bfd_seek(struct fastbuf *f, ucw_off_t pos, int whence) case SEEK_END: ; ucw_off_t l = ucw_seek(FB_FILE(f)->fd, pos, SEEK_END); if (l < 0) - bthrow(f, "fb.seek", "Error seeking %s: %m", f->name); + bthrow(f, "seek", "Error seeking %s: %m", f->name); FB_FILE(f)->wpos = f->pos = l; FB_FILE(f)->wlen = 0; return 1; @@ -198,7 +198,7 @@ bfd_close(struct fastbuf *f) } static int -bfd_config(struct fastbuf *f, uns item, int value) +bfd_config(struct fastbuf *f, uint item, int value) { int orig; @@ -218,7 +218,7 @@ bfd_config(struct fastbuf *f, uns item, int value) } struct fastbuf * -bfdopen_internal(int fd, const char *name, uns buflen) +bfdopen_internal(int fd, const char *name, uint buflen) { ASSERT(buflen); int namelen = strlen(name) + 1; @@ -256,7 +256,7 @@ int main(void) struct fastbuf *f, *t; f = bopen_tmp(16); t = bfdopen_shared(1, 13); - for (uns i = 0; i < 16; i++) + for (uint i = 0; i < 16; i++) bwrite(f, "", 7); bprintf(t, "%d\n", (int)btell(f)); brewind(f);