1 --- avrdude-5.5/usbtiny.c 2007-10-29 09:40:04.000000000 -0600
2 +++ avrdude-5.5.patched/usbtiny.c 2008-01-06 07:13:41.000000000 -0700
4 fprintf( stderr, "Operation %d not defined for this chip!\n", op );
7 - memset(cmd, 0, sizeof(cmd));
9 avr_set_bits(p->op[op], cmd);
11 return pgm->cmd(pgm, cmd, res);
15 // Make sure its empty so we don't read previous calls if it fails
16 - memset(res, '\0', sizeof(res) );
17 + memset(res, '\0', 4 );
19 nbytes = usb_in( USBTINY_SPI,
20 (cmd[1] << 8) | cmd[0], // convert to 16-bit words
21 (cmd[3] << 8) | cmd[2], // "
22 - res, sizeof(res), 8 * sck_period );
23 + res, 4, 8 * sck_period );
25 // print out the data we sent and received
26 - printf( "CMD: [%02x %02x %02x %02x] [%02x %02x %02x %02x]\n",
27 + printf( "CMD: [%02x %02x %02x %02x] [%02x %02x %02x %02x] \n",
28 cmd[0], cmd[1], cmd[2], cmd[3],
29 res[0], res[1], res[2], res[3] );
31 - return ((nbytes == sizeof(res)) && // should have read 4 bytes
32 + return ((nbytes == 4) && // should have read 4 bytes
33 res[2] == cmd[1]); // AVR's do a delayed-echo thing