* lib/exclude.c (struct exclude_pattern, free_exclude_segment)
(file_pattern_matches, add_exclude, add_exclude_fp):
* lib/getusershell.c (line_size, readname):
+ * lib/linebuffer.c (readlinebuffer_delim):
+ * lib/linebuffer.h (struct linebuffer):
Prefer idx_t to size_t for indexes, and use idx_t-related allocators.
* lib/basename.c: Do not include xstrndup.h.
(basename): Simplify by always using memcpy.
(x2nrealloc): Moved here from xalloc.h.
* modules/xalloc (Depends-on): Add ialloc.
* modules/dirname (Depends-on): Removbe xstrndup.
+ * modules/linebuffer (Depends-on): Add idx.
ialloc: new module
* lib/ialloc.c, lib/ialloc.h, modules/ialloc: New files.
}
if (p == end)
{
- size_t oldsize = linebuffer->size;
- buffer = x2realloc (buffer, &linebuffer->size);
+ idx_t oldsize = linebuffer->size;
+ buffer = xpalloc (buffer, &linebuffer->size, 1, -1, 1);
p = buffer + oldsize;
linebuffer->buffer = buffer;
end = buffer + linebuffer->size;
#if !defined LINEBUFFER_H
# define LINEBUFFER_H
+# include "idx.h"
# include <stdio.h>
/* A 'struct linebuffer' holds a line of text. */
struct linebuffer
{
- size_t size; /* Allocated. */
- size_t length; /* Used. */
+ idx_t size; /* Allocated. */
+ idx_t length; /* Used. */
char *buffer;
};