- use key facilities of kernel
- remove the link to the icon on failure or create it lately
- improves safety on power failure
+- make application ids (idaver) NOT CASE SENSITIVE
for (dl = launchers ; dl ; dl = dl->next)
if (dl->mode == mode)
for (tl = dl->types ; tl != NULL ; tl = tl->next)
- if (!strcmp(tl->type, type))
+ if (!strcasecmp(tl->type, type))
return dl;
return NULL;
}
static const char permission_required[] = "required";
static const char permission_optional[] = "optional";
static const char feature_required_permissions[] = FWK_PREFIX "required-permissions";
-static const char exec_type_string[] = "application/x-executable";
+static const char* exec_type_strings[] = {
+ "application/x-executable",
+ "application/vnd.agl.native"
+};
static int check_defined(const void *data, const char *name)
{
static int install_exec_flag(const struct wgt_desc *desc)
{
- return desc->content_type != NULL && !strcmp(desc->content_type, exec_type_string)
- ? fchmodat(workdirfd, desc->content_src, 0755, 0) : 0;
+ int i;
+
+ if (desc->content_type) {
+ i = sizeof exec_type_strings / sizeof *exec_type_strings;
+ while (i) {
+ if (!strcasecmp(desc->content_type, exec_type_strings[--i]))
+ return fchmodat(workdirfd, desc->content_src, 0755, 0);
+ }
+ }
+ return 0;
}
static int install_security(const struct wgt_desc *desc)