diff --git a/http/configure b/http/configure
index cd07a83..9224165 100755
--- a/http/configure
+++ b/http/configure
@@ -52,7 +52,7 @@ pkg_config libffi
pkg_config libmd
config_define PREFIX "\"${PREFIX}\""
update_config_h
-LIBS="$LIBS -levent -lm -rpath ${PREFIX}/lib"
+LIBS="$LIBS -lm -rpath ${PREFIX}/lib"
# Address Sanitizer config
CPPFLAGS_ASAN="$CPPFLAGS"
diff --git a/ikc3/.ikc3_history b/ikc3/.ikc3_history
index 43e986f..bd6745e 100644
--- a/ikc3/.ikc3_history
+++ b/ikc3/.ikc3_history
@@ -1,4 +1,3 @@
--255 * 256
-256 * 256 / 2
-256 * 256 / 2 + 1
type(-32767)
@@ -97,3 +96,5 @@ quote """a#{:a}"""
quote """a #{:a}"""
quote "a #{:a}"
quote "a"
+%Time{}
+
diff --git a/lib/kc3/0.1/time.kc3 b/lib/kc3/0.1/time.kc3
index 8b31dbd..3854f9c 100644
--- a/lib/kc3/0.1/time.kc3
+++ b/lib/kc3/0.1/time.kc3
@@ -1,5 +1,5 @@
defmodule Time do
- defstruct [tv_sec: (Sw) 0, tv_nsec: (Sw) 0]
+ defstruct [tv_sec: (Sw) 0, tv_nsec: (Sw) 0, tag: (Ptr) 0]
end
diff --git a/libkc3/buf.c b/libkc3/buf.c
index f398e8d..fae88cc 100644
--- a/libkc3/buf.c
+++ b/libkc3/buf.c
@@ -73,7 +73,8 @@ sw buf_ignore (s_buf *buf, uw size)
return r;
}
if ((uw) r < size) {
- err_puts("buf_ignore: buf_refill < size");
+ if (false)
+ err_puts("buf_ignore: buf_refill < size");
return -1;
}
while (i < size) {
diff --git a/libkc3/buf_parse.c b/libkc3/buf_parse.c
index 8ece04a..50c71a4 100644
--- a/libkc3/buf_parse.c
+++ b/libkc3/buf_parse.c
@@ -41,6 +41,7 @@
#include "struct.h"
#include "sym.h"
#include "tag.h"
+#include "time.h"
#include "tuple.h"
#include "ratio.h"
@@ -4163,12 +4164,13 @@ sw buf_parse_tag_void (s_buf *buf, s_tag *dest)
return r;
}
-sw buf_parse_time (s_buf *buf, s_time *time)
+sw buf_parse_time (s_buf *buf, s_time *dest)
{
sw r;
sw result = 0;
- s_sym keys[2] = {0};
+ s_buf_save save;
s_time tmp = {0};
+ buf_save_init(buf, &save);
if ((r = buf_read_1(buf, "%Time{")) <= 0)
goto clean;
result += r;
@@ -4183,19 +4185,112 @@ sw buf_parse_time (s_buf *buf, s_time *time)
if (r > 0) {
result += r;
*dest = tmp;
- return result;
+ r = result;
+ goto clean;
}
+ while (1) {
+ if ((r = buf_read_1(buf, "tv_sec:")) < 0)
+ goto restore;
+ if (r > 0) {
+ result += r;
+ if ((r = buf_parse_comments(buf)) < 0)
+ goto restore;
+ result += r;
+ if ((r = buf_ignore_spaces(buf)) < 0)
+ goto restore;
+ result += r;
+ if (! tmp.tag &&
+ ! time_allocate(&tmp))
+ goto restore;
+ if ((r = buf_parse_tag(buf, tmp.tag)) <= 0)
+ goto restore;
+ if ((r = buf_parse_comments(buf)) < 0)
+ goto restore;
+ result += r;
+ if ((r = buf_ignore_spaces(buf)) < 0)
+ goto restore;
+ result += r;
+ if ((r = buf_read_1(buf, "}")) < 0)
+ goto restore;
+ if (r > 0) {
+ result += r;
+ *dest = tmp;
+ r = result;
+ goto clean;
+ }
+ if ((r = buf_read_1(buf, ",")) < 0)
+ goto restore;
+ if (r > 0) {
+ result += r;
+ if ((r = buf_parse_comments(buf)) < 0)
+ goto restore;
+ result += r;
+ if ((r = buf_ignore_spaces(buf)) < 0)
+ goto restore;
+ result += r;
+ }
+ }
+ if ((r = buf_read_1(buf, "tv_nsec:")) < 0)
+ goto restore;
+ if (r > 0) {
+ result += r;
+ if ((r = buf_parse_comments(buf)) < 0)
+ goto restore;
+ result += r;
+ if ((r = buf_ignore_spaces(buf)) < 0)
+ goto restore;
+ result += r;
+ if (! tmp.tag &&
+ ! time_allocate(&tmp))
+ goto restore;
+ if ((r = buf_parse_tag(buf, tmp.tag + 1)) <= 0)
+ goto restore;
+ if ((r = buf_parse_comments(buf)) < 0)
+ goto restore;
+ result += r;
+ if ((r = buf_ignore_spaces(buf)) < 0)
+ goto restore;
+ result += r;
+ if ((r = buf_read_1(buf, "}")) < 0)
+ goto restore;
+ if (r > 0) {
+ result += r;
+ *dest = tmp;
+ r = result;
+ goto clean;
+ }
+ if ((r = buf_read_1(buf, ",")) < 0)
+ goto restore;
+ if (r > 0) {
+ result += r;
+ if ((r = buf_parse_comments(buf)) < 0)
+ goto restore;
+ result += r;
+ if ((r = buf_ignore_spaces(buf)) < 0)
+ goto restore;
+ result += r;
+ }
+ }
+ }
+ r = -1;
+ restore:
+ buf_save_restore_rpos(buf, &save);
+ time_clean(&tmp);
+ clean:
+ buf_save_clean(buf, &save);
+ return r;
}
-sw buf_parse_tuple (s_buf *buf, s_tuple *tuple)
+sw buf_parse_tuple (s_buf *buf, s_tuple *dest)
{
s_list **i;
s_list *list = 0;
sw r;
sw result = 0;
s_buf_save save;
+ s_tuple tmp;
assert(buf);
- assert(tuple);
+ assert(dest);
buf_save_init(buf, &save);
if ((r = buf_read_1(buf, "{")) <= 0)
goto clean;
@@ -4231,15 +4326,16 @@ sw buf_parse_tuple (s_buf *buf, s_tuple *tuple)
r = 0;
goto restore;
}
- tuple_init(tuple, i);
+ tuple_init(&tmp, i);
j = list;
k = 0;
while (i--) {
- tuple->tag[k] = j->tag;
+ tmp.tag[k] = j->tag;
tag_init_void(&j->tag);
j = list_next(j);
k++;
}
+ *dest = tmp;
r = result;
goto clean;
}
@@ -4248,12 +4344,7 @@ sw buf_parse_tuple (s_buf *buf, s_tuple *tuple)
result += r;
i = &(*i)->next.data.list;
}
- result += r;
- if ((r = buf_read_1(buf, "}")) <= 0)
- goto restore;
- result += r;
- r = result;
- goto clean;
+ r = -1;
restore:
buf_save_restore_rpos(buf, &save);
clean:
diff --git a/libkc3/compare.c b/libkc3/compare.c
index 2b96346..530a78a 100644
--- a/libkc3/compare.c
+++ b/libkc3/compare.c
@@ -1268,20 +1268,48 @@ s8 compare_tag_number (const s_tag *a, const s_tag *b)
s8 compare_time (const s_time *a, const s_time *b)
{
+ s_tag *a2;
+ s_tag a_tag[2] = {0};
+ s_tag *b2;
+ s_tag b_tag[2] = {0};
+ s8 r;
if (a == b)
return 0;
if (! a)
return -1;
if (! b)
return 1;
- if (a->tv_sec < b->tv_sec)
- return -1;
- if (a->tv_sec > b->tv_sec)
- return 1;
- if (a->tv_nsec < b->tv_nsec)
- return -1;
- if (a->tv_nsec > b->tv_nsec)
- return 1;
+ a2 = a->tag;
+ b2 = b->tag;
+ if (! (a2 || b2)) {
+ if (a->tv_sec < b->tv_sec)
+ return -1;
+ if (a->tv_sec > b->tv_sec)
+ return 1;
+ if (a->tv_nsec < b->tv_nsec)
+ return -1;
+ if (a->tv_nsec > b->tv_nsec)
+ return 1;
+ return 0;
+ }
+ if (! a2) {
+ a2 = a_tag;
+ a2[0].type = TAG_SW;
+ a2[0].data.sw = a->tv_sec;
+ a2[1].type = TAG_SW;
+ a2[1].data.sw = a->tv_nsec;
+ }
+ if (! b2) {
+ b2 = b_tag;
+ b2[0].type = TAG_SW;
+ b2[0].data.sw = b->tv_sec;
+ b2[1].type = TAG_SW;
+ b2[1].data.sw = b->tv_nsec;
+ }
+ if ((r = compare_tag(a2, b2)))
+ return r;
+ if ((r = compare_tag(a2 + 1, b2 + 1)))
+ return r;
return 0;
}
diff --git a/libkc3/env.c b/libkc3/env.c
index 9269c4e..f440784 100644
--- a/libkc3/env.c
+++ b/libkc3/env.c
@@ -54,6 +54,7 @@
#include "sym.h"
#include "tag.h"
#include "tag_init.h"
+#include "time.h"
#include "tuple.h"
s_env g_kc3_env;
@@ -1185,8 +1186,10 @@ bool env_eval_equal_time (s_env *env, bool macro, const s_time *a,
b2[1].type = TAG_SW;
b2[1].data.sw = b->tv_nsec;
}
- if (a->tag || b->tag)
- tmp.tag = alloc(2 * sizeof(s_tag));
+ if (a->tag || b->tag) {
+ if (! time_allocate(&tmp))
+ return false;
+ }
else
tmp.tag = tmp_tag;
if (! env_eval_equal_tag(env, macro, a2, b2, tmp.tag)) {
@@ -1681,7 +1684,8 @@ bool env_eval_quote_time (s_env *env, const s_time *time, s_tag *dest)
assert(time);
assert(dest);
if (time->tag) {
- tmp.tag = alloc(2 * sizeof(s_tag));
+ if (! time_allocate(&tmp))
+ return false;
if (! env_eval_quote_tag(env, time->tag, tmp.tag)) {
err_puts("env_eval_quote_time: env_eval_quote_tag: tv_sec");
assert(! "env_eval_quote_time: env_eval_quote_tag: tv_sec");
@@ -1695,12 +1699,11 @@ bool env_eval_quote_time (s_env *env, const s_time *time, s_tag *dest)
free(tmp.tag);
return false;
}
- dest->type = TAG_TIME;
- dest->data.time = tmp;
- return true;
}
- tmp.tv_sec = time->tv_sec;
- tmp.tv_nsec = time->tv_nsec;
+ else {
+ tmp.tv_sec = time->tv_sec;
+ tmp.tv_nsec = time->tv_nsec;
+ }
dest->type = TAG_TIME;
dest->data.time = tmp;
return true;
@@ -1914,7 +1917,9 @@ bool env_eval_time (s_env *env, const s_time *time, s_tag *dest)
tag_clean(tag);
return false;
}
- if (tag[0].type != TAG_SW) {
+ if (tag[0].type == TAG_SW)
+ tmp.data.time.tv_sec = tag[0].data.sw;
+ else if (tag[0].type != TAG_VOID) {
err_write_1("env_eval_time: tv_sec is not a Sw: ");
err_inspect_tag(tag);
err_write_1("\n");
@@ -1923,7 +1928,9 @@ bool env_eval_time (s_env *env, const s_time *time, s_tag *dest)
tag_clean(tag);
return false;
}
- if (tag[1].type != TAG_SW) {
+ if (tag[1].type == TAG_SW)
+ tmp.data.time.tv_nsec = tag[1].data.sw;
+ else if (tag[1].type != TAG_VOID) {
err_write_1("env_eval_time: tv_nsec is not a Sw: ");
err_inspect_tag(tag + 1);
err_write_1("\n");
@@ -1932,8 +1939,6 @@ bool env_eval_time (s_env *env, const s_time *time, s_tag *dest)
tag_clean(tag);
return false;
}
- tmp.data.time.tv_sec = tag[0].data.sw;
- tmp.data.time.tv_nsec = tag[1].data.sw;
}
*dest = tmp;
return true;
@@ -2571,7 +2576,7 @@ bool env_module_load (s_env *env, const s_sym *module)
goto rollback;
if (module_path(module, &env->module_path, KC3_EXT, &path) &&
file_access(&path, &g_sym_r)) {
- tag_init_time(&tag_time);
+ tag_init_time_now(&tag_time);
if (! env_load(env, &path)) {
err_write_1("env_module_load: ");
err_inspect_sym(&module);
@@ -2590,7 +2595,7 @@ bool env_module_load (s_env *env, const s_sym *module)
}
if (! file_access(&path, &g_sym_r))
goto rollback;
- tag_init_time(&tag_time);
+ tag_init_time_now(&tag_time);
if (facts_load_file(&env->facts, &path) < 0) {
err_write_1("env_module_load: ");
err_write_1(module->str.ptr.pchar);
@@ -2632,12 +2637,16 @@ const s_time ** env_module_load_time (s_env *env, const s_sym *module,
if (! facts_with(&env->facts, &cursor, (t_facts_spec) {
&tag_module_name, &tag_load_time, &tag_time_var, NULL, NULL }))
return NULL;
- if (! facts_with_cursor_next(&cursor, &fact) ||
- ! fact) {
+ if (! facts_with_cursor_next(&cursor, &fact)) {
facts_with_cursor_clean(&cursor);
return NULL;
}
- if (! tag_is_struct(fact->object, &g_sym_Time)) {
+ if (! fact) {
+ *dest = NULL;
+ facts_with_cursor_clean(&cursor);
+ return dest;
+ }
+ if (fact->object->type != TAG_TIME) {
err_write_1("env_module_load_time: module ");
err_inspect_sym(&module);
err_puts(" load time is not a %Time{}");
@@ -2645,7 +2654,7 @@ const s_time ** env_module_load_time (s_env *env, const s_sym *module,
facts_with_cursor_clean(&cursor);
return NULL;
}
- *dest = fact->object->data.struct_.data;
+ *dest = &fact->object->data.time;
facts_with_cursor_clean(&cursor);
return dest;
}
diff --git a/libkc3/file.c b/libkc3/file.c
index 43daa89..fc1460d 100644
--- a/libkc3/file.c
+++ b/libkc3/file.c
@@ -180,7 +180,7 @@ s_time * file_mtime (const s_str *path, s_time *dest)
{
s32 e;
struct stat sb;
- s_time tmp;
+ s_time tmp = {0};
assert(path);
assert(dest);
if (stat(path->ptr.pchar, &sb)) {
diff --git a/libkc3/list_init.c b/libkc3/list_init.c
index c4449c6..239d532 100644
--- a/libkc3/list_init.c
+++ b/libkc3/list_init.c
@@ -533,6 +533,17 @@ s_list * list_init_tuple_2 (s_list *list, const s_tag *a,
return list;
}
+s_list * list_init_time_now (s_list *list, s_list *next)
+{
+ s_list tmp = {0};
+ assert(list);
+ list_init(&tmp, next);
+ if (! tag_init_time_now(&tmp.tag))
+ return NULL;
+ *list = tmp;
+ return list;
+}
+
s_list * list_init_u8 (s_list *list, u8 i, s_list *next)
{
s_list tmp = {0};
@@ -1190,6 +1201,19 @@ s_list * list_new_tuple_2 (const s_tag *a, const s_tag *b, s_list *next)
return list;
}
+s_list * list_new_time_now (s_list *next)
+{
+ s_list *list;
+ list = list_new(next);
+ if (! list)
+ return NULL;
+ if (! tag_init_time_now(&list->tag)) {
+ free(list);
+ return NULL;
+ }
+ return list;
+}
+
s_list * list_new_u8 (u8 i, s_list *next)
{
s_list *list;
diff --git a/libkc3/list_init.h b/libkc3/list_init.h
index d90d614..027dcbc 100644
--- a/libkc3/list_init.h
+++ b/libkc3/list_init.h
@@ -85,6 +85,7 @@ s_list * list_init_tuple (s_list *list, uw count, s_list *next);
s_list * list_init_tuple_2 (s_list *list, const s_tag *a,
const s_tag *b, s_list *next);
s_list * list_init_time (s_list *list, s_list *next);
+s_list * list_init_time_now (s_list *list, s_list *next);
s_list * list_init_u8 (s_list *list, u8 i, s_list *next);
s_list * list_init_u16 (s_list *list, u16 i, s_list *next);
s_list * list_init_u32 (s_list *list, u32 i, s_list *next);
@@ -152,6 +153,7 @@ s_list * list_new_tuple (uw count, s_list *next);
s_list * list_new_tuple_2 (const s_tag *a, const s_tag *b,
s_list *next);
s_list * list_new_time (s_list *next);
+s_list * list_new_time_now (s_list *next);
s_list * list_new_u8 (u8 i, s_list *next);
s_list * list_new_u16 (u16 i, s_list *next);
s_list * list_new_u32 (u32 i, s_list *next);
@@ -214,6 +216,7 @@ s_list * list_sym (s_list *list, const s_sym *sym);
s_list * list_tuple (s_list *list, uw count);
s_list * list_tuple_2 (s_list *list, const s_tag *a, const s_tag *b);
s_list * list_time (s_list *list);
+s_list * list_time_now (s_list *list);
s_list * list_u8 (s_list *list, u8 i);
s_list * list_u16 (s_list *list, u16 i);
s_list * list_u32 (s_list *list, u32 i);
diff --git a/libkc3/tag.c b/libkc3/tag.c
index 5709f45..79ac174 100644
--- a/libkc3/tag.c
+++ b/libkc3/tag.c
@@ -538,29 +538,6 @@ s_tag * tag_init_copy (s_tag *tag, const s_tag *src)
return NULL;
}
-s_tag * tag_init_time (s_tag *tag)
-{
- s_time *time;
- s_timespec timespec;
- s_tag tmp = {0};
- if (! tag_init_struct(&tmp, &g_sym_Time)) {
- err_puts("tag_init_time: tag_init_struct");
- assert(! "tag_init_time: tag_init_struct");
- return NULL;
- }
- if (! struct_allocate(&tmp.data.struct_)) {
- err_puts("tag_init_time: struct_allocate");
- assert(! "tag_init_time: struct_allocate");
- return NULL;
- }
- time = tmp.data.struct_.data;
- clock_gettime(CLOCK_REALTIME, ×pec);
- time->tv_sec = timespec.tv_sec;
- time->tv_nsec = timespec.tv_nsec;
- *tag = tmp;
- return tag;
-}
-
s_tag * tag_integer_reduce (s_tag *tag)
{
s_integer *i;
diff --git a/libkc3/tag_init.c b/libkc3/tag_init.c
index b48a0cb..f76f4d6 100644
--- a/libkc3/tag_init.c
+++ b/libkc3/tag_init.c
@@ -518,6 +518,17 @@ s_tag * tag_init_tuple_2 (s_tag *tag, const s_tag *a, const s_tag *b)
return tag;
}
+s_tag * tag_init_time_now (s_tag *tag)
+{
+ s_tag tmp = {0};
+ assert(tag);
+ tmp.type = TAG_TIME;
+ if (! time_init_now(&tmp.data.time))
+ return NULL;
+ *tag = tmp;
+ return tag;
+}
+
s_tag * tag_init_u8 (s_tag *tag, u8 i)
{
s_tag tmp = {0};
@@ -1178,6 +1189,20 @@ s_tag * tag_new_tuple_2 (const s_tag *a, const s_tag *b)
return tag;
}
+s_tag * tag_new_time_now (void)
+{
+ s_tag *tag;
+ tag = alloc(sizeof(s_tag));
+ if (! tag)
+ return NULL;
+ tag->type = TAG_TIME;
+ if (! time_init_now(&tag->data.time)) {
+ free(tag);
+ return NULL;
+ }
+ return tag;
+}
+
s_tag * tag_new_u8 (u8 i)
{
s_tag *tag;
@@ -1791,6 +1816,18 @@ s_tag * tag_tuple_2 (s_tag *tag, const s_tag *a, const s_tag *b)
return tag;
}
+s_tag * tag_time_now (s_tag *tag)
+{
+ s_tag tmp = {0};
+ assert(tag);
+ tag_clean(tag);
+ tmp.type = TAG_TIME;
+ if (! time_init_now(&tmp.data.time))
+ return NULL;
+ *tag = tmp;
+ return tag;
+}
+
s_tag * tag_u8 (s_tag *tag, u8 i)
{
s_tag tmp = {0};
diff --git a/libkc3/tag_init.h b/libkc3/tag_init.h
index 066b7cf..230ae94 100644
--- a/libkc3/tag_init.h
+++ b/libkc3/tag_init.h
@@ -68,6 +68,7 @@ s_tag * tag_init_sym (s_tag *tag, const s_sym *sym);
s_tag * tag_init_tuple (s_tag *tag, uw count);
s_tag * tag_init_tuple_2 (s_tag *tag, const s_tag *a, const s_tag *b);
s_tag * tag_init_time (s_tag *tag);
+s_tag * tag_init_time_now (s_tag *tag);
s_tag * tag_init_u8 (s_tag *tag, u8 i);
s_tag * tag_init_u16 (s_tag *tag, u16 i);
s_tag * tag_init_u32 (s_tag *tag, u32 i);
@@ -127,6 +128,7 @@ s_tag * tag_new_sym (const s_sym *sym);
s_tag * tag_new_tuple (uw count);
s_tag * tag_new_tuple_2 (const s_tag *a, const s_tag *b);
s_tag * tag_new_time (void);
+s_tag * tag_new_time_now (void);
s_tag * tag_new_u8 (u8 i);
s_tag * tag_new_u16 (u16 i);
s_tag * tag_new_u32 (u32 i);
@@ -189,6 +191,7 @@ s_tag * tag_sym (s_tag *tag, const s_sym *sym);
s_tag * tag_tuple (s_tag *tag, uw count);
s_tag * tag_tuple_2 (s_tag *tag, const s_tag *a, const s_tag *b);
s_tag * tag_time (s_tag *tag);
+s_tag * tag_time_now (s_tag *tag);
s_tag * tag_u8 (s_tag *tag, u8 i);
s_tag * tag_u16 (s_tag *tag, u16 i);
s_tag * tag_u32 (s_tag *tag, u32 i);
diff --git a/libkc3/tag_init.rb b/libkc3/tag_init.rb
index f44ace9..f46e8c0 100644
--- a/libkc3/tag_init.rb
+++ b/libkc3/tag_init.rb
@@ -401,6 +401,7 @@ class TagInitList
[Arg.new("const s_tag *", "a"),
Arg.new("const s_tag *", "b")]),
TagInitProto.new("time", "TAG_TIME", :init_mode_none, []),
+ TagInit.new("time", "now", "TAG_TIME", :init_mode_init, []),
TagInit.new("u8", "TAG_U8", :init_mode_direct,
[Arg.new("u8", "i")]),
TagInit.new("u16", "TAG_U16", :init_mode_direct,
diff --git a/libkc3/time.c b/libkc3/time.c
index 8ca4d68..5c1219e 100644
--- a/libkc3/time.c
+++ b/libkc3/time.c
@@ -16,6 +16,14 @@
#include "tag.h"
#include "time.h"
+s_time * time_allocate (s_time *time)
+{
+ time->tag = alloc(2 * sizeof(s_tag));
+ if (! time->tag)
+ return NULL;
+ return time;
+}
+
void time_clean (s_time *time)
{
if (time->tag) {
@@ -25,14 +33,9 @@ void time_clean (s_time *time)
}
}
-s_time * time_init (s_time *time, bool allocate)
+s_time * time_init (s_time *time)
{
s_time tmp = {0};
- if (allocate) {
- tmp.tag = alloc(2 * sizeof(s_tag));
- if (! tmp.tag)
- return NULL;
- }
*time = tmp;
return time;
}
@@ -41,8 +44,7 @@ s_time * time_init_copy (s_time *time, const s_time *src)
{
s_time tmp = {0};
if (src->tag) {
- tmp.tag = alloc(2 * sizeof(s_tag));
- if (! tmp.tag)
+ if (! time_allocate(&tmp))
return NULL;
if (! tag_init_copy(tmp.tag, src->tag)) {
free(tmp.tag);
@@ -56,8 +58,21 @@ s_time * time_init_copy (s_time *time, const s_time *src)
*time = tmp;
return time;
}
- tmp.tv_sec = src->tv_sec;
- tmp.tv_nsec = src->tv_nsec;
+ else {
+ tmp.tv_sec = src->tv_sec;
+ tmp.tv_nsec = src->tv_nsec;
+ }
+ *time = tmp;
+ return time;
+}
+
+s_time * time_init_now (s_time *time)
+{
+ s_timespec timespec;
+ s_time tmp = {0};
+ clock_gettime(CLOCK_REALTIME, ×pec);
+ tmp.tv_sec = timespec.tv_sec;
+ tmp.tv_nsec = timespec.tv_nsec;
*time = tmp;
return time;
}
diff --git a/libkc3/time.h b/libkc3/time.h
index 08ab498..fcaf013 100644
--- a/libkc3/time.h
+++ b/libkc3/time.h
@@ -23,14 +23,16 @@
/* Stack-allocation compatible functions. Call time_clean if
time_init argument allocate was true. */
void time_clean (s_time *time);
-s_time * time_init (s_time *time, bool allocate);
+s_time * time_init (s_time *time);
s_time * time_init_copy (s_time *time, const s_time *src);
+s_time * time_init_now (s_time *time);
/* Observers */
f64 * time_to_f64 (const s_timespec *time, f64 *dest);
s_tag * time_to_tag (const s_timespec *time, s_tag *dest);
/* Operators */
+s_time * time_allocate (s_time *time);
s_timespec * time_sub (const s_timespec *a, const s_timespec *b, s_timespec *dest);
#endif /* LIBKC3_TIME_H */
diff --git a/sources.mk b/sources.mk
index 29b3760..52702bc 100644
--- a/sources.mk
+++ b/sources.mk
@@ -19,40 +19,6 @@ KC3_CONFIGURES = \
"libkc3/configure" \
"libkc3/sources.sh" \
"libkc3/update_sources" \
- "libkc3_window/cairo/configure" \
- "libkc3_window/cairo/demo/configure" \
- "libkc3_window/cairo/demo/sources.sh" \
- "libkc3_window/cairo/demo/update_sources" \
- "libkc3_window/cairo/quartz/configure" \
- "libkc3_window/cairo/quartz/demo/configure" \
- "libkc3_window/cairo/quartz/demo/sources.sh" \
- "libkc3_window/cairo/quartz/demo/update_sources" \
- "libkc3_window/cairo/quartz/sources.sh" \
- "libkc3_window/cairo/quartz/update_sources" \
- "libkc3_window/cairo/sources.sh" \
- "libkc3_window/cairo/update_sources" \
- "libkc3_window/cairo/win32/configure" \
- "libkc3_window/cairo/win32/demo/configure" \
- "libkc3_window/cairo/win32/demo/sources.sh" \
- "libkc3_window/cairo/win32/demo/update_sources" \
- "libkc3_window/cairo/win32/sources.sh" \
- "libkc3_window/cairo/win32/update_sources" \
- "libkc3_window/cairo/xcb/configure" \
- "libkc3_window/cairo/xcb/demo/configure" \
- "libkc3_window/cairo/xcb/demo/sources.sh" \
- "libkc3_window/cairo/xcb/demo/update_sources" \
- "libkc3_window/cairo/xcb/sources.sh" \
- "libkc3_window/cairo/xcb/update_sources" \
- "libkc3_window/configure" \
- "libkc3_window/sdl2/configure" \
- "libkc3_window/sdl2/demo/configure" \
- "libkc3_window/sdl2/demo/macos/configure" \
- "libkc3_window/sdl2/demo/sources.sh" \
- "libkc3_window/sdl2/demo/update_sources" \
- "libkc3_window/sdl2/sources.sh" \
- "libkc3_window/sdl2/update_sources" \
- "libkc3_window/sources.sh" \
- "libkc3_window/update_sources" \
"libtommath/configure" \
"libtommath/sources.sh" \
"libtommath/update_sources" \
@@ -60,6 +26,40 @@ KC3_CONFIGURES = \
"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" \
@@ -76,34 +76,34 @@ KC3_MAKEFILES = \
"libkc3/Makefile" \
"libkc3/gen.mk" \
"libkc3/sources.mk" \
- "libkc3_window/Makefile" \
- "libkc3_window/cairo/Makefile" \
- "libkc3_window/cairo/demo/Makefile" \
- "libkc3_window/cairo/demo/sources.mk" \
- "libkc3_window/cairo/quartz/Makefile" \
- "libkc3_window/cairo/quartz/demo/Makefile" \
- "libkc3_window/cairo/quartz/demo/sources.mk" \
- "libkc3_window/cairo/quartz/sources.mk" \
- "libkc3_window/cairo/sources.mk" \
- "libkc3_window/cairo/win32/Makefile" \
- "libkc3_window/cairo/win32/demo/Makefile" \
- "libkc3_window/cairo/win32/demo/sources.mk" \
- "libkc3_window/cairo/win32/sources.mk" \
- "libkc3_window/cairo/xcb/Makefile" \
- "libkc3_window/cairo/xcb/demo/Makefile" \
- "libkc3_window/cairo/xcb/demo/sources.mk" \
- "libkc3_window/cairo/xcb/sources.mk" \
- "libkc3_window/sdl2/Makefile" \
- "libkc3_window/sdl2/demo/Makefile" \
- "libkc3_window/sdl2/demo/macos/Makefile" \
- "libkc3_window/sdl2/demo/sources.mk" \
- "libkc3_window/sdl2/sources.mk" \
- "libkc3_window/sources.mk" \
"libtommath/Makefile" \
"libtommath/sources.mk" \
"test/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" \
@@ -508,113 +508,6 @@ KC3_C_SOURCES = \
"libkc3/var.h" \
"libkc3/void.c" \
"libkc3/void.h" \
- "libkc3_window/cairo/cairo_font.c" \
- "libkc3_window/cairo/cairo_font.h" \
- "libkc3_window/cairo/cairo_sprite.c" \
- "libkc3_window/cairo/cairo_sprite.h" \
- "libkc3_window/cairo/cairo_text.c" \
- "libkc3_window/cairo/cairo_text.h" \
- "libkc3_window/cairo/demo/bg_rect.c" \
- "libkc3_window/cairo/demo/bg_rect.h" \
- "libkc3_window/cairo/demo/flies.c" \
- "libkc3_window/cairo/demo/flies.h" \
- "libkc3_window/cairo/demo/lightspeed.c" \
- "libkc3_window/cairo/demo/lightspeed.h" \
- "libkc3_window/cairo/demo/mandelbrot_f128.c" \
- "libkc3_window/cairo/demo/mandelbrot_f128.h" \
- "libkc3_window/cairo/demo/toasters.c" \
- "libkc3_window/cairo/demo/toasters.h" \
- "libkc3_window/cairo/demo/window_cairo_demo.c" \
- "libkc3_window/cairo/demo/window_cairo_demo.h" \
- "libkc3_window/cairo/quartz/demo/window_cairo_quartz_demo.c" \
- "libkc3_window/cairo/quartz/quartz_to_xkbcommon.c" \
- "libkc3_window/cairo/quartz/quartz_to_xkbcommon.h" \
- "libkc3_window/cairo/quartz/window_cairo_quartz.h" \
- "libkc3_window/cairo/quartz/window_cairo_quartz_app_delegate.h" \
- "libkc3_window/cairo/quartz/window_cairo_quartz_view.h" \
- "libkc3_window/cairo/quartz/window_cairo_quartz_view_controller.h" \
- "libkc3_window/cairo/quartz/xkbquartz.h" \
- "libkc3_window/cairo/types.h" \
- "libkc3_window/cairo/win32/demo/window_cairo_win32_demo.c" \
- "libkc3_window/cairo/win32/vk_to_xkbcommon.c" \
- "libkc3_window/cairo/win32/vk_to_xkbcommon.h" \
- "libkc3_window/cairo/win32/window_cairo_win32.c" \
- "libkc3_window/cairo/win32/window_cairo_win32.h" \
- "libkc3_window/cairo/window_cairo.c" \
- "libkc3_window/cairo/window_cairo.h" \
- "libkc3_window/cairo/xcb/demo/window_cairo_xcb_demo.c" \
- "libkc3_window/cairo/xcb/window_cairo_xcb.c" \
- "libkc3_window/cairo/xcb/window_cairo_xcb.h" \
- "libkc3_window/sdl2/demo/bg_rect.c" \
- "libkc3_window/sdl2/demo/bg_rect.h" \
- "libkc3_window/sdl2/demo/earth.c" \
- "libkc3_window/sdl2/demo/earth.h" \
- "libkc3_window/sdl2/demo/flies.c" \
- "libkc3_window/sdl2/demo/flies.h" \
- "libkc3_window/sdl2/demo/lightspeed.c" \
- "libkc3_window/sdl2/demo/lightspeed.h" \
- "libkc3_window/sdl2/demo/mandelbrot_f128.c" \
- "libkc3_window/sdl2/demo/mandelbrot_f128.h" \
- "libkc3_window/sdl2/demo/matrix.c" \
- "libkc3_window/sdl2/demo/matrix.h" \
- "libkc3_window/sdl2/demo/toasters.c" \
- "libkc3_window/sdl2/demo/toasters.h" \
- "libkc3_window/sdl2/demo/window_sdl2_demo.c" \
- "libkc3_window/sdl2/demo/window_sdl2_demo.h" \
- "libkc3_window/sdl2/disabled/mandelbrot.c" \
- "libkc3_window/sdl2/disabled/mandelbrot.h" \
- "libkc3_window/sdl2/disabled/sdl2_font.c" \
- "libkc3_window/sdl2/disabled/sdl2_font.h" \
- "libkc3_window/sdl2/disabled/sdl2_sprite.c" \
- "libkc3_window/sdl2/disabled/sdl2_sprite.h" \
- "libkc3_window/sdl2/dmat3.h" \
- "libkc3_window/sdl2/dmat4.c" \
- "libkc3_window/sdl2/dmat4.h" \
- "libkc3_window/sdl2/dvec2.c" \
- "libkc3_window/sdl2/dvec2.h" \
- "libkc3_window/sdl2/dvec3.c" \
- "libkc3_window/sdl2/dvec3.h" \
- "libkc3_window/sdl2/gl_camera.c" \
- "libkc3_window/sdl2/gl_camera.h" \
- "libkc3_window/sdl2/gl_cylinder.c" \
- "libkc3_window/sdl2/gl_cylinder.h" \
- "libkc3_window/sdl2/gl_deprecated.c" \
- "libkc3_window/sdl2/gl_deprecated.h" \
- "libkc3_window/sdl2/gl_font.c" \
- "libkc3_window/sdl2/gl_font.h" \
- "libkc3_window/sdl2/gl_lines.c" \
- "libkc3_window/sdl2/gl_lines.h" \
- "libkc3_window/sdl2/gl_object.c" \
- "libkc3_window/sdl2/gl_object.h" \
- "libkc3_window/sdl2/gl_ortho.c" \
- "libkc3_window/sdl2/gl_ortho.h" \
- "libkc3_window/sdl2/gl_sphere.c" \
- "libkc3_window/sdl2/gl_sphere.h" \
- "libkc3_window/sdl2/gl_sprite.c" \
- "libkc3_window/sdl2/gl_sprite.h" \
- "libkc3_window/sdl2/gl_square.c" \
- "libkc3_window/sdl2/gl_square.h" \
- "libkc3_window/sdl2/gl_text.c" \
- "libkc3_window/sdl2/gl_text.h" \
- "libkc3_window/sdl2/gl_triangle.c" \
- "libkc3_window/sdl2/gl_triangle.h" \
- "libkc3_window/sdl2/gl_vertex.c" \
- "libkc3_window/sdl2/gl_vertex.h" \
- "libkc3_window/sdl2/gl_vtext.c" \
- "libkc3_window/sdl2/gl_vtext.h" \
- "libkc3_window/sdl2/mat3.h" \
- "libkc3_window/sdl2/mat4.c" \
- "libkc3_window/sdl2/mat4.h" \
- "libkc3_window/sdl2/types.h" \
- "libkc3_window/sdl2/vec2.c" \
- "libkc3_window/sdl2/vec2.h" \
- "libkc3_window/sdl2/vec3.c" \
- "libkc3_window/sdl2/vec3.h" \
- "libkc3_window/sdl2/window_sdl2.c" \
- "libkc3_window/sdl2/window_sdl2.h" \
- "libkc3_window/types.h" \
- "libkc3_window/window.c" \
- "libkc3_window/window.h" \
"test/array_test.c" \
"test/bool_test.c" \
"test/buf_file_test.c" \
@@ -662,201 +555,116 @@ KC3_C_SOURCES = \
"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_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" \
+ "" \
KC3_IMG_SOURCES = \
"img/c3.1.xcf" \
@@ -903,7 +711,6 @@ KC3_IMG_SOURCES = \
"img/toast.png" \
KC3_LIB_SOURCES = \
- "lib/kc3/0.1/.#httpd.kc3" \
"lib/kc3/0.1/array.kc3" \
"lib/kc3/0.1/bool.facts" \
"lib/kc3/0.1/buf.kc3" \
@@ -925,6 +732,7 @@ KC3_LIB_SOURCES = \
"lib/kc3/0.1/gl/vec3.kc3" \
"lib/kc3/0.1/gl/vertex.kc3" \
"lib/kc3/0.1/http.kc3" \
+ "lib/kc3/0.1/http/event.kc3" \
"lib/kc3/0.1/http/request.kc3" \
"lib/kc3/0.1/http/response.kc3" \
"lib/kc3/0.1/httpd.kc3" \
@@ -957,10 +765,10 @@ KC3_LIB_SOURCES = \
"lib/kc3/0.1/void.facts" \
KC3_OBJC_SOURCES = \
- "libkc3_window/cairo/quartz/window_cairo_quartz.m" \
- "libkc3_window/cairo/quartz/window_cairo_quartz_app_delegate.m" \
- "libkc3_window/cairo/quartz/window_cairo_quartz_view.m" \
- "libkc3_window/cairo/quartz/window_cairo_quartz_view_controller.m" \
+ "window/cairo/quartz/window_cairo_quartz.m" \
+ "window/cairo/quartz/window_cairo_quartz_app_delegate.m" \
+ "window/cairo/quartz/window_cairo_quartz_view.m" \
+ "window/cairo/quartz/window_cairo_quartz_view_controller.m" \
KC3_TEST_SOURCES = \
"test/buf_parse_test_su.rb" \
@@ -1181,6 +989,9 @@ KC3_TEST_HTTP_SOURCES = \
"test/http/06_mime_types.kc3" \
"test/http/06_mime_types.out.expected" \
"test/http/06_mime_types.ret.expected" \
+ "test/http/07_event_echo.kc3" \
+ "test/http/07_event_echo.out.expected" \
+ "test/http/07_event_echo.ret.expected" \
"test/http_test" \
KC3_TEST_HTTPD_SOURCES = \
diff --git a/sources.sh b/sources.sh
index e3d49e6..47ced52 100644
--- a/sources.sh
+++ b/sources.sh
@@ -1,15 +1,15 @@
# sources.sh generated by update_sources
-KC3_CONFIGURES='ekc3/configure ekc3/sources.sh ekc3/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 kc3c/configure kc3s/configure kc3s/sources.sh kc3s/update_sources libkc3/configure libkc3/sources.sh libkc3/update_sources libkc3_window/cairo/configure libkc3_window/cairo/demo/configure libkc3_window/cairo/demo/sources.sh libkc3_window/cairo/demo/update_sources libkc3_window/cairo/quartz/configure libkc3_window/cairo/quartz/demo/configure libkc3_window/cairo/quartz/demo/sources.sh libkc3_window/cairo/quartz/demo/update_sources libkc3_window/cairo/quartz/sources.sh libkc3_window/cairo/quartz/update_sources libkc3_window/cairo/sources.sh libkc3_window/cairo/update_sources libkc3_window/cairo/win32/configure libkc3_window/cairo/win32/demo/configure libkc3_window/cairo/win32/demo/sources.sh libkc3_window/cairo/win32/demo/update_sources libkc3_window/cairo/win32/sources.sh libkc3_window/cairo/win32/update_sources libkc3_window/cairo/xcb/configure libkc3_window/cairo/xcb/demo/configure libkc3_window/cairo/xcb/demo/sources.sh libkc3_window/cairo/xcb/demo/update_sources libkc3_window/cairo/xcb/sources.sh libkc3_window/cairo/xcb/update_sources libkc3_window/configure libkc3_window/sdl2/configure libkc3_window/sdl2/demo/configure libkc3_window/sdl2/demo/macos/configure libkc3_window/sdl2/demo/sources.sh libkc3_window/sdl2/demo/update_sources libkc3_window/sdl2/sources.sh libkc3_window/sdl2/update_sources libkc3_window/sources.sh libkc3_window/update_sources libtommath/configure libtommath/sources.sh libtommath/update_sources test/configure test/sources.sh test/update_sources ucd2c/configure '
-KC3_MAKEFILES='ekc3/Makefile ekc3/sources.mk http/Makefile http/sources.mk httpd/Makefile httpd/sources.mk ikc3/Makefile ikc3/sources.mk kc3c/Makefile kc3s/Makefile kc3s/sources.mk libkc3/Makefile libkc3/gen.mk libkc3/sources.mk libkc3_window/Makefile libkc3_window/cairo/Makefile libkc3_window/cairo/demo/Makefile libkc3_window/cairo/demo/sources.mk libkc3_window/cairo/quartz/Makefile libkc3_window/cairo/quartz/demo/Makefile libkc3_window/cairo/quartz/demo/sources.mk libkc3_window/cairo/quartz/sources.mk libkc3_window/cairo/sources.mk libkc3_window/cairo/win32/Makefile libkc3_window/cairo/win32/demo/Makefile libkc3_window/cairo/win32/demo/sources.mk libkc3_window/cairo/win32/sources.mk libkc3_window/cairo/xcb/Makefile libkc3_window/cairo/xcb/demo/Makefile libkc3_window/cairo/xcb/demo/sources.mk libkc3_window/cairo/xcb/sources.mk libkc3_window/sdl2/Makefile libkc3_window/sdl2/demo/Makefile libkc3_window/sdl2/demo/macos/Makefile libkc3_window/sdl2/demo/sources.mk libkc3_window/sdl2/sources.mk libkc3_window/sources.mk libtommath/Makefile libtommath/sources.mk test/Makefile test/sources.mk ucd2c/Makefile '
-KC3_C_SOURCES='ekc3/ekc3.c ekc3/ekc3.h ekc3/html.c ekc3/html.h ekc3/types.h http/http.c http/http.h http/http_event.c http/http_event.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/socket.c http/socket.h http/socket_addr.c http/socket_addr.h http/socket_buf.c http/socket_buf.h http/types.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 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/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/data.c libkc3/data.h libkc3/env.c libkc3/env.h libkc3/error.c libkc3/error.h libkc3/error_handler.c libkc3/error_handler.h libkc3/eval.c libkc3/eval.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/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/operator.c libkc3/operator.h libkc3/pcomplex.c libkc3/pcomplex.h libkc3/pcow.c libkc3/pcow.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/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/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/sha1.h libkc3/sign.c libkc3/sign.h libkc3/skiplist.c.in libkc3/skiplist.h.in libkc3/skiplist__fact.c libkc3/skiplist__fact.h libkc3/skiplist_node.c.in libkc3/skiplist_node.h.in 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/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_window/cairo/cairo_font.c libkc3_window/cairo/cairo_font.h libkc3_window/cairo/cairo_sprite.c libkc3_window/cairo/cairo_sprite.h libkc3_window/cairo/cairo_text.c libkc3_window/cairo/cairo_text.h libkc3_window/cairo/demo/bg_rect.c libkc3_window/cairo/demo/bg_rect.h libkc3_window/cairo/demo/flies.c libkc3_window/cairo/demo/flies.h libkc3_window/cairo/demo/lightspeed.c libkc3_window/cairo/demo/lightspeed.h libkc3_window/cairo/demo/mandelbrot_f128.c libkc3_window/cairo/demo/mandelbrot_f128.h libkc3_window/cairo/demo/toasters.c libkc3_window/cairo/demo/toasters.h libkc3_window/cairo/demo/window_cairo_demo.c libkc3_window/cairo/demo/window_cairo_demo.h libkc3_window/cairo/quartz/demo/window_cairo_quartz_demo.c libkc3_window/cairo/quartz/quartz_to_xkbcommon.c libkc3_window/cairo/quartz/quartz_to_xkbcommon.h libkc3_window/cairo/quartz/window_cairo_quartz.h libkc3_window/cairo/quartz/window_cairo_quartz_app_delegate.h libkc3_window/cairo/quartz/window_cairo_quartz_view.h libkc3_window/cairo/quartz/window_cairo_quartz_view_controller.h libkc3_window/cairo/quartz/xkbquartz.h libkc3_window/cairo/types.h libkc3_window/cairo/win32/demo/window_cairo_win32_demo.c libkc3_window/cairo/win32/vk_to_xkbcommon.c libkc3_window/cairo/win32/vk_to_xkbcommon.h libkc3_window/cairo/win32/window_cairo_win32.c libkc3_window/cairo/win32/window_cairo_win32.h libkc3_window/cairo/window_cairo.c libkc3_window/cairo/window_cairo.h libkc3_window/cairo/xcb/demo/window_cairo_xcb_demo.c libkc3_window/cairo/xcb/window_cairo_xcb.c libkc3_window/cairo/xcb/window_cairo_xcb.h libkc3_window/sdl2/demo/bg_rect.c libkc3_window/sdl2/demo/bg_rect.h libkc3_window/sdl2/demo/earth.c libkc3_window/sdl2/demo/earth.h libkc3_window/sdl2/demo/flies.c libkc3_window/sdl2/demo/flies.h libkc3_window/sdl2/demo/lightspeed.c libkc3_window/sdl2/demo/lightspeed.h libkc3_window/sdl2/demo/mandelbrot_f128.c libkc3_window/sdl2/demo/mandelbrot_f128.h libkc3_window/sdl2/demo/matrix.c libkc3_window/sdl2/demo/matrix.h libkc3_window/sdl2/demo/toasters.c libkc3_window/sdl2/demo/toasters.h libkc3_window/sdl2/demo/window_sdl2_demo.c libkc3_window/sdl2/demo/window_sdl2_demo.h libkc3_window/sdl2/disabled/mandelbrot.c libkc3_window/sdl2/disabled/mandelbrot.h libkc3_window/sdl2/disabled/sdl2_font.c libkc3_window/sdl2/disabled/sdl2_font.h libkc3_window/sdl2/disabled/sdl2_sprite.c libkc3_window/sdl2/disabled/sdl2_sprite.h libkc3_window/sdl2/dmat3.h libkc3_window/sdl2/dmat4.c libkc3_window/sdl2/dmat4.h libkc3_window/sdl2/dvec2.c libkc3_window/sdl2/dvec2.h libkc3_window/sdl2/dvec3.c libkc3_window/sdl2/dvec3.h libkc3_window/sdl2/gl_camera.c libkc3_window/sdl2/gl_camera.h libkc3_window/sdl2/gl_cylinder.c libkc3_window/sdl2/gl_cylinder.h libkc3_window/sdl2/gl_deprecated.c libkc3_window/sdl2/gl_deprecated.h libkc3_window/sdl2/gl_font.c libkc3_window/sdl2/gl_font.h libkc3_window/sdl2/gl_lines.c libkc3_window/sdl2/gl_lines.h libkc3_window/sdl2/gl_object.c libkc3_window/sdl2/gl_object.h libkc3_window/sdl2/gl_ortho.c libkc3_window/sdl2/gl_ortho.h libkc3_window/sdl2/gl_sphere.c libkc3_window/sdl2/gl_sphere.h libkc3_window/sdl2/gl_sprite.c libkc3_window/sdl2/gl_sprite.h libkc3_window/sdl2/gl_square.c libkc3_window/sdl2/gl_square.h libkc3_window/sdl2/gl_text.c libkc3_window/sdl2/gl_text.h libkc3_window/sdl2/gl_triangle.c libkc3_window/sdl2/gl_triangle.h libkc3_window/sdl2/gl_vertex.c libkc3_window/sdl2/gl_vertex.h libkc3_window/sdl2/gl_vtext.c libkc3_window/sdl2/gl_vtext.h libkc3_window/sdl2/mat3.h libkc3_window/sdl2/mat4.c libkc3_window/sdl2/mat4.h libkc3_window/sdl2/types.h libkc3_window/sdl2/vec2.c libkc3_window/sdl2/vec2.h libkc3_window/sdl2/vec3.c libkc3_window/sdl2/vec3.h libkc3_window/sdl2/window_sdl2.c libkc3_window/sdl2/window_sdl2.h libkc3_window/types.h libkc3_window/window.c libkc3_window/window.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/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 '
-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 '
+KC3_CONFIGURES='ekc3/configure ekc3/sources.sh ekc3/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 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 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 http/Makefile http/sources.mk httpd/Makefile httpd/sources.mk ikc3/Makefile ikc3/sources.mk kc3c/Makefile kc3s/Makefile kc3s/sources.mk libkc3/Makefile libkc3/gen.mk libkc3/sources.mk libtommath/Makefile libtommath/sources.mk test/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 http/http.c http/http.h http/http_event.c http/http_event.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/socket.c http/socket.h http/socket_addr.c http/socket_addr.h http/socket_buf.c http/socket_buf.h http/types.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 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/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/data.c libkc3/data.h libkc3/env.c libkc3/env.h libkc3/error.c libkc3/error.h libkc3/error_handler.c libkc3/error_handler.h libkc3/eval.c libkc3/eval.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/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/operator.c libkc3/operator.h libkc3/pcomplex.c libkc3/pcomplex.h libkc3/pcow.c libkc3/pcow.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/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/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/sha1.h libkc3/sign.c libkc3/sign.h libkc3/skiplist.c.in libkc3/skiplist.h.in libkc3/skiplist__fact.c libkc3/skiplist__fact.h libkc3/skiplist_node.c.in libkc3/skiplist_node.h.in 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/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 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/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_FONT_SOURCES=' '
KC3_IMG_SOURCES='img/c3.1.xcf img/c3.1080.jpg img/c3.1080.png img/c3.128.jpg img/c3.128.png img/c3.16.png img/c3.256.jpg img/c3.256.png img/c3.32.jpg img/c3.32.png img/c3.48.jpg img/c3.48.png img/c3.512.jpg img/c3.512.png img/c3.64.jpg img/c3.64.png img/c3.640.jpg img/c3.640.png img/c3.720.jpg img/c3.720.png img/c3.iconset/icon_128x128.png img/c3.iconset/icon_16x16.png img/c3.iconset/icon_256x256.png img/c3.iconset/icon_32x32.png img/c3.iconset/icon_512x512.png img/c3.iconset/icon_64x64.png img/c3.xcf img/earth.jpg img/earth.png img/flaps.256.png img/flaps.png img/fly-dead.png img/fly-noto.png img/iris-c3-004.jpeg 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 '
-KC3_LIB_SOURCES='lib/kc3/0.1/.#httpd.kc3 lib/kc3/0.1/array.kc3 lib/kc3/0.1/bool.facts lib/kc3/0.1/buf.kc3 lib/kc3/0.1/buf_rw.kc3 lib/kc3/0.1/complex.facts lib/kc3/0.1/cow.kc3 lib/kc3/0.1/ekc3.kc3 lib/kc3/0.1/f128.facts lib/kc3/0.1/f32.facts lib/kc3/0.1/f64.facts lib/kc3/0.1/file.kc3 lib/kc3/0.1/file/stat.kc3 lib/kc3/0.1/gl/dvec2.kc3 lib/kc3/0.1/gl/dvec3.kc3 lib/kc3/0.1/gl/object.kc3 lib/kc3/0.1/gl/sphere.kc3 lib/kc3/0.1/gl/triangle.kc3 lib/kc3/0.1/gl/vec2.kc3 lib/kc3/0.1/gl/vec3.kc3 lib/kc3/0.1/gl/vertex.kc3 lib/kc3/0.1/http.kc3 lib/kc3/0.1/http/request.kc3 lib/kc3/0.1/http/response.kc3 lib/kc3/0.1/httpd.kc3 lib/kc3/0.1/integer.facts lib/kc3/0.1/kc3.facts lib/kc3/0.1/kc3/operator.kc3 lib/kc3/0.1/list.kc3 lib/kc3/0.1/map.facts lib/kc3/0.1/ptr.facts lib/kc3/0.1/ptr_free.facts lib/kc3/0.1/ratio.facts lib/kc3/0.1/s16.facts lib/kc3/0.1/s32.facts lib/kc3/0.1/s64.facts lib/kc3/0.1/s8.facts lib/kc3/0.1/socket.kc3 lib/kc3/0.1/socket/addr.kc3 lib/kc3/0.1/socket/buf.kc3 lib/kc3/0.1/str.facts lib/kc3/0.1/struct.kc3 lib/kc3/0.1/sw.facts lib/kc3/0.1/sym.facts lib/kc3/0.1/time.kc3 lib/kc3/0.1/u16.facts lib/kc3/0.1/u32.facts lib/kc3/0.1/u64.facts lib/kc3/0.1/u8.facts lib/kc3/0.1/uw.facts lib/kc3/0.1/var.facts lib/kc3/0.1/void.facts '
-KC3_OBJC_SOURCES='libkc3_window/cairo/quartz/window_cairo_quartz.m libkc3_window/cairo/quartz/window_cairo_quartz_app_delegate.m libkc3_window/cairo/quartz/window_cairo_quartz_view.m libkc3_window/cairo/quartz/window_cairo_quartz_view_controller.m '
+KC3_LIB_SOURCES='lib/kc3/0.1/array.kc3 lib/kc3/0.1/bool.facts lib/kc3/0.1/buf.kc3 lib/kc3/0.1/buf_rw.kc3 lib/kc3/0.1/complex.facts lib/kc3/0.1/cow.kc3 lib/kc3/0.1/ekc3.kc3 lib/kc3/0.1/f128.facts lib/kc3/0.1/f32.facts lib/kc3/0.1/f64.facts lib/kc3/0.1/file.kc3 lib/kc3/0.1/file/stat.kc3 lib/kc3/0.1/gl/dvec2.kc3 lib/kc3/0.1/gl/dvec3.kc3 lib/kc3/0.1/gl/object.kc3 lib/kc3/0.1/gl/sphere.kc3 lib/kc3/0.1/gl/triangle.kc3 lib/kc3/0.1/gl/vec2.kc3 lib/kc3/0.1/gl/vec3.kc3 lib/kc3/0.1/gl/vertex.kc3 lib/kc3/0.1/http.kc3 lib/kc3/0.1/http/event.kc3 lib/kc3/0.1/http/request.kc3 lib/kc3/0.1/http/response.kc3 lib/kc3/0.1/httpd.kc3 lib/kc3/0.1/integer.facts lib/kc3/0.1/kc3.facts lib/kc3/0.1/kc3/operator.kc3 lib/kc3/0.1/list.kc3 lib/kc3/0.1/map.facts lib/kc3/0.1/ptr.facts lib/kc3/0.1/ptr_free.facts lib/kc3/0.1/ratio.facts lib/kc3/0.1/s16.facts lib/kc3/0.1/s32.facts lib/kc3/0.1/s64.facts lib/kc3/0.1/s8.facts lib/kc3/0.1/socket.kc3 lib/kc3/0.1/socket/addr.kc3 lib/kc3/0.1/socket/buf.kc3 lib/kc3/0.1/str.facts lib/kc3/0.1/struct.kc3 lib/kc3/0.1/sw.facts lib/kc3/0.1/sym.facts lib/kc3/0.1/time.kc3 lib/kc3/0.1/u16.facts lib/kc3/0.1/u32.facts lib/kc3/0.1/u64.facts lib/kc3/0.1/u8.facts lib/kc3/0.1/uw.facts lib/kc3/0.1/var.facts lib/kc3/0.1/void.facts '
+KC3_OBJC_SOURCES='window/cairo/quartz/window_cairo_quartz.m window/cairo/quartz/window_cairo_quartz_app_delegate.m window/cairo/quartz/window_cairo_quartz_view.m window/cairo/quartz/window_cairo_quartz_view_controller.m '
KC3_TEST_SOURCES='test/buf_parse_test_su.rb test/facts_test_dump_file.expected.facts test/facts_test_load_file.facts test/facts_test_log_add.expected.facts test/facts_test_log_remove.expected.facts test/facts_test_open_file.1.expected.facts test/facts_test_open_file.1.in.facts test/facts_test_open_file.2.expected.facts test/facts_test_open_file.2.in.facts test/facts_test_open_file.3.expected.facts test/facts_test_open_file.3.in.facts test/facts_test_save.expected.facts test/replace_lines.rb test/test.rb test/test_case_end.rb test/zero '
KC3_TEST_IKC3_SOURCES='test/ikc3/access.kc3 test/ikc3/access.out.expected test/ikc3/access.ret.expected test/ikc3/array.err.expected test/ikc3/array.kc3 test/ikc3/array.out.expected test/ikc3/array.ret.expected test/ikc3/block.kc3 test/ikc3/block.out.expected test/ikc3/block.ret.expected test/ikc3/bool.err.expected test/ikc3/bool.kc3 test/ikc3/bool.out.expected test/ikc3/bool.ret.expected test/ikc3/buf.kc3 test/ikc3/buf.out.expected test/ikc3/buf.ret.expected test/ikc3/buf_rw.kc3 test/ikc3/buf_rw.out.expected test/ikc3/buf_rw.ret.expected test/ikc3/call.err.expected test/ikc3/call.kc3 test/ikc3/call.out.expected test/ikc3/call.ret.expected test/ikc3/cast.kc3 test/ikc3/cast.out.expected test/ikc3/cast.ret.expected test/ikc3/character.err.expected test/ikc3/character.kc3 test/ikc3/character.out.expected test/ikc3/character.ret.expected test/ikc3/comment.err.expected test/ikc3/comment.kc3 test/ikc3/comment.out.expected test/ikc3/comment.ret.expected test/ikc3/complex.kc3 test/ikc3/complex.out.expected test/ikc3/complex.ret.expected test/ikc3/def.kc3 test/ikc3/def.out.expected test/ikc3/def.ret.expected test/ikc3/defmodule.kc3 test/ikc3/defmodule.out.expected test/ikc3/defmodule.ret.expected test/ikc3/defoperator.kc3 test/ikc3/defoperator.out.expected test/ikc3/defoperator.ret.expected test/ikc3/defstruct.kc3 test/ikc3/defstruct.out.expected test/ikc3/defstruct.ret.expected test/ikc3/equal.err.expected test/ikc3/equal.kc3 test/ikc3/equal.out.expected test/ikc3/equal.ret.expected test/ikc3/fn.err.expected test/ikc3/fn.kc3 test/ikc3/fn.out.expected test/ikc3/fn.ret.expected test/ikc3/function_call.err.expected test/ikc3/function_call.out.expected test/ikc3/function_call.ret.expected test/ikc3/gl.kc3 test/ikc3/gl.out.expected test/ikc3/gl.ret.expected test/ikc3/globals.kc3 test/ikc3/globals.out.expected test/ikc3/globals.ret.expected test/ikc3/hello.err.expected test/ikc3/hello.kc3 test/ikc3/hello.out.expected test/ikc3/hello.ret.expected test/ikc3/ident.err.expected test/ikc3/ident.kc3 test/ikc3/ident.out.expected test/ikc3/ident.ret.expected test/ikc3/if.kc3 test/ikc3/if.out.expected test/ikc3/if.ret.expected test/ikc3/integer.kc3 test/ikc3/integer.lisp test/ikc3/integer.out.expected test/ikc3/integer.ret.expected test/ikc3/integer_add.kc3 test/ikc3/integer_add.out.expected test/ikc3/integer_add.ret.expected test/ikc3/integer_band.kc3 test/ikc3/integer_band.out.expected test/ikc3/integer_band.ret.expected test/ikc3/integer_bnot.kc3 test/ikc3/integer_bnot.out.expected test/ikc3/integer_bnot.ret.expected test/ikc3/integer_bor-2.kc3 test/ikc3/integer_bor-2.out.expected test/ikc3/integer_bor-2.ret.expected test/ikc3/integer_bxor.kc3 test/ikc3/integer_bxor.out.expected test/ikc3/integer_bxor.ret.expected test/ikc3/integer_div.kc3 test/ikc3/integer_div.out.expected test/ikc3/integer_div.ret.expected test/ikc3/integer_eq.kc3 test/ikc3/integer_eq.out.expected test/ikc3/integer_eq.ret.expected test/ikc3/integer_gt.kc3 test/ikc3/integer_gt.out.expected test/ikc3/integer_gt.ret.expected test/ikc3/integer_lt.kc3 test/ikc3/integer_lt.out.expected test/ikc3/integer_lt.ret.expected test/ikc3/integer_mod-2.kc3 test/ikc3/integer_mod-2.out.expected test/ikc3/integer_mod-2.ret.expected test/ikc3/integer_mul.kc3 test/ikc3/integer_mul.out.expected test/ikc3/integer_mul.ret.expected test/ikc3/integer_neg.kc3 test/ikc3/integer_neg.out.expected test/ikc3/integer_neg.ret.expected test/ikc3/integer_sub.kc3 test/ikc3/integer_sub.out.expected test/ikc3/integer_sub.ret.expected test/ikc3/let.kc3 test/ikc3/let.out.expected test/ikc3/let.ret.expected test/ikc3/list.err.expected test/ikc3/list.kc3 test/ikc3/list.out.expected test/ikc3/list.ret.expected test/ikc3/macro.kc3 test/ikc3/macro.out.expected test/ikc3/macro.ret.expected test/ikc3/map.kc3 test/ikc3/map.out.expected test/ikc3/map.ret.expected test/ikc3/op.err.expected test/ikc3/op.kc3 test/ikc3/op.out.expected test/ikc3/op.ret.expected test/ikc3/plist.err.expected test/ikc3/plist.kc3 test/ikc3/plist.out.expected test/ikc3/plist.ret.expected test/ikc3/puts.kc3 test/ikc3/puts.out.expected test/ikc3/puts.ret.expected test/ikc3/quote.kc3 test/ikc3/quote.out.expected test/ikc3/quote.ret.expected test/ikc3/ratio.kc3 test/ikc3/ratio.out.expected test/ikc3/ratio.ret.expected test/ikc3/str.err.expected test/ikc3/str.kc3 test/ikc3/str.out.expected test/ikc3/str.ret.expected test/ikc3/struct.kc3 test/ikc3/struct.out.expected test/ikc3/struct.ret.expected test/ikc3/sym.err.expected test/ikc3/sym.kc3 test/ikc3/sym.out.expected test/ikc3/sym.ret.expected test/ikc3/tuple.err.expected test/ikc3/tuple.kc3 test/ikc3/tuple.out.expected test/ikc3/tuple.ret.expected test/ikc3/var.kc3 test/ikc3/var.out.expected test/ikc3/var.ret.expected test/ikc3/void.kc3 test/ikc3/void.out.expected test/ikc3/void.ret.expected test/ikc3_test '
KC3_TEST_EKC3_SOURCES='test/ekc3/title.html.ekc3 test/ekc3/title.kc3 test/ekc3/title.out.expected test/ekc3/title.ret.expected test/ekc3_test '
-KC3_TEST_HTTP_SOURCES='test/http/01_socket_buf.kc3 test/http/01_socket_buf.out.expected test/http/01_socket_buf.ret.expected test/http/02_socket.kc3 test/http/02_socket.out.expected test/http/02_socket.ret.expected test/http/03_client_server.kc3 test/http/03_client_server.out.expected test/http/03_client_server.ret.expected test/http/04_server_request.kc3 test/http/04_server_request.out.expected test/http/04_server_request.ret.expected test/http/05_response.kc3 test/http/05_response.out.expected test/http/05_response.ret.expected test/http/06_mime_types.kc3 test/http/06_mime_types.out.expected test/http/06_mime_types.ret.expected test/http_test '
+KC3_TEST_HTTP_SOURCES='test/http/01_socket_buf.kc3 test/http/01_socket_buf.out.expected test/http/01_socket_buf.ret.expected test/http/02_socket.kc3 test/http/02_socket.out.expected test/http/02_socket.ret.expected test/http/03_client_server.kc3 test/http/03_client_server.out.expected test/http/03_client_server.ret.expected test/http/04_server_request.kc3 test/http/04_server_request.out.expected test/http/04_server_request.ret.expected test/http/05_response.kc3 test/http/05_response.out.expected test/http/05_response.ret.expected test/http/06_mime_types.kc3 test/http/06_mime_types.out.expected test/http/06_mime_types.ret.expected test/http/07_event_echo.kc3 test/http/07_event_echo.out.expected test/http/07_event_echo.ret.expected test/http_test '
KC3_TEST_HTTPD_SOURCES='test/httpd/.keep '
KC3_OTHER_SOURCES='AUTHORS Makefile README.md config.subr configure env kc3.index kc3.version libkc3/tag_init.rb license.h sources.mk sources.sh '
KC3_EXTERNAL_SOURCES='libtommath/LICENSE libtommath/README.md libtommath/bn_cutoffs.c libtommath/bn_deprecated.c libtommath/bn_mp_2expt.c libtommath/bn_mp_abs.c libtommath/bn_mp_add.c libtommath/bn_mp_add_d.c libtommath/bn_mp_addmod.c libtommath/bn_mp_and.c libtommath/bn_mp_clamp.c libtommath/bn_mp_clear.c libtommath/bn_mp_clear_multi.c libtommath/bn_mp_cmp.c libtommath/bn_mp_cmp_d.c libtommath/bn_mp_cmp_mag.c libtommath/bn_mp_cnt_lsb.c libtommath/bn_mp_complement.c libtommath/bn_mp_copy.c libtommath/bn_mp_count_bits.c libtommath/bn_mp_decr.c libtommath/bn_mp_div.c libtommath/bn_mp_div_2.c libtommath/bn_mp_div_2d.c libtommath/bn_mp_div_3.c libtommath/bn_mp_div_d.c libtommath/bn_mp_dr_is_modulus.c libtommath/bn_mp_dr_reduce.c libtommath/bn_mp_dr_setup.c libtommath/bn_mp_error_to_string.c libtommath/bn_mp_exch.c libtommath/bn_mp_expt_u32.c libtommath/bn_mp_exptmod.c libtommath/bn_mp_exteuclid.c libtommath/bn_mp_fread.c libtommath/bn_mp_from_sbin.c libtommath/bn_mp_from_ubin.c libtommath/bn_mp_fwrite.c libtommath/bn_mp_gcd.c libtommath/bn_mp_get_double.c libtommath/bn_mp_get_i32.c libtommath/bn_mp_get_i64.c libtommath/bn_mp_get_l.c libtommath/bn_mp_get_ll.c libtommath/bn_mp_get_mag_u32.c libtommath/bn_mp_get_mag_u64.c libtommath/bn_mp_get_mag_ul.c libtommath/bn_mp_get_mag_ull.c libtommath/bn_mp_grow.c libtommath/bn_mp_incr.c libtommath/bn_mp_init.c libtommath/bn_mp_init_copy.c libtommath/bn_mp_init_i32.c libtommath/bn_mp_init_i64.c libtommath/bn_mp_init_l.c libtommath/bn_mp_init_ll.c libtommath/bn_mp_init_multi.c libtommath/bn_mp_init_set.c libtommath/bn_mp_init_size.c libtommath/bn_mp_init_u32.c libtommath/bn_mp_init_u64.c libtommath/bn_mp_init_ul.c libtommath/bn_mp_init_ull.c libtommath/bn_mp_invmod.c libtommath/bn_mp_is_square.c libtommath/bn_mp_iseven.c libtommath/bn_mp_isodd.c libtommath/bn_mp_kronecker.c libtommath/bn_mp_lcm.c libtommath/bn_mp_log_u32.c libtommath/bn_mp_lshd.c libtommath/bn_mp_mod.c libtommath/bn_mp_mod_2d.c libtommath/bn_mp_mod_d.c libtommath/bn_mp_montgomery_calc_normalization.c libtommath/bn_mp_montgomery_reduce.c libtommath/bn_mp_montgomery_setup.c libtommath/bn_mp_mul.c libtommath/bn_mp_mul_2.c libtommath/bn_mp_mul_2d.c libtommath/bn_mp_mul_d.c libtommath/bn_mp_mulmod.c libtommath/bn_mp_neg.c libtommath/bn_mp_or.c libtommath/bn_mp_pack.c libtommath/bn_mp_pack_count.c libtommath/bn_mp_prime_fermat.c libtommath/bn_mp_prime_frobenius_underwood.c libtommath/bn_mp_prime_is_prime.c libtommath/bn_mp_prime_miller_rabin.c libtommath/bn_mp_prime_next_prime.c libtommath/bn_mp_prime_rabin_miller_trials.c libtommath/bn_mp_prime_rand.c libtommath/bn_mp_prime_strong_lucas_selfridge.c libtommath/bn_mp_radix_size.c libtommath/bn_mp_radix_smap.c libtommath/bn_mp_rand.c libtommath/bn_mp_read_radix.c libtommath/bn_mp_reduce.c libtommath/bn_mp_reduce_2k.c libtommath/bn_mp_reduce_2k_l.c libtommath/bn_mp_reduce_2k_setup.c libtommath/bn_mp_reduce_2k_setup_l.c libtommath/bn_mp_reduce_is_2k.c libtommath/bn_mp_reduce_is_2k_l.c libtommath/bn_mp_reduce_setup.c libtommath/bn_mp_root_u32.c libtommath/bn_mp_rshd.c libtommath/bn_mp_sbin_size.c libtommath/bn_mp_set.c libtommath/bn_mp_set_double.c libtommath/bn_mp_set_i32.c libtommath/bn_mp_set_i64.c libtommath/bn_mp_set_l.c libtommath/bn_mp_set_ll.c libtommath/bn_mp_set_u32.c libtommath/bn_mp_set_u64.c libtommath/bn_mp_set_ul.c libtommath/bn_mp_set_ull.c libtommath/bn_mp_shrink.c libtommath/bn_mp_signed_rsh.c libtommath/bn_mp_sqr.c libtommath/bn_mp_sqrmod.c libtommath/bn_mp_sqrt.c libtommath/bn_mp_sqrtmod_prime.c libtommath/bn_mp_sub.c libtommath/bn_mp_sub_d.c libtommath/bn_mp_submod.c libtommath/bn_mp_to_radix.c libtommath/bn_mp_to_sbin.c libtommath/bn_mp_to_ubin.c libtommath/bn_mp_ubin_size.c libtommath/bn_mp_unpack.c libtommath/bn_mp_xor.c libtommath/bn_mp_zero.c libtommath/bn_prime_tab.c libtommath/bn_s_mp_add.c libtommath/bn_s_mp_balance_mul.c libtommath/bn_s_mp_exptmod.c libtommath/bn_s_mp_exptmod_fast.c libtommath/bn_s_mp_get_bit.c libtommath/bn_s_mp_invmod_fast.c libtommath/bn_s_mp_invmod_slow.c libtommath/bn_s_mp_karatsuba_mul.c libtommath/bn_s_mp_karatsuba_sqr.c libtommath/bn_s_mp_montgomery_reduce_fast.c libtommath/bn_s_mp_mul_digs.c libtommath/bn_s_mp_mul_digs_fast.c libtommath/bn_s_mp_mul_high_digs.c libtommath/bn_s_mp_mul_high_digs_fast.c libtommath/bn_s_mp_prime_is_divisible.c libtommath/bn_s_mp_rand_jenkins.c libtommath/bn_s_mp_rand_platform.c libtommath/bn_s_mp_reverse.c libtommath/bn_s_mp_sqr.c libtommath/bn_s_mp_sqr_fast.c libtommath/bn_s_mp_sub.c libtommath/bn_s_mp_toom_mul.c libtommath/bn_s_mp_toom_sqr.c libtommath/demo/mtest_opponent.c libtommath/demo/shared.c libtommath/demo/shared.h libtommath/demo/test.c libtommath/demo/timing.c libtommath/etc/2kprime.c libtommath/etc/drprime.c libtommath/etc/mersenne.c libtommath/etc/mont.c libtommath/etc/pprime.c libtommath/etc/tune.c libtommath/mtest/logtab.h libtommath/mtest/mpi-config.h libtommath/mtest/mpi-types.h libtommath/mtest/mpi.c libtommath/mtest/mpi.h libtommath/mtest/mtest.c libtommath/tommath.h libtommath/tommath_class.h libtommath/tommath_cutoffs.h libtommath/tommath_private.h libtommath/tommath_superclass.h linenoise/LICENSE linenoise/README.markdown linenoise/example.c linenoise/linenoise.c linenoise/linenoise.h ucd2c/UCD.zip ucd2c/UCD/ArabicShaping.txt ucd2c/UCD/BidiBrackets.txt ucd2c/UCD/BidiCharacterTest.txt ucd2c/UCD/BidiMirroring.txt ucd2c/UCD/BidiTest.txt ucd2c/UCD/Blocks.txt ucd2c/UCD/CJKRadicals.txt ucd2c/UCD/CaseFolding.txt ucd2c/UCD/CompositionExclusions.txt ucd2c/UCD/DerivedAge.txt ucd2c/UCD/DerivedCoreProperties.txt ucd2c/UCD/DerivedNormalizationProps.txt ucd2c/UCD/EastAsianWidth.txt ucd2c/UCD/EmojiSources.txt ucd2c/UCD/EquivalentUnifiedIdeograph.txt ucd2c/UCD/HangulSyllableType.txt ucd2c/UCD/Index.txt ucd2c/UCD/IndicPositionalCategory.txt ucd2c/UCD/IndicSyllabicCategory.txt ucd2c/UCD/Jamo.txt ucd2c/UCD/LineBreak.txt ucd2c/UCD/NameAliases.txt ucd2c/UCD/NamedSequences.txt ucd2c/UCD/NamedSequencesProv.txt ucd2c/UCD/NamesList.txt ucd2c/UCD/NormalizationCorrections.txt ucd2c/UCD/NormalizationTest.txt ucd2c/UCD/NushuSources.txt ucd2c/UCD/PropList.txt ucd2c/UCD/PropertyAliases.txt ucd2c/UCD/PropertyValueAliases.txt ucd2c/UCD/ReadMe.txt ucd2c/UCD/ScriptExtensions.txt ucd2c/UCD/Scripts.txt ucd2c/UCD/SpecialCasing.txt ucd2c/UCD/StandardizedVariants.txt ucd2c/UCD/TangutSources.txt ucd2c/UCD/USourceData.txt ucd2c/UCD/USourceGlyphs.pdf ucd2c/UCD/USourceRSChart.pdf ucd2c/UCD/UnicodeData.txt ucd2c/UCD/VerticalOrientation.txt ucd2c/UCD/auxiliary/GraphemeBreakProperty.txt ucd2c/UCD/auxiliary/GraphemeBreakTest.txt ucd2c/UCD/auxiliary/LineBreakTest.txt ucd2c/UCD/auxiliary/SentenceBreakProperty.txt ucd2c/UCD/auxiliary/SentenceBreakTest.txt ucd2c/UCD/auxiliary/WordBreakProperty.txt ucd2c/UCD/auxiliary/WordBreakTest.txt ucd2c/UCD/emoji/ReadMe.txt ucd2c/UCD/emoji/emoji-data.txt ucd2c/UCD/emoji/emoji-variation-sequences.txt ucd2c/UCD/extracted/DerivedBidiClass.txt ucd2c/UCD/extracted/DerivedBinaryProperties.txt ucd2c/UCD/extracted/DerivedCombiningClass.txt ucd2c/UCD/extracted/DerivedDecompositionType.txt ucd2c/UCD/extracted/DerivedEastAsianWidth.txt ucd2c/UCD/extracted/DerivedGeneralCategory.txt ucd2c/UCD/extracted/DerivedJoiningGroup.txt ucd2c/UCD/extracted/DerivedJoiningType.txt ucd2c/UCD/extracted/DerivedLineBreak.txt ucd2c/UCD/extracted/DerivedName.txt ucd2c/UCD/extracted/DerivedNumericType.txt ucd2c/UCD/extracted/DerivedNumericValues.txt '
diff --git a/update_sources b/update_sources
index 7906425..7920de2 100755
--- a/update_sources
+++ b/update_sources
@@ -8,14 +8,14 @@ echo "$PWD/update_sources"
echo "# sources.mk generated by update_sources" > ${SOURCES_MK}
echo "# sources.sh generated by update_sources" > ${SOURCES_SH}
-KC3_CONFIGURES="$(find ekc3 http httpd ikc3 kc3c kc3s libkc3 libkc3_window libtommath test ucd2c -name configure -or -name update_sources -or -name sources.sh)"
+KC3_CONFIGURES="$(find ekc3 http httpd ikc3 kc3c kc3s libkc3 window libtommath test ucd2c -name configure -or -name update_sources -or -name sources.sh)"
sources KC3_CONFIGURES "$KC3_CONFIGURES"
-KC3_MAKEFILES="$(find ekc3 http httpd ikc3 kc3c kc3s libkc3 libkc3_window libtommath test ucd2c -name Makefile -or -name gen.mk -or -name sources.mk)"
+KC3_MAKEFILES="$(find ekc3 http httpd ikc3 kc3c kc3s libkc3 window libtommath test ucd2c -name Makefile -or -name gen.mk -or -name sources.mk)"
KC3_MAKEFILES="$(echo "$KC3_MAKEFILES" | grep -v 'libtommath/logs/Makefile')"
sources KC3_MAKEFILES "$KC3_MAKEFILES"
-KC3_C_SOURCES="$(find ekc3 http httpd ikc3 kc3c kc3s libkc3 libkc3_window test -name "[a-z]*.c" -or -name "[a-z]*.h" -or -name "[a-z]*.c.in" -or -name "[a-z]*.h.in")"
+KC3_C_SOURCES="$(find ekc3 http httpd ikc3 kc3c kc3s libkc3 window test -name "[a-z]*.c" -or -name "[a-z]*.h" -or -name "[a-z]*.c.in" -or -name "[a-z]*.h.in")"
KC3_C_SOURCES="$(echo "${KC3_C_SOURCES}" | grep -Ev '/config[.]h$')"
KC3_C_SOURCES="$KC3_C_SOURCES
ucd2c/ucd.h
@@ -31,7 +31,7 @@ sources KC3_IMG_SOURCES "$KC3_IMG_SOURCES"
KC3_LIB_SOURCES="$(find lib -name '*.facts' -or -name '*.kc3')"
sources KC3_LIB_SOURCES "$KC3_LIB_SOURCES"
-KC3_OBJC_SOURCES="$(find libkc3_window -name "[a-z]*.m" -or -name "[a-z]*.m.in")"
+KC3_OBJC_SOURCES="$(find window -name "[a-z]*.m" -or -name "[a-z]*.m.in")"
sources KC3_OBJC_SOURCES "$KC3_OBJC_SOURCES"
KC3_TEST_SOURCES="$(ls test/*.facts test/*.rb)