api: fix read of arrays in hdata functions hdata_<type> (bug #40354)

This commit is contained in:
Sebastien Helleu 2013-11-03 12:04:02 +01:00
parent 0d35a80a9f
commit f5a65c9b2b
2 changed files with 8 additions and 28 deletions

View File

@ -21,6 +21,7 @@ Version 0.4.3 (under dev!)
* core: fix truncated prefix when filters are toggled (bug #40204)
* core: add options to customize default text search in buffers:
weechat.look.buffer_search_{case_sensitive|force_default|regex|where}
* api: fix read of arrays in hdata functions hdata_<type> (bug #40354)
* irc: fix auto-switch to channel buffer when doing /join channel (without "#")
* irc: add option irc.look.notice_welcome_tags
* irc: add server option "default_msg_kick" to customize default kick/kickban

View File

@ -601,10 +601,7 @@ hdata_char (struct t_hdata *hdata, void *pointer, const char *name)
if (var && (var->offset >= 0))
{
if (var->array_size && (index >= 0))
{
if (*((void **)(pointer + var->offset)))
return (*((char **)(pointer + var->offset)))[index];
}
return (*((char **)(pointer + var->offset)))[index];
else
return *((char *)(pointer + var->offset));
}
@ -631,10 +628,7 @@ hdata_integer (struct t_hdata *hdata, void *pointer, const char *name)
if (var && (var->offset >= 0))
{
if (var->array_size && (index >= 0))
{
if (*((void **)(pointer + var->offset)))
return ((int *)(pointer + var->offset))[index];
}
return ((int *)(pointer + var->offset))[index];
else
return *((int *)(pointer + var->offset));
}
@ -661,10 +655,7 @@ hdata_long (struct t_hdata *hdata, void *pointer, const char *name)
if (var && (var->offset >= 0))
{
if (var->array_size && (index >= 0))
{
if (*((void **)(pointer + var->offset)))
return ((long *)(pointer + var->offset))[index];
}
return ((long *)(pointer + var->offset))[index];
else
return *((long *)(pointer + var->offset));
}
@ -691,10 +682,7 @@ hdata_string (struct t_hdata *hdata, void *pointer, const char *name)
if (var && (var->offset >= 0))
{
if (var->array_size && (index >= 0))
{
if (*((void **)(pointer + var->offset)))
return (*((char ***)(pointer + var->offset)))[index];
}
return (*((char ***)(pointer + var->offset)))[index];
else
return *((char **)(pointer + var->offset));
}
@ -721,10 +709,7 @@ hdata_pointer (struct t_hdata *hdata, void *pointer, const char *name)
if (var && (var->offset >= 0))
{
if (var->array_size && (index >= 0))
{
if (*((void **)(pointer + var->offset)))
return (*((void ***)(pointer + var->offset)))[index];
}
return (*((void ***)(pointer + var->offset)))[index];
else
return *((void **)(pointer + var->offset));
}
@ -751,10 +736,7 @@ hdata_time (struct t_hdata *hdata, void *pointer, const char *name)
if (var && (var->offset >= 0))
{
if (var->array_size && (index >= 0))
{
if (*((void **)(pointer + var->offset)))
return ((time_t *)(pointer + var->offset))[index];
}
return ((time_t *)(pointer + var->offset))[index];
else
return *((time_t *)(pointer + var->offset));
}
@ -781,10 +763,7 @@ hdata_hashtable (struct t_hdata *hdata, void *pointer, const char *name)
if (var && (var->offset >= 0))
{
if (var->array_size && (index >= 0))
{
if (*((void **)(pointer + var->offset)))
return (*((struct t_hashtable ***)(pointer + var->offset)))[index];
}
return (*((struct t_hashtable ***)(pointer + var->offset)))[index];
else
return *((struct t_hashtable **)(pointer + var->offset));
}