Lines Matching refs:mine
86 struct read_file_data *mine;
118 mine = (struct read_file_data *)calloc(1,
119 sizeof(*mine) + strlen(filename));
121 if (mine == NULL || b == NULL) {
123 free(mine);
127 strcpy(mine->filename, filename);
128 mine->block_size = block_size;
129 mine->buffer = b;
130 mine->fd = fd;
132 mine->st_mode = st.st_mode;
150 mine->can_skip = 1;
152 return (archive_read_open2(a, mine,
159 struct read_file_data *mine = (struct read_file_data *)client_data;
162 *buff = mine->buffer;
163 bytes_read = read(mine->fd, mine->buffer, mine->block_size);
165 if (mine->filename[0] == '\0')
169 mine->filename);
182 struct read_file_data *mine = (struct read_file_data *)client_data;
185 if (!mine->can_skip) /* We can't skip, so ... */
189 request = (request / mine->block_size) * mine->block_size;
197 if (((old_offset = lseek(mine->fd, 0, SEEK_CUR)) < 0) ||
198 ((new_offset = lseek(mine->fd, request, SEEK_CUR)) < 0))
201 mine->can_skip = 0;
219 if (mine->filename[0] == '\0')
227 mine->filename);
236 struct read_file_data *mine = (struct read_file_data *)client_data;
241 if (mine->fd >= 0) {
252 if (!S_ISREG(mine->st_mode)
253 && !S_ISCHR(mine->st_mode)
254 && !S_ISBLK(mine->st_mode)) {
257 bytesRead = read(mine->fd, mine->buffer,
258 mine->block_size);
262 if (mine->filename[0] != '\0')
263 close(mine->fd);
265 free(mine->buffer);
266 free(mine);