{
if (format == ELM_SEL_FORMAT_IMAGE)
{
- sel->selbuf = malloc(buflen+1);
+ // selbuf is actual image data, not text/string
+ sel->selbuf = malloc(buflen);
memcpy(sel->selbuf, selbuf, buflen);
}
else
if ((j == CNP_ATOM_text_uri) ||
(j == CNP_ATOM_text_urilist))
{
- if(!is_uri_type_data(sel, notify)) continue;
+ if (!is_uri_type_data(sel, notify)) continue;
}
cnp_debug("Atom %s matches\n",atoms[j].name);
goto done;
{
Ecore_X_Selection_Data *data;
char *str;
+ char *mkupstr;
data = notify->data;
+ str = malloc(sizeof(char) * (data->length + 1));
+ if (!str) return 0;
+ strncpy(str, (char *)data->data, data->length);
+ str[data->length] = '\0';
if (sel->datacb)
{
ddata.data = data->data;
ddata.len = data->length;
sel->datacb(sel->udata, sel->widget, &ddata);
+ free(str);
return 0;
}
- cnp_debug("Notify handler text %d %d %p\n", data->format,data->length, data->data);
- str = _elm_util_text_to_mkup((const char *) data->data);
+ cnp_debug("Notify handler text %d %d %p\n", data->format,
+ data->length, data->data);
+ mkupstr = _elm_util_text_to_mkup((const char *)str);
cnp_debug("String is %s (from %s)\n", str, data->data);
- _elm_entry_entry_paste(sel->requestwidget, str);
+ _elm_entry_entry_paste(sel->requestwidget, mkupstr);
free(str);
+ free(mkupstr);
return 0;
}