93   for (j = 0; j < level; j++)
 
   97     fprintf(file, 
"+-- osl_generic_t\n");
 
   99     fprintf(file, 
"+-- NULL generic\n");
 
  101   while (
generic != NULL) {
 
  104       for (j = 0; j < level; j++)
 
  105         fprintf(file, 
"|\t");
 
  106       fprintf(file, 
"|   osl_generic_t\n");
 
  113     for(j = 0; j <= level + 1; j++)
 
  114       fprintf(file, 
"|\t");
 
  119     if (generic->interface != NULL)
 
  120       generic->interface->idump(file, generic->data, level + 1);
 
  122     generic = 
generic->next;
 
  125     if (
generic != NULL) {
 
  126       for (j = 0; j <= level; j++)
 
  127         fprintf(file, 
"|\t");
 
  128       fprintf(file, 
"V\n");
 
  133   for (j = 0; j <= level; j++)
 
  134     fprintf(file, 
"|\t");
 
  159   int high_water_mark = OSL_MAX_STRING;
 
  160   char * 
string = NULL, * content;
 
  161   char buffer[OSL_MAX_STRING];
 
  163   OSL_malloc(
string, 
char *, high_water_mark * 
sizeof(
char));
 
  166   while (
generic != NULL) {
 
  167     if (generic->interface != NULL) {
 
  168       content = 
generic->interface->sprint(generic->data);
 
  169       if (content != NULL) {
 
  170         sprintf(buffer, 
"<%s>\n", generic->interface->URI);
 
  174         sprintf(buffer, 
"</%s>\n", generic->interface->URI);
 
  178     generic = 
generic->next;
 
  179     if (
generic != NULL) {
 
  180       sprintf(buffer, 
"\n");
 
  200   if (
string != NULL) {
 
  201     fprintf(file, 
"%s", 
string);
 
  220   if (
string != NULL) {
 
  221     fprintf(file, 
"<arrays>\n%s</arrays>\n", 
string);
 
  246   while (**input != 
'\0') {
 
  268   char * content, * temp;
 
  273   if ((tag == NULL) || (strlen(tag) < 1) || (tag[0] == 
'/')) {
 
  274     OSL_debug(
"empty tag name or closing tag instead of an opening one");
 
  282   if (interface == NULL) {
 
  283     OSL_warning(
"unsupported generic");
 
  284     fprintf(stderr, 
"[osl] Warning: unknown URI \"%s\".\n", tag);
 
  289     generic->data = interface->
sread(&temp);
 
  311   char * content, * temp;
 
  316   if ((tag == NULL) || (strlen(tag) < 1) || (tag[0] == 
'/')) {
 
  317     OSL_debug(
"empty tag name or closing tag instead of an opening one");
 
  325   if (interface == NULL) {
 
  326     OSL_warning(
"unsupported generic");
 
  327     fprintf(stderr, 
"[osl] Warning: unknown URI \"%s\".\n", tag);
 
  332     generic->data = interface->
sread(&temp);
 
  351   char * generic_string, * temp;
 
  355   temp = generic_string;
 
  357   free(generic_string);
 
  378   if (
generic != NULL) {
 
  381     while (check != NULL) {
 
  382       if ((check->interface == NULL) || (check->interface->URI == NULL))
 
  383         OSL_error(
"no interface or URI in a generic to add to a list");
 
  387         OSL_error(
"only one generic with a given URI is allowed");
 
  392       while (tmp->
next != NULL)
 
  413   if (
generic != NULL) {
 
  418         *list = 
generic->
next;
 
  426       while (tmp->
next!=
generic && tmp->
next != NULL)
 
  429       if(tmp->
next==
generic){
 
  435         OSL_warning(
"generic not found in the list\n");
 
  476   generic->interface = NULL;
 
  477   generic->data      = NULL;
 
  478   generic->next      = NULL;
 
  492   while (
generic != NULL) {
 
  493     next = 
generic->
next;
 
  494     if (generic->interface != NULL) {
 
  499       if (generic->data != NULL) {
 
  500         OSL_warning(
"unregistered interface, memory leaks are possible");
 
  525   while (
generic != NULL) {
 
  527     generic = 
generic->next;
 
  545   while (
generic != NULL) { 
 
  546     if (generic->interface != NULL) {
 
  547       x = 
generic->interface->
clone(generic->data);
 
  550       new->interface = interface;
 
  555       OSL_warning(
"unregistered interface, cloning ignored");
 
  557     generic = 
generic->next;
 
  572   int generic_number = 0;
 
  579   return generic_number;
 
  593   int x1_generic_number, x2_generic_number;
 
  603   if (x1_generic_number != x2_generic_number)
 
  610     while ((x2 != NULL) && (found != 1)) {
 
  616           OSL_warning(
"unregistered generic, " 
  617                       "cannot state generic equality");
 
  651       (x->interface == NULL) ||
 
  652       (x->interface->URI == NULL) ||
 
  653       (strcmp(x->interface->URI, URI)))
 
  692   if ((data == NULL) || (interface == NULL))
 
  693     OSL_warning(
"shell created with some empty elements inside");
 
  696   generic->data = data;
 
  697   generic->interface = interface;
 
int osl_interface_equal(osl_interface_p interface1, osl_interface_p interface2)
osl_interface_p osl_interface_nclone(osl_interface_p interface, int n)
char * osl_util_read_uptoendtag(FILE *file, char **str, char *name)
int osl_generic_number(osl_generic_p generic)
void osl_interface_free(osl_interface_p interface)
char * osl_arrays_sprint(osl_arrays_p arrays)
char * osl_generic_sprint(osl_generic_p generic)
osl_generic_p osl_generic_shell(void *data, osl_interface_p interface)
osl_interface_p osl_interface_clone(osl_interface_p interface)
osl_generic_p osl_generic_malloc()
void * osl_generic_lookup(osl_generic_p x, char const *const URI)
osl_interface_p osl_interface_lookup(osl_interface_p list, char *URI)
void osl_generic_add(osl_generic_p *list, osl_generic_p generic)
void osl_interface_idump(FILE *file, osl_interface_p interface, int level)
int osl_generic_has_URI(osl_const_generic_const_p x, char const *const URI)
int osl_generic_count(osl_generic_p x)
void osl_util_safe_strcat(char **dst, char *src, int *hwm)
osl_generic_p osl_generic_read(FILE *file, osl_interface_p registry)
osl_generic_p osl_generic_read_one(FILE *file, osl_interface_p registry)
void osl_generic_remove(osl_generic_p *list, char *URI)
void osl_generic_remove_node(osl_generic_p *list, osl_generic_p generic)
void osl_generic_idump(FILE *file, osl_generic_p generic, int level)
osl_interface_p interface
struct osl_generic * next
void osl_generic_dump(FILE *file, osl_generic_p generic)
osl_generic_p osl_generic_sread(char **input, osl_interface_p registry)
struct osl_generic const *const osl_const_generic_const_p
void osl_generic_print_options_scoplib(FILE *file, osl_generic_p generic)
osl_generic_p osl_generic_sread_one(char **input, osl_interface_p registry)
char * osl_util_read_tag(FILE *file, char **str)
int osl_generic_equal(osl_generic_p x1, osl_generic_p x2)
osl_generic_p osl_generic_clone(osl_generic_p generic)
void osl_generic_print(FILE *file, osl_generic_p generic)
void osl_generic_free(osl_generic_p generic)