void vm_shutdown_cb(void *data, Evas_Object *obj, void *event_info) { const char *uuid; Elm_Genlist_Item *gl; vmitem *item; if (win->view == win->main_vm->view) { gl = elm_genlist_selected_item_get(win->main_vm->list); if (!gl) return; item = (vmitem*)elm_genlist_item_data_get(gl); elm_toolbar_item_unselect_all(win->main_vm->bar); uuid = item->vm->uuid; } else if ((win->view == win->info->vmview) || (win->view == win->info->vmhover)) uuid = win->info->vmuuid; if (!uuid || (eina_stringshare_strlen(uuid) != 36)) elm_label_label_set(win->main_vm->status, "Could not retrieve valid uuid for operation!"); else if (!zrpc_VM_shutdown(uuid, zcon, vm_action_cb, NULL)) elm_label_label_set(win->main_vm->status, "Connection to zrpc failed!"); else elm_label_label_set(win->main_vm->status, "Connection succeeded!"); evas_object_show(win->main_vm->notify); if (win->view == win->info->vmhover) zinfo_destroy_hover(NULL, NULL, NULL); }
static void _eio_inotify_events(Eio_Monitor_Backend *backend, const char *file, int mask) { char *tmp; unsigned int length; unsigned int tmp_length; unsigned int i; Eina_Bool is_dir; length = file ? strlen(file) : 0; tmp_length = eina_stringshare_strlen(backend->parent->path) + length + 2; tmp = alloca(sizeof (char) * tmp_length); snprintf(tmp, tmp_length, length ? "%s/%s" : "%s", backend->parent->path, file); is_dir = !!(mask & IN_ISDIR); for (i = 0; i < sizeof (match) / sizeof (Eio_Inotify_Table); ++i) if (match[i].mask & mask) { _eio_monitor_send(backend->parent, tmp, is_dir ? *match[i].ev_dir_code : *match[i].ev_file_code); } /* special case for IN_IGNORED */ if (mask & IN_IGNORED) { _eio_monitor_rename(backend->parent, tmp); } }
static Eina_Bool _evas_gl_common_shader_binary_checksum_write(Evas_GL_Shared *shared, Eet_File *ef) { int ret, len; if (!ef) return EINA_FALSE; _evas_gl_common_shader_binary_hash(shared); len = eina_stringshare_strlen(shared->shaders_checksum) + 1; ret = eet_write(ef, SHADER_EET_CHECKSUM, shared->shaders_checksum, len, 0); return (ret == len); }
static Emotion_Webcam * _emotion_webcam_new(const char *syspath) { Emotion_Webcam *test; const char *device; char *local; test = malloc(sizeof (Emotion_Webcam)); if (!test) return NULL; test->custom = NULL; test->syspath = eina_stringshare_ref(syspath); test->name = eeze_udev_syspath_get_sysattr(syspath, "name"); device = eeze_udev_syspath_get_property(syspath, "DEVNAME"); local = alloca(eina_stringshare_strlen(device) + 8); snprintf(local, eina_stringshare_strlen(device) + 8, "v4l2://%s", device); test->device = eina_stringshare_add(local); eina_stringshare_del(device); test->filename = test->device + 7; return test; }
static Eina_Bool _path_is_jpeg(const char *path_stringshared) { size_t len = eina_stringshare_strlen(path_stringshared); const char *ext; if (len < sizeof(".jpg")) return EINA_FALSE; ext = path_stringshared + len - (sizeof(".jpg") - 1); if (strcasecmp(ext, ".jpg") == 0) return EINA_TRUE; if (len < sizeof(".jpeg")) return EINA_FALSE; ext = path_stringshared + len - (sizeof(".jpeg") - 1); if (strcasecmp(ext, ".jpeg") == 0) return EINA_TRUE; return EINA_FALSE; }
static Eina_Bool _icon_thumb_display(Elm_Icon_Smart_Data *sd) { Eina_Bool ret = EINA_FALSE; if (sd->thumb.format == ETHUMB_THUMB_EET) { int prefix_size; const char **ext, *ptr; static const char *extensions[] = { ".avi", ".mp4", ".ogv", ".mov", ".mpg", ".wmv", NULL }; prefix_size = eina_stringshare_strlen(sd->thumb.file.path) - 4; if (prefix_size >= 0) { ptr = sd->thumb.file.path + prefix_size; for (ext = extensions; *ext; ++ext) if (!strcasecmp(ptr, *ext)) { sd->is_video = EINA_TRUE; break; } } ret = elm_image_file_set (ELM_WIDGET_DATA(sd)->obj, sd->thumb.thumb.path, sd->thumb.thumb.key); sd->is_video = EINA_FALSE; } if (!ret) ret = elm_image_file_set (ELM_WIDGET_DATA(sd)->obj, sd->thumb.thumb.path, sd->thumb.thumb.key); if (ret) evas_object_smart_callback_call (ELM_WIDGET_DATA(sd)->obj, SIG_THUMB_DONE, NULL); else evas_object_smart_callback_call (ELM_WIDGET_DATA(sd)->obj, SIG_THUMB_ERROR, NULL); return ret; }
static Eina_Bool _evas_gl_common_shader_binary_checksum_check(Evas_GL_Shared *shared, Eet_File *ef) { Eina_Bool ret = EINA_FALSE; const char *old_hash; int len = 0; if (!ef) return EINA_FALSE; _evas_gl_common_shader_binary_hash(shared); old_hash = eet_read_direct(ef, SHADER_EET_CHECKSUM, &len); if (old_hash && (len == (eina_stringshare_strlen(shared->shaders_checksum) + 1)) && (!strcmp(shared->shaders_checksum, old_hash))) ret = EINA_TRUE; return ret; }
int main(int argc, char **argv) { const char *str, *str2; const char *prologe = "The Cylons were created by man. They rebelled. They " "evolved."; const char *prologe2 = "%d Cylon models. %d are known. %d live in secret. " "%d will be revealed."; const char *prologe3 = "There are many copies. And they have a plan."; eina_init(); str = eina_stringshare_add_length(prologe, 31); printf("%s\n", str); printf("length: %d\n", eina_stringshare_strlen(str)); eina_stringshare_del(str); str = eina_stringshare_printf(prologe2, 12, 7, 4, 1); printf("%s\n", str); eina_stringshare_del(str); str = eina_stringshare_nprintf(45, "%s", prologe3); printf("%s\n", str); str2 = eina_stringshare_add(prologe3); printf("%s\n", str2); eina_stringshare_ref(str2); eina_stringshare_del(str2); printf("%s\n", str2); eina_stringshare_replace(&str, prologe); printf("%s\n", str); eina_stringshare_del(str); eina_stringshare_del(str2); eina_shutdown(); return 0; }
static Eina_Bool _eina_simple_xml_node_parse(void *data, Eina_Simple_XML_Type type, const char *content, unsigned offset, unsigned length) { struct eina_simple_xml_node_load_ctxt *ctx = data; switch (type) { case EINA_SIMPLE_XML_OPEN: case EINA_SIMPLE_XML_OPEN_EMPTY: { Eina_Simple_XML_Node_Tag *n; const char *name, *name_end, *attrs; attrs = eina_simple_xml_tag_attributes_find(content, length); if (!attrs) name_end = content + length; else name_end = attrs; name_end = _eina_simple_xml_whitespace_unskip(name_end, content); name = eina_stringshare_add_length(content, name_end - content); n = eina_simple_xml_node_tag_new(ctx->current, name); eina_stringshare_del(name); if (!n) return EINA_FALSE; if (attrs) eina_simple_xml_attributes_parse (attrs, length - (attrs - content), _eina_simple_xml_attrs_parse, n); if (type == EINA_SIMPLE_XML_OPEN) ctx->current = n; } break; case EINA_SIMPLE_XML_CLOSE: if (ctx->current->base.parent) { const char *end = _eina_simple_xml_whitespace_unskip (content + length, content); int len; len = end - content; if ((len == 0) /* </> closes the tag for us. */ || ((eina_stringshare_strlen(ctx->current->name) == len) && (memcmp(ctx->current->name, content, len) == 0))) ctx->current = ctx->current->base.parent; else WRN("closed incorrect tag: '%.*s', '%s' was expected!", len, content, ctx->current->name); } else WRN("closed tag '%.*s' but already at document root!", length, content); break; case EINA_SIMPLE_XML_DATA: return !!eina_simple_xml_node_data_new (ctx->current, content, length); case EINA_SIMPLE_XML_CDATA: return !!eina_simple_xml_node_cdata_new (ctx->current, content, length); case EINA_SIMPLE_XML_PROCESSING: return !!eina_simple_xml_node_processing_new (ctx->current, content, length); case EINA_SIMPLE_XML_DOCTYPE: return !!eina_simple_xml_node_doctype_new (ctx->current, content, length); case EINA_SIMPLE_XML_DOCTYPE_CHILD: return !!eina_simple_xml_node_doctype_child_new (ctx->current, content, length); case EINA_SIMPLE_XML_COMMENT: return !!eina_simple_xml_node_comment_new (ctx->current, content, length); case EINA_SIMPLE_XML_ERROR: ERR("parser error at offset %u-%u: %.*s", offset, length, length, content); break; case EINA_SIMPLE_XML_IGNORED: DBG("ignored contents at offset %u-%u: %.*s", offset, length, length, content); break; } return EINA_TRUE; }
static void _eina_simple_xml_node_dump(Eina_Strbuf *buf, Eina_Simple_XML_Node *node, const char *indent, unsigned level) { switch (node->type) { case EINA_SIMPLE_XML_NODE_ROOT: _eina_simple_xml_node_children_dump (buf, (Eina_Simple_XML_Node_Tag *)node, indent, level); break; case EINA_SIMPLE_XML_NODE_TAG: { Eina_Simple_XML_Node_Tag *n = (Eina_Simple_XML_Node_Tag *)node; if (indent) _eina_simple_xml_node_dump_indent(buf, indent, level); eina_strbuf_append_char(buf, '<'); eina_strbuf_append_length (buf, n->name, eina_stringshare_strlen(n->name)); if (n->attributes) _eina_simple_xml_node_tag_attributes_append(buf, n); if (n->children) eina_strbuf_append_char(buf, '>'); else eina_strbuf_append_length(buf, "/>", sizeof("/>") - 1); if (indent) eina_strbuf_append_char(buf, '\n'); if (n->children) { _eina_simple_xml_node_children_dump(buf, n, indent, level + 1); if (indent) _eina_simple_xml_node_dump_indent(buf, indent, level); eina_strbuf_append_length(buf, "</", sizeof("</") - 1); eina_strbuf_append_length (buf, n->name, eina_stringshare_strlen(n->name)); eina_strbuf_append_char(buf, '>'); if (indent) eina_strbuf_append_char(buf, '\n'); } } break; case EINA_SIMPLE_XML_NODE_DATA: { Eina_Simple_XML_Node_Data *n = (Eina_Simple_XML_Node_Data *)node; if (indent) _eina_simple_xml_node_dump_indent(buf, indent, level); eina_strbuf_append_length(buf, n->data, n->length); if (indent) eina_strbuf_append_char(buf, '\n'); } break; case EINA_SIMPLE_XML_NODE_CDATA: { Eina_Simple_XML_Node_Data *n = (Eina_Simple_XML_Node_Data *)node; if (indent) _eina_simple_xml_node_dump_indent(buf, indent, level); eina_strbuf_append_length(buf, "<![CDATA[", sizeof("<![CDATA[") - 1); eina_strbuf_append_length(buf, n->data, n->length); eina_strbuf_append_length(buf, "]]>", sizeof("]]>") - 1); if (indent) eina_strbuf_append_char(buf, '\n'); } break; case EINA_SIMPLE_XML_NODE_PROCESSING: { Eina_Simple_XML_Node_Data *n = (Eina_Simple_XML_Node_Data *)node; if (indent) _eina_simple_xml_node_dump_indent(buf, indent, level); eina_strbuf_append_length(buf, "<?", sizeof("<?") - 1); eina_strbuf_append_length(buf, n->data, n->length); eina_strbuf_append_length(buf, " ?>", sizeof(" ?>") - 1); if (indent) eina_strbuf_append_char(buf, '\n'); } break; case EINA_SIMPLE_XML_NODE_DOCTYPE: { Eina_Simple_XML_Node_Data *n = (Eina_Simple_XML_Node_Data *)node; if (indent) _eina_simple_xml_node_dump_indent(buf, indent, level); eina_strbuf_append_length (buf, "<!DOCTYPE ", sizeof("<!DOCTYPE ") - 1); eina_strbuf_append_length(buf, n->data, n->length); eina_strbuf_append_char(buf, '>'); if (indent) eina_strbuf_append_char(buf, '\n'); } break; case EINA_SIMPLE_XML_NODE_DOCTYPE_CHILD: { Eina_Simple_XML_Node_Data *n = (Eina_Simple_XML_Node_Data *)node; if (indent) _eina_simple_xml_node_dump_indent(buf, indent, level); eina_strbuf_append_length(buf, "<!", sizeof("<!") - 1); eina_strbuf_append_length(buf, n->data, n->length); eina_strbuf_append_length(buf, ">", sizeof(">") - 1); if (indent) eina_strbuf_append_char(buf, '\n'); } break; case EINA_SIMPLE_XML_NODE_COMMENT: { Eina_Simple_XML_Node_Data *n = (Eina_Simple_XML_Node_Data *)node; if (indent) _eina_simple_xml_node_dump_indent(buf, indent, level); eina_strbuf_append_length(buf, "<!-- ", sizeof("<!-- ") - 1); eina_strbuf_append_length(buf, n->data, n->length); eina_strbuf_append_length(buf, " -->", sizeof(" -->") - 1); if (indent) eina_strbuf_append_char(buf, '\n'); } break; } }
static int strcmplen(const void *data1, const void *data2) { return strncmp(data1, data2, eina_stringshare_strlen(data1)); }