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

Reply via email to