diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2017-07-18 18:10:07 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2017-07-18 18:10:07 +0300 |
commit | b0c0f377b5d4eb3344f22cd87171f83085eaa994 (patch) | |
tree | 9c0bdece282348b0fe5f0a4de3fbbcc0bdffe126 | |
parent | 24b9e009c9c2eef1b6d1accb3ac7ccc53c44c0a8 (diff) | |
download | runcap-b0c0f377b5d4eb3344f22cd87171f83085eaa994.tar.gz runcap-b0c0f377b5d4eb3344f22cd87171f83085eaa994.tar.bz2 |
Minor change
* runcap.h (filecapture) <fc_linestart>: Rename to fc_cur.
All uses updated.
* runcap.c (filecapture_put): Use fc_cur as current pointer
and fc_level as the limit, for consistency.
(runcap_init): Initialize fc_cur.
-rw-r--r-- | getc.c | 6 | ||||
-rw-r--r-- | runcap.c | 24 | ||||
-rw-r--r-- | runcap.h | 2 | ||||
-rw-r--r-- | seek.c | 4 | ||||
-rw-r--r-- | tell.c | 2 |
5 files changed, 20 insertions, 18 deletions
@@ -31,24 +31,24 @@ runcap_getc(struct runcap *rc, int stream, char *cp) } fp = runcap_filecapture(rc, stream); if (!fp) return -1; - if (fp->fc_level == fp->fc_linestart) { + if (fp->fc_level == fp->fc_cur) { if (fp->fc_tmpfd != -1) { ssize_t r = read(fp->fc_tmpfd, fp->fc_base, fp->fc_size); if (r < 0) return -1; else if (r == 0) return 0; fp->fc_level = r; - fp->fc_linestart = 0; + fp->fc_cur = 0; } else { return 0; } } - *cp = fp->fc_base[fp->fc_linestart++]; + *cp = fp->fc_base[fp->fc_cur++]; return 1; } @@ -36,13 +36,13 @@ filecapture_alloc(struct filecapture *fc, size_t size) } else fc->fc_base = NULL; fc->fc_size = size; fc->fc_leng = 0; fc->fc_level = 0; fc->fc_nlines = 0; - fc->fc_linestart = 0; + fc->fc_cur = 0; fc->fc_tmpfd = -1; fc->fc_fd = -1; return 0; } int @@ -62,13 +62,13 @@ filecapture_init(struct filecapture *fc, size_t size) static void filecapture_reset(struct filecapture *fc) { fc->fc_leng = 0; fc->fc_level = 0; fc->fc_nlines = 0; - fc->fc_linestart = 0; + fc->fc_cur = 0; if (fc->fc_tmpfd >= 0) { close(fc->fc_tmpfd); fc->fc_tmpfd = -1; } if (fc->fc_fd >= 0) { @@ -123,13 +123,13 @@ filecapture_flush(struct filecapture *fc) fc->fc_tmpfd = fd; } res = full_write(fc->fc_tmpfd, fc->fc_base, fc->fc_level); if (res) return -1; fc->fc_level = 0; - fc->fc_linestart = 0; + fc->fc_cur = 0; return 0; } static int filecapture_get(struct filecapture *fc, int *feof) { @@ -151,35 +151,35 @@ filecapture_get(struct filecapture *fc, int *feof) *feof = 0; fc->fc_base[fc->fc_level] = c; fc->fc_level++; fc->fc_leng++; if (c == '\n') { if (fc->fc_linemon) - fc->fc_linemon(fc->fc_base + fc->fc_linestart, - fc->fc_level - fc->fc_linestart, + fc->fc_linemon(fc->fc_base + fc->fc_cur, + fc->fc_level - fc->fc_cur, fc->fc_monarg); - fc->fc_linestart = fc->fc_level; + fc->fc_cur = fc->fc_level; fc->fc_nlines++; } return 0; } static int filecapture_put(struct filecapture *fc, int *feof) { - if (fc->fc_level < fc->fc_size) { - int n = write(fc->fc_fd, &fc->fc_base[fc->fc_level], 1); + if (fc->fc_cur < fc->fc_level) { + int n = write(fc->fc_fd, &fc->fc_base[fc->fc_cur], 1); if (n == -1) return -1; if (n == 0) { errno = ENOSPC; return -1; } - fc->fc_level++; + fc->fc_cur++; } - *feof = fc->fc_level == fc->fc_size; + *feof = fc->fc_cur == fc->fc_level; return 0; } void runcap_free(struct runcap *rc) { @@ -425,13 +425,15 @@ runcap_init(struct runcap *rc, int flags) if (flags & RCF_STDIN) { if (rc->rc_cap[RUNCAP_STDIN].fc_size > 0 && rc->rc_cap[RUNCAP_STDIN].fc_fd != -1) { errno = EINVAL; return -1; } - rc->rc_cap[RUNCAP_STDIN].fc_level = 0; + rc->rc_cap[RUNCAP_STDIN].fc_level = + rc->rc_cap[RUNCAP_STDIN].fc_size; + rc->rc_cap[RUNCAP_STDIN].fc_cur = 0; } else if (filecapture_init(&rc->rc_cap[RUNCAP_STDIN], 0)) return -1; if (flags & RCF_STDOUT_SIZE) res = filecapture_alloc(&rc->rc_cap[RUNCAP_STDOUT], rc->rc_cap[RUNCAP_STDOUT].fc_size); @@ -19,13 +19,13 @@ struct filecapture { size_t fc_size; /* size of the buffer */ off_t fc_leng; /* total length of captured data */ size_t fc_nlines; /* number of captured lines */ - size_t fc_linestart; /* current offset in buffer */ + size_t fc_cur; /* current offset in buffer */ char * fc_base; /* buffer space */ size_t fc_level; /* number of characters currently in buffer */ void (*fc_linemon) (const char *, size_t, void *); /* Line monitor function */ void *fc_monarg; /* Line monitor argument */ int fc_tmpfd; /* Storage file descriptor */ @@ -52,18 +52,18 @@ runcap_seek(struct runcap *rc, int stream, off_t off, int whence) return -1; } cur -= fp->fc_level; if (cur <= off && off <= cur + fp->fc_level) { - fp->fc_linestart = off - cur; + fp->fc_cur = off - cur; } else if (fp->fc_tmpfd != -1) { if (lseek(fp->fc_tmpfd, off, SEEK_SET) == -1) return -1; fp->fc_level = 0; - fp->fc_linestart = 0; + fp->fc_cur = 0; } else { errno = EINVAL; return -1; } return 0; } @@ -33,9 +33,9 @@ runcap_tell(struct runcap *rc, int stream) off = lseek(fp->fc_tmpfd, 0, SEEK_CUR); if (off == -1) return -1; } else off = 0; - return off + fp->fc_linestart; + return off + fp->fc_cur; } |