Newer
Older
**
** Made by Seblu
** Login <seblu@epita.fr>
**
** Started on Wed Aug 2 01:25:01 2006 Seblu
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
/*!
** Secure layer over strlen
**
** @param s the string
**
** @return lenght of the string
*/
#define sstrlen(s) ((s) == NULL ? 0 : strlen(s))
static void buf_str(char **str, char *append, unsigned n)
if ((*str = realloc(*str, (ln + n + 1) * sizeof (char))) == NULL)
exit(1);
for (i = ln, j = 0; i < ln + n; i++, j++)
(*str)[i] = append[j];
(*str)[ln + n] = 0;
}
new_buf->fd = fd;
new_buf->size = 0;
new_buf->offset = 0;
return new_buf;
}
{
char *string = NULL;
int i;
do
{
for (i = buf->offset; i < buf->size; i++)
{
if (buf->data[i] == '\n')
{
buf_str(&string, buf->data + buf->offset, i - buf->offset + 1);
buf->offset = i + 1;
return string;
}
}
if (buf->size - buf->offset > 0)
buf_str(&string, buf->data + buf->offset, buf->size - buf->offset);