cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0e2a2cbacf270766d5c0e2b5c8a09575a7660979
commit 0e2a2cbacf270766d5c0e2b5c8a09575a7660979 Author: Jee-Yong Um <jc9...@samsung.com> Date: Mon Nov 28 10:55:27 2016 -0800 eolian: remove all duplicated affix Summary: Currently eolian abbreviates when only the last word of class name and the first word of method name are same, but this patch abbreviates generated c name of function to remove all duplicated affix. For example, "efl_io_closer_fd_closer_fd_set" will be "efl_io_closer_fd_set". Reviewers: jpeg Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D4430 Signed-off-by: Cedric BAIL <ced...@osg.samsung.com> --- src/lib/ecore/efl_io_closer_fd.c | 10 +++---- src/lib/ecore/efl_io_file.c | 10 +++---- src/lib/ecore/efl_io_positioner_fd.c | 4 +-- src/lib/ecore/efl_io_reader_fd.c | 6 ++-- src/lib/ecore/efl_io_sizer_fd.c | 4 +-- src/lib/ecore/efl_io_stderr.c | 2 +- src/lib/ecore/efl_io_stdin.c | 2 +- src/lib/ecore/efl_io_stdout.c | 2 +- src/lib/ecore/efl_io_writer_fd.c | 4 +-- src/lib/ecore_con/efl_net_socket_fd.c | 24 ++++++++-------- src/lib/ecore_con/efl_net_socket_udp.c | 4 +-- src/lib/eolian/database_function_api.c | 50 +++++++++++++++++++++++++--------- 12 files changed, 73 insertions(+), 49 deletions(-) diff --git a/src/lib/ecore/efl_io_closer_fd.c b/src/lib/ecore/efl_io_closer_fd.c index db2bcaa..3cb77e7 100644 --- a/src/lib/ecore/efl_io_closer_fd.c +++ b/src/lib/ecore/efl_io_closer_fd.c @@ -32,12 +32,12 @@ _efl_io_closer_fd_closer_fd_get(Eo *o EINA_UNUSED, Efl_Io_Closer_Fd_Data *pd) EOLIAN static Eina_Error _efl_io_closer_fd_efl_io_closer_close(Eo *o, Efl_Io_Closer_Fd_Data *pd EINA_UNUSED) { - int fd = efl_io_closer_fd_closer_fd_get(o); + int fd = efl_io_closer_fd_get(o); Eina_Error err = 0; EINA_SAFETY_ON_TRUE_RETURN_VAL(fd < 0, EBADF); - efl_io_closer_fd_closer_fd_set(o, -1); + efl_io_closer_fd_set(o, -1); if (close(fd) < 0) err = errno; efl_event_callback_call(o, EFL_IO_CLOSER_EVENT_CLOSED, NULL); return err; @@ -46,7 +46,7 @@ _efl_io_closer_fd_efl_io_closer_close(Eo *o, Efl_Io_Closer_Fd_Data *pd EINA_UNUS EOLIAN static Eina_Bool _efl_io_closer_fd_efl_io_closer_closed_get(Eo *o, Efl_Io_Closer_Fd_Data *pd EINA_UNUSED) { - return efl_io_closer_fd_closer_fd_get(o) < 0; + return efl_io_closer_fd_get(o) < 0; } EOLIAN static Eina_Bool @@ -62,7 +62,7 @@ _efl_io_closer_fd_efl_io_closer_close_on_exec_set(Eo *o, Efl_Io_Closer_Fd_Data * pd->close_on_exec = close_on_exec; - fd = efl_io_closer_fd_closer_fd_get(o); + fd = efl_io_closer_fd_get(o); if (fd < 0) return EINA_TRUE; /* postpone until fd_set(), users * must apply MANUALLY if it's not * already set! @@ -98,7 +98,7 @@ _efl_io_closer_fd_efl_io_closer_close_on_exec_get(Eo *o, Efl_Io_Closer_Fd_Data * #else int flags, fd; - fd = efl_io_closer_fd_closer_fd_get(o); + fd = efl_io_closer_fd_get(o); if (fd < 0) return pd->close_on_exec; /* if there is a fd, always query it directly as it may be modified diff --git a/src/lib/ecore/efl_io_file.c b/src/lib/ecore/efl_io_file.c index f6588bb..3cab329 100644 --- a/src/lib/ecore/efl_io_file.c +++ b/src/lib/ecore/efl_io_file.c @@ -63,11 +63,11 @@ EOLIAN static void _efl_io_file_efl_loop_fd_fd_file_set(Eo *o, Efl_Io_File_Data *pd, int fd) { efl_loop_fd_file_set(efl_super(o, MY_CLASS), fd); - efl_io_positioner_fd_positioner_fd_set(o, fd); - efl_io_sizer_fd_sizer_fd_set(o, fd); - efl_io_reader_fd_reader_fd_set(o, fd); - efl_io_writer_fd_writer_fd_set(o, fd); - efl_io_closer_fd_closer_fd_set(o, fd); + efl_io_positioner_fd_set(o, fd); + efl_io_sizer_fd_set(o, fd); + efl_io_reader_fd_set(o, fd); + efl_io_writer_fd_set(o, fd); + efl_io_closer_fd_set(o, fd); if (fd >= 0) _efl_io_file_state_update(o, pd); } diff --git a/src/lib/ecore/efl_io_positioner_fd.c b/src/lib/ecore/efl_io_positioner_fd.c index a1df02f..3100789 100644 --- a/src/lib/ecore/efl_io_positioner_fd.c +++ b/src/lib/ecore/efl_io_positioner_fd.c @@ -41,7 +41,7 @@ _efl_io_positioner_whence_convert(Efl_Io_Positioner_Whence whence) EOLIAN static Eina_Error _efl_io_positioner_fd_efl_io_positioner_seek(Eo *o, Efl_Io_Positioner_Fd_Data *pd EINA_UNUSED, int64_t offset, Efl_Io_Positioner_Whence whence) { - int fd = efl_io_positioner_fd_positioner_fd_get(o); + int fd = efl_io_positioner_fd_get(o); if (lseek(fd, (off_t)offset, _efl_io_positioner_whence_convert(whence)) < 0) return errno; efl_event_callback_call(o, EFL_IO_POSITIONER_EVENT_POSITION_CHANGED, NULL); @@ -51,7 +51,7 @@ _efl_io_positioner_fd_efl_io_positioner_seek(Eo *o, Efl_Io_Positioner_Fd_Data *p EOLIAN static uint64_t _efl_io_positioner_fd_efl_io_positioner_position_get(Eo *o, Efl_Io_Positioner_Fd_Data *pd EINA_UNUSED) { - int fd = efl_io_positioner_fd_positioner_fd_get(o); + int fd = efl_io_positioner_fd_get(o); off_t offset; EINA_SAFETY_ON_TRUE_RETURN_VAL(fd < 0, 0); diff --git a/src/lib/ecore/efl_io_reader_fd.c b/src/lib/ecore/efl_io_reader_fd.c index b5a9427..a376355 100644 --- a/src/lib/ecore/efl_io_reader_fd.c +++ b/src/lib/ecore/efl_io_reader_fd.c @@ -32,7 +32,7 @@ _efl_io_reader_fd_reader_fd_get(Eo *o EINA_UNUSED, Efl_Io_Reader_Fd_Data *pd) EOLIAN static Eina_Error _efl_io_reader_fd_efl_io_reader_read(Eo *o, Efl_Io_Reader_Fd_Data *pd EINA_UNUSED, Eina_Rw_Slice *rw_slice) { - int fd = efl_io_reader_fd_reader_fd_get(o); + int fd = efl_io_reader_fd_get(o); ssize_t r; EINA_SAFETY_ON_NULL_RETURN_VAL(rw_slice, EINVAL); @@ -75,7 +75,7 @@ _efl_io_reader_fd_efl_io_reader_can_read_get(Eo *o EINA_UNUSED, Efl_Io_Reader_Fd EOLIAN static void _efl_io_reader_fd_efl_io_reader_can_read_set(Eo *o, Efl_Io_Reader_Fd_Data *pd, Eina_Bool can_read) { - EINA_SAFETY_ON_TRUE_RETURN(efl_io_reader_fd_reader_fd_get(o) < 0); + EINA_SAFETY_ON_TRUE_RETURN(efl_io_reader_fd_get(o) < 0); if (pd->can_read == can_read) return; pd->can_read = can_read; efl_event_callback_call(o, EFL_IO_READER_EVENT_CAN_READ_CHANGED, NULL); @@ -90,7 +90,7 @@ _efl_io_reader_fd_efl_io_reader_eos_get(Eo *o EINA_UNUSED, Efl_Io_Reader_Fd_Data EOLIAN static void _efl_io_reader_fd_efl_io_reader_eos_set(Eo *o, Efl_Io_Reader_Fd_Data *pd, Eina_Bool is_eos) { - EINA_SAFETY_ON_TRUE_RETURN(efl_io_reader_fd_reader_fd_get(o) < 0); + EINA_SAFETY_ON_TRUE_RETURN(efl_io_reader_fd_get(o) < 0); if (pd->eos == is_eos) return; pd->eos = is_eos; if (is_eos) diff --git a/src/lib/ecore/efl_io_sizer_fd.c b/src/lib/ecore/efl_io_sizer_fd.c index a57d1a9..8dc6bb4 100644 --- a/src/lib/ecore/efl_io_sizer_fd.c +++ b/src/lib/ecore/efl_io_sizer_fd.c @@ -29,7 +29,7 @@ _efl_io_sizer_fd_sizer_fd_get(Eo *o EINA_UNUSED, Efl_Io_Sizer_Fd_Data *pd) EOLIAN static Eina_Error _efl_io_sizer_fd_efl_io_sizer_resize(Eo *o, Efl_Io_Sizer_Fd_Data *pd EINA_UNUSED, uint64_t size) { - int fd = efl_io_sizer_fd_sizer_fd_get(o); + int fd = efl_io_sizer_fd_get(o); if (ftruncate(fd, size) < 0) return errno; efl_event_callback_call(o, EFL_IO_SIZER_EVENT_SIZE_CHANGED, NULL); return 0; @@ -38,7 +38,7 @@ _efl_io_sizer_fd_efl_io_sizer_resize(Eo *o, Efl_Io_Sizer_Fd_Data *pd EINA_UNUSED EOLIAN static uint64_t _efl_io_sizer_fd_efl_io_sizer_size_get(Eo *o, Efl_Io_Sizer_Fd_Data *pd EINA_UNUSED) { - int fd = efl_io_sizer_fd_sizer_fd_get(o); + int fd = efl_io_sizer_fd_get(o); struct stat st; int r; diff --git a/src/lib/ecore/efl_io_stderr.c b/src/lib/ecore/efl_io_stderr.c index 6992901..8ce65d3 100644 --- a/src/lib/ecore/efl_io_stderr.c +++ b/src/lib/ecore/efl_io_stderr.c @@ -26,7 +26,7 @@ EOLIAN static void _efl_io_stderr_efl_loop_fd_fd_set(Eo *o, void *pd EINA_UNUSED, int fd) { efl_loop_fd_file_set(efl_super(o, MY_CLASS), fd); - efl_io_writer_fd_writer_fd_set(o, fd); + efl_io_writer_fd_set(o, fd); } EOLIAN static Efl_Object * diff --git a/src/lib/ecore/efl_io_stdin.c b/src/lib/ecore/efl_io_stdin.c index 6da700e..2a6c87e 100644 --- a/src/lib/ecore/efl_io_stdin.c +++ b/src/lib/ecore/efl_io_stdin.c @@ -28,7 +28,7 @@ EOLIAN static void _efl_io_stdin_efl_loop_fd_fd_set(Eo *o, void *pd EINA_UNUSED, int fd) { efl_loop_fd_file_set(efl_super(o, MY_CLASS), fd); - efl_io_reader_fd_reader_fd_set(o, fd); + efl_io_reader_fd_set(o, fd); } EOLIAN static Efl_Object * diff --git a/src/lib/ecore/efl_io_stdout.c b/src/lib/ecore/efl_io_stdout.c index 026d79b..73c09b7 100644 --- a/src/lib/ecore/efl_io_stdout.c +++ b/src/lib/ecore/efl_io_stdout.c @@ -26,7 +26,7 @@ EOLIAN static void _efl_io_stdout_efl_loop_fd_fd_set(Eo *o, void *pd EINA_UNUSED, int fd) { efl_loop_fd_file_set(efl_super(o, MY_CLASS), fd); - efl_io_writer_fd_writer_fd_set(o, fd); + efl_io_writer_fd_set(o, fd); } EOLIAN static Efl_Object * diff --git a/src/lib/ecore/efl_io_writer_fd.c b/src/lib/ecore/efl_io_writer_fd.c index dac739b..3058c4a 100644 --- a/src/lib/ecore/efl_io_writer_fd.c +++ b/src/lib/ecore/efl_io_writer_fd.c @@ -31,7 +31,7 @@ _efl_io_writer_fd_writer_fd_get(Eo *o EINA_UNUSED, Efl_Io_Writer_Fd_Data *pd) EOLIAN static Eina_Error _efl_io_writer_fd_efl_io_writer_write(Eo *o, Efl_Io_Writer_Fd_Data *pd EINA_UNUSED, Eina_Slice *ro_slice, Eina_Slice *remaining) { - int fd = efl_io_writer_fd_writer_fd_get(o); + int fd = efl_io_writer_fd_get(o); ssize_t r; EINA_SAFETY_ON_NULL_RETURN_VAL(ro_slice, EINVAL); @@ -79,7 +79,7 @@ _efl_io_writer_fd_efl_io_writer_can_write_get(Eo *o EINA_UNUSED, Efl_Io_Writer_F EOLIAN static void _efl_io_writer_fd_efl_io_writer_can_write_set(Eo *o, Efl_Io_Writer_Fd_Data *pd, Eina_Bool can_write) { - EINA_SAFETY_ON_TRUE_RETURN(efl_io_writer_fd_writer_fd_get(o) < 0); + EINA_SAFETY_ON_TRUE_RETURN(efl_io_writer_fd_get(o) < 0); if (pd->can_write == can_write) return; pd->can_write = can_write; efl_event_callback_call(o, EFL_IO_WRITER_EVENT_CAN_WRITE_CHANGED, NULL); diff --git a/src/lib/ecore_con/efl_net_socket_fd.c b/src/lib/ecore_con/efl_net_socket_fd.c index e2ddcc2..4bed00d 100644 --- a/src/lib/ecore_con/efl_net_socket_fd.c +++ b/src/lib/ecore_con/efl_net_socket_fd.c @@ -100,9 +100,9 @@ static void _efl_net_socket_fd_set(Eo *o, Efl_Net_Socket_Fd_Data *pd, SOCKET fd) { Eina_Bool close_on_exec = efl_io_closer_close_on_exec_get(o); /* get cached value, otherwise will query from set fd */ - efl_io_reader_fd_reader_fd_set(o, fd); - efl_io_writer_fd_writer_fd_set(o, fd); - efl_io_closer_fd_closer_fd_set(o, fd); + efl_io_reader_fd_set(o, fd); + efl_io_writer_fd_set(o, fd); + efl_io_closer_fd_set(o, fd); /* apply postponed values */ efl_io_closer_close_on_exec_set(o, close_on_exec); @@ -116,9 +116,9 @@ _efl_net_socket_fd_set(Eo *o, Efl_Net_Socket_Fd_Data *pd, SOCKET fd) static void _efl_net_socket_fd_unset(Eo *o) { - efl_io_reader_fd_reader_fd_set(o, SOCKET_TO_LOOP_FD(INVALID_SOCKET)); - efl_io_writer_fd_writer_fd_set(o, SOCKET_TO_LOOP_FD(INVALID_SOCKET)); - efl_io_closer_fd_closer_fd_set(o, SOCKET_TO_LOOP_FD(INVALID_SOCKET)); + efl_io_reader_fd_set(o, SOCKET_TO_LOOP_FD(INVALID_SOCKET)); + efl_io_writer_fd_set(o, SOCKET_TO_LOOP_FD(INVALID_SOCKET)); + efl_io_closer_fd_set(o, SOCKET_TO_LOOP_FD(INVALID_SOCKET)); efl_net_socket_address_local_set(o, NULL); efl_net_socket_address_remote_set(o, NULL); @@ -148,7 +148,7 @@ _efl_net_socket_fd_efl_loop_fd_fd_set(Eo *o, Efl_Net_Socket_Fd_Data *pd, int pfd EOLIAN static Eina_Error _efl_net_socket_fd_efl_io_closer_close(Eo *o, Efl_Net_Socket_Fd_Data *pd EINA_UNUSED) { - SOCKET fd = efl_io_closer_fd_closer_fd_get(o); + SOCKET fd = efl_io_closer_fd_get(o); Eina_Error ret = 0; EINA_SAFETY_ON_TRUE_RETURN_VAL(efl_io_closer_closed_get(o), EBADF); @@ -158,12 +158,12 @@ _efl_net_socket_fd_efl_io_closer_close(Eo *o, Efl_Net_Socket_Fd_Data *pd EINA_UN efl_io_reader_eos_set(o, EINA_TRUE); /* skip _efl_net_socket_fd_efl_loop_fd_fd_set() since we want to - * retain efl_io_closer_fd_closer_fd_get() so close(super()) works + * retain efl_io_closer_fd_get() so close(super()) works * and we emit the events with proper addresses. */ efl_loop_fd_set(efl_super(o, MY_CLASS), SOCKET_TO_LOOP_FD(INVALID_SOCKET)); - efl_io_closer_fd_closer_fd_set(o, SOCKET_TO_LOOP_FD(INVALID_SOCKET)); + efl_io_closer_fd_set(o, SOCKET_TO_LOOP_FD(INVALID_SOCKET)); if (closesocket(fd) != 0) ret = efl_net_socket_error_get(); efl_event_callback_call(o, EFL_IO_CLOSER_EVENT_CLOSED, NULL); @@ -176,13 +176,13 @@ _efl_net_socket_fd_efl_io_closer_close(Eo *o, Efl_Net_Socket_Fd_Data *pd EINA_UN EOLIAN static Eina_Bool _efl_net_socket_fd_efl_io_closer_closed_get(Eo *o, Efl_Net_Socket_Fd_Data *pd EINA_UNUSED) { - return (SOCKET)efl_io_closer_fd_closer_fd_get(o) == INVALID_SOCKET; + return (SOCKET)efl_io_closer_fd_get(o) == INVALID_SOCKET; } EOLIAN static Eina_Error _efl_net_socket_fd_efl_io_reader_read(Eo *o, Efl_Net_Socket_Fd_Data *pd EINA_UNUSED, Eina_Rw_Slice *rw_slice) { - SOCKET fd = efl_io_reader_fd_reader_fd_get(o); + SOCKET fd = efl_io_reader_fd_get(o); ssize_t r; EINA_SAFETY_ON_NULL_RETURN_VAL(rw_slice, EINVAL); @@ -256,7 +256,7 @@ _efl_net_socket_fd_efl_io_reader_eos_set(Eo *o, Efl_Net_Socket_Fd_Data *pd EINA_ EOLIAN static Eina_Error _efl_net_socket_fd_efl_io_writer_write(Eo *o, Efl_Net_Socket_Fd_Data *pd EINA_UNUSED, Eina_Slice *ro_slice, Eina_Slice *remaining) { - SOCKET fd = efl_io_writer_fd_writer_fd_get(o); + SOCKET fd = efl_io_writer_fd_get(o); ssize_t r; EINA_SAFETY_ON_NULL_RETURN_VAL(ro_slice, EINVAL); diff --git a/src/lib/ecore_con/efl_net_socket_udp.c b/src/lib/ecore_con/efl_net_socket_udp.c index b534a90..ebce857 100644 --- a/src/lib/ecore_con/efl_net_socket_udp.c +++ b/src/lib/ecore_con/efl_net_socket_udp.c @@ -508,7 +508,7 @@ _efl_net_socket_udp_efl_object_destructor(Eo *o, Efl_Net_Socket_Udp_Data *pd) EOLIAN static Eina_Error _efl_net_socket_udp_efl_io_reader_read(Eo *o, Efl_Net_Socket_Udp_Data *pd, Eina_Rw_Slice *rw_slice) { - SOCKET fd = efl_io_reader_fd_reader_fd_get(o); + SOCKET fd = efl_io_reader_fd_get(o); ssize_t r; EINA_SAFETY_ON_NULL_RETURN_VAL(rw_slice, EINVAL); @@ -587,7 +587,7 @@ _efl_net_socket_udp_efl_io_reader_read(Eo *o, Efl_Net_Socket_Udp_Data *pd, Eina_ EOLIAN static Eina_Error _efl_net_socket_udp_efl_io_writer_write(Eo *o, Efl_Net_Socket_Udp_Data *pd, Eina_Slice *ro_slice, Eina_Slice *remaining) { - SOCKET fd = efl_io_writer_fd_writer_fd_get(o); + SOCKET fd = efl_io_writer_fd_get(o); ssize_t r; EINA_SAFETY_ON_NULL_RETURN_VAL(ro_slice, EINVAL); diff --git a/src/lib/eolian/database_function_api.c b/src/lib/eolian/database_function_api.c index bf61d44..7ae544b 100644 --- a/src/lib/eolian/database_function_api.c +++ b/src/lib/eolian/database_function_api.c @@ -45,6 +45,39 @@ _get_eo_prefix(const Eolian_Function *foo_id, char *buf, Eina_Bool use_legacy) return buf; } +static char * +_get_abbreviated_name(const char *prefix, const char *fname) +{ + Eina_Strbuf *buf = eina_strbuf_new(); + + const char *last_p = strrchr(prefix, '_'); + last_p = (last_p) ? (last_p + 1) : prefix; + + const char *tmp = strstr(fname, last_p); + int len = strlen(last_p); + + if ((tmp) && + ((tmp == fname) || (*(tmp - 1) == '_')) && + ((*(tmp + len) == '\0') || (*(tmp + len) == '_'))) + { + int plen = strlen(prefix); + len += (tmp - fname); + + if ((plen >= len) && !strncmp(prefix + plen - len, fname, len)) + { + eina_strbuf_append_n(buf, prefix, plen - len); + } + } + + if (eina_strbuf_length_get(buf) == 0) + eina_strbuf_append_printf(buf, "%s_", prefix); + eina_strbuf_append(buf, fname); + + char *ret = eina_strbuf_string_steal(buf); + eina_strbuf_free(buf); + return ret; +} + EAPI Eina_Stringshare * eolian_function_full_c_name_get(const Eolian_Function *foo_id, Eolian_Function_Type ftype, @@ -80,18 +113,10 @@ eolian_function_full_c_name_get(const Eolian_Function *foo_id, return NULL; const char *funcn = eolian_function_name_get(foo_id); - const char *last_p = strrchr(prefix, '_'); - const char *func_p = strchr(funcn, '_'); Eina_Strbuf *buf = eina_strbuf_new(); Eina_Stringshare *ret; - int len; - if (!last_p) last_p = prefix; - else last_p++; - if (!func_p) len = strlen(funcn); - else len = func_p - funcn; - - if (use_legacy || (int)strlen(last_p) != len || strncmp(last_p, funcn, len)) + if (use_legacy) { eina_strbuf_append(buf, prefix); eina_strbuf_append_char(buf, '_'); @@ -107,10 +132,9 @@ eolian_function_full_c_name_get(const Eolian_Function *foo_id, return ret; } - if (last_p != prefix) - eina_strbuf_append_n(buf, prefix, last_p - prefix); /* includes _ */ - - eina_strbuf_append(buf, funcn); + char *abbr = _get_abbreviated_name(prefix, funcn); + eina_strbuf_append(buf, abbr); + free(abbr); if ((ftype == EOLIAN_PROP_GET) || (ftype == EOLIAN_PROPERTY)) eina_strbuf_append(buf, "_get"); --