Public feed #603638

Mine

public text v1 · immutable
Raw Edit
·published 2007-07-04 23:16 UTC
rendered paste body
#ifdef TELLDIR_TAKES_CONST_DIR
long telldir(const DIR *dir)
#else
long telldir(DIR *dir)
#endif
{
        struct dir_buf *d = (struct dir_buf *)dir;
        if (d->ofs >= d->nbytes) {
                d->seekpos = lseek(d->fd, 0, SEEK_CUR);
                d->ofs = 0;
                d->nbytes = 0;
        }
        /* this relies on seekpos always being a multiple of
           DIR_BUF_SIZE. Is that always true on BSD systems? */
        if (d->seekpos & (DIR_BUF_SIZE-1)) {
                abort();
        }
        return d->seekpos + d->ofs;
}


(gdb) print *d
$15 = {fd = 24, nbytes = 56, ofs = 40, seekpos = <error type>, 
  buf = "\003\000\000\000\f\000\004\001.\000 2\003\000\000\000\f\000\004\002..\000 \004\000\000\000\020\000\004\005Video\0003\n\005\000\000\000\020\000\004\005Audio\00063", '\0' <repeats 188 times>, "g\002(\000=\032\001\000\001\000\000\000��\000\000��\000\000Media\000", '�' <repeats 242 times>}