* backend/umax_pp_low.c: handled 'short read' with ppdev

* backend/umax_pp.c: assign size of 0 to group options
	* tools/umax_pp.c: upped version number
DEVEL_2_0_BRANCH-1
Stéphane Voltz 2002-08-15 08:32:08 +00:00
rodzic b67f0a2123
commit e4b1534faa
3 zmienionych plików z 18 dodań i 5 usunięć

Wyświetl plik

@ -350,6 +350,7 @@ init_options (Umax_PP_Device * dev)
dev->opt[OPT_MODE_GROUP].name = "";
dev->opt[OPT_MODE_GROUP].desc = "";
dev->opt[OPT_MODE_GROUP].type = SANE_TYPE_GROUP;
dev->opt[OPT_MODE_GROUP].size = 0;
dev->opt[OPT_MODE_GROUP].constraint_type = SANE_CONSTRAINT_NONE;
/* scan mode */
@ -397,6 +398,7 @@ init_options (Umax_PP_Device * dev)
dev->opt[OPT_GEOMETRY_GROUP].desc = "";
dev->opt[OPT_GEOMETRY_GROUP].name = "";
dev->opt[OPT_GEOMETRY_GROUP].type = SANE_TYPE_GROUP;
dev->opt[OPT_GEOMETRY_GROUP].size = 0;
dev->opt[OPT_GEOMETRY_GROUP].constraint_type = SANE_CONSTRAINT_NONE;
/* top-left x */
@ -445,6 +447,7 @@ init_options (Umax_PP_Device * dev)
dev->opt[OPT_ENHANCEMENT_GROUP].desc = "";
dev->opt[OPT_ENHANCEMENT_GROUP].name = "";
dev->opt[OPT_ENHANCEMENT_GROUP].type = SANE_TYPE_GROUP;
dev->opt[OPT_ENHANCEMENT_GROUP].size = 0;
dev->opt[OPT_ENHANCEMENT_GROUP].cap |= SANE_CAP_ADVANCED;
dev->opt[OPT_ENHANCEMENT_GROUP].constraint_type = SANE_CONSTRAINT_NONE;

Wyświetl plik

@ -1700,7 +1700,7 @@ static void
EPPReadBuffer (int size, unsigned char *dest)
{
#ifdef HAVE_LINUX_PPDEV_H
int fd, mode, rc;
int fd, mode, rc, nb;
unsigned char bval;
#endif
int control;
@ -1724,7 +1724,12 @@ EPPReadBuffer (int size, unsigned char *dest)
#endif
mode = IEEE1284_MODE_EPP | IEEE1284_DATA;
rc = ioctl (fd, PPSETMODE, &mode);
rc = read (fd, dest, size - 1);
nb = 0;
while (nb < size - 1)
{
rc = read (fd, dest + nb, size - 1 - nb);
nb += rc;
}
mode = 0; /* forward */
rc = ioctl (fd, PPDATADIR, &mode);
@ -1889,7 +1894,7 @@ static void
EPPRead32Buffer (int size, unsigned char *dest)
{
#ifdef HAVE_LINUX_PPDEV_H
int fd, mode, rc;
int fd, mode, rc,nb;
unsigned char bval;
#endif
int control;
@ -1919,7 +1924,12 @@ EPPRead32Buffer (int size, unsigned char *dest)
#endif
mode = IEEE1284_MODE_EPP | IEEE1284_DATA;
rc = ioctl (fd, PPSETMODE, &mode);
rc = read (fd, dest, size - 4);
nb=0;
while(nb<size-4)
{
rc = read (fd, dest+nb, size - 4-nb);
nb+=rc;
}
rc = read (fd, dest + size - 4, 3);

Wyświetl plik

@ -367,7 +367,7 @@ main (int argc, char **argv)
}
if (trace)
{
printf ("UMAX 1220P scanning program version 2.10 starting ...\n");
printf ("UMAX 1220P scanning program version 2.15 starting ...\n");
#ifdef HAVE_LINUX_PPDEV_H
printf ("ppdev character device built-in.\n");
#endif