Example #1
0
void stringlist_insert_stringlist_copy(stringlist_type * stringlist, const stringlist_type * src, int pos) {
  int size_old  = stringlist_get_size(stringlist);

  /** Cannot use assert_index here. */
  if(pos < 0 || pos > size_old)
    util_abort("%s: Position %d is out of bounds. Min: 0 Max: %d\n", pos, size_old);
  {
  stringlist_type * start = stringlist_alloc_new();
  stringlist_type * end   = stringlist_alloc_new();
  stringlist_type * newList   = stringlist_alloc_new();
  int i;

  for( i=0; i<pos; i++)
    stringlist_append_ref(start, stringlist_iget(stringlist, i));

  for( i=pos; i<size_old; i++)
    stringlist_append_ref(end  , stringlist_iget(stringlist, i));

  stringlist_append_stringlist_copy(newList, start);
  stringlist_append_stringlist_copy(newList, src  );
  stringlist_append_stringlist_copy(newList, end  );

  stringlist_clear(stringlist);
  stringlist_append_stringlist_copy(stringlist, newList);

  stringlist_free(newList);
  stringlist_free(start);
  stringlist_free(end);
  }
}
Example #2
0
stringlist_type * config_content_item_alloc_stringlist(const config_content_item_type * item, bool copy) {
  const config_content_node_type * node = config_content_item_get_last_node( item );
  stringlist_type * stringlist = stringlist_alloc_new();
  const stringlist_type * src_list = config_content_node_get_stringlist( node );
  
  if (copy)
    stringlist_append_stringlist_copy( stringlist , src_list );
  else
    stringlist_append_stringlist_ref( stringlist , src_list );  
  
  return stringlist;
}
Example #3
0
stringlist_type * config_content_item_alloc_complete_stringlist(const config_content_item_type * item, bool copy) {
  int inode;
  stringlist_type * stringlist = stringlist_alloc_new();
  for (inode = 0; inode < vector_get_size( item->nodes ); inode++) {
    const config_content_node_type * node = config_content_item_iget_node(item , inode);
    const stringlist_type * src_list = config_content_node_get_stringlist( node );
    
    if (copy)
      stringlist_append_stringlist_copy( stringlist , src_list );
    else
      stringlist_append_stringlist_ref( stringlist , src_list );  
    
  }

  return stringlist;
}