Signed-off-by: Peter Hutterer <[email protected]>
---
 tools/syndaemon.c |   37 +++++++++++++++++++++++--------------
 1 files changed, 23 insertions(+), 14 deletions(-)

diff --git a/tools/syndaemon.c b/tools/syndaemon.c
index 820b36c..64a26da 100644
--- a/tools/syndaemon.c
+++ b/tools/syndaemon.c
@@ -431,6 +431,28 @@ void record_main_loop(Display* display, double idle_time) {
 }
 #endif /* HAVE_XRECORD */
 
+static int
+shm_init()
+{
+    int shmid;
+
+    /* Connect to the shared memory area */
+    if ((shmid = shmget(SHM_SYNAPTICS, sizeof(SynapticsSHM), 0)) == -1) {
+       if ((shmid = shmget(SHM_SYNAPTICS, 0, 0)) == -1) {
+           fprintf(stderr, "Can't access shared memory area. SHMConfig 
disabled?\n");
+           return 0;
+       } else {
+           fprintf(stderr, "Incorrect size of shared memory area. Incompatible 
driver version?\n");
+           return 0;
+       }
+    }
+    if ((synshm = (SynapticsSHM*) shmat(shmid, NULL, 0)) == NULL) {
+       perror("shmat");
+       return 0;
+    }
+    return 1;
+}
+
 int
 main(int argc, char *argv[])
 {
@@ -438,7 +460,6 @@ main(int argc, char *argv[])
     int poll_delay = 200000;       /* 200 ms */
     Display *display;
     int c;
-    int shmid;
     int use_xrecord = 1;
 
 
@@ -485,20 +506,8 @@ main(int argc, char *argv[])
        exit(2);
     }
 
-    /* Connect to the shared memory area */
-    if ((shmid = shmget(SHM_SYNAPTICS, sizeof(SynapticsSHM), 0)) == -1) {
-       if ((shmid = shmget(SHM_SYNAPTICS, 0, 0)) == -1) {
-           fprintf(stderr, "Can't access shared memory area. SHMConfig 
disabled?\n");
-           exit(2);
-       } else {
-           fprintf(stderr, "Incorrect size of shared memory area. Incompatible 
driver version?\n");
-           exit(2);
-       }
-    }
-    if ((synshm = (SynapticsSHM*) shmat(shmid, NULL, 0)) == NULL) {
-       perror("shmat");
+    if (!shm_init())
        exit(2);
-    }
 
     /* Install a signal handler to restore synaptics parameters on exit */
     install_signal_handler();
-- 
1.6.0.6

_______________________________________________
xorg-devel mailing list
[email protected]
http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to