diff options
Diffstat (limited to 'backend/escl/escl_capabilities.c')
| -rw-r--r-- | backend/escl/escl_capabilities.c | 11 | 
1 files changed, 9 insertions, 2 deletions
| diff --git a/backend/escl/escl_capabilities.c b/backend/escl/escl_capabilities.c index 7422896..efbd547 100644 --- a/backend/escl/escl_capabilities.c +++ b/backend/escl/escl_capabilities.c @@ -325,7 +325,8 @@ print_support(xmlNode *node)              cpt++;  	}  	else if (!strcmp((const char *)node->name, "Normal")) { -            sup->normal = atoi((const char *)xmlNodeGetContent(node)); +            sup->value = atoi((const char *)xmlNodeGetContent(node)); +            sup->normal = sup->value;              cpt++;              have_norm = 1;  	} @@ -338,7 +339,8 @@ print_support(xmlNode *node)      if (cpt == 4)          return sup;      if (cpt == 3 && have_norm == 0) { -	sup->normal = (sup->max / 2 ); +	sup->value = (sup->max / 2 ); +	sup->normal = sup->value;          return sup;      }      free(sup); @@ -428,6 +430,10 @@ print_xml_c(xmlNode *node, ESCL_Device *device, capabilities_t *scanner, int typ              if (find_nodes_c(node) && type != -1)                  find_true_variables(node, scanner, type);          } +        if (!strcmp((const char *)node->name, "Version")&& node->ns && node->ns->prefix){ +            if (!strcmp((const char*)node->ns->prefix, "pwg")) +                device->version = atof ((const char *)xmlNodeGetContent(node)); +	}          if (!strcmp((const char *)node->name, "MakeAndModel")){              device->model_name = strdup((const char *)xmlNodeGetContent(node));  	} @@ -582,6 +588,7 @@ escl_capabilities(ESCL_Device *device, char *blacklist, SANE_Status *status)          strstr(header->memory, "Server: HP_Compact_Server"))          device->hack = curl_slist_append(NULL, "Host: localhost"); +    device->version = 0.0;      scanner->source = 0;      scanner->Sources = (SANE_String_Const *)malloc(sizeof(SANE_String_Const) * 4);      for (i = 0; i < 4; i++) | 
