Lines Matching defs:current

76 file_block_read (struct file_data *current, size_t size)
78 if (size && ! current->eof)
80 size_t s = block_read (current->desc,
81 FILE_BUFFER (current) + current->buffered, size);
83 pfatal_with_name (current->name);
84 current->buffered += s;
85 current->eof = s < size;
97 /* Get ready to read the current file.
102 sip (struct file_data *current, bool skip_test)
105 if (current->desc < 0)
108 current->bufsize = sizeof (word);
109 current->buffer = xmalloc (current->bufsize);
113 current->bufsize = buffer_lcm (sizeof (word),
114 STAT_BLOCKSIZE (current->stat),
116 current->buffer = xmalloc (current->bufsize);
122 bool was_binary = set_binary_mode (current->desc, 1);
124 file_block_read (current, current->bufsize);
125 buffered = current->buffered;
134 if (lseek (current->desc, - buffered, SEEK_CUR) == -1)
135 pfatal_with_name (current->name);
136 set_binary_mode (current->desc, 0);
137 current->buffered = 0;
138 current->eof = 0;
141 return binary_file_p (current->buffer, buffered);
145 current->buffered = 0;
146 current->eof = 0;
150 /* Slurp the rest of the current file completely into memory. */
153 slurp (struct file_data *current)
157 if (current->desc < 0)
163 if (S_ISREG (current->stat.st_mode))
170 size_t file_size = current->stat.st_size;
172 if (file_size != current->stat.st_size || cc < file_size
176 if (current->bufsize < cc)
178 current->bufsize = cc;
179 current->buffer = xrealloc (current->buffer, cc);
186 if (current->buffered <= file_size)
188 file_block_read (current, file_size + 1 - current->buffered);
189 if (current->buffered <= file_size)
197 file_block_read (current, current->bufsize - current->buffered);
199 if (current->buffered)
201 while (current->buffered == current->bufsize)
203 if (PTRDIFF_MAX / 2 - sizeof (word) < current->bufsize)
205 current->bufsize *= 2;
206 current->buffer = xrealloc (current->buffer, current->bufsize);
207 file_block_read (current, current->bufsize - current->buffered);
212 cc = current->buffered + 2 * sizeof (word);
213 current->bufsize = cc - cc % sizeof (word);
214 current->buffer = xrealloc (current->buffer, current->bufsize);
223 find_and_hash_each_line (struct file_data *current)
226 unsigned char const *p = (unsigned char const *) current->prefix_end;
232 char const **linbuf = current->linbuf;
233 lin alloc_lines = current->alloc_lines;
235 lin linbuf_base = current->linbuf_base;
240 char const *suffix_begin = current->suffix_begin;
241 char const *bufend = FILE_BUFFER (current) + current->buffered;
396 && current->missing_newline
471 current->buffered_lines = line;
506 current->linbuf = linbuf;
507 current->valid_lines = line;
508 current->alloc_lines = alloc_lines;
509 current->equivs = cureqs;
522 prepare_text (struct file_data *current)
524 size_t buffered = current->buffered;
525 char *p = FILE_BUFFER (current);
529 current->missing_newline = 0;
533 current->missing_newline = 1;
554 current->buffered = buffered;