Пример #1
0
int qk_add(struct qk *qk, char *key, ...) {
  va_list ap;
  va_start(ap,key);
  UT_string *k = (UT_string*)utvector_extend(&qk->keys);
  utstring_printf_va(k,key,ap);
  va_end(ap);
}
Пример #2
0
int main() {
  int i;
  UT_string *t;
  UT_vector v; utvector_init(&v, utstring_mm);
  UT_string s; utstring_init(&s);

  for(i=0; i<16; i++) {
    utstring_printf(&s, ".");
    utvector_push(&v, &s);
  }
  dump(&v);

  t = (UT_string*)utvector_head(&v);
  printf("head: %s %s\n", t?"non-null":"null", t?utstring_body(t):"-");

  t = (UT_string*)utvector_tail(&v);
  printf("tail: %s %s\n", t?"non-null":"null", t?utstring_body(t):"-");

  for(i=0; i<16; i++) {
    printf("shift\n");
    utvector_shift(&v);
    t = (UT_string*)utvector_head(&v);
    printf("len: %d, head: %s %s\n", utvector_len(&v), t?"non-null":"null", t?utstring_body(t):"-");
  }

  printf("extend\n");
  t= (UT_string*)utvector_extend(&v);
  utstring_printf(t,"extended");
  t = (UT_string*)utvector_head(&v);
  printf("len: %d, head: %s %s\n", utvector_len(&v), t?"non-null":"null", t?utstring_body(t):"-");

  utvector_fini(&v);
  utstring_done(&s);
  return 0;
}
Пример #3
0
int main() {
  int i;
  UT_string *t;
  UT_vector v; utvector_init(&v, utvector_utstring);
  UT_string s; utstring_init(&s);

  for(i=0; i<16; i++) {
    utstring_printf(&s, ".");
    utvector_push(&v, &s);
  }
  dump(&v);

  t = (UT_string*)utvector_head(&v);
  printf("head: %s %s\n", t?"non-null":"null", t?utstring_body(t):"-");

  t = (UT_string*)utvector_tail(&v);
  printf("tail: %s %s\n", t?"non-null":"null", t?utstring_body(t):"-");

  printf("extend\n");
  t = (UT_string*)utvector_extend(&v);
  utstring_bincpy(t, "hello", 5);
  dump(&v);

  t = (UT_string*)utvector_head(&v);
  printf("head: %s %s\n", t?"non-null":"null", t?utstring_body(t):"-");

  t = (UT_string*)utvector_tail(&v);
  printf("tail: %s %s\n", t?"non-null":"null", t?utstring_body(t):"-");

  utvector_fini(&v);
  utstring_done(&s);
  return 0;
}
Пример #4
0
void nbt_record_tag(struct nbt_tag *tag, off_t pos, uint32_t count, 
                  UT_vector /* of nbt_stack_frame */ *nbt_stack, 
                  UT_vector /* of struct nbt_record */ *records) {

  /* do not record each item of a list; we record the list itself */
  nbt_stack_frame *top;
  top = (nbt_stack_frame*)utvector_tail(nbt_stack);
  if (top && (top->tag.type == TAG_List)) return;

  /* record the tag. prepend stack tags to "fully-qualify" the name */
  struct nbt_record *r = (struct nbt_record*)utvector_extend(records);
  r->tag = *tag;
  r->pos = pos;
  r->count = count;
  nbt_stack_frame *f = NULL;
  while ( (f = (nbt_stack_frame*)utvector_next(nbt_stack,f))) {
    utstring_printf(&r->fqname, "%.*s.", (int)f->tag.len, f->tag.name);
  }
  utstring_printf(&r->fqname, "%.*s", (int)tag->len, tag->name);
}
Пример #5
0
int main() {
  int i; 
  UT_string *t; 
  UT_vector v; utvector_init(&v, utvector_utstring);
  UT_string s; utstring_init(&s);

  for(i=0; i<16; i++) {
    utstring_printf(&s, ".");
    utvector_push(&v, &s);
  }
  dump(&v);

  printf("extend\n");
  t = (UT_string*)utvector_extend(&v);
  utstring_bincpy(t, "hello", 5);
  dump(&v);

  utvector_fini(&v);
  utstring_done(&s);
  return 0;
}
Пример #6
0
void utvector_push(UT_vector *v, void *e) {
  void *b  = utvector_extend(v);
  if (v->mm.copy) v->mm.copy(b, e, 1);
  else            memcpy(b, e, v->mm.sz);
}