Beispiel #1
0
static int
merge_token(token_t *t, glw_root_t *gr, token_t **p, token_t **fp,
            const token_attrib_t *a)
{
  if(*fp == NULL) {
    *fp = t;
    if(t->t_int) {
      t->t_set = t->t_attrib->attrib;
      t->t_clr = 0;
    } else {
      t->t_set = 0;
      t->t_clr = t->t_attrib->attrib;
    }
    t->t_attrib = a;
    t->type = TOKEN_MOD_FLAGS;
    return 0;
  } else {
    if(t->t_int) {
      (*fp)->t_set |= t->t_attrib->attrib;
    } else {
      (*fp)->t_clr |= t->t_attrib->attrib;
    }
    *p = t->next;
    glw_view_token_free(gr, t);
    return 1;
  }
}
Beispiel #2
0
static void
glw_view_free_chain2(glw_root_t *gr, token_t *t, int indent)
{
  token_t *n;

  for(; t != NULL; t = n) {
    n = t->next;
    if(t->child != NULL)
      glw_view_free_chain2(gr, t->child, indent + 2);

    //    printf("%*.sFree: %p\n", indent, "",  t);
    //    printf("%*.sFree: %s\n", indent, "",  token2name(t));
    glw_view_token_free(gr, t);
  }
}