Peter Hutterer wrote: > 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();
ACK Henrik _______________________________________________ xorg-devel mailing list [email protected] http://lists.x.org/mailman/listinfo/xorg-devel
