[PATCH] silence build warning

wucan wu.canus at gmail.com
Mon Jan 10 21:45:53 PST 2011


On 01/11/2011 12:58 PM, Christian Hergert wrote:
> Would the TEMP_FAILURE_RETRY() glibc macro be useful here?
>
>    http://www.gnu.org/s/libc/manual/html_node/Interrupted-Primitives.html
Well, it should helper, but It's seem there are few codes really use 
this macro. I think we all dislike to use it , as that will lead codes 
messy, and if we really want to handle the return code, we should had a 
safe _exit_ method, else we'll stuck in the checking loop, in case.
> -- Christian
>
> On Mon, Jan 10, 2011 at 8:00 PM, wucan<wu.canus at gmail.com>  wrote:
>>  From 5ec4fbccc16d2626e212c2bc1fdec51498b15033 Mon Sep 17 00:00:00 2001
>> From: wucan<wu.canus at gmail.com>
>> Date: Tue, 11 Jan 2011 11:45:24 +0800
>> Subject: silence build warning
>>
>> The read()/write()/pipe() is tagged with __warn_unused_result__
>> ---
>>   clients/dnd.c        |    7 ++++---
>>   clients/terminal.c   |   12 ++++++------
>>   wayland/event-loop.c |    6 ++++--
>>   3 files changed, 14 insertions(+), 11 deletions(-)
>>
>> diff --git a/clients/dnd.c b/clients/dnd.c
>> index b7f9f39..b9d0747 100644
>> --- a/clients/dnd.c
>> +++ b/clients/dnd.c
>> @@ -297,6 +297,7 @@ static void
>>   drag_finish(void *data, struct wl_drag *drag, int fd)
>>   {
>>      struct dnd_drag *dnd_drag = data;
>> +    int rc;
>>
>>      if (!dnd_drag->mime_type) {
>>          dnd_add_item(dnd_drag->dnd, dnd_drag->item);
>> @@ -314,7 +315,7 @@ drag_finish(void *data, struct wl_drag *drag, int fd)
>>
>>      fprintf(stderr, "got 'finish', fd %d, sending dnd_flower_message\n",
>> fd);
>>
>> -    write(fd,&dnd_flower_message, sizeof dnd_flower_message);
>> +    rc = write(fd,&dnd_flower_message, sizeof dnd_flower_message);
>>      close(fd);
>>
>>      /* The 'finish' event marks the end of the session on the drag
>> @@ -459,7 +460,7 @@ drag_offer_drop(void *data, struct wl_drag_offer *offer)
>>   {
>>      struct dnd_offer *dnd_offer = data;
>>      GIOChannel *channel;
>> -    int p[2];
>> +    int p[2], rc;
>>
>>      if (!dnd_offer->drag_type) {
>>          fprintf(stderr, "got 'drop', but no target\n");
>> @@ -470,7 +471,7 @@ drag_offer_drop(void *data, struct wl_drag_offer *offer)
>>      fprintf(stderr, "got 'drop', sending write end of pipe\n");
>>
>>      dnd_offer->refcount++;
>> -    pipe(p);
>> +    rc = pipe(p);
>>      wl_drag_offer_receive(offer, p[1]);
>>      close(p[1]);
>>
>> diff --git a/clients/terminal.c b/clients/terminal.c
>> index 1c7cbbf..596b634 100644
>> --- a/clients/terminal.c
>> +++ b/clients/terminal.c
>> @@ -962,7 +962,7 @@ handle_escape(struct terminal *terminal)
>>      union utf8_char *row;
>>      struct attr *attr_row;
>>      char *p;
>> -    int i, count, x, y, top, bottom;
>> +    int i, count, x, y, top, bottom, rc;
>>      int args[10], set[10] = { 0, };
>>      char response[MAX_RESPONSE] = {0, };
>>
>> @@ -1196,7 +1196,7 @@ handle_escape(struct terminal *terminal)
>>          terminal->last_char.byte[0] = 0;
>>          break;
>>      case 'c':    /* Primary DA */
>> -        write(terminal->master, "\e[?6c", 5);
>> +        rc = write(terminal->master, "\e[?6c", 5);
>>          break;
>>      case 'd':    /* VPA */
>>          x = set[0] ? args[0] : 1;
>> @@ -1245,13 +1245,13 @@ handle_escape(struct terminal *terminal)
>>      case 'n':    /* DSR */
>>          i = set[0] ? args[0] : 0;
>>          if (i == 0 || i == 5) {
>> -            write(terminal->master, "\e[0n", 4);
>> +            rc = write(terminal->master, "\e[0n", 4);
>>          } else if (i == 6) {
>>              snprintf(response, MAX_RESPONSE, "\e[%d;%dR",
>>                       terminal->origin_mode ?
>>                       terminal->row+terminal->margin_top : terminal->row+1,
>>                   terminal->column+1);
>> -            write(terminal->master, response, strlen(response));
>> +            rc = write(terminal->master, response, strlen(response));
>>          }
>>           break;
>>      case 'r':
>> @@ -1679,7 +1679,7 @@ key_handler(struct window *window, uint32_t key,
>> uint32_t sym,
>>   {
>>      struct terminal *terminal = data;
>>      char ch[MAX_RESPONSE];
>> -    int len = 0;
>> +    int len = 0, rc;
>>
>>      switch (sym) {
>>      case XK_F11:
>> @@ -1796,7 +1796,7 @@ key_handler(struct window *window, uint32_t key,
>> uint32_t sym,
>>      }
>>
>>      if (state&&  len>  0)
>> -        write(terminal->master, ch, len);
>> +        rc = write(terminal->master, ch, len);
>>   }
>>
>>   static void
>> diff --git a/wayland/event-loop.c b/wayland/event-loop.c
>> index bf2a9aa..bedbddb 100644
>> --- a/wayland/event-loop.c
>> +++ b/wayland/event-loop.c
>> @@ -160,8 +160,9 @@ wl_event_source_timer_dispatch(struct wl_event_source
>> *source,
>>      struct wl_event_source_timer *timer_source =
>>          (struct wl_event_source_timer *) source;
>>      uint64_t expires;
>> +    int rc;
>>
>> -    read(timer_source->fd,&expires, sizeof expires);
>> +    rc = read(timer_source->fd,&expires, sizeof expires);
>>
>>      timer_source->func(timer_source->data);
>>   }
>> @@ -256,8 +257,9 @@ wl_event_source_signal_dispatch(struct wl_event_source
>> *source,
>>      struct wl_event_source_signal *signal_source =
>>          (struct wl_event_source_signal *) source;
>>      struct signalfd_siginfo signal_info;
>> +    int rc;
>>
>> -    read(signal_source->fd,&signal_info, sizeof signal_info);
>> +    rc = read(signal_source->fd,&signal_info, sizeof signal_info);
>>
>>      signal_source->func(signal_source->signal_number, signal_source->data);
>>   }
>> --
>> 1.7.3.2.168.gd6b63
>>
>> --
>> wucan
>>
>> _______________________________________________
>> wayland-devel mailing list
>> wayland-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
>>


-- 
wucan



More information about the wayland-devel mailing list