@@ -386,8 +386,7 @@ static const KmouseProt exps2Prot = {
386386#define PSM_4DPLUS_ID 8
387387
388388static const unsigned char ps2_init [] = {
389- PSMC_ENABLE_DEV ,
390- 0 ,
389+ PSMC_ENABLE_DEV
391390};
392391
393392#define NINIT_PS2 1
@@ -397,7 +396,6 @@ static const unsigned char wheel_3button_init[] = {
397396 PSMC_SET_SAMPLING_RATE , 100 ,
398397 PSMC_SET_SAMPLING_RATE , 80 ,
399398 PSMC_SEND_DEV_ID ,
400- 0 ,
401399};
402400
403401#define NINIT_IMPS2 4
@@ -410,7 +408,6 @@ static const unsigned char wheel_5button_init[] = {
410408 PSMC_SET_SAMPLING_RATE , 200 ,
411409 PSMC_SET_SAMPLING_RATE , 80 ,
412410 PSMC_SEND_DEV_ID ,
413- 0
414411};
415412
416413#define NINIT_EXPS2 7
@@ -419,7 +416,6 @@ static const unsigned char intelli_init[] = {
419416 PSMC_SET_SAMPLING_RATE , 200 ,
420417 PSMC_SET_SAMPLING_RATE , 100 ,
421418 PSMC_SET_SAMPLING_RATE , 80 ,
422- 0
423419};
424420
425421#define NINIT_INTELLI 3
@@ -458,7 +454,7 @@ static Bool ps2Init(KdMouseInfo * mi)
458454 int ninit ;
459455
460456 /* Send Intellimouse initialization sequence */
461- MouseWriteBytes (km -> iob .fd , intelli_init , strlen (( char * ) intelli_init ),
457+ MouseWriteBytes (km -> iob .fd , intelli_init , sizeof ( intelli_init ),
462458 100 );
463459 /*
464460 * Send ID command
@@ -484,7 +480,7 @@ static Bool ps2Init(KdMouseInfo * mi)
484480 break ;
485481 }
486482 if (init )
487- MouseWriteBytes (km -> iob .fd , init , strlen (( char * ) init ), 100 );
483+ MouseWriteBytes (km -> iob .fd , init , sizeof ( init ), 100 );
488484 /*
489485 * Flush out the available data to eliminate responses to the
490486 * initialization string. Make sure any partial event is
@@ -729,6 +725,9 @@ static void MouseFirstProtocol(Kmouse * km, char *prot)
729725 for (i = 0 ; i < NUM_PROT ; i ++ )
730726 ErrorF (" %s" , kmouseProts [i ]-> name );
731727 ErrorF ("\n" );
728+ km -> i_prot = 0 ;
729+ km -> prot = kmouseProts [km -> i_prot ];
730+ ErrorF ("Falling back to %s\n" , km -> prot -> name );
732731 } else {
733732 km -> prot = kmouseProts [km -> i_prot ];
734733 if (km -> tty && !km -> prot -> tty )
@@ -754,7 +753,7 @@ static void MouseNextProtocol(Kmouse * km)
754753 do {
755754 if (!km -> prot )
756755 km -> i_prot = 0 ;
757- else if (++ km -> i_prot = = NUM_PROT )
756+ else if (++ km -> i_prot > = NUM_PROT )
758757 km -> i_prot = 0 ;
759758 km -> prot = kmouseProts [km -> i_prot ];
760759 } while (km -> prot -> tty != km -> tty );
0 commit comments