Change-Id: I08a75b8958f1ee720e59b000e04143469ea767b9
Signed-off-by: jusung son <jusung07.son@samsung.com>
int ret = SHORTCUT_ERROR_NONE;
int sender_pid;
int ret = SHORTCUT_ERROR_NONE;
int sender_pid;
if (packet_get(packet, "ississi", &sender_pid, &appid, &name, &type, &content, &icon, &allow_duplicate) != 7) {
ErrPrint("Invalid packet\n");
if (packet_get(packet, "ississi", &sender_pid, &appid, &name, &type, &content, &icon, &allow_duplicate) != 7) {
ErrPrint("Invalid packet\n");
DbgPrint("appid[%s], name[%s], type[0x%x], content[%s], icon[%s] allow_duplicate[%d]\n", appid, name, type, content, icon, allow_duplicate);
DbgPrint("appid[%s], name[%s], type[0x%x], content[%s], icon[%s] allow_duplicate[%d]\n", appid, name, type, content, icon, allow_duplicate);
- if (s_info.server_cb.request_cb) {
+ if (s_info.server_cb.request_cb)
ret = s_info.server_cb.request_cb(appid, name, type, content, icon, sender_pid, -1.0f, allow_duplicate, s_info.server_cb.data);
ret = s_info.server_cb.request_cb(appid, name, type, content, icon, sender_pid, -1.0f, allow_duplicate, s_info.server_cb.data);
ret = SHORTCUT_ERROR_NOT_SUPPORTED;
ret = SHORTCUT_ERROR_NOT_SUPPORTED;
- if (ret != SHORTCUT_ERROR_NONE) {
+ if (ret != SHORTCUT_ERROR_NONE)
ErrPrint("ret [%d]\n", ret);
ErrPrint("ret [%d]\n", ret);
return packet_create_reply(packet, "i", ret);
}
return packet_create_reply(packet, "i", ret);
}
int ret = SHORTCUT_ERROR_NONE;
int sender_pid;
int ret = SHORTCUT_ERROR_NONE;
int sender_pid;
if (packet_get(packet, "ississdi", &sender_pid, &widget_id, &name, &type, &content, &icon, &period, &allow_duplicate) != 8) {
ErrPrint("Invalid packet\n");
if (packet_get(packet, "ississdi", &sender_pid, &widget_id, &name, &type, &content, &icon, &period, &allow_duplicate) != 8) {
ErrPrint("Invalid packet\n");
DbgPrint("widget_id[%s], name[%s], type[0x%x], content[%s], icon[%s], period[%lf], allow_duplicate[%d]\n", widget_id, name, type, content, icon, period, allow_duplicate);
DbgPrint("widget_id[%s], name[%s], type[0x%x], content[%s], icon[%s], period[%lf], allow_duplicate[%d]\n", widget_id, name, type, content, icon, period, allow_duplicate);
- if (s_info.server_cb.request_cb) {
+ if (s_info.server_cb.request_cb)
ret = s_info.server_cb.request_cb(widget_id, name, type, content, icon, sender_pid, period, allow_duplicate, s_info.server_cb.data);
ret = s_info.server_cb.request_cb(widget_id, name, type, content, icon, sender_pid, period, allow_duplicate, s_info.server_cb.data);
- if (ret != SHORTCUT_ERROR_NONE) {
+ if (ret != SHORTCUT_ERROR_NONE)
ErrPrint("ret [%d]\n", ret);
ErrPrint("ret [%d]\n", ret);
return packet_create_reply(packet, "i", ret);
}
return packet_create_reply(packet, "i", ret);
}
- if (vconf_get_bool(VCONFKEY_MASTER_STARTED, &state) < 0) {
+ if (vconf_get_bool(VCONFKEY_MASTER_STARTED, &state) < 0)
ErrPrint("Unable to get \"%s\"\n", VCONFKEY_MASTER_STARTED);
ErrPrint("Unable to get \"%s\"\n", VCONFKEY_MASTER_STARTED);
- if (state == 1 && make_connection() == SHORTCUT_ERROR_NONE) {
+ if (state == 1 && make_connection() == SHORTCUT_ERROR_NONE)
(void)vconf_ignore_key_changed(VCONFKEY_MASTER_STARTED, master_started_cb);
(void)vconf_ignore_key_changed(VCONFKEY_MASTER_STARTED, master_started_cb);
}
static gboolean timeout_cb(void *data)
}
static gboolean timeout_cb(void *data)
int ret;
ret = vconf_notify_key_changed(VCONFKEY_MASTER_STARTED, master_started_cb, NULL);
int ret;
ret = vconf_notify_key_changed(VCONFKEY_MASTER_STARTED, master_started_cb, NULL);
ErrPrint("Failed to add vconf for service state [%d]\n", ret);
ErrPrint("Failed to add vconf for service state [%d]\n", ret);
DbgPrint("vconf is registered\n");
DbgPrint("vconf is registered\n");
master_started_cb(NULL, NULL);
master_started_cb(NULL, NULL);
if (!s_info.timer_id) {
s_info.server_fd = SHORTCUT_ERROR_INVALID_PARAMETER;
s_info.timer_id = g_timeout_add(1000, timeout_cb, NULL);
if (!s_info.timer_id) {
s_info.server_fd = SHORTCUT_ERROR_INVALID_PARAMETER;
s_info.timer_id = g_timeout_add(1000, timeout_cb, NULL);
- if (!s_info.timer_id) {
ErrPrint("Unable to add timer\n");
ErrPrint("Unable to add timer\n");
snprintf(buf, sizeof(buf), "/proc/%d/cmdline", pid);
fd = open(buf, O_RDONLY);
snprintf(buf, sizeof(buf), "/proc/%d/cmdline", pid);
fd = open(buf, O_RDONLY);
ret = read(fd, pkgname, sizeof(pkgname) - 1);
close(fd);
ret = read(fd, pkgname, sizeof(pkgname) - 1);
close(fd);
* if the system is not going wrong.
*/
} else {
* if the system is not going wrong.
*/
} else {
- if (strlen(pkgname) <= 0) {
+ if (strlen(pkgname) <= 0)
}
dup_pkgname = strdup(pkgname);
}
dup_pkgname = strdup(pkgname);
EAPI int shortcut_set_request_cb(shortcut_request_cb request_cb, void *data)
{
EAPI int shortcut_set_request_cb(shortcut_request_cb request_cb, void *data)
{
- if (request_cb == NULL) {
+ if (request_cb == NULL)
return SHORTCUT_ERROR_INVALID_PARAMETER;
return SHORTCUT_ERROR_INVALID_PARAMETER;
s_info.server_cb.request_cb = request_cb;
s_info.server_cb.data = data;
s_info.server_cb.request_cb = request_cb;
s_info.server_cb.data = data;
ret = SHORTCUT_ERROR_NONE;
}
ret = SHORTCUT_ERROR_NONE;
}
- if (item->result_internal_cb) {
+ if (item->result_internal_cb)
ret = item->result_internal_cb(ret, pid, item->data);
ret = item->result_internal_cb(ret, pid, item->data);
- } else if (item->result_cb) {
+ else if (item->result_cb)
ret = item->result_cb(ret, item->data);
ret = item->result_cb(ret, item->data);
ret = SHORTCUT_ERROR_NONE;
ret = SHORTCUT_ERROR_NONE;
free(item);
return ret;
}
free(item);
return ret;
}
struct result_cb_item *item;
char *appid = NULL;
int ret;
struct result_cb_item *item;
char *appid = NULL;
int ret;
+ static struct method service_table[] = {
+ {
+ .cmd = NULL,
+ .handler = NULL,
+ },
+ };
if (ADD_TO_HOME_IS_DYNAMICBOX(type)) {
ErrPrint("Invalid type used for adding a shortcut\n");
if (ADD_TO_HOME_IS_DYNAMICBOX(type)) {
ErrPrint("Invalid type used for adding a shortcut\n");
}
if (s_info.client_fd < 0) {
}
if (s_info.client_fd < 0) {
- static struct method service_table[] = {
- {
- .cmd = NULL,
- .handler = NULL,
- },
- };
-
s_info.client_fd = com_core_packet_client_init(s_info.socket_file, 0, service_table);
if (s_info.client_fd < 0) {
s_info.client_fd = com_core_packet_client_init(s_info.socket_file, 0, service_table);
if (s_info.client_fd < 0) {
- }
- if (shortcut_is_master_ready() == 1) {
+
+ if (shortcut_is_master_ready() == 1)
return SHORTCUT_ERROR_PERMISSION_DENIED;
return SHORTCUT_ERROR_PERMISSION_DENIED;
return SHORTCUT_ERROR_COMM;
return SHORTCUT_ERROR_COMM;
}
}
item = malloc(sizeof(*item));
if (!item) {
}
}
item = malloc(sizeof(*item));
if (!item) {
ErrPrint("Heap: %d\n", errno);
return SHORTCUT_ERROR_OUT_OF_MEMORY;
}
ErrPrint("Heap: %d\n", errno);
return SHORTCUT_ERROR_OUT_OF_MEMORY;
}
item->result_internal_cb = NULL;
item->data = data;
item->result_internal_cb = NULL;
item->data = data;
packet = packet_create("add_shortcut", "ississi", getpid(), appid, name, type, uri, icon, allow_duplicate);
if (!packet) {
ErrPrint("Failed to build a packet\n");
packet = packet_create("add_shortcut", "ississi", getpid(), appid, name, type, uri, icon, allow_duplicate);
if (!packet) {
ErrPrint("Failed to build a packet\n");
return SHORTCUT_ERROR_FAULT;
}
ret = com_core_packet_async_send(s_info.client_fd, packet, 0.0f, shortcut_send_cb, item);
packet_destroy(packet);
if (ret < 0) {
return SHORTCUT_ERROR_FAULT;
}
ret = com_core_packet_async_send(s_info.client_fd, packet, 0.0f, shortcut_send_cb, item);
packet_destroy(packet);
if (ret < 0) {
com_core_packet_client_fini(s_info.client_fd);
s_info.client_fd = SHORTCUT_ERROR_INVALID_PARAMETER;
return SHORTCUT_ERROR_COMM;
com_core_packet_client_fini(s_info.client_fd);
s_info.client_fd = SHORTCUT_ERROR_INVALID_PARAMETER;
return SHORTCUT_ERROR_COMM;
char *appid = NULL;
int ret;
int err = SHORTCUT_ERROR_NONE;
char *appid = NULL;
int ret;
int err = SHORTCUT_ERROR_NONE;
+ static struct method service_table[] = {
+ {
+ .cmd = NULL,
+ .handler = NULL,
+ },
+ };
if (name == NULL) {
ErrPrint("AppID is null\n");
if (name == NULL) {
ErrPrint("AppID is null\n");
}
if (s_info.client_fd < 0) {
}
if (s_info.client_fd < 0) {
- static struct method service_table[] = {
- {
- .cmd = NULL,
- .handler = NULL,
- },
- };
-
s_info.client_fd = com_core_packet_client_init(s_info.socket_file, 0, service_table);
if (s_info.client_fd < 0) {
err = SHORTCUT_ERROR_COMM;
s_info.client_fd = com_core_packet_client_init(s_info.socket_file, 0, service_table);
if (s_info.client_fd < 0) {
err = SHORTCUT_ERROR_COMM;
if (!*icon) {
ErrPrint("strdup: %d\n", errno);
ret = -ENOMEM;
if (!*icon) {
ErrPrint("strdup: %d\n", errno);
ret = -ENOMEM;
static inline char *cur_locale(void)
{
char *language;
static inline char *cur_locale(void)
{
char *language;
language = vconf_get_str(VCONFKEY_LANGSET);
if (language) {
language = vconf_get_str(VCONFKEY_LANGSET);
if (language) {
ptr = language;
while (*ptr) {
if (*ptr == '.') {
ptr = language;
while (*ptr) {
if (*ptr == '.') {
ptr++;
}
} else {
language = strdup("en-us");
ptr++;
}
} else {
language = strdup("en-us");
ErrPrint("Heap: %d\n", errno);
ErrPrint("Heap: %d\n", errno);
return SHORTCUT_ERROR_INVALID_PARAMETER;
return SHORTCUT_ERROR_INVALID_PARAMETER;
- if (!s_info.db_opened) {
s_info.db_opened = (open_db() == 0);
s_info.db_opened = (open_db() == 0);
if (!s_info.db_opened) {
ErrPrint("Failed to open a DB\n");
if (!s_info.db_opened) {
ErrPrint("Failed to open a DB\n");
* \todo
* Implement the "GET LOCALE" code
*/
* \todo
* Implement the "GET LOCALE" code
*/
- if (get_i18n_name(language, id, &i18n_name, &i18n_icon) < 0) {
+ /* if (get_i18n_name(language, id, &i18n_name, &i18n_icon) < 0) { */
/* Okay, we can't manage this. just use the fallback string */
/* Okay, we can't manage this. just use the fallback string */
+ /* } */
+ get_i18n_name(language, id, &i18n_name, &i18n_icon);
cnt++;
if (list_cb(package_name, (i18n_icon != NULL ? i18n_icon : (char *)icon), (i18n_name != NULL ? i18n_name : (char *)name), (char *)extra_key, (char *)extra_data, data) < 0) {
cnt++;
if (list_cb(package_name, (i18n_icon != NULL ? i18n_icon : (char *)icon), (i18n_name != NULL ? i18n_name : (char *)name), (char *)extra_key, (char *)extra_data, data) < 0) {
struct dlist *item;
item = malloc(sizeof(*item));
struct dlist *item;
item = malloc(sizeof(*item));
item->next = NULL;
item->data = data;
item->next = NULL;
item->data = data;
struct dlist *item;
item = malloc(sizeof(*item));
struct dlist *item;
item = malloc(sizeof(*item));
item->prev = item;
item->next = NULL;
} else {
item->prev = item;
item->next = NULL;
} else {
- if (list->prev->next) {
item->prev = list->prev;
item->next = list;
item->prev = list->prev;
item->next = list;
if (!list || !l)
return NULL;
if (!list || !l)
return NULL;
/*!
* \note
* If the removed entry 'l' has no next element, it is the last element.
* In this case, check the existence of the list first,
/*!
* \note
* If the removed entry 'l' has no next element, it is the last element.
* In this case, check the existence of the list first,
- * and if the list is not empty, update the 'prev' of the list (which is a head element of the list)
+ * and if the list is not empty, update the 'prev' of the list (which is a head element of the list)
*
* If we didn't care about this, the head element(list) can indicates the invalid element.
*/
*
* If we didn't care about this, the head element(list) can indicates the invalid element.
*/
void *_data;
dlist_foreach(list, l, _data) {
void *_data;
dlist_foreach(list, l, _data) {
i = 0;
for (n = l; n; n = n->next) {
i = 0;
for (n = l; n; n = n->next) {
- if (sqlite3_changes(s_info.handle) == 0) {
+ if (sqlite3_changes(s_info.handle) == 0)
ErrPrint("No changes to DB\n");
ErrPrint("No changes to DB\n");
}
static int set_version(int version)
}
static int set_version(int version)
int ret;
ret = sqlite3_prepare_v2(s_info.handle, dml, -1, &stmt, NULL);
int ret;
ret = sqlite3_prepare_v2(s_info.handle, dml, -1, &stmt, NULL);
- if (ret != SQLITE_OK) {
- if (sqlite3_step(stmt) != SQLITE_ROW) {
+
+ if (sqlite3_step(stmt) != SQLITE_ROW)
ret = sqlite3_column_int(stmt, 0);
ret = sqlite3_column_int(stmt, 0);
sqlite3_reset(stmt);
sqlite3_clear_bindings(stmt);
sqlite3_reset(stmt);
sqlite3_clear_bindings(stmt);
- if (sqlite3_changes(s_info.handle) == 0) {
+ if (sqlite3_changes(s_info.handle) == 0)
ErrPrint("No changes to DB\n");
ErrPrint("No changes to DB\n");
ddl = "CREATE TABLE shortcut_name (id INTEGER, pkgid TEXT, lang TEXT, name TEXT, icon TEXT)";
if (sqlite3_exec(s_info.handle, ddl, NULL, NULL, &err) != SQLITE_OK) {
ddl = "CREATE TABLE shortcut_name (id INTEGER, pkgid TEXT, lang TEXT, name TEXT, icon TEXT)";
if (sqlite3_exec(s_info.handle, ddl, NULL, NULL, &err) != SQLITE_OK) {
- if (sqlite3_changes(s_info.handle) == 0) {
+ if (sqlite3_changes(s_info.handle) == 0)
ErrPrint("No changes to DB\n");
ErrPrint("No changes to DB\n");
- if (sqlite3_changes(s_info.handle) == 0) {
+ if (sqlite3_changes(s_info.handle) == 0)
ErrPrint("No changes to DB\n");
ErrPrint("No changes to DB\n");
}
static void alter_shortcut_name(void)
}
static void alter_shortcut_name(void)
- if (sqlite3_changes(s_info.handle) == 0) {
+ if (sqlite3_changes(s_info.handle) == 0)
ErrPrint("No changes to DB\n");
ErrPrint("No changes to DB\n");
}
static void alter_shortcut_service(void)
}
static void alter_shortcut_service(void)
- if (sqlite3_changes(s_info.handle) == 0) {
+ if (sqlite3_changes(s_info.handle) == 0)
ErrPrint("No changes to DB\n");
ErrPrint("No changes to DB\n");
}
static int db_remove_by_pkgid(const char *pkgid)
}
static int db_remove_by_pkgid(const char *pkgid)
ret = -EIO;
ErrPrint("Failed to execute the DML for %s\n", pkgid);
} else {
ret = -EIO;
ErrPrint("Failed to execute the DML for %s\n", pkgid);
} else {
- if (sqlite3_changes(s_info.handle) == 0) {
+ if (sqlite3_changes(s_info.handle) == 0)
DbgPrint("No changed\n");
DbgPrint("No changed\n");
db_create_version();
/* Need to create version table */
case -ENOENT:
db_create_version();
/* Need to create version table */
case -ENOENT:
- if (set_version(1) < 0) {
+ if (set_version(1) < 0)
ErrPrint("Failed to set version\n");
ErrPrint("Failed to set version\n");
/* Need to set version */
alter_shortcut_name();
alter_shortcut_service();
case 1:
alter_shortcut_icon();
/* Need to set version */
alter_shortcut_name();
alter_shortcut_service();
case 1:
alter_shortcut_icon();
- if (update_version(2) < 0) {
+ if (update_version(2) < 0)
ErrPrint("Failed to update version\n");
ErrPrint("Failed to update version\n");
case 2:
break;
default:
/* Need to update version */
DbgPrint("Old version: %d\n", version);
case 2:
break;
default:
/* Need to update version */
DbgPrint("Old version: %d\n", version);
- if (update_version(2) < 0) {
+ if (update_version(2) < 0)
ErrPrint("Failed to update version\n");
ErrPrint("Failed to update version\n");
alter_shortcut_name();
alter_shortcut_service();
alter_shortcut_name();
alter_shortcut_service();
ErrPrint("Failed to execute the DML for %s - %s(%s)\n", appid, key, data);
}
ErrPrint("Failed to execute the DML for %s - %s(%s)\n", appid, key, data);
}
- if (sqlite3_changes(s_info.handle) == 0) {
+ if (sqlite3_changes(s_info.handle) == 0)
DbgPrint("No changes\n");
DbgPrint("No changes\n");
out:
sqlite3_reset(stmt);
out:
sqlite3_reset(stmt);
- if (sqlite3_changes(s_info.handle) == 0) {
+ if (sqlite3_changes(s_info.handle) == 0)
DbgPrint("No chnages\n");
DbgPrint("No chnages\n");
out:
sqlite3_reset(stmt);
out:
sqlite3_reset(stmt);
- if (sqlite3_changes(s_info.handle) == 0) {
+ if (sqlite3_changes(s_info.handle) == 0)
DbgPrint("No changes\n");
DbgPrint("No changes\n");
out:
sqlite3_reset(stmt);
out:
sqlite3_reset(stmt);
return 0;
}
static int db_fini(void)
{
return 0;
}
static int db_fini(void)
{
db_util_close(s_info.handle);
s_info.handle = NULL;
db_util_close(s_info.handle);
s_info.handle = NULL;
- ret = db_remove_by_pkgid(appid);
+ ret = db_remove_by_pkgid(appid);
if (ret < 0) {
ErrPrint("Failed to remove a record: %s\n", appid);
return ret;
if (ret < 0) {
ErrPrint("Failed to remove a record: %s\n", appid);
return ret;
struct i18n_name *i18n;
dlist_foreach(i18n_list, l, i18n) {
struct i18n_name *i18n;
dlist_foreach(i18n_list, l, i18n) {
- if (!xmlStrcasecmp(i18n->lang, lang)) {
+ if (!xmlStrcasecmp(i18n->lang, lang))
}
for (root = root->children; root; root = root->next) {
}
for (root = root->children; root; root = root->next) {
- if (!xmlStrcasecmp(root->name, (const xmlChar *)"shortcut-list")) {
+ if (!xmlStrcasecmp(root->name, (const xmlChar *)"shortcut-list"))
root = root->children; /* Jump to children node */
for (node = root; node; node = node->next) {
root = root->children; /* Jump to children node */
for (node = root; node; node = node->next) {
- if (node->type == XML_ELEMENT_NODE) {
+ if (node->type == XML_ELEMENT_NODE)
DbgPrint("Element %s\n", node->name);
DbgPrint("Element %s\n", node->name);
- if (xmlStrcasecmp(node->name, (const xmlChar *)"shortcut")) {
+ if (xmlStrcasecmp(node->name, (const xmlChar *)"shortcut"))
if (!xmlHasProp(node, (xmlChar *)"extra_key") || !xmlHasProp(node, (xmlChar *)"extra_data")) {
DbgPrint("Invalid element %s\n", node->name);
if (!xmlHasProp(node, (xmlChar *)"extra_key") || !xmlHasProp(node, (xmlChar *)"extra_data")) {
DbgPrint("Invalid element %s\n", node->name);
} else {
dlist_foreach_safe(i18n_list, l, n, i18n) {
i18n_list = dlist_remove(i18n_list, l);
} else {
dlist_foreach_safe(i18n_list, l, n, i18n) {
i18n_list = dlist_remove(i18n_list, l);
- if (db_insert_name(id, appid, (char *)i18n->lang, (char *)i18n->name, (char *)i18n->icon) < 0) {
+ if (db_insert_name(id, appid, (char *)i18n->lang, (char *)i18n->name, (char *)i18n->icon) < 0)
ErrPrint("Failed to add i18n name: %s(%s)\n", i18n->name, i18n->lang);
ErrPrint("Failed to add i18n name: %s(%s)\n", i18n->name, i18n->lang);
destroy_i18n_name(i18n);
}
commit_transaction();
destroy_i18n_name(i18n);
}
commit_transaction();
int PKGMGR_PARSER_PLUGIN_PRE_UNINSTALL(const char *appid)
{
if (!s_info.handle) {
int PKGMGR_PARSER_PLUGIN_PRE_UNINSTALL(const char *appid)
{
if (!s_info.handle) {
}
do_upgrade_db_schema();
}
do_upgrade_db_schema();
}
for (root = root->children; root; root = root->next) {
}
for (root = root->children; root; root = root->next) {
- if (!xmlStrcasecmp(root->name, (const xmlChar *)"shortcut-list")) {
+ if (!xmlStrcasecmp(root->name, (const xmlChar *)"shortcut-list"))
DbgPrint("AppID: %s\n", _appid);
root = root->children;
for (node = root; node; node = node->next) {
DbgPrint("AppID: %s\n", _appid);
root = root->children;
for (node = root; node; node = node->next) {
- if (node->type == XML_ELEMENT_NODE) {
+ if (node->type == XML_ELEMENT_NODE)
DbgPrint("Element %s\n", node->name);
DbgPrint("Element %s\n", node->name);
- if (xmlStrcasecmp(node->name, (const xmlChar *)"shortcut")) {
+ if (xmlStrcasecmp(node->name, (const xmlChar *)"shortcut"))
if (!xmlHasProp(node, (xmlChar *)"extra_data")
|| !xmlHasProp(node, (xmlChar *)"extra_key")
if (!xmlHasProp(node, (xmlChar *)"extra_data")
|| !xmlHasProp(node, (xmlChar *)"extra_key")
int ret;
if (!s_info.handle) {
int ret;
if (!s_info.handle) {
}
do_upgrade_db_schema();
begin_transaction();
ret = do_uninstall(appid);
}
do_upgrade_db_schema();
begin_transaction();
ret = do_uninstall(appid);
ErrPrint("Failed to remove record: %s\n", appid);
/* Keep going */
ErrPrint("Failed to remove record: %s\n", appid);
/* Keep going */
commit_transaction();
return 0;
}
commit_transaction();
return 0;
}
int ret;
if (!s_info.handle) {
int ret;
if (!s_info.handle) {
}
do_upgrade_db_schema();
begin_transaction();
ret = do_uninstall(appid);
}
do_upgrade_db_schema();
begin_transaction();
ret = do_uninstall(appid);
ErrPrint("Failed to remove a record: %s\n", appid);
/* Keep going */
ErrPrint("Failed to remove a record: %s\n", appid);
/* Keep going */
commit_transaction();
return 0;
}
commit_transaction();
return 0;
}
static int result_cb(int ret, int pid, void *data)
{
printf("Client: Return %d (%d)\n", ret, pid);
static int result_cb(int ret, int pid, void *data)
{
printf("Client: Return %d (%d)\n", ret, pid);
Ecore_Timer *timer;
timer = ecore_timer_add(3.0f, shortcut_add_cb, NULL);
Ecore_Timer *timer;
timer = ecore_timer_add(3.0f, shortcut_add_cb, NULL);
printf("Failed to add a timer\n");
printf("Failed to add a timer\n");
elm_run();
elm_shutdown();
elm_run();
elm_shutdown();