X-Git-Url: https://git.cworth.org/git?p=tar;a=blobdiff_plain;f=src%2Ftar.h;fp=src%2Ftar.h;h=ce9850c968533db8b49ddc0b9f78e81c6333cabc;hp=7f72f3ef723e54ec0fa84b4bc2530660cfb92cfc;hb=b414e25de8ca49d7567a92c203d431383ec57c83;hpb=29ece34f44a27750bbfd76154ad9882580453dc7 diff --git a/src/tar.h b/src/tar.h index 7f72f3e..ce9850c 100644 --- a/src/tar.h +++ b/src/tar.h @@ -265,7 +265,7 @@ enum archive_format struct sp_array { off_t offset; - size_t numbytes; + off_t numbytes; }; struct xheader @@ -311,12 +311,32 @@ struct tar_stat_info /* Extended headers */ struct xheader xhdr; - + /* For dumpdirs */ bool is_dumpdir; /* Is the member a dumpdir? */ bool skipped; /* The member contents is already read (for GNUTYPE_DUMPDIR) */ char *dumpdir; /* Contents of the dump directory */ + + /* Parent directory, if creating an archive. This is null if the + file is at the top level. */ + struct tar_stat_info *parent; + + /* Directory stream. If this is not null, it is in control of FD, + and should be closed instead of FD. */ + DIR *dirstream; + + /* File descriptor, if creating an archive, and if a directory or a + regular file or a contiguous file. + + It is zero if no file descriptor is available, either because it + was never needed or because it was open and then closed to + conserve on file descriptors. (Standard input is never used + here, so zero cannot be a valid file descriptor.) + + It is negative if it could not be reopened after it was closed. + Negate it to find out what errno was when the reopen failed. */ + int fd; }; union block