/*
- * Copyright 2012 Samsung Electronics Co., Ltd
+ * Copyright 2013 Samsung Electronics Co., Ltd
*
- * Licensed under the Flora License, Version 1.0 (the "License");
+ * Licensed under the Flora License, Version 1.1 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
- * http://www.tizenopensource.org/license
+ * http://floralicense.org/license/
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
#include <ctype.h>
#include <dlog.h>
+#include <livebox-errno.h>
#include "debug.h"
#include "livebox.h"
char *file;
int file_len;
- char *group;
- int group_len;
+ char *option;
+ int option_len;
char *id;
int id_len;
if (!block || !block->part || !block->data) {
ErrPrint("Invalid argument\n");
- return -EINVAL;
+ return LB_STATUS_ERROR_INVALID;
}
ops = is_pd ? &handle->pd.data.ops : &handle->lb.data.ops;
- if (ops->update_text)
+ if (ops->update_text) {
ops->update_text(handle, (const char *)block->id, (const char *)block->part, (const char *)block->data);
+ }
return 0;
}
struct livebox_script_operators *ops;
if (!block || !block->part) {
ErrPrint("Invalid argument\n");
- return -EINVAL;
+ return LB_STATUS_ERROR_INVALID;
}
ops = is_pd ? &handle->pd.data.ops : &handle->lb.data.ops;
- if (ops->update_image)
- ops->update_image(handle, block->id, block->part, block->data);
+ if (ops->update_image) {
+ ops->update_image(handle, block->id, block->part, block->data, block->option);
+ }
return 0;
}
struct livebox_script_operators *ops;
if (!block || !block->part) {
ErrPrint("Invalid argument\n");
- return -EINVAL;
+ return LB_STATUS_ERROR_INVALID;
}
ops = is_pd ? &handle->pd.data.ops : &handle->lb.data.ops;
- if (ops->update_script)
- ops->update_script(handle, block->id, block->part, block->data, block->group);
+ if (ops->update_script) {
+ ops->update_script(handle, block->id, block->part, block->data, block->option);
+ }
return 0;
}
if (!block) {
ErrPrint("Invalid argument\n");
- return -EINVAL;
+ return LB_STATUS_ERROR_INVALID;
}
ops = is_pd ? &handle->pd.data.ops : &handle->lb.data.ops;
- if (ops->update_signal)
+ if (ops->update_signal) {
ops->update_signal(handle, block->id, block->data, block->part);
+ }
return 0;
}
if (!block || !block->data || !block->part) {
ErrPrint("Invalid argument\n");
- return -EINVAL;
+ return LB_STATUS_ERROR_INVALID;
}
ops = is_pd ? &handle->pd.data.ops : &handle->lb.data.ops;
if (sscanf(block->data, "%lfx%lf", &dx, &dy) != 2) {
ErrPrint("Invalid format of data\n");
- return -EINVAL;
+ return LB_STATUS_ERROR_INVALID;
}
- if (ops->update_drag)
+ if (ops->update_drag) {
ops->update_drag(handle, block->id, block->part, dx, dy);
+ }
return 0;
}
if (!block || !block->part || !block->data) {
ErrPrint("Invalid argument\n");
- return -EINVAL;
+ return LB_STATUS_ERROR_INVALID;
}
ops = is_pd ? &handle->pd.data.ops : &handle->lb.data.ops;
if (sscanf(block->data, "%dx%d", &w, &h) != 2) {
ErrPrint("Invalid format (%s)\n", block->data);
- return -EINVAL;
+ return LB_STATUS_ERROR_INVALID;
}
- if (ops->update_info_size)
+ if (ops->update_info_size) {
ops->update_info_size(handle, block->id, w, h);
-
+ }
} else if (!strcasecmp(block->part, INFO_CATEGORY)) {
- if (ops->update_info_category)
+ if (ops->update_info_category) {
ops->update_info_category(handle, block->id, block->data);
+ }
}
return 0;
ops = is_pd ? &handle->pd.data.ops : &handle->lb.data.ops;
- if (ops->update_begin)
+ if (ops->update_begin) {
ops->update_begin(handle);
+ }
return 0;
}
ops = is_pd ? &handle->pd.data.ops : &handle->lb.data.ops;
- if (ops->update_end)
+ if (ops->update_end) {
ops->update_end(handle);
+ }
return 0;
}
VALUE_PART = 0x01,
VALUE_DATA = 0x02,
VALUE_FILE = 0x03,
- VALUE_GROUP = 0x04,
- VALUE_ID = 0x05,
+ VALUE_OPTION = 0x04,
+ VALUE_ID = 0x05
};
const char *field_name[] = {
"type",
"part",
"data",
"file",
- "group",
+ "option",
"id",
NULL
};
fp = fopen(descfile, "rt");
if (!fp) {
ErrPrint("Error: %s\n", strerror(errno));
- return -EIO;
+ return LB_STATUS_ERROR_IO;
}
update_begin(handle, is_pd);
if (!isspace(ch)) {
update_end(handle, is_pd);
- fclose(fp);
- return -EINVAL;
+ if (fclose(fp) != 0) {
+ ErrPrint("fclose: %s\n", strerror(errno));
+ }
+ return LB_STATUS_ERROR_INVALID;
}
break;
case BLOCK_OPEN:
- if (isblank(ch))
+ if (isblank(ch)) {
break;
+ }
- if (ch != '\n')
+ if (ch != '\n') {
goto errout;
+ }
block = calloc(1, sizeof(*block));
if (!block) {
CRITICAL_LOG("Heap: %s\n", strerror(errno));
update_end(handle, is_pd);
- fclose(fp);
- return -ENOMEM;
+ if (fclose(fp) != 0) {
+ ErrPrint("fclose: %s\n", strerror(errno));
+ }
+ return LB_STATUS_ERROR_MEMORY;
}
state = FIELD;
break;
case FIELD:
- if (isspace(ch))
+ if (isspace(ch)) {
break;
+ }
if (ch == '}') {
state = BLOCK_CLOSE;
}
if (ch == '=') {
- if (field_name[field_idx][idx] != '\0')
+ if (field_name[field_idx][idx] != '\0') {
goto errout;
+ }
switch (field_idx) {
case 0:
idx = 0;
break;
case 4:
- state = VALUE_GROUP;
- if (block->group) {
- free(block->group);
- block->group = NULL;
- block->group_len = 0;
+ state = VALUE_OPTION;
+ if (block->option) {
+ free(block->option);
+ block->option = NULL;
+ block->option_len = 0;
}
idx = 0;
break;
break;
}
- if (ch == '\n')
+ if (ch == '\n') {
goto errout;
+ }
if (field_name[field_idx][idx] != ch) {
- ungetc(ch, fp);
- while (--idx >= 0)
- ungetc(field_name[field_idx][idx], fp);
+ if (ungetc(ch, fp) != ch) {
+ ErrPrint("ungetc: %s\n", strerror(errno));
+ }
+
+ while (--idx >= 0) {
+ if (ungetc(field_name[field_idx][idx], fp) != field_name[field_idx][idx]) {
+ ErrPrint("ungetc: %s\n", strerror(errno));
+ }
+ }
field_idx++;
- if (field_name[field_idx] == NULL)
+ if (field_name[field_idx] == NULL) {
goto errout;
+ }
idx = 0;
break;
idx++;
break;
- case VALUE_GROUP:
- if (idx == block->group_len) {
- block->group_len += 256;
- block->group = realloc(block->group, block->group_len);
- if (!block->group) {
+ case VALUE_OPTION:
+ if (idx == block->option_len) {
+ block->option_len += 256;
+ block->option = realloc(block->option, block->option_len);
+ if (!block->option) {
CRITICAL_LOG("Heap: %s\n", strerror(errno));
goto errout;
}
}
if (ch == '\n') {
- block->group[idx] = '\0';
+ block->option[idx] = '\0';
state = FIELD;
idx = 0;
field_idx = 0;
break;
}
- block->group[idx] = ch;
+ block->option[idx] = ch;
idx++;
break;
case VALUE_ID:
case BLOCK_CLOSE:
if (!block->file) {
block->file = strdup(util_uri_to_path(handle->id));
- if (!block->file)
+ if (!block->file) {
goto errout;
+ }
}
i = 0;
i++;
}
- if (!handlers[i].type)
+ if (!handlers[i].type) {
ErrPrint("Unknown block type: %s\n", block->type);
+ }
free(block->file);
free(block->type);
free(block->part);
free(block->data);
- free(block->group);
+ free(block->option);
free(block->id);
free(block);
block = NULL;
} /* switch */
} /* while */
- if (state != UNKNOWN)
+ if (state != UNKNOWN) {
goto errout;
+ }
update_end(handle, is_pd);
- fclose(fp);
+ if (fclose(fp) != 0) {
+ ErrPrint("fclose: %s\n", strerror(errno));
+ }
return 0;
errout:
free(block->type);
free(block->part);
free(block->data);
- free(block->group);
+ free(block->option);
free(block->id);
free(block);
}
update_end(handle, is_pd);
- fclose(fp);
- return -EINVAL;
+ if (fclose(fp) != 0) {
+ ErrPrint("fclose: %s\n", strerror(errno));
+ }
+ return LB_STATUS_ERROR_INVALID;
}
/* End of a file */