Example #1
0
void		*GetOffsetLink( GenLinkedOffsetList *pList, void *elem)
/* Return the link pointer contained within element e for pList, or NULL if it is 0. */
{
size_t		nextOffset;

	nextOffset = GETOFFSET( elem, pList->LinkOffset);

	return nextOffset ? (char*) elem + nextOffset : NULL;
}
Example #2
0
int						get_next_line(int fd, char **line)
{
	static t_buf		save[MAX_FILES];
	char				*buffer;
	char				*tmp2;
	char				*br;
	ssize_t				ret;

	X;
	if (!GETBUF(fd))
		GETBUF(fd) = ft_memalloc(1);
	while (!(br = ft_strchr(GETOFFSET(fd), '\n'))
		&& (ret = read(fd, buffer, BUFF_SIZE)) > 0)
	{
		GETREAD(fd) += ret;
		buffer[ret] = '\0';
		SWAP(GETBUF(fd), ft_strjoin(GETOFFSET(fd), buffer), tmp2);
		GETREADED(fd) = 0;
	}
	if (ft_strlen(GETOFFSET(fd)) == 0 && ret == 0)
		OHOHOHAHAHAH;
	if (GETREAD(fd) == -1 || ret < 0
		|| (ret = ft_cpybuf(GETOFFSET(fd), line, br, save[fd])) == -1)
		return (-1);
	GETREADED(fd) += (GETOFFSET(fd)[ret] != 0) ? ret + 1 : ret;
	GETREAD(fd) -= (GETOFFSET(fd)[ret] != 0) ? ret + 1 : ret;
	return (1);
}
Example #3
0
static void	AssignOffsetLink( void *elem, void *link, size_t linkOffset)
// Assign link to elem as an offset from elem. Assign 0 to elem if link is NULL.
{
	GETOFFSET( elem, linkOffset) = link ? (size_t) link - (size_t) elem : 0;
}