Not need call ioctl(WSMOUSEIO_GCALIBCOORDS or WSMOUSEIO_SCALIBCOORDS) twice,
enough once.

OK ?

-- 
Alexandr Shadchin

Index: mouse.c
===================================================================
RCS file: /cvs/src/sbin/wsconsctl/mouse.c,v
retrieving revision 1.11
diff -u -p -r1.11 mouse.c
--- mouse.c     20 Aug 2010 00:20:55 -0000      1.11
+++ mouse.c     13 Jul 2012 16:35:18 -0000
@@ -44,7 +44,7 @@ static int resolution;
 static int samplerate;
 static int rawmode;
 
-struct wsmouse_calibcoords wmcoords, wmcoords_save; 
+struct wsmouse_calibcoords wmcoords;
 
 struct field mouse_field_tab[] = {
     { "resolution",            &resolution,    FMT_UINT,       FLG_WRONLY },
@@ -61,26 +61,20 @@ mouse_get_values(int fd)
        if (field_by_value(mouse_field_tab, &mstype)->flags & FLG_GET)
                if (ioctl(fd, WSMOUSEIO_GTYPE, &mstype) < 0)
                        warn("WSMOUSEIO_GTYPE");
-       
-       if (field_by_value(mouse_field_tab, &rawmode)->flags & FLG_GET) { 
+
+       if ((field_by_value(mouse_field_tab, &rawmode)->flags & FLG_GET) ||
+           (field_by_value(mouse_field_tab, &wmcoords)->flags & FLG_GET)) {
                if (ioctl(fd, WSMOUSEIO_GCALIBCOORDS, &wmcoords) < 0) {
-                       if (errno == ENOTTY)
+                       if (errno == ENOTTY) {
                                field_by_value(mouse_field_tab,
                                    &rawmode)->flags |= FLG_DEAD;
-                       else
+                               field_by_value(mouse_field_tab,
+                                   &wmcoords)->flags |= FLG_DEAD;
+                       } else
                                warn("WSMOUSEIO_GCALIBCOORDS");
                }
                rawmode = wmcoords.samplelen;
        }
-
-       if (field_by_value(mouse_field_tab, &wmcoords)->flags & FLG_GET)
-               if (ioctl(fd, WSMOUSEIO_GCALIBCOORDS, &wmcoords) < 0) {
-                       if (errno == ENOTTY)
-                               field_by_value(mouse_field_tab,
-                                   &wmcoords)->flags |= FLG_DEAD;
-                       else
-                               warn("WSMOUSEIO_GCALIBCOORDS");
-       }       
 }
 
 int
@@ -98,29 +92,13 @@ mouse_put_values(int fd)
                        return 1;
                }
        }
-       if (field_by_value(mouse_field_tab, &rawmode)->flags & FLG_SET) { 
+       if ((field_by_value(mouse_field_tab, &rawmode)->flags & FLG_SET) ||
+           (field_by_value(mouse_field_tab, &wmcoords)->flags & FLG_SET)) {
                wmcoords.samplelen = rawmode;
                if (ioctl(fd, WSMOUSEIO_SCALIBCOORDS, &wmcoords) < 0) {
                        if (errno == ENOTTY) {
                                field_by_value(mouse_field_tab,
                                    &rawmode)->flags |= FLG_DEAD;
-                       } else {
-                               warn("WSMOUSEIO_SCALIBCOORDS");
-                               return 1;
-                       }
-               }
-       }
-       if (field_by_value(mouse_field_tab, &wmcoords)->flags & FLG_SET) {
-               if (ioctl(fd, WSMOUSEIO_GCALIBCOORDS, &wmcoords_save) < 0) {
-                       if (errno == ENOTTY)
-                               field_by_value(mouse_field_tab,
-                                   &wmcoords)->flags |= FLG_DEAD;
-                       else
-                               warn("WSMOUSEIO_GCALIBCOORDS");
-               }
-               wmcoords.samplelen = wmcoords_save.samplelen;
-               if (ioctl(fd, WSMOUSEIO_SCALIBCOORDS, &wmcoords) < 0) {
-                       if (errno == ENOTTY) {
                                field_by_value(mouse_field_tab,
                                    &wmcoords)->flags |= FLG_DEAD;
                        } else {

Reply via email to