8 static void url_del_elem(url_t *elem);
9 static void url_print(url_t *u);
21 int url_add(const char *link_name, int link_name_length, const char *target, int target_length, int x, int y) {
22 if (!init_ok) return -1;
33 tmp->next = malloc(sizeof(url_t));
37 list = malloc(sizeof(url_t));
42 tmp -> link_name = calloc(link_name_length+1, sizeof(char));
43 assert(tmp->link_name);
44 strncpy(tmp->link_name, link_name, link_name_length);
45 tmp->link_name[link_name_length] = '\0';
47 tmp->target = calloc(target_length+1, sizeof(char));
49 strncpy(tmp->target, target, target_length);
50 tmp->target[target_length] = '\0';
61 char * url_get_target(int index) {
62 if (!init_ok) return NULL;
66 if (!tmp) return NULL;
68 while (index > 0 && tmp && tmp->next) {
78 char * url_get_name(int index) {
81 while (index > 0 && tmp && tmp->next) {
87 return tmp->link_name;
98 static void url_del_elem(url_t *elem) {
102 url_del_elem(elem->next);
111 if (elem->link_name) {
112 free(elem->link_name);
113 elem->link_name = NULL;
119 void url_dump(void) {
132 static void url_print(url_t *u) {
133 printf("url_t @ %p\n", u);
136 int url_get_amount(void) {
140 int url_count_inline(const char *line) {
142 const char *i = line;
147 } else if ( *i == '[' && *(i+1) != ']') {
148 while (*i && *i != ']') i++;
150 if (*i == '(' && strchr(i, ')')) {