diff --git a/legacy/ecore/src/lib/ecore/ecore.c b/legacy/ecore/src/lib/ecore/ecore.c index 60c6470fe9..45243bb019 100644 --- a/legacy/ecore/src/lib/ecore/ecore.c +++ b/legacy/ecore/src/lib/ecore/ecore.c @@ -11,6 +11,7 @@ #include #include #include +#include #ifdef HAVE_LOCALE_H # include @@ -261,8 +262,28 @@ _ecore_fps_debug_init(void) if (_ecore_fps_debug_fd >= 0) { unsigned int zero = 0; + char *buf = (char *)&zero; + ssize_t todo = sizeof(unsigned int); - write(_ecore_fps_debug_fd, &zero, sizeof(unsigned int)); + while (todo > 0) + { + ssize_t r = write(_ecore_fps_debug_fd, buf, todo); + if (r > 0) + { + todo -= r; + buf += r; + } + else if ((r < 0) && (errno == EINTR)) + continue; + else + { + ERR("could not write to file '%s' fd %d: %s", + tmp, _ecore_fps_debug_fd, strerror(errno)); + close(_ecore_fps_debug_fd); + _ecore_fps_debug_fd = -1; + return; + } + } _ecore_fps_runtime_mmap = mmap(NULL, sizeof(unsigned int), PROT_READ | PROT_WRITE, MAP_SHARED, diff --git a/legacy/ecore/src/lib/ecore/ecore_getopt.c b/legacy/ecore/src/lib/ecore/ecore_getopt.c index e7c158b838..08d5b2233e 100644 --- a/legacy/ecore/src/lib/ecore/ecore_getopt.c +++ b/legacy/ecore/src/lib/ecore/ecore_getopt.c @@ -46,7 +46,8 @@ _ecore_getopt_help_print_replace_program(FILE *fp, const Ecore_Getopt *parser __ break; } - fwrite(text, 1, d - text, fp); + if (fwrite(text, 1, d - text, fp) != (size_t)(d - text)) + return; d++; if (strncmp(d, "prog", sizeof("prog") - 1) == 0) { @@ -115,7 +116,7 @@ _ecore_getopt_help_line(FILE *fp, const int base, const int total, int used, con if (space) { - fwrite(text, 1, i, fp); + i = fwrite(text, 1, i, fp); i++; text += i; len -= i; @@ -152,7 +153,7 @@ _ecore_getopt_help_line(FILE *fp, const int base, const int total, int used, con } else { - fwrite(text, 1, i, fp); + i = fwrite(text, 1, i, fp); text += i; len -= i; used += i; diff --git a/legacy/ecore/src/lib/ecore_con/ecore_con.c b/legacy/ecore/src/lib/ecore_con/ecore_con.c index c331c3d370..5e777318f7 100644 --- a/legacy/ecore/src/lib/ecore_con/ecore_con.c +++ b/legacy/ecore/src/lib/ecore_con/ecore_con.c @@ -1126,7 +1126,8 @@ _ecore_con_svr_handler(void *data, Ecore_Fd_Handler *fd_handler __UNUSED__) if (svr->delete_me) return 1; if ((svr->client_limit >= 0) && (!svr->reject_excess_clients)) { - if (eina_list_count(svr->clients) >= svr->client_limit) return 1; + if (eina_list_count(svr->clients) >= (unsigned int)svr->client_limit) + return 1; } /* a new client */ size_in = sizeof(incoming); @@ -1139,7 +1140,7 @@ _ecore_con_svr_handler(void *data, Ecore_Fd_Handler *fd_handler __UNUSED__) if ((svr->client_limit >= 0) && (svr->reject_excess_clients)) { - if (eina_list_count(svr->clients) >= svr->client_limit) + if (eina_list_count(svr->clients) >= (unsigned int)svr->client_limit) { close(new_fd); return 1; diff --git a/legacy/ecore/src/lib/ecore_con/ecore_con_dns.c b/legacy/ecore/src/lib/ecore_con/ecore_con_dns.c index 462e9246aa..c6bc8bfb99 100644 --- a/legacy/ecore/src/lib/ecore_con/ecore_con_dns.c +++ b/legacy/ecore/src/lib/ecore_con/ecore_con_dns.c @@ -36,6 +36,7 @@ #include #include #include +#include #ifdef __OpenBSD__ # include #endif @@ -74,6 +75,7 @@ static void _ecore_con_dns_readdata(CB_Data *cbdata); static void _ecore_con_dns_slave_free(CB_Data *cbdata); static int _ecore_con_dns_data_handler(void *data, Ecore_Fd_Handler *fd_handler); static int _ecore_con_dns_exit_handler(void *data, int type __UNUSED__, void *event); +static Eina_Bool _ecore_con_write_safe(int fd, void *data, size_t length); static int dns_init = 0; static CB_Data *dns_slaves = NULL; @@ -138,11 +140,11 @@ ecore_con_dns_lookup(const char *name, memcpy((struct in_addr *)&addr, he->h_addr, sizeof(struct in_addr)); - write(fd[1], &(addr.s_addr), sizeof(in_addr_t)); + _ecore_con_write_safe(fd[1], &(addr.s_addr), sizeof(in_addr_t)); } else { - write(fd[1], "", 1); + _ecore_con_write_safe(fd[1], "", 1); } close(fd[1]); # ifdef __USE_ISOC99 @@ -231,3 +233,28 @@ _ecore_con_dns_exit_handler(void *data, int type __UNUSED__, void *event) _ecore_con_dns_slave_free(cbdata); return 0; } + +static Eina_Bool +_ecore_con_write_safe(int fd, void *data, size_t length) +{ + char *buf = data; + ssize_t todo = (ssize_t)length; + + while (todo > 0) + { + ssize_t r = write(fd, buf, todo); + if (r > 0) + { + todo -= r; + buf += r; + } + else if ((r < 0) && (errno == EINTR)) + continue; + else + { + ERR("could not write to fd %d: %s", fd, strerror(errno)); + return EINA_FALSE; + } + } + return EINA_TRUE; +} diff --git a/legacy/ecore/src/lib/ecore_con/ecore_con_info.c b/legacy/ecore/src/lib/ecore_con/ecore_con_info.c index 556640f431..4a0ff99a81 100644 --- a/legacy/ecore/src/lib/ecore_con/ecore_con_info.c +++ b/legacy/ecore/src/lib/ecore_con/ecore_con_info.c @@ -315,12 +315,12 @@ _ecore_con_info_readdata(CB_Data *cbdata) size = read(ecore_main_fd_handler_fd_get(cbdata->fdh), (char *)torecv + sizeof(Ecore_Con_Info), torecv_len - sizeof(Ecore_Con_Info)); - if (size == torecv_len - sizeof(Ecore_Con_Info)) + if ((size > 0) && ((size_t)size == torecv_len - sizeof(Ecore_Con_Info))) { recv = (Ecore_Con_Info *)torecv; recv->info.ai_addr = (struct sockaddr *)((char *)torecv + sizeof(Ecore_Con_Info)); - if (torecv_len != (sizeof(Ecore_Con_Info) + recv->info.ai_addrlen)) + if ((size_t)torecv_len != (sizeof(Ecore_Con_Info) + recv->info.ai_addrlen)) recv->info.ai_canonname = (char *)torecv + sizeof(Ecore_Con_Info) + recv->info.ai_addrlen; else recv->info.ai_canonname = NULL; diff --git a/legacy/ecore/src/lib/ecore_con/ecore_con_local.c b/legacy/ecore/src/lib/ecore_con/ecore_con_local.c index 371efcb8da..20cb224752 100644 --- a/legacy/ecore/src/lib/ecore_con/ecore_con_local.c +++ b/legacy/ecore/src/lib/ecore_con/ecore_con_local.c @@ -63,7 +63,7 @@ ecore_con_local_shutdown(void) int ecore_con_local_connect(Ecore_Con_Server *svr, int (*cb_done)(void *data, Ecore_Fd_Handler *fd_handler), - void *data, + void *data __UNUSED__, void (*cb_free)(void *data, void *ev)) { char buf[4096]; @@ -158,7 +158,7 @@ ecore_con_local_connect(Ecore_Con_Server *svr, int ecore_con_local_listen(Ecore_Con_Server *svr, int (*cb_listen)(void *data, Ecore_Fd_Handler *fd_handler), - void *data) + void *data __UNUSED__) { char buf[4096]; struct sockaddr_un socket_unix; diff --git a/legacy/ecore/src/lib/ecore_evas/ecore_evas.c b/legacy/ecore/src/lib/ecore_evas/ecore_evas.c index e853342ee0..0fa0fbdc93 100644 --- a/legacy/ecore/src/lib/ecore_evas/ecore_evas.c +++ b/legacy/ecore/src/lib/ecore_evas/ecore_evas.c @@ -9,6 +9,7 @@ #include #include #include +#include #include "Ecore.h" #include "ecore_private.h" @@ -2651,8 +2652,28 @@ _ecore_evas_fps_debug_init(void) if (_ecore_evas_fps_debug_fd >= 0) { unsigned int zero = 0; + char *buf = (char *)&zero; + ssize_t todo = sizeof(unsigned int); - write(_ecore_evas_fps_debug_fd, &zero, sizeof(unsigned int)); + while (todo > 0) + { + ssize_t r = write(_ecore_evas_fps_debug_fd, buf, todo); + if (r > 0) + { + todo -= r; + buf += r; + } + else if ((r < 0) && (errno == EINTR)) + continue; + else + { + ERR("could not write to file '%s' fd %d: %s", + buf, _ecore_evas_fps_debug_fd, strerror(errno)); + close(_ecore_evas_fps_debug_fd); + _ecore_evas_fps_debug_fd = -1; + return; + } + } _ecore_evas_fps_rendertime_mmap = mmap(NULL, sizeof(unsigned int), PROT_READ | PROT_WRITE, MAP_SHARED, diff --git a/legacy/ecore/src/lib/ecore_evas/ecore_evas_x.c b/legacy/ecore/src/lib/ecore_evas/ecore_evas_x.c index 479ae0392a..73fb1fdf84 100644 --- a/legacy/ecore/src/lib/ecore_evas/ecore_evas_x.c +++ b/legacy/ecore/src/lib/ecore_evas/ecore_evas_x.c @@ -589,7 +589,7 @@ _ecore_evas_x_event_client_message(void *data __UNUSED__, int type __UNUSED__, v { ee = ecore_event_window_match(e->data.l[0]); if (!ee) return 1; /* pass on event */ - if (e->data.l[0] != ee->prop.window) return 1; + if (e->data.l[0] != (long)ee->prop.window) return 1; ee->engine.x.sync_began = 1; ee->engine.x.sync_cancel = 0; } @@ -597,7 +597,7 @@ _ecore_evas_x_event_client_message(void *data __UNUSED__, int type __UNUSED__, v { ee = ecore_event_window_match(e->data.l[0]); if (!ee) return 1; /* pass on event */ - if (e->data.l[0] != ee->prop.window) return 1; + if (e->data.l[0] != (long)ee->prop.window) return 1; ee->engine.x.sync_began = 0; ee->engine.x.sync_cancel = 0; } @@ -605,7 +605,7 @@ _ecore_evas_x_event_client_message(void *data __UNUSED__, int type __UNUSED__, v { ee = ecore_event_window_match(e->data.l[0]); if (!ee) return 1; /* pass on event */ - if (e->data.l[0] != ee->prop.window) return 1; + if (e->data.l[0] != (long)ee->prop.window) return 1; ee->engine.x.sync_began = 0; ee->engine.x.sync_cancel = 1; } @@ -2396,7 +2396,7 @@ static Ecore_Evas_Engine_Func _ecore_x_engine_func = #if defined (BUILD_ECORE_EVAS_SOFTWARE_X11) || defined (BUILD_ECORE_EVAS_OPENGL_X11) || defined (BUILD_ECORE_EVAS_XRENDER_X11) || defined (BUILD_ECORE_EVAS_XRENDER_XCB) || defined (BUILD_ECORE_EVAS_SOFTWARE_16_X11) static void -_ecore_evas_x_flush_pre(void *data, Evas *e, void *event_info) +_ecore_evas_x_flush_pre(void *data, Evas *e __UNUSED__, void *event_info __UNUSED__) { Ecore_Evas *ee = data; @@ -2415,7 +2415,7 @@ _ecore_evas_x_flush_pre(void *data, Evas *e, void *event_info) } static void -_ecore_evas_x_flush_post(void *data, Evas *e, void *event_info) +_ecore_evas_x_flush_post(void *data, Evas *e __UNUSED__, void *event_info __UNUSED__) { Ecore_Evas *ee = data; diff --git a/legacy/ecore/src/lib/ecore_file/ecore_file_download.c b/legacy/ecore/src/lib/ecore_file/ecore_file_download.c index 3d026881b6..70415b8efc 100644 --- a/legacy/ecore/src/lib/ecore_file/ecore_file_download.c +++ b/legacy/ecore/src/lib/ecore_file/ecore_file_download.c @@ -195,7 +195,7 @@ _ecore_file_download_url_compare_job(const void *data1, const void *data2) } static int -_ecore_file_download_url_complete_cb(void *data, int type, void *event) +_ecore_file_download_url_complete_cb(void *data __UNUSED__, int type __UNUSED__, void *event) { Ecore_Con_Event_Url_Complete *ev = event; Ecore_File_Download_Job *job; @@ -216,7 +216,7 @@ _ecore_file_download_url_complete_cb(void *data, int type, void *event) } static int -_ecore_file_download_url_progress_cb(void *data, int type, void *event) +_ecore_file_download_url_progress_cb(void *data __UNUSED__, int type __UNUSED__, void *event) { /* this reports the downloads progress. if we return 0, then download * continues, if we return anything else, then the download stops */ diff --git a/legacy/ecore/src/lib/ecore_imf/ecore_imf_context.c b/legacy/ecore/src/lib/ecore_imf/ecore_imf_context.c index 09ffc7120a..1214be0ee9 100644 --- a/legacy/ecore/src/lib/ecore_imf/ecore_imf_context.c +++ b/legacy/ecore/src/lib/ecore_imf/ecore_imf_context.c @@ -124,7 +124,7 @@ ecore_imf_context_default_id_by_canvas_type_get(const char *canvas_type) while (p) { const char *q = strchr(p, ':'); - int goodness = _ecore_imf_context_match_locale(locale, p, q ? q - p : strlen (p)); + int goodness = _ecore_imf_context_match_locale(locale, p, q ? (size_t)(q - p) : strlen (p)); if (goodness > best_goodness) { diff --git a/legacy/ecore/src/lib/ecore_imf/ecore_imf_module.c b/legacy/ecore/src/lib/ecore_imf/ecore_imf_module.c index 957dfd37db..2a07b76796 100644 --- a/legacy/ecore/src/lib/ecore_imf/ecore_imf_module.c +++ b/legacy/ecore/src/lib/ecore_imf/ecore_imf_module.c @@ -60,7 +60,7 @@ ecore_imf_module_shutdown(void) } static Eina_Bool -_hash_module_available_get(const Eina_Hash *hash, int *data, void *list) +_hash_module_available_get(const Eina_Hash *hash __UNUSED__, int *data, void *list) { *(Eina_List**)list = eina_list_append(*(Eina_List**)list, data); return EINA_TRUE; @@ -114,7 +114,7 @@ ecore_imf_module_context_create(const char *ctx_id) } static Eina_Bool -_hash_ids_get(const Eina_Hash *hash, const char *key, void *list) +_hash_ids_get(const Eina_Hash *hash __UNUSED__, const char *key, void *list) { *(Eina_List**)list = eina_list_append(*(Eina_List**)list, key); return EINA_TRUE; @@ -139,7 +139,7 @@ ecore_imf_module_context_ids_get(void) } static Eina_Bool -_hash_ids_by_canvas_type_get(const Eina_Hash *hash, void *data, void *fdata) +_hash_ids_by_canvas_type_get(const Eina_Hash *hash __UNUSED__, void *data, void *fdata) { Ecore_IMF_Module *module = data; Ecore_IMF_Selector *selector = fdata; diff --git a/legacy/ecore/src/lib/ecore_input/ecore_input.c b/legacy/ecore/src/lib/ecore_input/ecore_input.c index ffbc89372f..9ff510fcb8 100644 --- a/legacy/ecore/src/lib/ecore_input/ecore_input.c +++ b/legacy/ecore/src/lib/ecore_input/ecore_input.c @@ -96,7 +96,7 @@ static const Ecore_Event_Modifier_Match matchs[] = { EAPI unsigned int ecore_event_modifier_mask(Ecore_Event_Modifier modifier) { - int i; + size_t i; for (i = 0; i < sizeof (matchs) / sizeof (Ecore_Event_Modifier_Match); i++) if (matchs[i].modifier == modifier) @@ -108,7 +108,7 @@ ecore_event_modifier_mask(Ecore_Event_Modifier modifier) EAPI Ecore_Event_Modifier ecore_event_update_modifier(const char *key, Ecore_Event_Modifiers *modifiers, int inc) { - int i; + size_t i; for (i = 0; i < sizeof (matchs) / sizeof (Ecore_Event_Modifier_Match); i++) if (strcmp(matchs[i].key, key) == 0) diff --git a/legacy/ecore/src/lib/ecore_input_evas/ecore_input_evas.c b/legacy/ecore/src/lib/ecore_input_evas/ecore_input_evas.c index 59b7f75a45..d861f55446 100644 --- a/legacy/ecore/src/lib/ecore_input_evas/ecore_input_evas.c +++ b/legacy/ecore/src/lib/ecore_input_evas/ecore_input_evas.c @@ -330,7 +330,7 @@ ecore_event_evas_init(void) EAPI int ecore_event_evas_shutdown(void) { - int i; + size_t i; if (--_ecore_event_evas_init_count != 0) return _ecore_event_evas_init_count; diff --git a/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_events.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_events.c index 28cf6631a2..a30f610502 100644 --- a/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_events.c +++ b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_events.c @@ -1731,7 +1731,7 @@ _ecore_x_event_handle_client_message(XEvent *xevent) e->state[0] = _ecore_x_netwm_state_get(xevent->xclient.data.l[1]); if (e->state[0] == ECORE_X_WINDOW_STATE_UNKNOWN) { - char *name; +// char *name; LOGFN(__FILE__, __LINE__, __FUNCTION__); // name = XGetAtomName(_ecore_x_disp, xevent->xclient.data.l[1]); @@ -1741,7 +1741,7 @@ _ecore_x_event_handle_client_message(XEvent *xevent) e->state[1] = _ecore_x_netwm_state_get(xevent->xclient.data.l[2]); if (e->state[1] == ECORE_X_WINDOW_STATE_UNKNOWN) { - char *name; +// char *name; LOGFN(__FILE__, __LINE__, __FUNCTION__); // name = XGetAtomName(_ecore_x_disp, xevent->xclient.data.l[2]); diff --git a/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_image.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_image.c index a0c2923597..aaa4ba0ff0 100644 --- a/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_image.c +++ b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_image.c @@ -15,13 +15,11 @@ #include #include -static int _composite_available; - static int _ecore_x_image_shm_can = -1; static int _ecore_x_image_err = 0; static void -_ecore_x_image_error_handler(Display * d, XErrorEvent * ev) +_ecore_x_image_error_handler(Display * d __UNUSED__, XErrorEvent * ev __UNUSED__) { _ecore_x_image_err = 1; } @@ -179,7 +177,7 @@ _ecore_x_image_shm_create(Ecore_X_Image *im) } XShmAttach(_ecore_x_disp, &im->shminfo); - im->data = im->xim->data; + im->data = (unsigned char *)im->xim->data; im->bpl = im->xim->bytes_per_line; im->rows = im->xim->height; @@ -205,7 +203,7 @@ ecore_x_image_get(Ecore_X_Image *im, Ecore_X_Drawable draw, ph = XSetErrorHandler((XErrorHandler)_ecore_x_image_error_handler); if ((sx == 0) && (w == im->w)) { - im->xim->data = + im->xim->data = (char *) im->data + (im->xim->bytes_per_line * sy) + (sx * im->bpp); im->xim->width = w; im->xim->height = h; @@ -256,8 +254,7 @@ ecore_x_image_get(Ecore_X_Image *im, Ecore_X_Drawable draw, } EAPI void -ecore_x_image_put(Ecore_X_Image *im, Ecore_X_Drawable draw, - int x, int y, int sx, int sy, int w, int h) +ecore_x_image_put(Ecore_X_Image *im __UNUSED__, Ecore_X_Drawable draw __UNUSED__, int x __UNUSED__, int y __UNUSED__, int sx __UNUSED__, int sy __UNUSED__, int w __UNUSED__, int h __UNUSED__) { LOGFN(__FILE__, __LINE__, __FUNCTION__); printf("ecore_x_image_put: unimplemented!\n"); diff --git a/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_window.c b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_window.c index eed980a023..2067def365 100644 --- a/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_window.c +++ b/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_window.c @@ -748,7 +748,6 @@ struct _Shadow unsigned short w, h; }; -static int shadow_count = 0; static Shadow **shadow_base = NULL; static int shadow_num = 0; @@ -757,7 +756,6 @@ _ecore_x_window_tree_walk(Window win) { Window *list = NULL; Window parent_win = 0, root_win = 0; - int i, j; unsigned int num; Shadow *s, **sl; XWindowAttributes att; @@ -779,6 +777,7 @@ _ecore_x_window_tree_walk(Window win) s->children = calloc(1, sizeof(Shadow *) * num); if (s->children) { + size_t i, j; s->children_num = num; for (i = 0; i < num; i++) { @@ -867,6 +866,9 @@ _ecore_x_window_tree_shadow_populate(void) } } +/* +static int shadow_count = 0; + static void _ecore_x_window_tree_shadow_start(void) { @@ -882,6 +884,7 @@ _ecore_x_window_tree_shadow_stop(void) if (shadow_count != 0) return; _ecore_x_window_tree_shadow_free(); } +*/ static Shadow * _ecore_x_window_shadow_tree_find_shadow(Shadow *s, Window win) @@ -1005,7 +1008,7 @@ ecore_x_window_shadow_tree_at_xy_with_skip_get(Ecore_X_Window base, int x, int y * @ingroup Ecore_X_Window_Geometry_Group */ EAPI Ecore_X_Window -ecore_x_window_shadow_parent_get(Ecore_X_Window root, Ecore_X_Window win) +ecore_x_window_shadow_parent_get(Ecore_X_Window root __UNUSED__, Ecore_X_Window win) { Shadow *s; int i;