struct cYAML *obj = NULL;
if (!list_empty(list)) {
- pop = list_entry(list->next, struct cYAML_ll, list);
+ pop = list_first_entry(list, struct cYAML_ll, list);
obj = pop->obj;
if (print_info != NULL)
int subscale = 0, signsubscale = 1;
const char *num = input;
+ if (!strncmp(input, "0x", 2)) {
+ int64_t hex; /* hex input is always an integer */
+ char *invalid = NULL;
+
+ errno = 0;
+ hex = strtoll(input, &invalid, 16);
+ if (errno)
+ return false;
+ if (*invalid)
+ return false;
+
+ item->cy_valuedouble = (double) hex;
+ item->cy_valueint = hex;
+ item->cy_type = CYAML_TYPE_NUMBER;
+ return true;
+ }
+
if (*num == '-') {
sign = -1;
num++;
return (node != NULL ? node->cy_type == CYAML_TYPE_ARRAY : 0);
}
-void cYAML_tree_recursive_walk(struct cYAML *node, cYAML_walk_cb cb,
+static void cYAML_tree_recursive_walk(struct cYAML *node, cYAML_walk_cb cb,
bool cb_first,
void *usr_data,
void **out)