diff --git a/.ikc3_history b/.ikc3_history
index b28e400..a0a530d 100644
--- a/.ikc3_history
+++ b/.ikc3_history
@@ -1,4 +1,3 @@
-points[1]
points[2]
"#{(F128) 0.0}"
"#{(F128) 0.1}"
@@ -97,3 +96,4 @@ git log | grep jeremy
9 +i 2 + 3 +i 5
Parse.tag("%Time{}")
Parse.tag("%Time{tv_sec: 1, tv_nsec: 2}")
+1 + 1
diff --git a/configure b/configure
index f50d3eb..ad4bac5 100755
--- a/configure
+++ b/configure
@@ -64,5 +64,5 @@ config_subdirs \
httpd \
test \
window \
- gtk4
-
+ gtk4 \
+ fs
diff --git a/libkc3/alloc.c b/libkc3/alloc.c
index 7c06291..257af83 100644
--- a/libkc3/alloc.c
+++ b/libkc3/alloc.c
@@ -79,7 +79,7 @@ s8 alloc_init (void)
return 0;
}
-void free (void *allocated)
+void alloc_free (void *allocated)
{
s_alloc *al;
s_skiplist_node__alloc *node;
diff --git a/libkc3/buf_parse.c b/libkc3/buf_parse.c
index a591d66..8f29e2a 100644
--- a/libkc3/buf_parse.c
+++ b/libkc3/buf_parse.c
@@ -1123,13 +1123,13 @@ sw buf_parse_callable (s_buf *buf, p_callable *dest)
if ((r = buf_parse_cfn(buf, &tmp.data.cfn)) > 0) {
tmp.type = CALLABLE_CFN;
tmp.reference_count = 1;
- *dest = alloc(sizeof(s_callable));
+ *dest = alloc_map(sizeof(s_callable));
**dest = tmp;
}
else if ((r = buf_parse_fn(buf, &tmp.data.fn)) > 0) {
tmp.type = CALLABLE_FN;
tmp.reference_count = 1;
- *dest = alloc(sizeof(s_callable));
+ *dest = alloc_map(sizeof(s_callable));
**dest = tmp;
}
return r;
@@ -3129,9 +3129,9 @@ sw buf_parse_pcow (s_buf *buf, s_cow **c)
{
sw r;
s_cow *tmp;
- tmp = alloc(sizeof(s_cow));
+ tmp = alloc_map(sizeof(s_cow));
if ((r = buf_parse_cow(buf, tmp)) <= 0) {
- free(tmp);
+ alloc_unmap(tmp, sizeof(s_cow));
return r;
}
*c = tmp;
diff --git a/libkc3/kc3.c b/libkc3/kc3.c
index e079a76..1454edf 100644
--- a/libkc3/kc3.c
+++ b/libkc3/kc3.c
@@ -13,8 +13,6 @@
#include <dlfcn.h>
#include <errno.h>
#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
#include <string.h>
#ifndef WIN32
diff --git a/libkc3/list_init.c b/libkc3/list_init.c
index 997029e..ec101a3 100644
--- a/libkc3/list_init.c
+++ b/libkc3/list_init.c
@@ -10,9 +10,10 @@
* AUTHOR BE CONSIDERED LIABLE FOR THE USE AND PERFORMANCE OF
* THIS SOFTWARE.
*/
-#include "assert.h"
#include <string.h>
+#include "alloc.h"
#include "array.h"
+#include "assert.h"
#include "buf.h"
#include "buf_inspect.h"
#include "buf_parse.h"
@@ -657,7 +658,7 @@ s_list * list_new_array (const s_sym *type, uw dimension,
if (! list)
return NULL;
if (! tag_init_array(&list->tag, type, dimension, dimensions)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -670,7 +671,7 @@ s_list * list_new_array_copy (const s_array *a, s_list *next)
if (! list)
return NULL;
if (! tag_init_array_copy(&list->tag, a)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -683,7 +684,7 @@ s_list * list_new_call (s_list *next)
if (! list)
return NULL;
if (! tag_init_call(&list->tag)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -696,7 +697,7 @@ s_list * list_new_character (character c, s_list *next)
if (! list)
return NULL;
if (! tag_init_character(&list->tag, c)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -709,7 +710,7 @@ s_list * list_new_complex (s_complex *c, s_list *next)
if (! list)
return NULL;
if (! tag_init_complex(&list->tag, c)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -722,7 +723,7 @@ s_list * list_new_f32 (f32 f, s_list *next)
if (! list)
return NULL;
if (! tag_init_f32(&list->tag, f)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -735,7 +736,7 @@ s_list * list_new_f64 (f64 f, s_list *next)
if (! list)
return NULL;
if (! tag_init_f64(&list->tag, f)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -748,7 +749,7 @@ s_list * list_new_f128 (f128 f, s_list *next)
if (! list)
return NULL;
if (! tag_init_f128(&list->tag, f)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -761,7 +762,7 @@ s_list * list_new_ident (const s_ident *ident, s_list *next)
if (! list)
return NULL;
if (! tag_init_ident(&list->tag, ident)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -774,7 +775,7 @@ s_list * list_new_ident_1 (const char *p, s_list *next)
if (! list)
return NULL;
if (! tag_init_ident_1(&list->tag, p)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -787,7 +788,7 @@ s_list * list_new_integer_1 (const char *p, s_list *next)
if (! list)
return NULL;
if (! tag_init_integer_1(&list->tag, p)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -800,7 +801,7 @@ s_list * list_new_integer_copy (const s_integer *i, s_list *next)
if (! list)
return NULL;
if (! tag_init_integer_copy(&list->tag, i)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -813,7 +814,7 @@ s_list * list_new_integer_zero (s_list *next)
if (! list)
return NULL;
if (! tag_init_integer_zero(&list->tag)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -826,7 +827,7 @@ s_list * list_new_map (uw count, s_list *next)
if (! list)
return NULL;
if (! tag_init_map(&list->tag, count)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -839,7 +840,7 @@ s_list * list_new_map_1 (const char *p, s_list *next)
if (! list)
return NULL;
if (! tag_init_map_1(&list->tag, p)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -853,7 +854,7 @@ s_list * list_new_map_from_lists (s_list *keys, s_list *values,
if (! list)
return NULL;
if (! tag_init_map_from_lists(&list->tag, keys, values)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -866,7 +867,7 @@ s_list * list_new_ptr (void *p, s_list *next)
if (! list)
return NULL;
if (! tag_init_ptr(&list->tag, p)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -879,7 +880,7 @@ s_list * list_new_ptr_free (void *p, s_list *next)
if (! list)
return NULL;
if (! tag_init_ptr_free(&list->tag, p)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -892,7 +893,7 @@ s_list * list_new_quote_copy (s_quote *quote, s_list *next)
if (! list)
return NULL;
if (! tag_init_quote_copy(&list->tag, quote)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -905,7 +906,7 @@ s_list * list_new_ratio_1 (const char *p, s_list *next)
if (! list)
return NULL;
if (! tag_init_ratio_1(&list->tag, p)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -918,7 +919,7 @@ s_list * list_new_ratio (s_list *next)
if (! list)
return NULL;
if (! tag_init_ratio(&list->tag)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -931,7 +932,7 @@ s_list * list_new_ratio_copy (s_ratio *r, s_list *next)
if (! list)
return NULL;
if (! tag_init_ratio_copy(&list->tag, r)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -944,7 +945,7 @@ s_list * list_new_ratio_zero (s_list *next)
if (! list)
return NULL;
if (! tag_init_ratio_zero(&list->tag)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -957,7 +958,7 @@ s_list * list_new_s8 (s8 i, s_list *next)
if (! list)
return NULL;
if (! tag_init_s8(&list->tag, i)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -970,7 +971,7 @@ s_list * list_new_s16 (s16 i, s_list *next)
if (! list)
return NULL;
if (! tag_init_s16(&list->tag, i)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -983,7 +984,7 @@ s_list * list_new_s32 (s32 i, s_list *next)
if (! list)
return NULL;
if (! tag_init_s32(&list->tag, i)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -996,7 +997,7 @@ s_list * list_new_s64 (s64 i, s_list *next)
if (! list)
return NULL;
if (! tag_init_s64(&list->tag, i)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -1010,7 +1011,7 @@ s_list * list_new_str (char *p_free, uw size, const char *p,
if (! list)
return NULL;
if (! tag_init_str(&list->tag, p_free, size, p)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -1023,7 +1024,7 @@ s_list * list_new_str_1 (char *p_free, const char *p, s_list *next)
if (! list)
return NULL;
if (! tag_init_str_1(&list->tag, p_free, p)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -1036,7 +1037,7 @@ s_list * list_new_str_1_alloc (const char *p, s_list *next)
if (! list)
return NULL;
if (! tag_init_str_1_alloc(&list->tag, p)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -1049,7 +1050,7 @@ s_list * list_new_str_alloc_copy (uw size, const char *p, s_list *next)
if (! list)
return NULL;
if (! tag_init_str_alloc_copy(&list->tag, size, p)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -1063,7 +1064,7 @@ s_list * list_new_str_cast (const s_sym * const *type,
if (! list)
return NULL;
if (! tag_init_str_cast(&list->tag, type, src)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -1077,7 +1078,7 @@ s_list * list_new_str_concatenate (const s_str *a, const s_str *b,
if (! list)
return NULL;
if (! tag_init_str_concatenate(&list->tag, a, b)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -1091,7 +1092,7 @@ s_list * list_new_str_concatenate_list (const s_list * const *src,
if (! list)
return NULL;
if (! tag_init_str_concatenate_list(&list->tag, src)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -1104,7 +1105,7 @@ s_list * list_new_str_copy (const s_str *src, s_list *next)
if (! list)
return NULL;
if (! tag_init_str_copy(&list->tag, src)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -1117,7 +1118,7 @@ s_list * list_new_str_empty (s_list *next)
if (! list)
return NULL;
if (! tag_init_str_empty(&list->tag)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -1130,7 +1131,7 @@ s_list * list_new_struct (const s_sym *module, s_list *next)
if (! list)
return NULL;
if (! tag_init_struct(&list->tag, module)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -1143,7 +1144,7 @@ s_list * list_new_struct_copy (s_struct *src, s_list *next)
if (! list)
return NULL;
if (! tag_init_struct_copy(&list->tag, src)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -1158,7 +1159,7 @@ s_list * list_new_struct_with_data (const s_sym *module, void *data,
return NULL;
if (! tag_init_struct_with_data(&list->tag, module, data,
free_data)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -1172,7 +1173,7 @@ s_list * list_new_struct_type (const s_sym *module, s_list *spec,
if (! list)
return NULL;
if (! tag_init_struct_type(&list->tag, module, spec)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -1187,7 +1188,7 @@ s_list * list_new_struct_type_update_clean (const s_struct_type *st,
if (! list)
return NULL;
if (! tag_init_struct_type_update_clean(&list->tag, st, clean)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -1200,7 +1201,7 @@ s_list * list_new_sw (sw i, s_list *next)
if (! list)
return NULL;
if (! tag_init_sw(&list->tag, i)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -1213,7 +1214,7 @@ s_list * list_new_sym (const s_sym *sym, s_list *next)
if (! list)
return NULL;
if (! tag_init_sym(&list->tag, sym)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -1226,7 +1227,7 @@ s_list * list_new_tuple (uw count, s_list *next)
if (! list)
return NULL;
if (! tag_init_tuple(&list->tag, count)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -1239,7 +1240,7 @@ s_list * list_new_tuple_2 (s_tag *a, s_tag *b, s_list *next)
if (! list)
return NULL;
if (! tag_init_tuple_2(&list->tag, a, b)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -1253,7 +1254,7 @@ s_list * list_new_time_add (const s_time *a, const s_time *b,
if (! list)
return NULL;
if (! tag_init_time_add(&list->tag, a, b)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -1266,7 +1267,7 @@ s_list * list_new_time_now (s_list *next)
if (! list)
return NULL;
if (! tag_init_time_now(&list->tag)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -1279,7 +1280,7 @@ s_list * list_new_u8 (u8 i, s_list *next)
if (! list)
return NULL;
if (! tag_init_u8(&list->tag, i)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -1292,7 +1293,7 @@ s_list * list_new_u16 (u16 i, s_list *next)
if (! list)
return NULL;
if (! tag_init_u16(&list->tag, i)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -1305,7 +1306,7 @@ s_list * list_new_u32 (u32 i, s_list *next)
if (! list)
return NULL;
if (! tag_init_u32(&list->tag, i)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -1318,7 +1319,7 @@ s_list * list_new_u64 (u64 i, s_list *next)
if (! list)
return NULL;
if (! tag_init_u64(&list->tag, i)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -1331,7 +1332,7 @@ s_list * list_new_unquote_copy (s_unquote *unquote, s_list *next)
if (! list)
return NULL;
if (! tag_init_unquote_copy(&list->tag, unquote)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -1344,7 +1345,7 @@ s_list * list_new_uw (uw i, s_list *next)
if (! list)
return NULL;
if (! tag_init_uw(&list->tag, i)) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
diff --git a/libkc3/log.c b/libkc3/log.c
index 9d81559..884af41 100644
--- a/libkc3/log.c
+++ b/libkc3/log.c
@@ -33,7 +33,7 @@ void log_delete (s_log *log)
{
assert(log);
log_clean(log);
- free(log);
+ alloc_unmap(log, sizeof(s_log));
}
s_log * log_init (s_log *log)
@@ -48,11 +48,11 @@ s_log * log_init (s_log *log)
s_log * log_new (void)
{
s_log *log;
- log = alloc(sizeof(s_log));
+ log = alloc_map(sizeof(s_log));
if (! log)
return NULL;
if (! log_init(log)) {
- free(log);
+ alloc_unmap(log, sizeof(s_log));
return NULL;
}
return log;
diff --git a/libkc3/map.c b/libkc3/map.c
index 012e00a..3054ddc 100644
--- a/libkc3/map.c
+++ b/libkc3/map.c
@@ -74,15 +74,15 @@ void map_clean (s_map *map)
tag_clean(map->value + i);
i++;
}
- free(map->key);
- free(map->value);
+ alloc_unmap(map->key, map->count * sizeof(s_tag));
+ alloc_unmap(map->value, map->count * sizeof(s_tag));
}
void map_delete (s_map *map)
{
assert(map);
map_clean(map);
- free(map);
+ alloc_unmap(map, sizeof(s_map));
}
s_tag * map_get (const s_map *map, const s_tag *key, s_tag *value)
@@ -148,12 +148,12 @@ s_map * map_init (s_map *map, uw count)
assert(map);
if (count) {
tmp.count = count;
- tmp.key = alloc(count * sizeof(s_tag));
+ tmp.key = alloc_map(count * sizeof(s_tag));
if (! tmp.key)
return NULL;
- tmp.value = alloc(count * sizeof(s_tag));
+ tmp.value = alloc_map(count * sizeof(s_tag));
if (! tmp.value) {
- free(tmp.key);
+ alloc_unmap(tmp.key, count * sizeof(s_tag));
return NULL;
}
}
@@ -307,11 +307,11 @@ s_list ** map_map (const s_map *map, s_callable *callable,
s_map * map_new (uw count)
{
s_map *map;
- map = alloc(sizeof(s_map));
+ map = alloc_map(sizeof(s_map));
if (! map)
return NULL;
if (! map_init(map, count)) {
- free(map);
+ alloc_unmap(map, sizeof(s_map));
return NULL;
}
return map;
@@ -320,11 +320,11 @@ s_map * map_new (uw count)
s_map * map_new_1 (const char *p)
{
s_map *map;
- map = alloc(sizeof(s_map));
+ map = alloc_map(sizeof(s_map));
if (! map)
return NULL;
if (! map_init_1(map, p)) {
- free(map);
+ alloc_unmap(map, sizeof(s_map));
return NULL;
}
return map;
@@ -333,11 +333,11 @@ s_map * map_new_1 (const char *p)
s_map * map_new_from_lists (s_list *keys, s_list *values)
{
s_map *map;
- map = alloc(sizeof(s_map));
+ map = alloc_map(sizeof(s_map));
if (! map)
return NULL;
if (! map_init_from_lists(map, keys, values)) {
- free(map);
+ alloc_unmap(map, sizeof(s_map));
return NULL;
}
return map;
diff --git a/libkc3/serialize.c b/libkc3/serialize.c
index 2643603..8a885c9 100644
--- a/libkc3/serialize.c
+++ b/libkc3/serialize.c
@@ -39,7 +39,7 @@ void serialize_clean (s_serialize *serialize)
void serialize_delete (s_serialize *serialize)
{
serialize_clean(serialize);
- free(serialize);
+ alloc_unmap(serialize, sizeof(s_serialize));
}
s_serialize * serialize_character (s_serialize *serialize,
@@ -79,7 +79,7 @@ s_serialize * serialize_list (s_serialize *serialize,
s_serialize * serialize_new (void)
{
s_serialize *serialize;
- if (! (serialize = alloc(sizeof(s_serialize))))
+ if (! (serialize = alloc_map(sizeof(s_serialize))))
return NULL;
serialize_init(serialize);
return serialize;
diff --git a/libkc3/struct.c b/libkc3/struct.c
index a4d1c4f..2f89fee 100644
--- a/libkc3/struct.c
+++ b/libkc3/struct.c
@@ -106,7 +106,7 @@ s_struct * struct_allocate (s_struct *s)
return NULL;
}
tmp = *s;
- tmp.data = alloc(tmp.type->size);
+ tmp.data = alloc_map(tmp.type->size);
if (! tmp.data)
return NULL;
tmp.free_data = true;
@@ -132,7 +132,7 @@ void struct_clean (s_struct *s)
}
}
if (s->free_data)
- free(s->data);
+ alloc_unmap(s->data, s->type->size);
}
if (s->tag) {
i = 0;
@@ -140,7 +140,7 @@ void struct_clean (s_struct *s)
tag_clean(s->tag + i);
i++;
}
- free(s->tag);
+ alloc_unmap(s->tag, s->type->map.count * sizeof(s_tag));
}
}
@@ -148,7 +148,7 @@ void struct_delete (s_struct *s)
{
assert(s);
struct_clean(s);
- free(s);
+ alloc_unmap(s, sizeof(s_struct));
}
uw * struct_find_key_index (const s_struct *s, const s_sym *key,
@@ -310,7 +310,7 @@ s_struct * struct_init_copy (s_struct *s, const s_struct *src)
if (! tmp.type->size)
return NULL;
if (src->data) {
- tmp.data = alloc(tmp.type->size);
+ tmp.data = alloc_map(tmp.type->size);
if (! tmp.data)
return NULL;
tmp.free_data = true;
@@ -328,7 +328,7 @@ s_struct * struct_init_copy (s_struct *s, const s_struct *src)
}
}
else if (src->tag) {
- tmp.tag = alloc(tmp.type->map.count * sizeof(s_tag));
+ tmp.tag = alloc_map(tmp.type->map.count * sizeof(s_tag));
if (! tmp.tag)
return NULL;
i = 0;
@@ -358,7 +358,7 @@ s_struct * struct_init_from_lists (s_struct *s, const s_sym *module,
assert(list_length(keys) == list_length(values));
if (! struct_init(&tmp, module))
return NULL;
- tmp.tag = alloc(tmp.type->map.count * sizeof(s_tag));
+ tmp.tag = alloc_map(tmp.type->map.count * sizeof(s_tag));
if (! tmp.tag)
return NULL;
i = 0;
@@ -417,11 +417,11 @@ s_struct * struct_new (const s_sym *module)
{
s_struct *s;
assert(module);
- s = alloc(sizeof(s_struct));
+ s = alloc_map(sizeof(s_struct));
if (! s)
return NULL;
if (! struct_init(s, module)) {
- free(s);
+ alloc_unmap(s, sizeof(s_struct));
return NULL;
}
return s;
@@ -431,11 +431,11 @@ s_struct * struct_new_1 (const char *p)
{
s_struct *s;
assert(p);
- s = alloc(sizeof(s_struct));
+ s = alloc_map(sizeof(s_struct));
if (! s)
return NULL;
if (! struct_init_1(s, p)) {
- free(s);
+ alloc_unmap(s, sizeof(s_struct));
return NULL;
}
return s;
@@ -445,11 +445,11 @@ s_struct * struct_new_copy (const s_struct *src)
{
s_struct *s;
assert(src);
- s = alloc(sizeof(s_struct));
+ s = alloc_map(sizeof(s_struct));
if (! s)
return NULL;
if (! struct_init_copy(s, src)) {
- free(s);
+ alloc_unmap(s, sizeof(s_struct));
return NULL;
}
return s;
diff --git a/libkc3/sym.c b/libkc3/sym.c
index 86e92cb..12d4992 100644
--- a/libkc3/sym.c
+++ b/libkc3/sym.c
@@ -441,7 +441,6 @@ void sym_init_g_sym (void)
sym_register(&g_sym_write, NULL);
sym_register(&g_sym_wx, NULL);
sym_register(&g_sym_x, NULL);
-
}
const s_sym ** sym_init_str (const s_sym **sym, const s_str *src)
@@ -456,32 +455,6 @@ const s_sym ** sym_init_str (const s_sym **sym, const s_str *src)
return sym;
}
-uw * sym_list_size (uw *dest)
-{
- uw size = 0;
- const s_sym_list *l;
- l = g_sym_list;
- while (l) {
- size += sizeof(s_sym) + l->sym->str.size + 1;
- l = l->next;
- }
- *dest = size;
- return dest;
-}
-
-bool sym_register (const s_sym *sym, s_sym *free_sym)
-{
- s_sym_list *tmp = NULL;
- assert(sym);
- if (sym_find(&sym->str))
- return false;
- tmp = sym_list_new(sym, free_sym, g_sym_list);
- if (! tmp)
- return false;
- g_sym_list = tmp;
- return true;
-}
-
bool sym_is_array_type (const s_sym *sym)
{
character c;
@@ -555,6 +528,19 @@ s_sym_list * sym_list_new (const s_sym *sym, s_sym *free_sym,
return sym_list;
}
+uw * sym_list_size (uw *dest)
+{
+ uw size = 0;
+ const s_sym_list *l;
+ l = g_sym_list;
+ while (l) {
+ size += sizeof(s_sym) + l->sym->str.size + 1;
+ l = l->next;
+ }
+ *dest = size;
+ return dest;
+}
+
bool * sym_must_clean (const s_sym *sym, bool *must_clean)
{
s_struct_type *st;
@@ -724,6 +710,19 @@ const s_sym * sym_new (const s_str *src)
return sym;
}
+bool sym_register (const s_sym *sym, s_sym *free_sym)
+{
+ s_sym_list *tmp = NULL;
+ assert(sym);
+ if (sym_find(&sym->str))
+ return false;
+ tmp = sym_list_new(sym, free_sym, g_sym_list);
+ if (! tmp)
+ return false;
+ g_sym_list = tmp;
+ return true;
+}
+
bool sym_search_modules (const s_sym *sym, const s_sym **dest)
{
return env_sym_search_modules(g_kc3_env, sym, dest);
diff --git a/libkc3/tag.c b/libkc3/tag.c
index 7f719c9..5a23dff 100644
--- a/libkc3/tag.c
+++ b/libkc3/tag.c
@@ -267,7 +267,7 @@ s_tag * tag_copy (s_tag *tag, s_tag *src)
void tag_delete (s_tag *tag)
{
tag_clean(tag);
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
}
bool * tag_eq (s_tag *a, s_tag *b, bool *dest)
@@ -980,7 +980,7 @@ bool * tag_lte (s_tag *a, s_tag *b, bool *dest)
s_tag * tag_new (void)
{
s_tag *dest;
- dest = alloc(sizeof(s_tag));
+ dest = alloc_map(sizeof(s_tag));
if (! dest)
return NULL;
return dest;
@@ -989,11 +989,11 @@ s_tag * tag_new (void)
s_tag * tag_new_1 (const char *p)
{
s_tag *dest;
- dest = alloc(sizeof(s_tag));
+ dest = alloc_map(sizeof(s_tag));
if (! dest)
return NULL;
if (! tag_init_1(dest, p)) {
- free(dest);
+ alloc_unmap(dest, sizeof(s_tag));
return NULL;
}
return dest;
@@ -1002,11 +1002,11 @@ s_tag * tag_new_1 (const char *p)
s_tag * tag_new_copy (s_tag *src)
{
s_tag *dest;
- dest = alloc(sizeof(s_tag));
+ dest = alloc_map(sizeof(s_tag));
if (! dest)
return NULL;
if (! tag_init_copy(dest, src)) {
- free(dest);
+ alloc_unmap(dest, sizeof(s_tag));
return NULL;
}
return dest;
diff --git a/libkc3/tag_init.c b/libkc3/tag_init.c
index 986e2d4..d98161f 100644
--- a/libkc3/tag_init.c
+++ b/libkc3/tag_init.c
@@ -632,12 +632,12 @@ s_tag * tag_new_array (const s_sym *type, uw dimension,
const uw *dimensions)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_ARRAY;
if (! array_init(&tag->data.array, type, dimension, dimensions)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -646,12 +646,12 @@ s_tag * tag_new_array (const s_sym *type, uw dimension,
s_tag * tag_new_array_copy (const s_array *a)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_ARRAY;
if (! array_init_copy(&tag->data.array, a)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -660,12 +660,12 @@ s_tag * tag_new_array_copy (const s_array *a)
s_tag * tag_new_call (void)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_CALL;
if (! call_init(&tag->data.call)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -674,7 +674,7 @@ s_tag * tag_new_call (void)
s_tag * tag_new_character (character c)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_CHARACTER;
@@ -685,7 +685,7 @@ s_tag * tag_new_character (character c)
s_tag * tag_new_complex (s_complex *c)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_COMPLEX;
@@ -696,7 +696,7 @@ s_tag * tag_new_complex (s_complex *c)
s_tag * tag_new_f32 (f32 f)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_F32;
@@ -707,7 +707,7 @@ s_tag * tag_new_f32 (f32 f)
s_tag * tag_new_f64 (f64 f)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_F64;
@@ -718,7 +718,7 @@ s_tag * tag_new_f64 (f64 f)
s_tag * tag_new_f128 (f128 f)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_F128;
@@ -729,7 +729,7 @@ s_tag * tag_new_f128 (f128 f)
s_tag * tag_new_ident (const s_ident *ident)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_IDENT;
@@ -740,12 +740,12 @@ s_tag * tag_new_ident (const s_ident *ident)
s_tag * tag_new_ident_1 (const char *p)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_IDENT;
if (! ident_init_1(&tag->data.ident, p)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -754,12 +754,12 @@ s_tag * tag_new_ident_1 (const char *p)
s_tag * tag_new_integer_1 (const char *p)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_INTEGER;
if (! integer_init_1(&tag->data.integer, p)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -768,12 +768,12 @@ s_tag * tag_new_integer_1 (const char *p)
s_tag * tag_new_integer_copy (const s_integer *i)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_INTEGER;
if (! integer_init_copy(&tag->data.integer, i)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -782,12 +782,12 @@ s_tag * tag_new_integer_copy (const s_integer *i)
s_tag * tag_new_integer_zero (void)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_INTEGER;
if (! integer_init_zero(&tag->data.integer)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -796,7 +796,7 @@ s_tag * tag_new_integer_zero (void)
s_tag * tag_new_list (s_list *list)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_LIST;
@@ -807,12 +807,12 @@ s_tag * tag_new_list (s_list *list)
s_tag * tag_new_map (uw count)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_MAP;
if (! map_init(&tag->data.map, count)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -821,12 +821,12 @@ s_tag * tag_new_map (uw count)
s_tag * tag_new_map_1 (const char *p)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_MAP;
if (! map_init_1(&tag->data.map, p)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -835,12 +835,12 @@ s_tag * tag_new_map_1 (const char *p)
s_tag * tag_new_map_from_lists (s_list *keys, s_list *values)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_MAP;
if (! map_init_from_lists(&tag->data.map, keys, values)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -849,12 +849,12 @@ s_tag * tag_new_map_from_lists (s_list *keys, s_list *values)
s_tag * tag_new_ptr (void *p)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_PTR;
if (! ptr_init(&tag->data.ptr, p)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -863,12 +863,12 @@ s_tag * tag_new_ptr (void *p)
s_tag * tag_new_ptr_free (void *p)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_PTR_FREE;
if (! ptr_free_init(&tag->data.ptr_free, p)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -877,12 +877,12 @@ s_tag * tag_new_ptr_free (void *p)
s_tag * tag_new_quote_copy (s_quote *quote)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_QUOTE;
if (! quote_init_copy(&tag->data.quote, quote)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -891,12 +891,12 @@ s_tag * tag_new_quote_copy (s_quote *quote)
s_tag * tag_new_ratio_1 (const char *p)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_RATIO;
if (! ratio_init_1(&tag->data.ratio, p)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -905,12 +905,12 @@ s_tag * tag_new_ratio_1 (const char *p)
s_tag * tag_new_ratio (void)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_RATIO;
if (! ratio_init(&tag->data.ratio)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -919,12 +919,12 @@ s_tag * tag_new_ratio (void)
s_tag * tag_new_ratio_copy (s_ratio *r)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_RATIO;
if (! ratio_init_copy(&tag->data.ratio, r)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -933,12 +933,12 @@ s_tag * tag_new_ratio_copy (s_ratio *r)
s_tag * tag_new_ratio_zero (void)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_RATIO;
if (! ratio_init_zero(&tag->data.ratio)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -947,7 +947,7 @@ s_tag * tag_new_ratio_zero (void)
s_tag * tag_new_s8 (s8 i)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_S8;
@@ -958,7 +958,7 @@ s_tag * tag_new_s8 (s8 i)
s_tag * tag_new_s16 (s16 i)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_S16;
@@ -969,7 +969,7 @@ s_tag * tag_new_s16 (s16 i)
s_tag * tag_new_s32 (s32 i)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_S32;
@@ -980,7 +980,7 @@ s_tag * tag_new_s32 (s32 i)
s_tag * tag_new_s64 (s64 i)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_S64;
@@ -991,12 +991,12 @@ s_tag * tag_new_s64 (s64 i)
s_tag * tag_new_str (char *p_free, uw size, const char *p)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_STR;
if (! str_init(&tag->data.str, p_free, size, p)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -1005,12 +1005,12 @@ s_tag * tag_new_str (char *p_free, uw size, const char *p)
s_tag * tag_new_str_1 (char *p_free, const char *p)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_STR;
if (! str_init_1(&tag->data.str, p_free, p)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -1019,12 +1019,12 @@ s_tag * tag_new_str_1 (char *p_free, const char *p)
s_tag * tag_new_str_1_alloc (const char *p)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_STR;
if (! str_init_1_alloc(&tag->data.str, p)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -1033,12 +1033,12 @@ s_tag * tag_new_str_1_alloc (const char *p)
s_tag * tag_new_str_alloc_copy (uw size, const char *p)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_STR;
if (! str_init_alloc_copy(&tag->data.str, size, p)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -1047,12 +1047,12 @@ s_tag * tag_new_str_alloc_copy (uw size, const char *p)
s_tag * tag_new_str_cast (const s_sym * const *type, const s_tag *src)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_STR;
if (! str_init_cast(&tag->data.str, type, src)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -1061,12 +1061,12 @@ s_tag * tag_new_str_cast (const s_sym * const *type, const s_tag *src)
s_tag * tag_new_str_concatenate (const s_str *a, const s_str *b)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_STR;
if (! str_init_concatenate(&tag->data.str, a, b)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -1075,12 +1075,12 @@ s_tag * tag_new_str_concatenate (const s_str *a, const s_str *b)
s_tag * tag_new_str_concatenate_list (const s_list * const *src)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_STR;
if (! str_init_concatenate_list(&tag->data.str, src)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -1089,12 +1089,12 @@ s_tag * tag_new_str_concatenate_list (const s_list * const *src)
s_tag * tag_new_str_copy (const s_str *src)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_STR;
if (! str_init_copy(&tag->data.str, src)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -1103,12 +1103,12 @@ s_tag * tag_new_str_copy (const s_str *src)
s_tag * tag_new_str_empty (void)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_STR;
if (! str_init_empty(&tag->data.str)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -1117,12 +1117,12 @@ s_tag * tag_new_str_empty (void)
s_tag * tag_new_struct (const s_sym *module)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_STRUCT;
if (! struct_init(&tag->data.struct_, module)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -1131,12 +1131,12 @@ s_tag * tag_new_struct (const s_sym *module)
s_tag * tag_new_struct_copy (s_struct *src)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_STRUCT;
if (! struct_init_copy(&tag->data.struct_, src)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -1146,13 +1146,13 @@ s_tag * tag_new_struct_with_data (const s_sym *module, void *data,
bool free_data)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_STRUCT;
if (! struct_init_with_data(&tag->data.struct_, module, data,
free_data)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -1161,12 +1161,12 @@ s_tag * tag_new_struct_with_data (const s_sym *module, void *data,
s_tag * tag_new_struct_type (const s_sym *module, s_list *spec)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_STRUCT_TYPE;
if (! struct_type_init(&tag->data.struct_type, module, spec)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -1176,13 +1176,13 @@ s_tag * tag_new_struct_type_update_clean (const s_struct_type *st,
const s_cfn *clean)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_STRUCT_TYPE;
if (! struct_type_init_update_clean(&tag->data.struct_type, st,
clean)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -1191,7 +1191,7 @@ s_tag * tag_new_struct_type_update_clean (const s_struct_type *st,
s_tag * tag_new_sw (sw i)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_SW;
@@ -1202,7 +1202,7 @@ s_tag * tag_new_sw (sw i)
s_tag * tag_new_sym (const s_sym *sym)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_SYM;
@@ -1213,12 +1213,12 @@ s_tag * tag_new_sym (const s_sym *sym)
s_tag * tag_new_tuple (uw count)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_TUPLE;
if (! tuple_init(&tag->data.tuple, count)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -1227,12 +1227,12 @@ s_tag * tag_new_tuple (uw count)
s_tag * tag_new_tuple_2 (s_tag *a, s_tag *b)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_TUPLE;
if (! tuple_init_2(&tag->data.tuple, a, b)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -1241,12 +1241,12 @@ s_tag * tag_new_tuple_2 (s_tag *a, s_tag *b)
s_tag * tag_new_time_add (const s_time *a, const s_time *b)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_TIME;
if (! time_init_add(&tag->data.time, a, b)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -1255,12 +1255,12 @@ s_tag * tag_new_time_add (const s_time *a, const s_time *b)
s_tag * tag_new_time_now (void)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_TIME;
if (! time_init_now(&tag->data.time)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -1269,7 +1269,7 @@ s_tag * tag_new_time_now (void)
s_tag * tag_new_u8 (u8 i)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_U8;
@@ -1280,7 +1280,7 @@ s_tag * tag_new_u8 (u8 i)
s_tag * tag_new_u16 (u16 i)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_U16;
@@ -1291,7 +1291,7 @@ s_tag * tag_new_u16 (u16 i)
s_tag * tag_new_u32 (u32 i)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_U32;
@@ -1302,7 +1302,7 @@ s_tag * tag_new_u32 (u32 i)
s_tag * tag_new_u64 (u64 i)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_U64;
@@ -1313,12 +1313,12 @@ s_tag * tag_new_u64 (u64 i)
s_tag * tag_new_unquote_copy (s_unquote *unquote)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_UNQUOTE;
if (! unquote_init_copy(&tag->data.unquote, unquote)) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
return tag;
@@ -1327,7 +1327,7 @@ s_tag * tag_new_unquote_copy (s_unquote *unquote)
s_tag * tag_new_uw (uw i)
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
tag->type = TAG_UW;
diff --git a/libkc3/tag_init.rb b/libkc3/tag_init.rb
index c097f26..486fe9e 100644
--- a/libkc3/tag_init.rb
+++ b/libkc3/tag_init.rb
@@ -160,7 +160,7 @@ EOF
#{tag_new_proto[0..-2]}
{
s_tag *tag;
- tag = alloc(sizeof(s_tag));
+ tag = alloc_map(sizeof(s_tag));
if (! tag)
return NULL;
#{tag_type ? "tag->type = #{tag_type};\n" : ""}#{def_tag_new_init} return tag;
@@ -174,7 +174,7 @@ EOF
""
when :init_mode_init
" if (! #{name}_init#{suffix}(#{name == "list" ? "" : "&"}tag->data.#{data_name}#{comma_args})) {
- free(tag);
+ alloc_unmap(tag, sizeof(s_tag));
return NULL;
}
"
@@ -229,7 +229,7 @@ EOF
if (! list)
return NULL;
if (! tag_init_#{name_suffix}(&list->tag#{comma_args})) {
- free(list);
+ alloc_unmap(list, sizeof(s_list));
return NULL;
}
return list;
@@ -582,9 +582,10 @@ tag_init_h.commit
list_init_c = FileUpdate.new("list_init.c")
list_init_c.content = <<EOF
#{$license}
-#include "assert.h"
#include <string.h>
+#include "alloc.h"
#include "array.h"
+#include "assert.h"
#include "buf.h"
#include "buf_inspect.h"
#include "buf_parse.h"
diff --git a/libkc3/time.c b/libkc3/time.c
index 3e7966b..81c37a4 100644
--- a/libkc3/time.c
+++ b/libkc3/time.c
@@ -10,7 +10,6 @@
* AUTHOR BE CONSIDERED LIABLE FOR THE USE AND PERFORMANCE OF
* THIS SOFTWARE.
*/
-#include <stdlib.h>
#include "alloc.h"
#include "assert.h"
#include "str.h"
@@ -21,7 +20,7 @@
s_time * time_allocate (s_time *time)
{
- time->tag = alloc(2 * sizeof(s_tag));
+ time->tag = alloc_map(2 * sizeof(s_tag));
if (! time->tag)
return NULL;
return time;
@@ -32,7 +31,7 @@ void time_clean (s_time *time)
if (time->tag) {
tag_clean(time->tag);
tag_clean(time->tag + 1);
- free(time->tag);
+ alloc_unmap(time->tag, sizeof(s_tag) * 2);
}
}
@@ -89,12 +88,12 @@ s_time * time_init_copy (s_time *time, const s_time *src)
if (! time_allocate(&tmp))
return NULL;
if (! tag_init_copy(tmp.tag, src->tag)) {
- free(tmp.tag);
+ alloc_unmap(tmp.tag, sizeof(s_tag) * 2);
return NULL;
}
if (! tag_init_copy(tmp.tag + 1, src->tag + 1)) {
tag_clean(tmp.tag);
- free(tmp.tag);
+ alloc_unmap(tmp.tag, sizeof(s_tag) * 2);
return NULL;
}
}
diff --git a/libkc3/tuple.c b/libkc3/tuple.c
index 511a401..4bfe3d1 100644
--- a/libkc3/tuple.c
+++ b/libkc3/tuple.c
@@ -29,14 +29,14 @@ void tuple_clean (s_tuple *tuple)
i = tuple->count;
while (i--)
tag_clean(tuple->tag + i);
- free(tuple->tag);
+ alloc_unmap(tuple->tag, tuple->count * sizeof(s_tag));
}
}
void tuple_delete (s_tuple *tuple)
{
tuple_clean(tuple);
- free(tuple);
+ alloc_unmap(tuple, sizeof(s_tuple));
}
s_tuple * tuple_init (s_tuple *tuple, uw count)
@@ -46,7 +46,7 @@ s_tuple * tuple_init (s_tuple *tuple, uw count)
assert(tuple);
assert(2 <= count);
tmp.count = count;
- tmp.tag = alloc(count * sizeof(s_tag));
+ tmp.tag = alloc_map(count * sizeof(s_tag));
if (! tmp.tag)
return NULL;
i = count;
@@ -127,11 +127,11 @@ s_tuple * tuple_init_copy (s_tuple *tuple, s_tuple *src)
s_tuple * tuple_new (uw count)
{
s_tuple *tuple;
- tuple = alloc(sizeof(s_tuple));
+ tuple = alloc_map(sizeof(s_tuple));
if (! tuple)
return NULL;
if (! tuple_init(tuple, count)) {
- free(tuple);
+ alloc_unmap(tuple, sizeof(s_tuple));
return NULL;
}
return tuple;
@@ -140,11 +140,11 @@ s_tuple * tuple_new (uw count)
s_tuple * tuple_new_1 (const char *p)
{
s_tuple *tuple;
- tuple = alloc(sizeof(s_tuple));
+ tuple = alloc_map(sizeof(s_tuple));
if (! tuple)
return NULL;
if (! tuple_init_1(tuple, p)) {
- free(tuple);
+ alloc_unmap(tuple, sizeof(s_tuple));
return NULL;
}
return tuple;
diff --git a/sources.mk b/sources.mk
index 88bb3d3..ed3744a 100644
--- a/sources.mk
+++ b/sources.mk
@@ -231,8 +231,6 @@ KC3_C_SOURCES = \
"libkc3/alist.h" \
"libkc3/alloc.c" \
"libkc3/alloc.h" \
- "libkc3/arg.c" \
- "libkc3/arg.h" \
"libkc3/array.c" \
"libkc3/array.h" \
"libkc3/assert.h" \
diff --git a/sources.sh b/sources.sh
index 81c82d2..6d58c43 100644
--- a/sources.sh
+++ b/sources.sh
@@ -1,7 +1,7 @@
# sources.sh generated by update_sources
KC3_CONFIGURES='ekc3/configure ekc3/sources.sh ekc3/update_sources event/configure event/sources.sh event/update_sources fs/configure fs/fuse/configure fs/fuse/sources.sh fs/fuse/update_sources fs/update_sources gtk4/configure gtk4/sources.sh gtk4/update_sources http/configure http/sources.sh http/update_sources httpd/configure httpd/sources.sh httpd/update_sources ikc3/configure ikc3/sources.sh ikc3/update_sources json/configure json/sources.sh json/update_sources kc3c/configure kc3s/configure kc3s/sources.sh kc3s/update_sources libkc3/configure libkc3/sources.sh libkc3/update_sources libtommath/configure libtommath/sources.sh libtommath/update_sources markdown/configure markdown/sources.sh markdown/update_sources socket/configure socket/sources.sh socket/update_sources test/configure test/sources.sh test/update_sources ucd2c/configure window/cairo/configure window/cairo/demo/configure window/cairo/demo/sources.sh window/cairo/demo/update_sources window/cairo/quartz/configure window/cairo/quartz/demo/configure window/cairo/quartz/demo/sources.sh window/cairo/quartz/demo/update_sources window/cairo/quartz/sources.sh window/cairo/quartz/update_sources window/cairo/sources.sh window/cairo/update_sources window/cairo/win32/configure window/cairo/win32/demo/configure window/cairo/win32/demo/sources.sh window/cairo/win32/demo/update_sources window/cairo/win32/sources.sh window/cairo/win32/update_sources window/cairo/xcb/configure window/cairo/xcb/demo/configure window/cairo/xcb/demo/sources.sh window/cairo/xcb/demo/update_sources window/cairo/xcb/sources.sh window/cairo/xcb/update_sources window/configure window/sdl2/configure window/sdl2/demo/configure window/sdl2/demo/macos/configure window/sdl2/demo/sources.sh window/sdl2/demo/update_sources window/sdl2/sources.sh window/sdl2/update_sources window/sources.sh window/update_sources '
KC3_MAKEFILES='ekc3/Makefile ekc3/sources.mk event/Makefile event/sources.mk fs/Makefile fs/fuse/Makefile fs/fuse/sources.mk gtk4/Makefile gtk4/sources.mk http/Makefile http/sources.mk httpd/Makefile httpd/fx/assets/Makefile httpd/sources.mk ikc3/Makefile ikc3/sources.mk json/Makefile json/sources.mk kc3c/Makefile kc3s/Makefile kc3s/sources.mk libkc3/Makefile libkc3/gen.mk libkc3/sources.mk libtommath/Makefile libtommath/sources.mk markdown/Makefile markdown/sources.mk socket/Makefile socket/sources.mk test/Makefile test/httpd/Makefile test/httpd/assets/Makefile test/sources.mk ucd2c/Makefile window/Makefile window/cairo/Makefile window/cairo/demo/Makefile window/cairo/demo/sources.mk window/cairo/quartz/Makefile window/cairo/quartz/demo/Makefile window/cairo/quartz/demo/sources.mk window/cairo/quartz/sources.mk window/cairo/sources.mk window/cairo/win32/Makefile window/cairo/win32/demo/Makefile window/cairo/win32/demo/sources.mk window/cairo/win32/sources.mk window/cairo/xcb/Makefile window/cairo/xcb/demo/Makefile window/cairo/xcb/demo/sources.mk window/cairo/xcb/sources.mk window/sdl2/Makefile window/sdl2/demo/Makefile window/sdl2/demo/macos/Makefile window/sdl2/demo/sources.mk window/sdl2/sources.mk window/sources.mk '
-KC3_C_SOURCES='ekc3/ekc3.c ekc3/ekc3.h ekc3/html.c ekc3/html.h ekc3/types.h event/event.c event/event.h fs/OpenBSD/kc3fs.h fs/fuse/mount_kc3fs.c fs/fuse/types.h gtk4/action_map.c gtk4/action_map.h gtk4/application.c gtk4/application.h gtk4/application_window.c gtk4/application_window.h gtk4/box.c gtk4/box.h gtk4/button.c gtk4/button.h gtk4/entry.c gtk4/entry.h gtk4/entry_buffer.c gtk4/entry_buffer.h gtk4/file.c gtk4/file.h gtk4/frame.c gtk4/frame.h gtk4/kc3_glib.c gtk4/kc3_glib.h gtk4/kc3_gtk4.h gtk4/label.c gtk4/label.h gtk4/list_box.c gtk4/list_box.h gtk4/menu.c gtk4/menu.h gtk4/menu_item.c gtk4/menu_item.h gtk4/object.c gtk4/object.h gtk4/paned.c gtk4/paned.h gtk4/scrolled_window.c gtk4/scrolled_window.h gtk4/signal.c gtk4/signal.h gtk4/simple_action.c gtk4/simple_action.h gtk4/text.c gtk4/text.h gtk4/text_view.c gtk4/text_view.h gtk4/types.h gtk4/widget.c gtk4/widget.h gtk4/window.c gtk4/window.h http/http.c http/http.h http/http_request.c http/http_request.h http/http_response.c http/http_response.h http/mime_type.c http/mime_type.h http/types.h http/url.c http/url.h httpd/httpd.c httpd/httpd.h ikc3/buf_linenoise.c ikc3/buf_linenoise.h ikc3/buf_wineditline.c ikc3/buf_wineditline.h ikc3/ikc3.c ikc3/linenoise.c json/json.c json/json.h kc3c/c3c.c kc3s/buf_readline.c kc3s/buf_readline.h kc3s/kc3s.c libkc3/abs.c libkc3/abs.h libkc3/alist.c libkc3/alist.h libkc3/alloc.c libkc3/alloc.h libkc3/arg.c libkc3/arg.h libkc3/array.c libkc3/array.h libkc3/assert.h libkc3/binding.c libkc3/binding.h libkc3/block.c libkc3/block.h libkc3/bool.c libkc3/bool.h libkc3/buf.c libkc3/buf.h libkc3/buf_fd.c libkc3/buf_fd.h libkc3/buf_file.c libkc3/buf_file.h libkc3/buf_getc.c libkc3/buf_getc.h libkc3/buf_getchar.c libkc3/buf_getchar.h libkc3/buf_inspect.c libkc3/buf_inspect.h libkc3/buf_inspect_s.c.in libkc3/buf_inspect_s.h.in libkc3/buf_inspect_s16.c libkc3/buf_inspect_s16.h libkc3/buf_inspect_s16_binary.c libkc3/buf_inspect_s16_binary.h libkc3/buf_inspect_s16_decimal.c libkc3/buf_inspect_s16_decimal.h libkc3/buf_inspect_s16_hexadecimal.c libkc3/buf_inspect_s16_hexadecimal.h libkc3/buf_inspect_s16_octal.c libkc3/buf_inspect_s16_octal.h libkc3/buf_inspect_s32.c libkc3/buf_inspect_s32.h libkc3/buf_inspect_s32_binary.c libkc3/buf_inspect_s32_binary.h libkc3/buf_inspect_s32_decimal.c libkc3/buf_inspect_s32_decimal.h libkc3/buf_inspect_s32_hexadecimal.c libkc3/buf_inspect_s32_hexadecimal.h libkc3/buf_inspect_s32_octal.c libkc3/buf_inspect_s32_octal.h libkc3/buf_inspect_s64.c libkc3/buf_inspect_s64.h libkc3/buf_inspect_s64_binary.c libkc3/buf_inspect_s64_binary.h libkc3/buf_inspect_s64_decimal.c libkc3/buf_inspect_s64_decimal.h libkc3/buf_inspect_s64_hexadecimal.c libkc3/buf_inspect_s64_hexadecimal.h libkc3/buf_inspect_s64_octal.c libkc3/buf_inspect_s64_octal.h libkc3/buf_inspect_s8.c libkc3/buf_inspect_s8.h libkc3/buf_inspect_s8_binary.c libkc3/buf_inspect_s8_binary.h libkc3/buf_inspect_s8_decimal.c libkc3/buf_inspect_s8_decimal.h libkc3/buf_inspect_s8_hexadecimal.c libkc3/buf_inspect_s8_hexadecimal.h libkc3/buf_inspect_s8_octal.c libkc3/buf_inspect_s8_octal.h libkc3/buf_inspect_s_base.c.in libkc3/buf_inspect_s_base.h.in libkc3/buf_inspect_sw.c libkc3/buf_inspect_sw.h libkc3/buf_inspect_sw_binary.c libkc3/buf_inspect_sw_binary.h libkc3/buf_inspect_sw_decimal.c libkc3/buf_inspect_sw_decimal.h libkc3/buf_inspect_sw_hexadecimal.c libkc3/buf_inspect_sw_hexadecimal.h libkc3/buf_inspect_sw_octal.c libkc3/buf_inspect_sw_octal.h libkc3/buf_inspect_u.c.in libkc3/buf_inspect_u.h.in libkc3/buf_inspect_u16.c libkc3/buf_inspect_u16.h libkc3/buf_inspect_u16_binary.c libkc3/buf_inspect_u16_binary.h libkc3/buf_inspect_u16_decimal.c libkc3/buf_inspect_u16_decimal.h libkc3/buf_inspect_u16_hexadecimal.c libkc3/buf_inspect_u16_hexadecimal.h libkc3/buf_inspect_u16_octal.c libkc3/buf_inspect_u16_octal.h libkc3/buf_inspect_u32.c libkc3/buf_inspect_u32.h libkc3/buf_inspect_u32_binary.c libkc3/buf_inspect_u32_binary.h libkc3/buf_inspect_u32_decimal.c libkc3/buf_inspect_u32_decimal.h libkc3/buf_inspect_u32_hexadecimal.c libkc3/buf_inspect_u32_hexadecimal.h libkc3/buf_inspect_u32_octal.c libkc3/buf_inspect_u32_octal.h libkc3/buf_inspect_u64.c libkc3/buf_inspect_u64.h libkc3/buf_inspect_u64_binary.c libkc3/buf_inspect_u64_binary.h libkc3/buf_inspect_u64_decimal.c libkc3/buf_inspect_u64_decimal.h libkc3/buf_inspect_u64_hexadecimal.c libkc3/buf_inspect_u64_hexadecimal.h libkc3/buf_inspect_u64_octal.c libkc3/buf_inspect_u64_octal.h libkc3/buf_inspect_u8.c libkc3/buf_inspect_u8.h libkc3/buf_inspect_u8_binary.c libkc3/buf_inspect_u8_binary.h libkc3/buf_inspect_u8_decimal.c libkc3/buf_inspect_u8_decimal.h libkc3/buf_inspect_u8_hexadecimal.c libkc3/buf_inspect_u8_hexadecimal.h libkc3/buf_inspect_u8_octal.c libkc3/buf_inspect_u8_octal.h libkc3/buf_inspect_u_base.c.in libkc3/buf_inspect_u_base.h.in libkc3/buf_inspect_uw.c libkc3/buf_inspect_uw.h libkc3/buf_inspect_uw_binary.c libkc3/buf_inspect_uw_binary.h libkc3/buf_inspect_uw_decimal.c libkc3/buf_inspect_uw_decimal.h libkc3/buf_inspect_uw_hexadecimal.c libkc3/buf_inspect_uw_hexadecimal.h libkc3/buf_inspect_uw_octal.c libkc3/buf_inspect_uw_octal.h libkc3/buf_parse.c libkc3/buf_parse.h libkc3/buf_parse_s.c.in libkc3/buf_parse_s.h.in libkc3/buf_parse_s16.c libkc3/buf_parse_s16.h libkc3/buf_parse_s32.c libkc3/buf_parse_s32.h libkc3/buf_parse_s64.c libkc3/buf_parse_s64.h libkc3/buf_parse_s8.c libkc3/buf_parse_s8.h libkc3/buf_parse_sw.c libkc3/buf_parse_sw.h libkc3/buf_parse_u.c.in libkc3/buf_parse_u.h.in libkc3/buf_parse_u16.c libkc3/buf_parse_u16.h libkc3/buf_parse_u32.c libkc3/buf_parse_u32.h libkc3/buf_parse_u64.c libkc3/buf_parse_u64.h libkc3/buf_parse_u8.c libkc3/buf_parse_u8.h libkc3/buf_parse_uw.c libkc3/buf_parse_uw.h libkc3/buf_rw.c libkc3/buf_rw.h libkc3/buf_save.c libkc3/buf_save.h libkc3/call.c libkc3/call.h libkc3/callable.c libkc3/callable.h libkc3/cast.c libkc3/cast.h libkc3/ceiling.c libkc3/ceiling.h libkc3/cfn.c libkc3/cfn.h libkc3/character.c libkc3/character.h libkc3/compare.c libkc3/compare.h libkc3/complex.c libkc3/complex.h libkc3/cow.c libkc3/cow.h libkc3/crypt.c libkc3/crypt.h libkc3/crypt_sha512.c libkc3/data.c libkc3/data.h libkc3/deserialize.c libkc3/deserialize.h libkc3/env.c libkc3/env.h libkc3/env_fork.c libkc3/env_fork.h libkc3/error.c libkc3/error.h libkc3/error_handler.c libkc3/error_handler.h libkc3/eval.c libkc3/eval.h libkc3/explicit_bzero.h libkc3/f128.c libkc3/f128.h libkc3/f32.c libkc3/f32.h libkc3/f64.c libkc3/f64.h libkc3/fact.c libkc3/fact.h libkc3/fact_action.c libkc3/fact_action.h libkc3/fact_list.c libkc3/fact_list.h libkc3/facts.c libkc3/facts.h libkc3/facts_cursor.c libkc3/facts_cursor.h libkc3/facts_spec.c libkc3/facts_spec.h libkc3/facts_spec_cursor.c libkc3/facts_spec_cursor.h libkc3/facts_transaction.c libkc3/facts_transaction.h libkc3/facts_with.c libkc3/facts_with.h libkc3/facts_with_cursor.c libkc3/facts_with_cursor.h libkc3/fd.c libkc3/fd.h libkc3/file.c libkc3/file.h libkc3/float.h libkc3/fn.c libkc3/fn.h libkc3/fn_clause.c libkc3/fn_clause.h libkc3/frame.c libkc3/frame.h libkc3/hash.c libkc3/hash.h libkc3/ident.c libkc3/ident.h libkc3/inspect.c libkc3/inspect.h libkc3/integer.c libkc3/integer.h libkc3/io.c libkc3/io.h libkc3/kc3.c libkc3/kc3.h libkc3/kc3_main.h libkc3/license.c libkc3/list.c libkc3/list.h libkc3/list_init.c libkc3/list_init.h libkc3/log.c libkc3/log.h libkc3/map.c libkc3/map.h libkc3/module.c libkc3/module.h libkc3/mutex.c libkc3/mutex.h libkc3/operator.c libkc3/operator.h libkc3/pcomplex.c libkc3/pcomplex.h libkc3/pcow.c libkc3/pcow.h libkc3/pretty.c libkc3/pretty.h libkc3/ptag.c libkc3/ptag.h libkc3/ptr.c libkc3/ptr.h libkc3/ptr_free.c libkc3/ptr_free.h libkc3/queue.c libkc3/queue.h libkc3/quote.c libkc3/quote.h libkc3/ratio.c libkc3/ratio.h libkc3/rwlock.c libkc3/rwlock.h libkc3/s.c.in libkc3/s.h.in libkc3/s16.c libkc3/s16.h libkc3/s32.c libkc3/s32.h libkc3/s64.c libkc3/s64.h libkc3/s8.c libkc3/s8.h libkc3/sequence.c libkc3/sequence.h libkc3/serialize.c libkc3/serialize.h libkc3/set.c.in libkc3/set.h.in libkc3/set__fact.c libkc3/set__fact.h libkc3/set__tag.c libkc3/set__tag.h libkc3/set_cursor.c.in libkc3/set_cursor.h.in libkc3/set_cursor__fact.c libkc3/set_cursor__fact.h libkc3/set_cursor__tag.c libkc3/set_cursor__tag.h libkc3/set_item.c.in libkc3/set_item.h.in libkc3/set_item__fact.c libkc3/set_item__fact.h libkc3/set_item__tag.c libkc3/set_item__tag.h libkc3/sh.c libkc3/sh.h libkc3/sha1.c libkc3/sha1.h libkc3/sign.c libkc3/sign.h libkc3/skiplist.c.in libkc3/skiplist.h.in libkc3/skiplist__alloc.c libkc3/skiplist__alloc.h libkc3/skiplist__fact.c libkc3/skiplist__fact.h libkc3/skiplist_node.c.in libkc3/skiplist_node.h.in libkc3/skiplist_node__alloc.c libkc3/skiplist_node__alloc.h libkc3/skiplist_node__fact.c libkc3/skiplist_node__fact.h libkc3/special_operator.c libkc3/special_operator.h libkc3/str.c libkc3/str.h libkc3/struct.c libkc3/struct.h libkc3/struct_type.c libkc3/struct_type.h libkc3/sw.c libkc3/sw.h libkc3/sym.c libkc3/sym.h libkc3/tag.c libkc3/tag.h libkc3/tag_add.c libkc3/tag_addi.c libkc3/tag_band.c libkc3/tag_bnot.c libkc3/tag_bor.c libkc3/tag_bxor.c libkc3/tag_div.c libkc3/tag_init.c libkc3/tag_init.h libkc3/tag_mod.c libkc3/tag_mul.c libkc3/tag_neg.c libkc3/tag_shift_left.c libkc3/tag_shift_right.c libkc3/tag_sqrt.c libkc3/tag_sub.c libkc3/tag_type.c libkc3/tag_type.h libkc3/time.c libkc3/time.h libkc3/to_lisp.c libkc3/to_lisp.h libkc3/tuple.c libkc3/tuple.h libkc3/types.h libkc3/u.c.in libkc3/u.h.in libkc3/u16.c libkc3/u16.h libkc3/u32.c libkc3/u32.h libkc3/u64.c libkc3/u64.h libkc3/u8.c libkc3/u8.h libkc3/ucd.c libkc3/ucd.h libkc3/unquote.c libkc3/unquote.h libkc3/uw.c libkc3/uw.h libkc3/var.c libkc3/var.h libkc3/void.c libkc3/void.h libkc3/wait.c libkc3/wait.h markdown/entity.c markdown/entity.h markdown/markdown.c markdown/markdown.h markdown/md4c-html.c markdown/md4c-html.h markdown/md4c.c markdown/md4c.h socket/socket.c socket/socket.h socket/socket_addr.c socket/socket_addr.h socket/socket_buf.c socket/socket_buf.h socket/types.h test/array_test.c test/bool_test.c test/buf_file_test.c test/buf_inspect_test.c test/buf_parse_test.c test/buf_parse_test.h test/buf_parse_test_s16.c test/buf_parse_test_s32.c test/buf_parse_test_s64.c test/buf_parse_test_s8.c test/buf_parse_test_su.h test/buf_parse_test_u16.c test/buf_parse_test_u32.c test/buf_parse_test_u64.c test/buf_parse_test_u8.c test/buf_test.c test/call_test.c test/cfn_test.c test/character_test.c test/compare_test.c test/compare_test.h test/env_test.c test/fact_test.c test/fact_test.h test/facts_cursor_test.c test/facts_test.c test/facts_with_test.c test/fn_test.c test/hash_test.c test/ident_test.c test/inspect_test.c test/libkc3_test.c test/list_test.c test/ratio_test.c test/set__fact_test.c test/set__tag_test.c test/skiplist__fact_test.c test/str_test.c test/struct_test.c test/sym_test.c test/tag_test.c test/tag_test.h test/test.c test/test.h test/tuple_test.c test/types_test.c ucd2c/ucd.h ucd2c/ucd2c.c window/cairo/cairo_font.c window/cairo/cairo_font.h window/cairo/cairo_sprite.c window/cairo/cairo_sprite.h window/cairo/cairo_text.c window/cairo/cairo_text.h window/cairo/demo/bg_rect.c window/cairo/demo/bg_rect.h window/cairo/demo/flies.c window/cairo/demo/flies.h window/cairo/demo/lightspeed.c window/cairo/demo/lightspeed.h window/cairo/demo/mandelbrot_f128.c window/cairo/demo/mandelbrot_f128.h window/cairo/demo/toasters.c window/cairo/demo/toasters.h window/cairo/demo/window_cairo_demo.c window/cairo/demo/window_cairo_demo.h window/cairo/quartz/demo/window_cairo_quartz_demo.c window/cairo/quartz/quartz_to_xkbcommon.c window/cairo/quartz/quartz_to_xkbcommon.h window/cairo/quartz/window_cairo_quartz.h window/cairo/quartz/window_cairo_quartz_app_delegate.h window/cairo/quartz/window_cairo_quartz_view.h window/cairo/quartz/window_cairo_quartz_view_controller.h window/cairo/quartz/xkbquartz.h window/cairo/types.h window/cairo/win32/demo/window_cairo_win32_demo.c window/cairo/win32/vk_to_xkbcommon.c window/cairo/win32/vk_to_xkbcommon.h window/cairo/win32/window_cairo_win32.c window/cairo/win32/window_cairo_win32.h window/cairo/window_cairo.c window/cairo/window_cairo.h window/cairo/xcb/demo/window_cairo_xcb_demo.c window/cairo/xcb/window_cairo_xcb.c window/cairo/xcb/window_cairo_xcb.h window/sdl2/demo/bg_rect.c window/sdl2/demo/bg_rect.h window/sdl2/demo/earth.c window/sdl2/demo/earth.h window/sdl2/demo/flies.c window/sdl2/demo/flies.h window/sdl2/demo/lightspeed.c window/sdl2/demo/lightspeed.h window/sdl2/demo/mandelbrot_f128.c window/sdl2/demo/mandelbrot_f128.h window/sdl2/demo/matrix.c window/sdl2/demo/matrix.h window/sdl2/demo/toasters.c window/sdl2/demo/toasters.h window/sdl2/demo/window_sdl2_demo.c window/sdl2/demo/window_sdl2_demo.h window/sdl2/disabled/mandelbrot.c window/sdl2/disabled/mandelbrot.h window/sdl2/disabled/sdl2_font.c window/sdl2/disabled/sdl2_font.h window/sdl2/disabled/sdl2_sprite.c window/sdl2/disabled/sdl2_sprite.h window/sdl2/dmat3.h window/sdl2/dmat4.c window/sdl2/dmat4.h window/sdl2/dvec2.c window/sdl2/dvec2.h window/sdl2/dvec3.c window/sdl2/dvec3.h window/sdl2/gl_camera.c window/sdl2/gl_camera.h window/sdl2/gl_cylinder.c window/sdl2/gl_cylinder.h window/sdl2/gl_deprecated.c window/sdl2/gl_deprecated.h window/sdl2/gl_font.c window/sdl2/gl_font.h window/sdl2/gl_lines.c window/sdl2/gl_lines.h window/sdl2/gl_object.c window/sdl2/gl_object.h window/sdl2/gl_ortho.c window/sdl2/gl_ortho.h window/sdl2/gl_sphere.c window/sdl2/gl_sphere.h window/sdl2/gl_sprite.c window/sdl2/gl_sprite.h window/sdl2/gl_square.c window/sdl2/gl_square.h window/sdl2/gl_text.c window/sdl2/gl_text.h window/sdl2/gl_triangle.c window/sdl2/gl_triangle.h window/sdl2/gl_vertex.c window/sdl2/gl_vertex.h window/sdl2/gl_vtext.c window/sdl2/gl_vtext.h window/sdl2/mat3.h window/sdl2/mat4.c window/sdl2/mat4.h window/sdl2/types.h window/sdl2/vec2.c window/sdl2/vec2.h window/sdl2/vec3.c window/sdl2/vec3.h window/sdl2/window_sdl2.c window/sdl2/window_sdl2.h window/types.h window/window.c window/window.h '
+KC3_C_SOURCES='ekc3/ekc3.c ekc3/ekc3.h ekc3/html.c ekc3/html.h ekc3/types.h event/event.c event/event.h fs/OpenBSD/kc3fs.h fs/fuse/mount_kc3fs.c fs/fuse/types.h gtk4/action_map.c gtk4/action_map.h gtk4/application.c gtk4/application.h gtk4/application_window.c gtk4/application_window.h gtk4/box.c gtk4/box.h gtk4/button.c gtk4/button.h gtk4/entry.c gtk4/entry.h gtk4/entry_buffer.c gtk4/entry_buffer.h gtk4/file.c gtk4/file.h gtk4/frame.c gtk4/frame.h gtk4/kc3_glib.c gtk4/kc3_glib.h gtk4/kc3_gtk4.h gtk4/label.c gtk4/label.h gtk4/list_box.c gtk4/list_box.h gtk4/menu.c gtk4/menu.h gtk4/menu_item.c gtk4/menu_item.h gtk4/object.c gtk4/object.h gtk4/paned.c gtk4/paned.h gtk4/scrolled_window.c gtk4/scrolled_window.h gtk4/signal.c gtk4/signal.h gtk4/simple_action.c gtk4/simple_action.h gtk4/text.c gtk4/text.h gtk4/text_view.c gtk4/text_view.h gtk4/types.h gtk4/widget.c gtk4/widget.h gtk4/window.c gtk4/window.h http/http.c http/http.h http/http_request.c http/http_request.h http/http_response.c http/http_response.h http/mime_type.c http/mime_type.h http/types.h http/url.c http/url.h httpd/httpd.c httpd/httpd.h ikc3/buf_linenoise.c ikc3/buf_linenoise.h ikc3/buf_wineditline.c ikc3/buf_wineditline.h ikc3/ikc3.c ikc3/linenoise.c json/json.c json/json.h kc3c/c3c.c kc3s/buf_readline.c kc3s/buf_readline.h kc3s/kc3s.c libkc3/abs.c libkc3/abs.h libkc3/alist.c libkc3/alist.h libkc3/alloc.c libkc3/alloc.h libkc3/array.c libkc3/array.h libkc3/assert.h libkc3/binding.c libkc3/binding.h libkc3/block.c libkc3/block.h libkc3/bool.c libkc3/bool.h libkc3/buf.c libkc3/buf.h libkc3/buf_fd.c libkc3/buf_fd.h libkc3/buf_file.c libkc3/buf_file.h libkc3/buf_getc.c libkc3/buf_getc.h libkc3/buf_getchar.c libkc3/buf_getchar.h libkc3/buf_inspect.c libkc3/buf_inspect.h libkc3/buf_inspect_s.c.in libkc3/buf_inspect_s.h.in libkc3/buf_inspect_s16.c libkc3/buf_inspect_s16.h libkc3/buf_inspect_s16_binary.c libkc3/buf_inspect_s16_binary.h libkc3/buf_inspect_s16_decimal.c libkc3/buf_inspect_s16_decimal.h libkc3/buf_inspect_s16_hexadecimal.c libkc3/buf_inspect_s16_hexadecimal.h libkc3/buf_inspect_s16_octal.c libkc3/buf_inspect_s16_octal.h libkc3/buf_inspect_s32.c libkc3/buf_inspect_s32.h libkc3/buf_inspect_s32_binary.c libkc3/buf_inspect_s32_binary.h libkc3/buf_inspect_s32_decimal.c libkc3/buf_inspect_s32_decimal.h libkc3/buf_inspect_s32_hexadecimal.c libkc3/buf_inspect_s32_hexadecimal.h libkc3/buf_inspect_s32_octal.c libkc3/buf_inspect_s32_octal.h libkc3/buf_inspect_s64.c libkc3/buf_inspect_s64.h libkc3/buf_inspect_s64_binary.c libkc3/buf_inspect_s64_binary.h libkc3/buf_inspect_s64_decimal.c libkc3/buf_inspect_s64_decimal.h libkc3/buf_inspect_s64_hexadecimal.c libkc3/buf_inspect_s64_hexadecimal.h libkc3/buf_inspect_s64_octal.c libkc3/buf_inspect_s64_octal.h libkc3/buf_inspect_s8.c libkc3/buf_inspect_s8.h libkc3/buf_inspect_s8_binary.c libkc3/buf_inspect_s8_binary.h libkc3/buf_inspect_s8_decimal.c libkc3/buf_inspect_s8_decimal.h libkc3/buf_inspect_s8_hexadecimal.c libkc3/buf_inspect_s8_hexadecimal.h libkc3/buf_inspect_s8_octal.c libkc3/buf_inspect_s8_octal.h libkc3/buf_inspect_s_base.c.in libkc3/buf_inspect_s_base.h.in libkc3/buf_inspect_sw.c libkc3/buf_inspect_sw.h libkc3/buf_inspect_sw_binary.c libkc3/buf_inspect_sw_binary.h libkc3/buf_inspect_sw_decimal.c libkc3/buf_inspect_sw_decimal.h libkc3/buf_inspect_sw_hexadecimal.c libkc3/buf_inspect_sw_hexadecimal.h libkc3/buf_inspect_sw_octal.c libkc3/buf_inspect_sw_octal.h libkc3/buf_inspect_u.c.in libkc3/buf_inspect_u.h.in libkc3/buf_inspect_u16.c libkc3/buf_inspect_u16.h libkc3/buf_inspect_u16_binary.c libkc3/buf_inspect_u16_binary.h libkc3/buf_inspect_u16_decimal.c libkc3/buf_inspect_u16_decimal.h libkc3/buf_inspect_u16_hexadecimal.c libkc3/buf_inspect_u16_hexadecimal.h libkc3/buf_inspect_u16_octal.c libkc3/buf_inspect_u16_octal.h libkc3/buf_inspect_u32.c libkc3/buf_inspect_u32.h libkc3/buf_inspect_u32_binary.c libkc3/buf_inspect_u32_binary.h libkc3/buf_inspect_u32_decimal.c libkc3/buf_inspect_u32_decimal.h libkc3/buf_inspect_u32_hexadecimal.c libkc3/buf_inspect_u32_hexadecimal.h libkc3/buf_inspect_u32_octal.c libkc3/buf_inspect_u32_octal.h libkc3/buf_inspect_u64.c libkc3/buf_inspect_u64.h libkc3/buf_inspect_u64_binary.c libkc3/buf_inspect_u64_binary.h libkc3/buf_inspect_u64_decimal.c libkc3/buf_inspect_u64_decimal.h libkc3/buf_inspect_u64_hexadecimal.c libkc3/buf_inspect_u64_hexadecimal.h libkc3/buf_inspect_u64_octal.c libkc3/buf_inspect_u64_octal.h libkc3/buf_inspect_u8.c libkc3/buf_inspect_u8.h libkc3/buf_inspect_u8_binary.c libkc3/buf_inspect_u8_binary.h libkc3/buf_inspect_u8_decimal.c libkc3/buf_inspect_u8_decimal.h libkc3/buf_inspect_u8_hexadecimal.c libkc3/buf_inspect_u8_hexadecimal.h libkc3/buf_inspect_u8_octal.c libkc3/buf_inspect_u8_octal.h libkc3/buf_inspect_u_base.c.in libkc3/buf_inspect_u_base.h.in libkc3/buf_inspect_uw.c libkc3/buf_inspect_uw.h libkc3/buf_inspect_uw_binary.c libkc3/buf_inspect_uw_binary.h libkc3/buf_inspect_uw_decimal.c libkc3/buf_inspect_uw_decimal.h libkc3/buf_inspect_uw_hexadecimal.c libkc3/buf_inspect_uw_hexadecimal.h libkc3/buf_inspect_uw_octal.c libkc3/buf_inspect_uw_octal.h libkc3/buf_parse.c libkc3/buf_parse.h libkc3/buf_parse_s.c.in libkc3/buf_parse_s.h.in libkc3/buf_parse_s16.c libkc3/buf_parse_s16.h libkc3/buf_parse_s32.c libkc3/buf_parse_s32.h libkc3/buf_parse_s64.c libkc3/buf_parse_s64.h libkc3/buf_parse_s8.c libkc3/buf_parse_s8.h libkc3/buf_parse_sw.c libkc3/buf_parse_sw.h libkc3/buf_parse_u.c.in libkc3/buf_parse_u.h.in libkc3/buf_parse_u16.c libkc3/buf_parse_u16.h libkc3/buf_parse_u32.c libkc3/buf_parse_u32.h libkc3/buf_parse_u64.c libkc3/buf_parse_u64.h libkc3/buf_parse_u8.c libkc3/buf_parse_u8.h libkc3/buf_parse_uw.c libkc3/buf_parse_uw.h libkc3/buf_rw.c libkc3/buf_rw.h libkc3/buf_save.c libkc3/buf_save.h libkc3/call.c libkc3/call.h libkc3/callable.c libkc3/callable.h libkc3/cast.c libkc3/cast.h libkc3/ceiling.c libkc3/ceiling.h libkc3/cfn.c libkc3/cfn.h libkc3/character.c libkc3/character.h libkc3/compare.c libkc3/compare.h libkc3/complex.c libkc3/complex.h libkc3/cow.c libkc3/cow.h libkc3/crypt.c libkc3/crypt.h libkc3/crypt_sha512.c libkc3/data.c libkc3/data.h libkc3/deserialize.c libkc3/deserialize.h libkc3/env.c libkc3/env.h libkc3/env_fork.c libkc3/env_fork.h libkc3/error.c libkc3/error.h libkc3/error_handler.c libkc3/error_handler.h libkc3/eval.c libkc3/eval.h libkc3/explicit_bzero.h libkc3/f128.c libkc3/f128.h libkc3/f32.c libkc3/f32.h libkc3/f64.c libkc3/f64.h libkc3/fact.c libkc3/fact.h libkc3/fact_action.c libkc3/fact_action.h libkc3/fact_list.c libkc3/fact_list.h libkc3/facts.c libkc3/facts.h libkc3/facts_cursor.c libkc3/facts_cursor.h libkc3/facts_spec.c libkc3/facts_spec.h libkc3/facts_spec_cursor.c libkc3/facts_spec_cursor.h libkc3/facts_transaction.c libkc3/facts_transaction.h libkc3/facts_with.c libkc3/facts_with.h libkc3/facts_with_cursor.c libkc3/facts_with_cursor.h libkc3/fd.c libkc3/fd.h libkc3/file.c libkc3/file.h libkc3/float.h libkc3/fn.c libkc3/fn.h libkc3/fn_clause.c libkc3/fn_clause.h libkc3/frame.c libkc3/frame.h libkc3/hash.c libkc3/hash.h libkc3/ident.c libkc3/ident.h libkc3/inspect.c libkc3/inspect.h libkc3/integer.c libkc3/integer.h libkc3/io.c libkc3/io.h libkc3/kc3.c libkc3/kc3.h libkc3/kc3_main.h libkc3/license.c libkc3/list.c libkc3/list.h libkc3/list_init.c libkc3/list_init.h libkc3/log.c libkc3/log.h libkc3/map.c libkc3/map.h libkc3/module.c libkc3/module.h libkc3/mutex.c libkc3/mutex.h libkc3/operator.c libkc3/operator.h libkc3/pcomplex.c libkc3/pcomplex.h libkc3/pcow.c libkc3/pcow.h libkc3/pretty.c libkc3/pretty.h libkc3/ptag.c libkc3/ptag.h libkc3/ptr.c libkc3/ptr.h libkc3/ptr_free.c libkc3/ptr_free.h libkc3/queue.c libkc3/queue.h libkc3/quote.c libkc3/quote.h libkc3/ratio.c libkc3/ratio.h libkc3/rwlock.c libkc3/rwlock.h libkc3/s.c.in libkc3/s.h.in libkc3/s16.c libkc3/s16.h libkc3/s32.c libkc3/s32.h libkc3/s64.c libkc3/s64.h libkc3/s8.c libkc3/s8.h libkc3/sequence.c libkc3/sequence.h libkc3/serialize.c libkc3/serialize.h libkc3/set.c.in libkc3/set.h.in libkc3/set__fact.c libkc3/set__fact.h libkc3/set__tag.c libkc3/set__tag.h libkc3/set_cursor.c.in libkc3/set_cursor.h.in libkc3/set_cursor__fact.c libkc3/set_cursor__fact.h libkc3/set_cursor__tag.c libkc3/set_cursor__tag.h libkc3/set_item.c.in libkc3/set_item.h.in libkc3/set_item__fact.c libkc3/set_item__fact.h libkc3/set_item__tag.c libkc3/set_item__tag.h libkc3/sh.c libkc3/sh.h libkc3/sha1.c libkc3/sha1.h libkc3/sign.c libkc3/sign.h libkc3/skiplist.c.in libkc3/skiplist.h.in libkc3/skiplist__alloc.c libkc3/skiplist__alloc.h libkc3/skiplist__fact.c libkc3/skiplist__fact.h libkc3/skiplist_node.c.in libkc3/skiplist_node.h.in libkc3/skiplist_node__alloc.c libkc3/skiplist_node__alloc.h libkc3/skiplist_node__fact.c libkc3/skiplist_node__fact.h libkc3/special_operator.c libkc3/special_operator.h libkc3/str.c libkc3/str.h libkc3/struct.c libkc3/struct.h libkc3/struct_type.c libkc3/struct_type.h libkc3/sw.c libkc3/sw.h libkc3/sym.c libkc3/sym.h libkc3/tag.c libkc3/tag.h libkc3/tag_add.c libkc3/tag_addi.c libkc3/tag_band.c libkc3/tag_bnot.c libkc3/tag_bor.c libkc3/tag_bxor.c libkc3/tag_div.c libkc3/tag_init.c libkc3/tag_init.h libkc3/tag_mod.c libkc3/tag_mul.c libkc3/tag_neg.c libkc3/tag_shift_left.c libkc3/tag_shift_right.c libkc3/tag_sqrt.c libkc3/tag_sub.c libkc3/tag_type.c libkc3/tag_type.h libkc3/time.c libkc3/time.h libkc3/to_lisp.c libkc3/to_lisp.h libkc3/tuple.c libkc3/tuple.h libkc3/types.h libkc3/u.c.in libkc3/u.h.in libkc3/u16.c libkc3/u16.h libkc3/u32.c libkc3/u32.h libkc3/u64.c libkc3/u64.h libkc3/u8.c libkc3/u8.h libkc3/ucd.c libkc3/ucd.h libkc3/unquote.c libkc3/unquote.h libkc3/uw.c libkc3/uw.h libkc3/var.c libkc3/var.h libkc3/void.c libkc3/void.h libkc3/wait.c libkc3/wait.h markdown/entity.c markdown/entity.h markdown/markdown.c markdown/markdown.h markdown/md4c-html.c markdown/md4c-html.h markdown/md4c.c markdown/md4c.h socket/socket.c socket/socket.h socket/socket_addr.c socket/socket_addr.h socket/socket_buf.c socket/socket_buf.h socket/types.h test/array_test.c test/bool_test.c test/buf_file_test.c test/buf_inspect_test.c test/buf_parse_test.c test/buf_parse_test.h test/buf_parse_test_s16.c test/buf_parse_test_s32.c test/buf_parse_test_s64.c test/buf_parse_test_s8.c test/buf_parse_test_su.h test/buf_parse_test_u16.c test/buf_parse_test_u32.c test/buf_parse_test_u64.c test/buf_parse_test_u8.c test/buf_test.c test/call_test.c test/cfn_test.c test/character_test.c test/compare_test.c test/compare_test.h test/env_test.c test/fact_test.c test/fact_test.h test/facts_cursor_test.c test/facts_test.c test/facts_with_test.c test/fn_test.c test/hash_test.c test/ident_test.c test/inspect_test.c test/libkc3_test.c test/list_test.c test/ratio_test.c test/set__fact_test.c test/set__tag_test.c test/skiplist__fact_test.c test/str_test.c test/struct_test.c test/sym_test.c test/tag_test.c test/tag_test.h test/test.c test/test.h test/tuple_test.c test/types_test.c ucd2c/ucd.h ucd2c/ucd2c.c window/cairo/cairo_font.c window/cairo/cairo_font.h window/cairo/cairo_sprite.c window/cairo/cairo_sprite.h window/cairo/cairo_text.c window/cairo/cairo_text.h window/cairo/demo/bg_rect.c window/cairo/demo/bg_rect.h window/cairo/demo/flies.c window/cairo/demo/flies.h window/cairo/demo/lightspeed.c window/cairo/demo/lightspeed.h window/cairo/demo/mandelbrot_f128.c window/cairo/demo/mandelbrot_f128.h window/cairo/demo/toasters.c window/cairo/demo/toasters.h window/cairo/demo/window_cairo_demo.c window/cairo/demo/window_cairo_demo.h window/cairo/quartz/demo/window_cairo_quartz_demo.c window/cairo/quartz/quartz_to_xkbcommon.c window/cairo/quartz/quartz_to_xkbcommon.h window/cairo/quartz/window_cairo_quartz.h window/cairo/quartz/window_cairo_quartz_app_delegate.h window/cairo/quartz/window_cairo_quartz_view.h window/cairo/quartz/window_cairo_quartz_view_controller.h window/cairo/quartz/xkbquartz.h window/cairo/types.h window/cairo/win32/demo/window_cairo_win32_demo.c window/cairo/win32/vk_to_xkbcommon.c window/cairo/win32/vk_to_xkbcommon.h window/cairo/win32/window_cairo_win32.c window/cairo/win32/window_cairo_win32.h window/cairo/window_cairo.c window/cairo/window_cairo.h window/cairo/xcb/demo/window_cairo_xcb_demo.c window/cairo/xcb/window_cairo_xcb.c window/cairo/xcb/window_cairo_xcb.h window/sdl2/demo/bg_rect.c window/sdl2/demo/bg_rect.h window/sdl2/demo/earth.c window/sdl2/demo/earth.h window/sdl2/demo/flies.c window/sdl2/demo/flies.h window/sdl2/demo/lightspeed.c window/sdl2/demo/lightspeed.h window/sdl2/demo/mandelbrot_f128.c window/sdl2/demo/mandelbrot_f128.h window/sdl2/demo/matrix.c window/sdl2/demo/matrix.h window/sdl2/demo/toasters.c window/sdl2/demo/toasters.h window/sdl2/demo/window_sdl2_demo.c window/sdl2/demo/window_sdl2_demo.h window/sdl2/disabled/mandelbrot.c window/sdl2/disabled/mandelbrot.h window/sdl2/disabled/sdl2_font.c window/sdl2/disabled/sdl2_font.h window/sdl2/disabled/sdl2_sprite.c window/sdl2/disabled/sdl2_sprite.h window/sdl2/dmat3.h window/sdl2/dmat4.c window/sdl2/dmat4.h window/sdl2/dvec2.c window/sdl2/dvec2.h window/sdl2/dvec3.c window/sdl2/dvec3.h window/sdl2/gl_camera.c window/sdl2/gl_camera.h window/sdl2/gl_cylinder.c window/sdl2/gl_cylinder.h window/sdl2/gl_deprecated.c window/sdl2/gl_deprecated.h window/sdl2/gl_font.c window/sdl2/gl_font.h window/sdl2/gl_lines.c window/sdl2/gl_lines.h window/sdl2/gl_object.c window/sdl2/gl_object.h window/sdl2/gl_ortho.c window/sdl2/gl_ortho.h window/sdl2/gl_sphere.c window/sdl2/gl_sphere.h window/sdl2/gl_sprite.c window/sdl2/gl_sprite.h window/sdl2/gl_square.c window/sdl2/gl_square.h window/sdl2/gl_text.c window/sdl2/gl_text.h window/sdl2/gl_triangle.c window/sdl2/gl_triangle.h window/sdl2/gl_vertex.c window/sdl2/gl_vertex.h window/sdl2/gl_vtext.c window/sdl2/gl_vtext.h window/sdl2/mat3.h window/sdl2/mat4.c window/sdl2/mat4.h window/sdl2/types.h window/sdl2/vec2.c window/sdl2/vec2.h window/sdl2/vec3.c window/sdl2/vec3.h window/sdl2/window_sdl2.c window/sdl2/window_sdl2.h window/types.h window/window.c window/window.h '
KC3_CXX_SOURCES='libkc3/std.cxx libkc3/std.hxx '
KC3_FONT_SOURCES='fonts/Computer Modern/cmunbl-webfont.ttf fonts/Computer Modern/cmunbl.otf fonts/Computer Modern/cmunbx-webfont.ttf fonts/Computer Modern/cmunbx.otf fonts/Computer Modern/cmunbxo-webfont.ttf fonts/Computer Modern/cmunbxo.otf fonts/Computer Modern/cmunrm-webfont.ttf fonts/Computer Modern/cmunrm.otf fonts/Computer Modern/cmunsi-webfont.ttf fonts/Computer Modern/cmunsi.otf fonts/Computer Modern/cmunsl-webfont.ttf fonts/Computer Modern/cmunsl.otf fonts/Computer Modern/cmunss-webfont.ttf fonts/Computer Modern/cmunss.otf fonts/Computer Modern/cmunsx-webfont.ttf fonts/Computer Modern/cmunsx.otf fonts/Courier New/Courier New.ttf fonts/Courier/fonts/OGCourier-Bold.otf fonts/Courier/fonts/OGCourier-Bold.ttf fonts/Courier/fonts/OGCourier-BoldItalic.otf fonts/Courier/fonts/OGCourier-BoldItalic.ttf fonts/Courier/fonts/OGCourier-Italic.otf fonts/Courier/fonts/OGCourier-Italic.ttf fonts/Courier/fonts/OGCourier.otf fonts/Courier/fonts/OGCourier.ttf fonts/Courier/fonts/zero-dot/OGCourierZeroDot-Bold.otf fonts/Courier/fonts/zero-dot/OGCourierZeroDot-Bold.ttf fonts/Courier/fonts/zero-dot/OGCourierZeroDot-BoldItalic.otf fonts/Courier/fonts/zero-dot/OGCourierZeroDot-BoldItalic.ttf fonts/Courier/fonts/zero-dot/OGCourierZeroDot-Italic.otf fonts/Courier/fonts/zero-dot/OGCourierZeroDot-Italic.ttf fonts/Courier/fonts/zero-dot/OGCourierZeroDot.otf fonts/Courier/fonts/zero-dot/OGCourierZeroDot.ttf fonts/Courier/fonts/zero-slash/OGCourierZeroSlash-Bold.otf fonts/Courier/fonts/zero-slash/OGCourierZeroSlash-Bold.ttf fonts/Courier/fonts/zero-slash/OGCourierZeroSlash-BoldItalic.otf fonts/Courier/fonts/zero-slash/OGCourierZeroSlash-BoldItalic.ttf fonts/Courier/fonts/zero-slash/OGCourierZeroSlash-Italic.otf fonts/Courier/fonts/zero-slash/OGCourierZeroSlash-Italic.ttf fonts/Courier/fonts/zero-slash/OGCourierZeroSlash.otf fonts/Courier/fonts/zero-slash/OGCourierZeroSlash.ttf fonts/Courier/sfd/OGCourier-Bold.sfd.ttf fonts/Courier/sfd/OGCourier-BoldItalic.sfd.ttf fonts/Courier/sfd/OGCourier-Italic.sfd.ttf fonts/Courier/sfd/OGCourier.sfd.ttf fonts/Inter/InterVariable-Italic.ttf fonts/Inter/InterVariable.ttf fonts/Inter/extras/otf/Inter-Black.otf fonts/Inter/extras/otf/Inter-BlackItalic.otf fonts/Inter/extras/otf/Inter-Bold.otf fonts/Inter/extras/otf/Inter-BoldItalic.otf fonts/Inter/extras/otf/Inter-ExtraBold.otf fonts/Inter/extras/otf/Inter-ExtraBoldItalic.otf fonts/Inter/extras/otf/Inter-ExtraLight.otf fonts/Inter/extras/otf/Inter-ExtraLightItalic.otf fonts/Inter/extras/otf/Inter-Italic.otf fonts/Inter/extras/otf/Inter-Light.otf fonts/Inter/extras/otf/Inter-LightItalic.otf fonts/Inter/extras/otf/Inter-Medium.otf fonts/Inter/extras/otf/Inter-MediumItalic.otf fonts/Inter/extras/otf/Inter-Regular.otf fonts/Inter/extras/otf/Inter-SemiBold.otf fonts/Inter/extras/otf/Inter-SemiBoldItalic.otf fonts/Inter/extras/otf/Inter-Thin.otf fonts/Inter/extras/otf/Inter-ThinItalic.otf fonts/Inter/extras/otf/InterDisplay-Black.otf fonts/Inter/extras/otf/InterDisplay-BlackItalic.otf fonts/Inter/extras/otf/InterDisplay-Bold.otf fonts/Inter/extras/otf/InterDisplay-BoldItalic.otf fonts/Inter/extras/otf/InterDisplay-ExtraBold.otf fonts/Inter/extras/otf/InterDisplay-ExtraBoldItalic.otf fonts/Inter/extras/otf/InterDisplay-ExtraLight.otf fonts/Inter/extras/otf/InterDisplay-ExtraLightItalic.otf fonts/Inter/extras/otf/InterDisplay-Italic.otf fonts/Inter/extras/otf/InterDisplay-Light.otf fonts/Inter/extras/otf/InterDisplay-LightItalic.otf fonts/Inter/extras/otf/InterDisplay-Medium.otf fonts/Inter/extras/otf/InterDisplay-MediumItalic.otf fonts/Inter/extras/otf/InterDisplay-Regular.otf fonts/Inter/extras/otf/InterDisplay-SemiBold.otf fonts/Inter/extras/otf/InterDisplay-SemiBoldItalic.otf fonts/Inter/extras/otf/InterDisplay-Thin.otf fonts/Inter/extras/otf/InterDisplay-ThinItalic.otf fonts/Inter/extras/ttf/Inter-Black.ttf fonts/Inter/extras/ttf/Inter-BlackItalic.ttf fonts/Inter/extras/ttf/Inter-Bold.ttf fonts/Inter/extras/ttf/Inter-BoldItalic.ttf fonts/Inter/extras/ttf/Inter-ExtraBold.ttf fonts/Inter/extras/ttf/Inter-ExtraBoldItalic.ttf fonts/Inter/extras/ttf/Inter-ExtraLight.ttf fonts/Inter/extras/ttf/Inter-ExtraLightItalic.ttf fonts/Inter/extras/ttf/Inter-Italic.ttf fonts/Inter/extras/ttf/Inter-Light.ttf fonts/Inter/extras/ttf/Inter-LightItalic.ttf fonts/Inter/extras/ttf/Inter-Medium.ttf fonts/Inter/extras/ttf/Inter-MediumItalic.ttf fonts/Inter/extras/ttf/Inter-Regular.ttf fonts/Inter/extras/ttf/Inter-SemiBold.ttf fonts/Inter/extras/ttf/Inter-SemiBoldItalic.ttf fonts/Inter/extras/ttf/Inter-Thin.ttf fonts/Inter/extras/ttf/Inter-ThinItalic.ttf fonts/Inter/extras/ttf/InterDisplay-Black.ttf fonts/Inter/extras/ttf/InterDisplay-BlackItalic.ttf fonts/Inter/extras/ttf/InterDisplay-Bold.ttf fonts/Inter/extras/ttf/InterDisplay-BoldItalic.ttf fonts/Inter/extras/ttf/InterDisplay-ExtraBold.ttf fonts/Inter/extras/ttf/InterDisplay-ExtraBoldItalic.ttf fonts/Inter/extras/ttf/InterDisplay-ExtraLight.ttf fonts/Inter/extras/ttf/InterDisplay-ExtraLightItalic.ttf fonts/Inter/extras/ttf/InterDisplay-Italic.ttf fonts/Inter/extras/ttf/InterDisplay-Light.ttf fonts/Inter/extras/ttf/InterDisplay-LightItalic.ttf fonts/Inter/extras/ttf/InterDisplay-Medium.ttf fonts/Inter/extras/ttf/InterDisplay-MediumItalic.ttf fonts/Inter/extras/ttf/InterDisplay-Regular.ttf fonts/Inter/extras/ttf/InterDisplay-SemiBold.ttf fonts/Inter/extras/ttf/InterDisplay-SemiBoldItalic.ttf fonts/Inter/extras/ttf/InterDisplay-Thin.ttf fonts/Inter/extras/ttf/InterDisplay-ThinItalic.ttf fonts/Noto Sans/NotoSans-Black.ttf fonts/Noto Sans/NotoSans-BlackItalic.ttf fonts/Noto Sans/NotoSans-Bold.ttf fonts/Noto Sans/NotoSans-BoldItalic.ttf fonts/Noto Sans/NotoSans-ExtraBold.ttf fonts/Noto Sans/NotoSans-ExtraBoldItalic.ttf fonts/Noto Sans/NotoSans-ExtraLight.ttf fonts/Noto Sans/NotoSans-ExtraLightItalic.ttf fonts/Noto Sans/NotoSans-Italic-VariableFont_wdth,wght.ttf fonts/Noto Sans/NotoSans-Italic.ttf fonts/Noto Sans/NotoSans-Light.ttf fonts/Noto Sans/NotoSans-LightItalic.ttf fonts/Noto Sans/NotoSans-Medium.ttf fonts/Noto Sans/NotoSans-MediumItalic.ttf fonts/Noto Sans/NotoSans-Regular.ttf fonts/Noto Sans/NotoSans-SemiBold.ttf fonts/Noto Sans/NotoSans-SemiBoldItalic.ttf fonts/Noto Sans/NotoSans-Thin.ttf fonts/Noto Sans/NotoSans-ThinItalic.ttf fonts/Noto Sans/NotoSans-VariableFont_wdth,wght.ttf fonts/Noto Sans/NotoSans_Condensed-Black.ttf fonts/Noto Sans/NotoSans_Condensed-BlackItalic.ttf fonts/Noto Sans/NotoSans_Condensed-Bold.ttf fonts/Noto Sans/NotoSans_Condensed-BoldItalic.ttf fonts/Noto Sans/NotoSans_Condensed-ExtraBold.ttf fonts/Noto Sans/NotoSans_Condensed-ExtraBoldItalic.ttf fonts/Noto Sans/NotoSans_Condensed-ExtraLight.ttf fonts/Noto Sans/NotoSans_Condensed-ExtraLightItalic.ttf fonts/Noto Sans/NotoSans_Condensed-Italic.ttf fonts/Noto Sans/NotoSans_Condensed-Light.ttf fonts/Noto Sans/NotoSans_Condensed-LightItalic.ttf fonts/Noto Sans/NotoSans_Condensed-Medium.ttf fonts/Noto Sans/NotoSans_Condensed-MediumItalic.ttf fonts/Noto Sans/NotoSans_Condensed-Regular.ttf fonts/Noto Sans/NotoSans_Condensed-SemiBold.ttf fonts/Noto Sans/NotoSans_Condensed-SemiBoldItalic.ttf fonts/Noto Sans/NotoSans_Condensed-Thin.ttf fonts/Noto Sans/NotoSans_Condensed-ThinItalic.ttf fonts/Noto Sans/NotoSans_ExtraCondensed-Black.ttf fonts/Noto Sans/NotoSans_ExtraCondensed-BlackItalic.ttf fonts/Noto Sans/NotoSans_ExtraCondensed-Bold.ttf fonts/Noto Sans/NotoSans_ExtraCondensed-BoldItalic.ttf fonts/Noto Sans/NotoSans_ExtraCondensed-ExtraBold.ttf fonts/Noto Sans/NotoSans_ExtraCondensed-ExtraBoldItalic.ttf fonts/Noto Sans/NotoSans_ExtraCondensed-ExtraLight.ttf fonts/Noto Sans/NotoSans_ExtraCondensed-ExtraLightItalic.ttf fonts/Noto Sans/NotoSans_ExtraCondensed-Italic.ttf fonts/Noto Sans/NotoSans_ExtraCondensed-Light.ttf fonts/Noto Sans/NotoSans_ExtraCondensed-LightItalic.ttf fonts/Noto Sans/NotoSans_ExtraCondensed-Medium.ttf fonts/Noto Sans/NotoSans_ExtraCondensed-MediumItalic.ttf fonts/Noto Sans/NotoSans_ExtraCondensed-Regular.ttf fonts/Noto Sans/NotoSans_ExtraCondensed-SemiBold.ttf fonts/Noto Sans/NotoSans_ExtraCondensed-SemiBoldItalic.ttf fonts/Noto Sans/NotoSans_ExtraCondensed-Thin.ttf fonts/Noto Sans/NotoSans_ExtraCondensed-ThinItalic.ttf fonts/Noto Sans/NotoSans_SemiCondensed-Black.ttf fonts/Noto Sans/NotoSans_SemiCondensed-BlackItalic.ttf fonts/Noto Sans/NotoSans_SemiCondensed-Bold.ttf fonts/Noto Sans/NotoSans_SemiCondensed-BoldItalic.ttf fonts/Noto Sans/NotoSans_SemiCondensed-ExtraBold.ttf fonts/Noto Sans/NotoSans_SemiCondensed-ExtraBoldItalic.ttf fonts/Noto Sans/NotoSans_SemiCondensed-ExtraLight.ttf fonts/Noto Sans/NotoSans_SemiCondensed-ExtraLightItalic.ttf fonts/Noto Sans/NotoSans_SemiCondensed-Italic.ttf fonts/Noto Sans/NotoSans_SemiCondensed-Light.ttf fonts/Noto Sans/NotoSans_SemiCondensed-LightItalic.ttf fonts/Noto Sans/NotoSans_SemiCondensed-Medium.ttf fonts/Noto Sans/NotoSans_SemiCondensed-MediumItalic.ttf fonts/Noto Sans/NotoSans_SemiCondensed-Regular.ttf fonts/Noto Sans/NotoSans_SemiCondensed-SemiBold.ttf fonts/Noto Sans/NotoSans_SemiCondensed-SemiBoldItalic.ttf fonts/Noto Sans/NotoSans_SemiCondensed-Thin.ttf fonts/Noto Sans/NotoSans_SemiCondensed-ThinItalic.ttf fonts/opensans/fonts/noto-set/ttf/OpenSans-Bold.ttf fonts/opensans/fonts/noto-set/ttf/OpenSans-BoldItalic.ttf fonts/opensans/fonts/noto-set/ttf/OpenSans-CondensedBold.ttf fonts/opensans/fonts/noto-set/ttf/OpenSans-CondensedBoldItalic.ttf fonts/opensans/fonts/noto-set/ttf/OpenSans-CondensedExtraBold.ttf fonts/opensans/fonts/noto-set/ttf/OpenSans-CondensedExtraBoldItalic.ttf fonts/opensans/fonts/noto-set/ttf/OpenSans-CondensedItalic.ttf fonts/opensans/fonts/noto-set/ttf/OpenSans-CondensedLight.ttf fonts/opensans/fonts/noto-set/ttf/OpenSans-CondensedLightItalic.ttf fonts/opensans/fonts/noto-set/ttf/OpenSans-CondensedRegular.ttf fonts/opensans/fonts/noto-set/ttf/OpenSans-CondensedSemiBold.ttf fonts/opensans/fonts/noto-set/ttf/OpenSans-CondensedSemiBoldItalic.ttf fonts/opensans/fonts/noto-set/ttf/OpenSans-ExtraBold.ttf fonts/opensans/fonts/noto-set/ttf/OpenSans-ExtraBoldItalic.ttf fonts/opensans/fonts/noto-set/ttf/OpenSans-Italic.ttf fonts/opensans/fonts/noto-set/ttf/OpenSans-Light.ttf fonts/opensans/fonts/noto-set/ttf/OpenSans-LightItalic.ttf fonts/opensans/fonts/noto-set/ttf/OpenSans-Regular.ttf fonts/opensans/fonts/noto-set/ttf/OpenSans-SemiBold.ttf fonts/opensans/fonts/noto-set/ttf/OpenSans-SemiBoldItalic.ttf fonts/opensans/fonts/noto-set/variable/OpenSans-Italic[wdth,wght].ttf fonts/opensans/fonts/noto-set/variable/OpenSans[wdth,wght].ttf fonts/opensans/fonts/ttf/OpenSans-Bold.ttf fonts/opensans/fonts/ttf/OpenSans-BoldItalic.ttf fonts/opensans/fonts/ttf/OpenSans-CondensedBold.ttf fonts/opensans/fonts/ttf/OpenSans-CondensedBoldItalic.ttf fonts/opensans/fonts/ttf/OpenSans-CondensedExtraBold.ttf fonts/opensans/fonts/ttf/OpenSans-CondensedExtraBoldItalic.ttf fonts/opensans/fonts/ttf/OpenSans-CondensedItalic.ttf fonts/opensans/fonts/ttf/OpenSans-CondensedLight.ttf fonts/opensans/fonts/ttf/OpenSans-CondensedLightItalic.ttf fonts/opensans/fonts/ttf/OpenSans-CondensedRegular.ttf fonts/opensans/fonts/ttf/OpenSans-CondensedSemiBold.ttf fonts/opensans/fonts/ttf/OpenSans-CondensedSemiBoldItalic.ttf fonts/opensans/fonts/ttf/OpenSans-ExtraBold.ttf fonts/opensans/fonts/ttf/OpenSans-ExtraBoldItalic.ttf fonts/opensans/fonts/ttf/OpenSans-Italic.ttf fonts/opensans/fonts/ttf/OpenSans-Light.ttf fonts/opensans/fonts/ttf/OpenSans-LightItalic.ttf fonts/opensans/fonts/ttf/OpenSans-Regular.ttf fonts/opensans/fonts/ttf/OpenSans-SemiBold.ttf fonts/opensans/fonts/ttf/OpenSans-SemiBoldItalic.ttf fonts/opensans/fonts/variable/OpenSans-Italic[wdth,wght].ttf fonts/opensans/fonts/variable/OpenSans[wdth,wght].ttf fonts/opensans/original source/TTF_VTT_source/OpenSans-Italic-wg300wd100.ttf fonts/opensans/original source/TTF_VTT_source/OpenSans-Italic-wg300wd75.ttf fonts/opensans/original source/TTF_VTT_source/OpenSans-Italic-wg400wd100.ttf fonts/opensans/original source/TTF_VTT_source/OpenSans-Italic-wg400wd75.ttf fonts/opensans/original source/TTF_VTT_source/OpenSans-Italic-wg600wd100.ttf fonts/opensans/original source/TTF_VTT_source/OpenSans-Italic-wg600wd75.ttf fonts/opensans/original source/TTF_VTT_source/OpenSans-Italic-wg700wd100.ttf fonts/opensans/original source/TTF_VTT_source/OpenSans-Italic-wg700wd75.ttf fonts/opensans/original source/TTF_VTT_source/OpenSans-Italic-wg800wd100.ttf fonts/opensans/original source/TTF_VTT_source/OpenSans-Italic-wg800wd75.ttf fonts/opensans/original source/TTF_VTT_source/OpenSans-Italic.ttf fonts/opensans/original source/TTF_VTT_source/OpenSans-Roman-wg300wd100.ttf fonts/opensans/original source/TTF_VTT_source/OpenSans-Roman-wg300wd75.ttf fonts/opensans/original source/TTF_VTT_source/OpenSans-Roman-wg400wd100.ttf fonts/opensans/original source/TTF_VTT_source/OpenSans-Roman-wg400wd75.ttf fonts/opensans/original source/TTF_VTT_source/OpenSans-Roman-wg600wd100.ttf fonts/opensans/original source/TTF_VTT_source/OpenSans-Roman-wg600wd75.ttf fonts/opensans/original source/TTF_VTT_source/OpenSans-Roman-wg700wd100.ttf fonts/opensans/original source/TTF_VTT_source/OpenSans-Roman-wg700wd75.ttf fonts/opensans/original source/TTF_VTT_source/OpenSans-Roman-wg800wd100.ttf fonts/opensans/original source/TTF_VTT_source/OpenSans-Roman-wg800wd75.ttf fonts/opensans/original source/TTF_VTT_source/OpenSans-Roman.ttf '
KC3_IMG_SOURCES='img/earth.jpg img/earth.png img/flaps.256.png img/flaps.png img/fly-dead.png img/fly-noto.png img/iris-kc3-004.jpeg img/kc3.1.xcf img/kc3.1080.jpg img/kc3.1080.png img/kc3.128.jpg img/kc3.128.png img/kc3.16.jpg img/kc3.16.png img/kc3.256.jpg img/kc3.256.png img/kc3.32.jpg img/kc3.32.png img/kc3.512.jpg img/kc3.512.png img/kc3.64.jpg img/kc3.64.png img/kc3.640.jpg img/kc3.640.png img/kc3.720.jpg img/kc3.720.png img/kc3.96.jpg img/kc3.96.png img/kc3.iconset/icon_128x128.png img/kc3.iconset/icon_16x16.png img/kc3.iconset/icon_256x256.png img/kc3.iconset/icon_32x32.png img/kc3.iconset/icon_512x512.png img/kc3.iconset/icon_64x64.png img/kc3.xcf img/mandelbrot_f128_limit.1.png img/mandelbrot_f128_limit.2.png img/mandelbrot_f128_limit.3.png img/mandelbrot_f128_limit.png img/matrix_shade.png img/thodg_No_Prompt_073261d5-2c81-4b6e-9572-e0b840c55f1f.jpeg img/toast.128.png img/toast.png '