forked from enlightenment/efl
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 <cedric@osg.samsung.com>
This commit is contained in:
parent
30693b8487
commit
0e2a2cbacf
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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 *
|
||||
|
|
|
@ -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 *
|
||||
|
|
|
@ -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 *
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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");
|
||||
|
|
Loading…
Reference in New Issue