Ejemplo n.º 1
0
int					get_next_line(const int fd, char **line)
{
	static t_block	*start;
	t_block			*iter;
	char			buffer[BUFF_SIZE + 1];
	int				bytes;

	CHECK_IF(fd >= 0 || line);
	iter = block_initial(&start, fd);
	while ((bytes = read(iter->fd, &buffer, BUFF_SIZE)) > 0)
	{
		buffer[bytes] = '\0';
		CHECK_IF(iter->temp = ft_strjoin(iter->str, buffer));
		free(iter->str);
		CHECK_IF(iter->str = ft_strdup(iter->temp));
		free(iter->temp);
		iter->temp = NULL;
		if (ft_strchr(buffer, '\n'))
			break ;
	}
	CHECK_IF(bytes >= 0);
	if (!bytes && !iter->str)
	{
		iter->fd = 0;
		return (0);
	}
	return (final_read(&iter, line));
}
Ejemplo n.º 2
0
static int			final_read(t_block **iter, char **line)
{
	int			i;

	i = 0;
	while ((*iter)->str[i] && (*iter)->str[i] != '\n')
		i++;
	if ((*iter)->str[i] == '\n')
	{
		CHECK_IF(*line = ft_strsub((*iter)->str, 0, i));
		CHECK_IF((*iter)->temp = ft_strdup((*iter)->str + i + 1));
		free((*iter)->str);
		(*iter)->str = (*iter)->temp;
		(*iter)->temp = NULL;
	}
	else if (!(*iter)->str[i])
	{
		if (i == 0)
			return (0);
		CHECK_IF(*line = ft_strdup((*iter)->str));
		free((*iter)->str);
		(*iter)->str = NULL;
	}
	return (1);
}
Ejemplo n.º 3
0
// not really a func
response func_list(cell_t **cp, context_t *ctx) {
  PRE(list);
  if(c->priority) {
    CHECK_PRIORITY(c->priority);

    // commit - force everything in this branch
    ctx->priority = PRIORITY_TOP;
    c->priority = 0;
  }

  // if(ctx->t == T_ANY && ctx->t == T_LIST) return SUCCESS; // *** always fails
  CHECK_IF(!check_type(ctx->t, T_RETURN), FAIL);
  csize_t n = list_size(c);
  if(n == 0) return SUCCESS;

  ctx->alt_set = c->value.alt_set;
  COUNTUP(i, n) {
    CHECK(reduce_ptr(c, i, ctx_pos(&CTX(any), ctx->pos)));
    CHECK_IF(as_conflict(ctx->alt_set), FAIL);
  }
Ejemplo n.º 4
0
int main(void) {

  char *p;

  (long *)p = long_arr; /* { dg-warning "target of assignment not really an lvalue" } */
  ((long *)p)++;        /* { dg-warning "target of assignment not really an lvalue" } */
  *(long *)p = -1;

  *p = -2;
  CHECK_IF(p[-1] == 0 && p[0] == -2 && p[1] == -1);

  (long *)p += 2;  /* { dg-warning "target of assignment not really an lvalue" } */
  (long *)p -= 2;  /* { dg-warning "target of assignment not really an lvalue" } */

  long x = 0;
  f((int)x);
  CHECK_IF(global == 78);
  
  return 0;
}
Ejemplo n.º 5
0
int main(void) {
  signed int *vec = reinterpret_cast<signed int *>(&vx_g.v);
  CHECK_IF(vx_g.x == 20 && vx_g.y == 16);
  CHECK_IF(vec[0] == 11 && vec[1] == 12 && vec[2] == 13 && vec[3] == 14);
  return 0;
}