Magellan Linux

Annotation of /trunk/sane-backends/patches/sane-backends-1.0.22-xerox-mfp-usb.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1420 - (hide annotations) (download)
Fri Jul 15 11:51:22 2011 UTC (12 years, 11 months ago) by niro
File size: 2308 byte(s)
added patches for 1.0.22
1 niro 1420 From 5ea227caeacd504b64eef301e83fa63e0a25b3f7 Mon Sep 17 00:00:00 2001
2     From: Alex Belkin <abc@telekom.ru>
3     Date: Tue, 8 Mar 2011 17:57:19 +0300
4     Subject: [PATCH] keep usb device by default (correct for bug introduced by tcp sub-backend
5    
6     ---
7     backend/xerox_mfp.c | 27 +++++++++++----------------
8     1 files changed, 11 insertions(+), 16 deletions(-)
9    
10     diff --git a/backend/xerox_mfp.c b/backend/xerox_mfp.c
11     index e08b50f..d4672a7 100644
12     --- a/backend/xerox_mfp.c
13     +++ b/backend/xerox_mfp.c
14     @@ -37,10 +37,10 @@
15     static const SANE_Device **devlist = NULL; /* sane_get_devices array */
16     static struct device *devices_head = NULL; /* sane_get_devices list */
17    
18     -transport available_transports[] = {
19     +enum { TRANSPORT_USB, TRANSPORT_TCP, TRANSPORTS_MAX };
20     +transport available_transports[TRANSPORTS_MAX] = {
21     { "usb", usb_dev_request, usb_dev_open, usb_dev_close, usb_configure_device },
22     { "tcp", tcp_dev_request, tcp_dev_open, tcp_dev_close, tcp_configure_device },
23     - { 0 }
24     };
25    
26     static int resolv_state(int state)
27     @@ -824,7 +824,13 @@ free_devices (void)
28     devices_head = NULL;
29     }
30    
31     -/* SANE API ignores return code of this callback */
32     +static transport *tr_from_devname(SANE_String_Const devname)
33     +{
34     + if (strncmp("tcp", devname, 3) == 0)
35     + return &available_transports[TRANSPORT_TCP];
36     + return &available_transports[TRANSPORT_USB];
37     +}
38     +
39     static SANE_Status
40     list_one_device (SANE_String_Const devname)
41     {
42     @@ -839,12 +845,7 @@ list_one_device (SANE_String_Const devname)
43     return SANE_STATUS_GOOD;
44     }
45    
46     - for (tr = available_transports; tr->ttype; tr++) {
47     - if (!strncmp (devname, tr->ttype, strlen(tr->ttype)))
48     - break;
49     - }
50     - if (!tr->ttype)
51     - return SANE_STATUS_INVAL;
52     + tr = tr_from_devname(devname);
53    
54     dev = calloc (1, sizeof (struct device));
55     if (dev == NULL)
56     @@ -878,13 +879,7 @@ list_one_device (SANE_String_Const devname)
57     static SANE_Status
58     list_conf_devices (UNUSED (SANEI_Config * config), const char *devname)
59     {
60     - transport *tr;
61     -
62     - for (tr = available_transports; tr->ttype; tr++) {
63     - if (!strncmp (devname, tr->ttype, strlen(tr->ttype)))
64     - return tr->configure_device(devname, list_one_device);
65     - }
66     - return SANE_STATUS_INVAL;
67     + return tr_from_devname(devname)->configure_device(devname, list_one_device);
68     }
69    
70     SANE_Status
71     --
72     1.7.1
73