========== Cut here - microtek2.patch ==========
*** microtek2.c Tue Apr 6 14:53:06 1999
--- microtek2.c.new Tue Apr 6 14:53:06 1999
***************
*** 1843,1853 ****
pad = (int) ceil( (double) (ms->ppl * bits_pp_in) / 8.0 ) % 2;
bpp = bits_pp_out / 8;
! /* The ScanMaker 636 has 3 * ppl + 6 bytes per line and the X6EL */
! /* 3 * ppl + 2 bytes per line (depth=8, even number of pixels), which
*/
! /* can not be explained by the documentation; bpl_ppl_diff corrects
this */
! if (mi->model_code == 0x91
! && (md->revision == 1.10 || md->revision == 1.20))
bpl_ppl_diff = ms->bpl - ( 3 * ms->ppl * bpp );
else
bpl_ppl_diff = ms->bpl - ( 3 * ms->ppl * bpp ) - pad;
--- 1843,1859 ----
pad = (int) ceil( (double) (ms->ppl * bits_pp_in) / 8.0 ) % 2;
bpp = bits_pp_out / 8;
! /* Some models have 3 * ppl + 6 bytes per line if the number of pixels
*/
! /* per line is even and 3 * ppl + 3 bytes per line if the number of */
! /* pixels per line is odd. According to the documentation it should be
*/
! /* bpl = 3*ppl (even number of pixels) or bpl=3*ppl+1 (odd number of
*/
! /* pixels. Even worse: On different models it different at which */
! /* position in a scanline the image data starts. bpl_ppl_diff tries */
! /* to fix this */
! if ( (mi->model_code == 0x91
! && (md->revision == 1.10 || md->revision == 1.20))
! || (mi->model_code == 0x98
! && (md->revision == 1.10 || md->revision == 1.30) ) )
bpl_ppl_diff = ms->bpl - ( 3 * ms->ppl * bpp );
else
bpl_ppl_diff = ms->bpl - ( 3 * ms->ppl * bpp ) - pad;
================================================
To apply it just cd into sane-pre1.01/backend and type:
$ patch < microtek2.patch
-- Source code, list archive, and docs: http://www.mostang.com/sane/ To unsubscribe: echo unsubscribe sane-devel | mail majordomo@mostang.com