diff --git a/http/http_event.c b/http/http_event.c
index 87b4d3c..93b4055 100644
--- a/http/http_event.c
+++ b/http/http_event.c
@@ -104,9 +104,15 @@ struct event * http_event_new (struct event_base *event_base, s32 fd,
e = list_next(e);
}
tag = tag_new_tuple(3);
+ ev = event_new(event_base, fd, events_s16, http_event_callback, tag);
+ if (! ev) {
+ tag_delete(tag);
+ err_puts("http_event_new: event_new");
+ assert(! "http_event_new: event_new");
+ return NULL;
+ }
tag_init_fn_copy(tag->data.tuple.tag, callback);
tag_init_copy(tag->data.tuple.tag + 2, arg);
- ev = event_new(event_base, fd, events_s16, http_event_callback, tag);
tag_init_ptr(tag->data.tuple.tag + 1, ev);
return ev;
invalid_event_list:
diff --git a/libkc3/array.c b/libkc3/array.c
index d445165..7cd29dc 100644
--- a/libkc3/array.c
+++ b/libkc3/array.c
@@ -364,24 +364,3 @@ s_array * array_init_void (s_array *array)
*array = tmp;
return array;
}
-
-s_str * array_inspect (const s_array *array, s_str *dest)
-{
- sw size;
- s_buf tmp;
- size = buf_inspect_array_size(array);
- if (size < 0) {
- err_puts("array_inspect: buf_inspect_array_size error");
- assert(! "array_inspect: buf_inspect_array_size error");
- return NULL;
- }
- buf_init_alloc(&tmp, size);
- buf_inspect_array(&tmp, array);
- if (tmp.wpos != tmp.size) {
- err_puts("array_inspect: tmp.wpos != tmp.size");
- assert(! "array_inspect: tmp.wpos != tmp.size");
- buf_clean(&tmp);
- return NULL;
- }
- return buf_to_str(&tmp, dest);
-}
diff --git a/libkc3/array.h b/libkc3/array.h
index da620ad..2645649 100644
--- a/libkc3/array.h
+++ b/libkc3/array.h
@@ -27,7 +27,6 @@ s_array * array_init_copy_shallow (s_array *a, const s_array *src);
s_array * array_init_void (s_array *array);
/* Observers */
-s_str * array_inspect (const s_array *array, s_str *dest);
void * array_data (const s_array *a, const uw *address);
s_tag * array_data_tag (const s_tag *a, const s_tag *address,
s_tag *dest);
diff --git a/libkc3/block.c b/libkc3/block.c
index 63be828..e235ef5 100644
--- a/libkc3/block.c
+++ b/libkc3/block.c
@@ -128,24 +128,6 @@ s_block * block_init_from_list (s_block *block,
return block;
}
-s_str * block_inspect (const s_block *x, s_str *dest)
-{
- s_buf buf;
- sw r;
- sw size;
- size = buf_inspect_block_size(x);
- buf_init_alloc(&buf, size);
- if ((r = buf_inspect_block(&buf, x)) < 0)
- goto error;
- assert(r == size);
- if (r != size)
- goto error;
- return buf_to_str(&buf, dest);
- error:
- buf_clean(&buf);
- return NULL;
-}
-
s_block * block_new (uw count)
{
s_block *block;
diff --git a/libkc3/block.h b/libkc3/block.h
index 55a9457..9805e72 100644
--- a/libkc3/block.h
+++ b/libkc3/block.h
@@ -43,6 +43,5 @@ s_block * block_1 (s_block *block, const char *p);
/* Observers */
s_list * block_to_list (const s_block *block, s_list **list);
-s_str * block_inspect (const s_block *x, s_str *dest);
#endif /* LIBKC3_BLOCK_H */
diff --git a/libkc3/bool.c b/libkc3/bool.c
index f409d8c..c2eb791 100644
--- a/libkc3/bool.c
+++ b/libkc3/bool.c
@@ -94,25 +94,3 @@ bool * bool_init_copy (bool *dest, const bool *src)
*dest = *src;
return dest;
}
-
-s_str * bool_inspect (bool *b, s_str *dest)
-{
- sw size;
- s_buf tmp;
- size = buf_inspect_bool_size(b);
- if (size < 0) {
- err_write_1("bool_inspect: error: ");
- err_inspect_u8(b);
- assert(! "bool_inspect: error");
- return NULL;
- }
- buf_init_alloc(&tmp, size);
- buf_inspect_bool(&tmp, b);
- assert(tmp.wpos == tmp.size);
- if (tmp.wpos != tmp.size) {
- buf_clean(&tmp);
- err_write_1("bool_inspect: buf_inspect_bool");
- return NULL;
- }
- return buf_to_str(&tmp, dest);
-}
diff --git a/libkc3/bool.h b/libkc3/bool.h
index c9c65df..39b2ddc 100644
--- a/libkc3/bool.h
+++ b/libkc3/bool.h
@@ -26,7 +26,4 @@ bool * bool_init_cast (bool *b, const s_sym * const *type,
const s_tag *tag);
bool * bool_init_copy (bool *b, const bool *src);
-/* Observers */
-s_str * bool_inspect (bool *b, s_str *dest);
-
#endif /* LIBKC3_BOOL_H */
diff --git a/libkc3/buf.c b/libkc3/buf.c
index 031fc32..5a26cf7 100644
--- a/libkc3/buf.c
+++ b/libkc3/buf.c
@@ -1262,7 +1262,7 @@ sw buf_write_str (s_buf *buf, const s_str *src)
result += r;
if (c == '\n') {
i = 0;
- while (i < buf->base_column) {
+ while (i < buf->pretty.base_column) {
if ((r = buf_write_u8(buf, ' ')) < 0)
return r;
result += r;
diff --git a/libkc3/buf.h b/libkc3/buf.h
index baaa363..a0a4a58 100644
--- a/libkc3/buf.h
+++ b/libkc3/buf.h
@@ -102,6 +102,7 @@ sw buf_u8_to_hex_size (const u8 *x);
sw buf_vf (s_buf *buf, const char *fmt, va_list ap);
sw buf_write (s_buf *buf, const void *data, uw len);
sw buf_write_1 (s_buf *buf, const char *p);
+sw buf_write_1_size (s_pretty *pretty, const char *p);
sw buf_write_character_utf8 (s_buf *buf, character c);
sw buf_write_f32 (s_buf *buf, f32 x);
sw buf_write_f64 (s_buf *buf, f64 x);
@@ -111,6 +112,7 @@ sw buf_write_s32 (s_buf *buf, s32 i);
sw buf_write_s64 (s_buf *buf, s64 i);
sw buf_write_str_memcpy (s_buf *buf, const s_str *src);
sw buf_write_str (s_buf *buf, const s_str *src);
+sw buf_write_str_size (s_pretty *pretty, const s_str *src);
sw buf_write_u8 (s_buf *buf, u8 i);
sw buf_write_u16 (s_buf *buf, u16 i);
sw buf_write_u32 (s_buf *buf, u32 i);
diff --git a/libkc3/buf_inspect.c b/libkc3/buf_inspect.c
index 512abc7..776a170 100644
--- a/libkc3/buf_inspect.c
+++ b/libkc3/buf_inspect.c
@@ -30,6 +30,7 @@
#include "io.h"
#include "list.h"
#include "operator.h"
+#include "pretty.h"
#include "special_operator.h"
#include "str.h"
#include "tag.h"
@@ -244,7 +245,7 @@ sw buf_inspect_array_size (const s_array *array)
sw buf_inspect_block (s_buf *buf, const s_block *block)
{
- uw base_column;
+ s_pretty pretty_save;
u64 i = 0;
sw r;
sw result = 0;
@@ -254,8 +255,8 @@ sw buf_inspect_block (s_buf *buf, const s_block *block)
else
return buf_write_1(buf, "do end");
}
- base_column = buf->base_column;
- buf->base_column += 2;
+ pretty_save = buf->pretty;
+ pretty_indent(&buf->pretty, 2);
if (block->short_form) {
if ((r = buf_write_1(buf, "{ ")) < 0)
return r;
@@ -283,7 +284,7 @@ sw buf_inspect_block (s_buf *buf, const s_block *block)
if ((r = buf_inspect_tag(buf, block->tag + i)) < 0)
return r;
result += r;
- buf->base_column = base_column;
+ buf->pretty = pretty_save;
if (block->short_form) {
if ((r = buf_write_1(buf, " }")) < 0)
return r;
@@ -308,7 +309,7 @@ sw buf_inspect_block_inner (s_buf *buf, const s_block *block)
return r;
}
else {
- if ((r = buf_write_1(buf, "\n ")) < 0)
+ if ((r = buf_write_1(buf, "\n")) < 0)
return r;
}
result += r;
@@ -321,7 +322,7 @@ sw buf_inspect_block_inner (s_buf *buf, const s_block *block)
return r;
}
else {
- if ((r = buf_write_1(buf, "\n ")) < 0)
+ if ((r = buf_write_1(buf, "\n")) < 0)
return r;
}
result += r;
@@ -342,7 +343,7 @@ sw buf_inspect_block_size (const s_block *block)
result = strlen("do end");
result = strlen("do");
while (i < block->count) {
- result += strlen("\n ");
+ result += buf_write_1_size("\n");
if ((r = buf_inspect_tag_size(block->tag + i)) < 0)
return r;
result += r;
diff --git a/libkc3/buf_inspect.h b/libkc3/buf_inspect.h
index f36f310..bfc575b 100644
--- a/libkc3/buf_inspect.h
+++ b/libkc3/buf_inspect.h
@@ -36,11 +36,13 @@ extern const s_sym *g_buf_inspect_type;
#define BUF_INSPECT_S_BASE_PROTOTYPES(bits, base) \
sw buf_inspect_s ## bits ## _ ## base (s_buf *buf, \
const s ## bits *s); \
- sw buf_inspect_s ## bits ## _ ## base ## _size (const s ## bits *s)
+ sw buf_inspect_s ## bits ## _ ## base ## _size (s_pretty *pretty, \
+ const s ## bits *s)
#define BUF_INSPECT_S_PROTOTYPES(bits) \
sw buf_inspect_s ## bits (s_buf *buf, const s ## bits *s); \
- sw buf_inspect_s ## bits ## _size (const s ## bits *s); \
+ sw buf_inspect_s ## bits ## _size (s_pretty *pretty, \
+ const s ## bits *s); \
BUF_INSPECT_S_BASE_PROTOTYPES(bits, binary); \
BUF_INSPECT_S_BASE_PROTOTYPES(bits, hexadecimal); \
BUF_INSPECT_S_BASE_PROTOTYPES(bits, octal)
@@ -49,105 +51,116 @@ extern const s_sym *g_buf_inspect_type;
sw buf_inspect_u ## bits ## _ ## base (s_buf *buf, \
const u ## bits *s); \
sw buf_inspect_u ## bits ## _ ## base ## _digits (const u##bits *s); \
- sw buf_inspect_u ## bits ## _ ## base ## _size (const u ## bits *s)
+ sw buf_inspect_u ## bits ## _ ## base ## _size (s_pretty *pretty, \
+ const u ## bits *s)
#define BUF_INSPECT_U_PROTOTYPES(bits) \
sw buf_inspect_u ## bits (s_buf *buf, const u ## bits *u); \
sw buf_inspect_u ## bits ## _digits (const u ## bits *u); \
- sw buf_inspect_u ## bits ## _size (const u ## bits *u); \
+ sw buf_inspect_u ## bits ## _size (s_pretty *pretty, \
+ const u ## bits *u); \
sw buf_inspect_u ## bits ## _base (s_buf *buf, const s_str *base, \
const u ## bits *u); \
sw buf_inspect_u ## bits ## _base_digits (const s_str *base, \
const u ## bits *u); \
- sw buf_inspect_u ## bits ## _base_size (const s_str *base, \
+ sw buf_inspect_u ## bits ## _base_size (s_pretty *pretty, \
+ const s_str *base, \
const u ## bits *u); \
BUF_INSPECT_U_BASE_PROTOTYPES(bits, binary); \
BUF_INSPECT_U_BASE_PROTOTYPES(bits, hexadecimal); \
BUF_INSPECT_U_BASE_PROTOTYPES(bits, octal)
sw buf_inspect_array (s_buf *buf, const s_array *a);
-sw buf_inspect_array_size (const s_array *a);
+sw buf_inspect_array_size (s_pretty *pretty, const s_array *a);
sw buf_inspect_block (s_buf *buf, const s_block *b);
sw buf_inspect_block_inner (s_buf *buf, const s_block *b);
-sw buf_inspect_block_inner_size (const s_block *b);
-sw buf_inspect_block_size (const s_block *b);
+sw buf_inspect_block_inner_size (s_pretty *pretty, const s_block *b);
+sw buf_inspect_block_size (s_pretty *pretty, const s_block *b);
sw buf_inspect_bool (s_buf *buf, const bool *b);
-sw buf_inspect_bool_size (const bool *b);
+sw buf_inspect_bool_size (s_pretty *pretty, const bool *b);
sw buf_inspect_call (s_buf *buf, const s_call *call);
sw buf_inspect_call_access (s_buf *buf, const s_call *call);
-sw buf_inspect_call_access_size (const s_call *call);
+sw buf_inspect_call_access_size (s_pretty *pretty, const s_call *call);
sw buf_inspect_call_args (s_buf *buf, const s_list *args);
sw buf_inspect_call_brackets (s_buf *buf, const s_call *call);
sw buf_inspect_call_if_then_else (s_buf *buf, const s_call *call);
-sw buf_inspect_call_if_then_else_size (const s_call *call);
+sw buf_inspect_call_if_then_else_size (s_pretty *pretty,
+ const s_call *call);
sw buf_inspect_call_op (s_buf *buf, const s_call *call,
s8 op_precedence);
-sw buf_inspect_call_op_size (const s_call *call, s8 op_precedence);
+sw buf_inspect_call_op_size (s_pretty *pretty, const s_call *call,
+ s8 op_precedence);
sw buf_inspect_call_op_unary (s_buf *buf, const s_call *call);
-sw buf_inspect_call_op_unary_size (const s_call *call);
+sw buf_inspect_call_op_unary_size (s_pretty *pretty,
+ const s_call *call);
sw buf_inspect_call_paren (s_buf *buf, const s_call *call);
-sw buf_inspect_call_paren_size (const s_call *call);
-sw buf_inspect_call_size (const s_call *call);
+sw buf_inspect_call_paren_size (s_pretty *pretty, const s_call *call);
+sw buf_inspect_call_size (s_pretty *pretty, const s_call *call);
sw buf_inspect_call_special_operator (s_buf *buf, const s_call *call);
-sw buf_inspect_call_special_operator_size (const s_call *call);
+sw buf_inspect_call_special_operator_size (s_pretty *pretty,
+ const s_call *call);
sw buf_inspect_call_str (s_buf *buf, const s_call *call);
-sw buf_inspect_call_str_size (const s_call *call);
+sw buf_inspect_call_str_size (s_pretty *pretty, const s_call *call);
sw buf_inspect_cast (s_buf *buf, const s_call *call);
-sw buf_inspect_cast_size (const s_call *call);
+sw buf_inspect_cast_size (s_pretty *pretty, const s_call *call);
sw buf_inspect_cfn (s_buf *buf, const s_cfn *cfn);
-sw buf_inspect_cfn_size (const s_cfn *cfn);
+sw buf_inspect_cfn_size (s_pretty *pretty, const s_cfn *cfn);
sw buf_inspect_character (s_buf *buf, const character *c);
-sw buf_inspect_character_size (const character *c);
+sw buf_inspect_character_size (s_pretty *pretty, const character *c);
sw buf_inspect_complex (s_buf *buf, const s_complex *c);
-sw buf_inspect_complex_size (const s_complex *c);
+sw buf_inspect_complex_size (s_pretty *pretty, const s_complex *c);
sw buf_inspect_cow (s_buf *buf, const s_cow *cow);
-sw buf_inspect_cow_size (const s_cow *cow);
+sw buf_inspect_cow_size (s_pretty *pretty, const s_cow *cow);
sw buf_inspect_error_handler (s_buf *buf,
const s_error_handler *error_handler);
sw buf_inspect_f32 (s_buf *buf, const f32 *x);
-sw buf_inspect_f32_size (const f32 *x);
+sw buf_inspect_f32_size (s_pretty *pretty, const f32 *x);
sw buf_inspect_f64 (s_buf *buf, const f64 *x);
-sw buf_inspect_f64_size (const f64 *x);
+sw buf_inspect_f64_size (s_pretty *pretty, const f64 *x);
sw buf_inspect_f128 (s_buf *buf, const f128 *x);
-sw buf_inspect_f128_size (const f128 *x);
+sw buf_inspect_f128_size (s_pretty *pretty, const f128 *x);
sw buf_inspect_fact (s_buf *buf, const s_fact *fact);
-sw buf_inspect_fact_size (const s_fact *fact);
+sw buf_inspect_fact_size (s_pretty *pretty, const s_fact *fact);
sw buf_inspect_facts_spec (s_buf *buf, p_facts_spec spec);
sw buf_inspect_fn (s_buf *buf, const s_fn *fn);
sw buf_inspect_fn_clause (s_buf *buf, const s_fn_clause *clause);
-sw buf_inspect_fn_clause_size (const s_fn_clause *clause);
+sw buf_inspect_fn_clause_size (s_pretty *pretty,
+ const s_fn_clause *clause);
sw buf_inspect_fn_pattern (s_buf *buf, const s_list *pattern);
-sw buf_inspect_fn_pattern_size (const s_list *pattern);
-sw buf_inspect_fn_size (const s_fn *fn);
+sw buf_inspect_fn_pattern_size (s_pretty *pretty,
+ const s_list *pattern);
+sw buf_inspect_fn_size (s_pretty *pretty, const s_fn *fn);
sw buf_inspect_ident (s_buf *buf, const s_ident *ident);
-sw buf_inspect_ident_size (const s_ident *ident);
+sw buf_inspect_ident_size (s_pretty *pretty, const s_ident *ident);
sw buf_inspect_ident_sym (s_buf *buf, const s_sym *sym);
sw buf_inspect_ident_sym_reserved (s_buf *buf, const s_sym *sym);
-sw buf_inspect_ident_sym_reserved_size (const s_sym *sym);
-sw buf_inspect_ident_sym_size (const s_sym *sym);
+sw buf_inspect_ident_sym_reserved_size (s_pretty *pretty,
+ const s_sym *sym);
+sw buf_inspect_ident_sym_size (s_pretty *pretty, const s_sym *sym);
sw buf_inspect_integer (s_buf *buf, const s_integer *x);
-sw buf_inspect_integer_size (const s_integer *x);
+sw buf_inspect_integer_size (s_pretty *pretty, const s_integer *x);
sw buf_inspect_list (s_buf *buf, const s_list * const *list);
sw buf_inspect_list_paren (s_buf *buf, const s_list * const *list);
-sw buf_inspect_list_size (const s_list * const *list);
+sw buf_inspect_list_size (s_pretty *pretty, const s_list * const *list);
sw buf_inspect_list_tag (s_buf *buf, const s_tag *tag);
-sw buf_inspect_list_tag_size (const s_tag *tag);
+sw buf_inspect_list_tag_size (s_pretty *pretty, const s_tag *tag);
sw buf_inspect_map (s_buf *buf, const s_map *map);
-sw buf_inspect_map_size (const s_map *map);
+sw buf_inspect_map_size (s_pretty *pretty, const s_map *map);
sw buf_inspect_paren_sym (s_buf *buf, const s_sym *sym);
-sw buf_inspect_paren_sym_size (const s_sym *sym);
+sw buf_inspect_paren_sym_size (s_pretty *pretty, const s_sym *sym);
sw buf_inspect_pointer (s_buf *buf, const void *ptr);
-sw buf_inspect_pointer_size (const void *ptr);
+sw buf_inspect_pointer_size (s_pretty *pretty, const void *ptr);
sw buf_inspect_ptag (s_buf *buf, const p_tag *ptag);
-sw buf_inspect_ptag_size (const p_tag *ptag);
+sw buf_inspect_ptag_size (s_pretty *pretty, const p_tag *ptag);
sw buf_inspect_ptr (s_buf *buf, const u_ptr_w *ptr);
sw buf_inspect_ptr_free (s_buf *buf, const u_ptr_w *ptr_free);
-sw buf_inspect_ptr_free_size (const u_ptr_w *ptr_free);
-sw buf_inspect_ptr_size (const u_ptr_w *ptr);
+sw buf_inspect_ptr_free_size (s_pretty *pretty,
+ const u_ptr_w *ptr_free);
+sw buf_inspect_ptr_size (s_pretty *pretty, const u_ptr_w *ptr);
sw buf_inspect_quote (s_buf *buf, const s_quote *quote);
-sw buf_inspect_quote_size (const s_quote *quote);
+sw buf_inspect_quote_size (s_pretty *pretty, const s_quote *quote);
sw buf_inspect_ratio (s_buf *buf, const s_ratio *x);
-sw buf_inspect_ratio_size (const s_ratio *x);
+sw buf_inspect_ratio_size (s_pretty *pretty, const s_ratio *x);
BUF_INSPECT_S_PROTOTYPES(8);
BUF_INSPECT_S_PROTOTYPES(16);
BUF_INSPECT_S_PROTOTYPES(32);
@@ -155,41 +168,44 @@ BUF_INSPECT_S_PROTOTYPES(64);
BUF_INSPECT_S_PROTOTYPES(w);
sw buf_inspect_str (s_buf *buf, const s_str *str);
sw buf_inspect_str_byte (s_buf *buf, const u8 *byte);
-sw buf_inspect_str_byte_size (const u8 *byte);
+sw buf_inspect_str_byte_size (s_pretty *pretty, const u8 *byte);
sw buf_inspect_str_character (s_buf *buf, const character *c);
-sw buf_inspect_str_character_size (const character *c);
+sw buf_inspect_str_character_size (s_pretty *pretty,
+ const character *c);
sw buf_inspect_str_eval (s_buf *buf, const s_list *list);
-sw buf_inspect_str_eval_size (const s_list *list);
+sw buf_inspect_str_eval_size (s_pretty *pretty, const s_list *list);
sw buf_inspect_str (s_buf *buf, const s_str *str);
sw buf_inspect_str_reserved (s_buf *buf, const s_str *str);
-sw buf_inspect_str_reserved_size (const s_str *str);
-sw buf_inspect_str_size (const s_str *str);
+sw buf_inspect_str_reserved_size (s_pretty *pretty, const s_str *str);
+sw buf_inspect_str_size (s_pretty *pretty, const s_str *str);
sw buf_inspect_struct (s_buf *buf, const s_struct *s);
-sw buf_inspect_struct_size (const s_struct *s);
+sw buf_inspect_struct_size (s_pretty *pretty, const s_struct *s);
sw buf_inspect_struct_type (s_buf *buf, const s_struct_type *st);
-sw buf_inspect_struct_type_size (const s_struct_type *st);
+sw buf_inspect_struct_type_size (s_pretty *pretty,
+ const s_struct_type *st);
sw buf_inspect_sym (s_buf *buf, const s_sym * const *sym);
sw buf_inspect_sym_reserved (s_buf *buf, const s_sym *sym);
-sw buf_inspect_sym_reserved_size (const s_sym *sym);
-sw buf_inspect_sym_size (const s_sym * const *sym);
+sw buf_inspect_sym_reserved_size (s_pretty *pretty, const s_sym *sym);
+sw buf_inspect_sym_size (s_pretty *pretty, const s_sym * const *sym);
sw buf_inspect_tag (s_buf *buf, const s_tag *tag);
-sw buf_inspect_tag_size (const s_tag *tag);
+sw buf_inspect_tag_size (s_pretty *pretty, const s_tag *tag);
sw buf_inspect_tag_type (s_buf *buf, e_tag_type type);
-sw buf_inspect_tag_type_size (e_tag_type type);
+sw buf_inspect_tag_type_size (s_pretty *pretty, e_tag_type type);
sw buf_inspect_time (s_buf *buf, const s_time *time);
-sw buf_inspect_time_size (const s_time *time);
+sw buf_inspect_time_size (s_pretty *pretty, const s_time *time);
sw buf_inspect_tuple (s_buf *buf, const s_tuple *tuple);
-sw buf_inspect_tuple_size (const s_tuple *tuple);
+sw buf_inspect_tuple_size (s_pretty *pretty, const s_tuple *tuple);
BUF_INSPECT_U_PROTOTYPES(8);
BUF_INSPECT_U_PROTOTYPES(16);
BUF_INSPECT_U_PROTOTYPES(32);
BUF_INSPECT_U_PROTOTYPES(64);
sw buf_inspect_unquote (s_buf *buf, const s_unquote *unquote);
-sw buf_inspect_unquote_size (const s_unquote *unquote);
+sw buf_inspect_unquote_size (s_pretty *pretty,
+ const s_unquote *unquote);
BUF_INSPECT_U_PROTOTYPES(w);
sw buf_inspect_var (s_buf *buf, const s_tag *var);
-sw buf_inspect_var_size (const s_tag *var);
+sw buf_inspect_var_size (s_pretty *pretty, const s_tag *var);
sw buf_inspect_void (s_buf *buf, const void *_);
-sw buf_inspect_void_size (const void *_);
+sw buf_inspect_void_size (s_pretty *pretty, const void *_);
#endif /* LIBKC3_BUF_INSPECT_H */
diff --git a/libkc3/buf_inspect_s.h.in b/libkc3/buf_inspect_s.h.in
index 0187936..ac4e013 100644
--- a/libkc3/buf_inspect_s.h.in
+++ b/libkc3/buf_inspect_s.h.in
@@ -18,6 +18,6 @@
#include "buf_inspect_s_bits$_decimal.h"
sw buf_inspect_s_bits$ (s_buf *buf, const s_bits$ *s);
-sw buf_inspect_s_bits$_size (const s_bits$ *s);
+sw buf_inspect_s_bits$_size (s_pretty *pretty, const s_bits$ *s);
#endif /* LIBKC3_BUF_INSPECT_S_BITS$_H */
diff --git a/libkc3/buf_inspect_s16.h b/libkc3/buf_inspect_s16.h
index eee2b8b..fd1d50b 100644
--- a/libkc3/buf_inspect_s16.h
+++ b/libkc3/buf_inspect_s16.h
@@ -18,6 +18,6 @@
#include "buf_inspect_s16_decimal.h"
sw buf_inspect_s16 (s_buf *buf, const s16 *s);
-sw buf_inspect_s16_size (const s16 *s);
+sw buf_inspect_s16_size (s_pretty *pretty, const s16 *s);
#endif /* LIBKC3_BUF_INSPECT_S16_H */
diff --git a/libkc3/buf_inspect_s32.h b/libkc3/buf_inspect_s32.h
index 22ca0dc..d693f15 100644
--- a/libkc3/buf_inspect_s32.h
+++ b/libkc3/buf_inspect_s32.h
@@ -18,6 +18,6 @@
#include "buf_inspect_s32_decimal.h"
sw buf_inspect_s32 (s_buf *buf, const s32 *s);
-sw buf_inspect_s32_size (const s32 *s);
+sw buf_inspect_s32_size (s_pretty *pretty, const s32 *s);
#endif /* LIBKC3_BUF_INSPECT_S32_H */
diff --git a/libkc3/buf_inspect_s64.h b/libkc3/buf_inspect_s64.h
index dacf161..d52d7ba 100644
--- a/libkc3/buf_inspect_s64.h
+++ b/libkc3/buf_inspect_s64.h
@@ -18,6 +18,6 @@
#include "buf_inspect_s64_decimal.h"
sw buf_inspect_s64 (s_buf *buf, const s64 *s);
-sw buf_inspect_s64_size (const s64 *s);
+sw buf_inspect_s64_size (s_pretty *pretty, const s64 *s);
#endif /* LIBKC3_BUF_INSPECT_S64_H */
diff --git a/libkc3/buf_inspect_s8.h b/libkc3/buf_inspect_s8.h
index ece4598..abc1485 100644
--- a/libkc3/buf_inspect_s8.h
+++ b/libkc3/buf_inspect_s8.h
@@ -18,6 +18,6 @@
#include "buf_inspect_s8_decimal.h"
sw buf_inspect_s8 (s_buf *buf, const s8 *s);
-sw buf_inspect_s8_size (const s8 *s);
+sw buf_inspect_s8_size (s_pretty *pretty, const s8 *s);
#endif /* LIBKC3_BUF_INSPECT_S8_H */
diff --git a/libkc3/buf_inspect_sw.h b/libkc3/buf_inspect_sw.h
index 638499b..0306936 100644
--- a/libkc3/buf_inspect_sw.h
+++ b/libkc3/buf_inspect_sw.h
@@ -18,6 +18,6 @@
#include "buf_inspect_sw_decimal.h"
sw buf_inspect_sw (s_buf *buf, const sw *s);
-sw buf_inspect_sw_size (const sw *s);
+sw buf_inspect_sw_size (s_pretty *pretty, const sw *s);
#endif /* LIBKC3_BUF_INSPECT_SW_H */
diff --git a/libkc3/buf_inspect_u.h.in b/libkc3/buf_inspect_u.h.in
index a61c1fe..5041f01 100644
--- a/libkc3/buf_inspect_u.h.in
+++ b/libkc3/buf_inspect_u.h.in
@@ -21,8 +21,8 @@ sw buf_inspect_u_bits$ (s_buf *buf, const u_bits$ *u);
sw buf_inspect_u_bits$_base (s_buf *buf,
const s_str *base,
const u_bits$ *u);
-sw buf_inspect_u_bits$_base_size (const s_str *base,
+sw buf_inspect_u_bits$_base_size (s_pretty *pretty, const s_str *base,
const u_bits$ *u);
-sw buf_inspect_u_bits$_size (const u_bits$ *u);
+sw buf_inspect_u_bits$_size (s_pretty *pretty, const u_bits$ *u);
#endif /* LIBKC3_BUF_INSPECT_U_BITS$_H */
diff --git a/libkc3/buf_inspect_u16.h b/libkc3/buf_inspect_u16.h
index 68f5728..ac62f8e 100644
--- a/libkc3/buf_inspect_u16.h
+++ b/libkc3/buf_inspect_u16.h
@@ -21,8 +21,8 @@ sw buf_inspect_u16 (s_buf *buf, const u16 *u);
sw buf_inspect_u16_base (s_buf *buf,
const s_str *base,
const u16 *u);
-sw buf_inspect_u16_base_size (const s_str *base,
+sw buf_inspect_u16_base_size (s_pretty *pretty, const s_str *base,
const u16 *u);
-sw buf_inspect_u16_size (const u16 *u);
+sw buf_inspect_u16_size (s_pretty *pretty, const u16 *u);
#endif /* LIBKC3_BUF_INSPECT_U16_H */
diff --git a/libkc3/buf_inspect_u32.h b/libkc3/buf_inspect_u32.h
index b640b78..8231a9e 100644
--- a/libkc3/buf_inspect_u32.h
+++ b/libkc3/buf_inspect_u32.h
@@ -21,8 +21,8 @@ sw buf_inspect_u32 (s_buf *buf, const u32 *u);
sw buf_inspect_u32_base (s_buf *buf,
const s_str *base,
const u32 *u);
-sw buf_inspect_u32_base_size (const s_str *base,
+sw buf_inspect_u32_base_size (s_pretty *pretty, const s_str *base,
const u32 *u);
-sw buf_inspect_u32_size (const u32 *u);
+sw buf_inspect_u32_size (s_pretty *pretty, const u32 *u);
#endif /* LIBKC3_BUF_INSPECT_U32_H */
diff --git a/libkc3/buf_inspect_u64.h b/libkc3/buf_inspect_u64.h
index 689717a..6322e8e 100644
--- a/libkc3/buf_inspect_u64.h
+++ b/libkc3/buf_inspect_u64.h
@@ -21,8 +21,8 @@ sw buf_inspect_u64 (s_buf *buf, const u64 *u);
sw buf_inspect_u64_base (s_buf *buf,
const s_str *base,
const u64 *u);
-sw buf_inspect_u64_base_size (const s_str *base,
+sw buf_inspect_u64_base_size (s_pretty *pretty, const s_str *base,
const u64 *u);
-sw buf_inspect_u64_size (const u64 *u);
+sw buf_inspect_u64_size (s_pretty *pretty, const u64 *u);
#endif /* LIBKC3_BUF_INSPECT_U64_H */
diff --git a/libkc3/buf_inspect_u8.h b/libkc3/buf_inspect_u8.h
index 5b1f336..fb3a787 100644
--- a/libkc3/buf_inspect_u8.h
+++ b/libkc3/buf_inspect_u8.h
@@ -21,8 +21,8 @@ sw buf_inspect_u8 (s_buf *buf, const u8 *u);
sw buf_inspect_u8_base (s_buf *buf,
const s_str *base,
const u8 *u);
-sw buf_inspect_u8_base_size (const s_str *base,
+sw buf_inspect_u8_base_size (s_pretty *pretty, const s_str *base,
const u8 *u);
-sw buf_inspect_u8_size (const u8 *u);
+sw buf_inspect_u8_size (s_pretty *pretty, const u8 *u);
#endif /* LIBKC3_BUF_INSPECT_U8_H */
diff --git a/libkc3/buf_inspect_uw.h b/libkc3/buf_inspect_uw.h
index f3d6534..e047e32 100644
--- a/libkc3/buf_inspect_uw.h
+++ b/libkc3/buf_inspect_uw.h
@@ -21,8 +21,8 @@ sw buf_inspect_uw (s_buf *buf, const uw *u);
sw buf_inspect_uw_base (s_buf *buf,
const s_str *base,
const uw *u);
-sw buf_inspect_uw_base_size (const s_str *base,
+sw buf_inspect_uw_base_size (s_pretty *pretty, const s_str *base,
const uw *u);
-sw buf_inspect_uw_size (const uw *u);
+sw buf_inspect_uw_size (s_pretty *pretty, const uw *u);
#endif /* LIBKC3_BUF_INSPECT_UW_H */
diff --git a/libkc3/inspect.c b/libkc3/inspect.c
index d714bb6..c46d9ee 100644
--- a/libkc3/inspect.c
+++ b/libkc3/inspect.c
@@ -15,6 +15,75 @@
#include "buf_inspect.h"
#include "inspect.h"
+s_str * inspect_array (const s_array *array, s_str *dest)
+{
+ s_pretty pretty = {0};
+ sw size;
+ s_buf tmp;
+ size = buf_inspect_array_size(&pretty, array);
+ if (size < 0) {
+ err_puts("inspect_array: buf_inspect_array_size error");
+ assert(! "inspect_array: buf_inspect_array_size error");
+ return NULL;
+ }
+ buf_init_alloc(&tmp, size);
+ buf_inspect_array(&tmp, array);
+ if (tmp.wpos != tmp.size) {
+ err_puts("inspect_array: tmp.wpos != tmp.size");
+ assert(! "inspect_array: tmp.wpos != tmp.size");
+ buf_clean(&tmp);
+ return NULL;
+ }
+ return buf_to_str(&tmp, dest);
+}
+
+s_str * inspect_block (const s_block *x, s_str *dest)
+{
+ s_buf buf;
+ s_pretty pretty = {0};
+ sw r;
+ sw size;
+ size = buf_inspect_block_size(&pretty, x);
+ if (size < 0) {
+ err_puts("inspect_block: buf_inspect_block_size error");
+ assert(! "inspect_block: buf_inspect_block_size error");
+ return NULL;
+ }
+ if (! buf_init_alloc(&buf, size))
+ return NULL;
+ if ((r = buf_inspect_block(&buf, x)) < 0)
+ goto error;
+ assert(r == size);
+ if (r != size)
+ goto error;
+ return buf_to_str(&buf, dest);
+ error:
+ buf_clean(&buf);
+ return NULL;
+}
+
+s_str * inspect_bool (bool *b, s_str *dest)
+{
+ sw size;
+ s_buf tmp;
+ size = buf_inspect_bool_size(b);
+ if (size < 0) {
+ err_write_1("inspect_bool: error: ");
+ err_inspect_u8(b);
+ assert(! "inspect_bool: error");
+ return NULL;
+ }
+ buf_init_alloc(&tmp, size);
+ buf_inspect_bool(&tmp, b);
+ assert(tmp.wpos == tmp.size);
+ if (tmp.wpos != tmp.size) {
+ buf_clean(&tmp);
+ err_write_1("inspect_bool: buf_inspect_bool");
+ return NULL;
+ }
+ return buf_to_str(&tmp, dest);
+}
+
s_str * inspect_sym (const s_sym *sym, s_str *dest)
{
sw size;
diff --git a/libkc3/inspect.h b/libkc3/inspect.h
index 506aa88..78b54db 100644
--- a/libkc3/inspect.h
+++ b/libkc3/inspect.h
@@ -21,6 +21,9 @@
#include "types.h"
+s_str * inspect_array (const s_array *array, s_str *dest);
+s_str * inspect_block (const s_block *block, s_str *dest);
+s_str * inspect_bool (bool *b, s_str *dest);
s_str * inspect_sym (const s_sym *sym, s_str *dest);
s_str * inspect_tag (const s_tag *tag, s_str *dest);
diff --git a/libkc3/pretty.c b/libkc3/pretty.c
new file mode 100644
index 0000000..337130c
--- /dev/null
+++ b/libkc3/pretty.c
@@ -0,0 +1,22 @@
+/* kc3
+ * Copyright 2022,2023,2024 kmx.io <contact@kmx.io>
+ *
+ * Permission is hereby granted to use this software granted the above
+ * copyright notice and this permission paragraph are included in all
+ * copies and substantial portions of this software.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS-IS" WITHOUT ANY GUARANTEE OF
+ * PURPOSE AND PERFORMANCE. IN NO EVENT WHATSOEVER SHALL THE
+ * AUTHOR BE CONSIDERED LIABLE FOR THE USE AND PERFORMANCE OF
+ * THIS SOFTWARE.
+ */
+#include "pretty.h"
+
+/* Operators. */
+s_pretty * pretty_indent (s_pretty *pretty, sw indent)
+{
+ if ((sw) pretty->base_column + indent < 0)
+ return NULL;
+ pretty->base_column += indent;
+ return pretty;
+}
diff --git a/libkc3/pretty.h b/libkc3/pretty.h
new file mode 100644
index 0000000..d701585
--- /dev/null
+++ b/libkc3/pretty.h
@@ -0,0 +1,27 @@
+/* kc3
+ * Copyright 2022,2023,2024 kmx.io <contact@kmx.io>
+ *
+ * Permission is hereby granted to use this software granted the above
+ * copyright notice and this permission paragraph are included in all
+ * copies and substantial portions of this software.
+ *
+ * THIS SOFTWARE IS PROVIDED "AS-IS" WITHOUT ANY GUARANTEE OF
+ * PURPOSE AND PERFORMANCE. IN NO EVENT WHATSOEVER SHALL THE
+ * AUTHOR BE CONSIDERED LIABLE FOR THE USE AND PERFORMANCE OF
+ * THIS SOFTWARE.
+ */
+/**
+ * @file pretty.h
+ * @brief Pretty printer
+ *
+ * Pretty printer functions.
+ */
+#ifndef LIBKC3_PRETTY_H
+#define LIBKC3_PRETTY_H
+
+#include "types.h"
+
+/* Operators. */
+s_pretty * pretty_indent (s_pretty *pretty, sw indent);
+
+#endif /* LIBKC3_LIST_H */
diff --git a/libkc3/sources.mk b/libkc3/sources.mk
index 6322548..9ded6b9 100644
--- a/libkc3/sources.mk
+++ b/libkc3/sources.mk
@@ -124,6 +124,7 @@ HEADERS = \
"operator.h" \
"pcomplex.h" \
"pcow.h" \
+ "pretty.h" \
"ptag.h" \
"ptr.h" \
"ptr_free.h" \
@@ -290,6 +291,7 @@ SOURCES = \
"operator.c" \
"pcomplex.c" \
"pcow.c" \
+ "pretty.c" \
"ptag.c" \
"ptr.c" \
"ptr_free.c" \
@@ -565,6 +567,7 @@ LO_SOURCES = \
"operator.c" \
"pcomplex.c" \
"pcow.c" \
+ "pretty.c" \
"ptag.c" \
"ptr.c" \
"ptr_free.c" \
diff --git a/libkc3/sources.sh b/libkc3/sources.sh
index 80fb705..89d6a8a 100644
--- a/libkc3/sources.sh
+++ b/libkc3/sources.sh
@@ -1,4 +1,4 @@
# sources.sh generated by update_sources
-HEADERS='abs.h alist.h alloc.h arg.h array.h assert.h binding.h block.h bool.h buf.h buf_fd.h buf_file.h buf_getc.h buf_getchar.h buf_inspect.h buf_inspect_s16.h buf_inspect_s16_binary.h buf_inspect_s16_decimal.h buf_inspect_s16_hexadecimal.h buf_inspect_s16_octal.h buf_inspect_s32.h buf_inspect_s32_binary.h buf_inspect_s32_decimal.h buf_inspect_s32_hexadecimal.h buf_inspect_s32_octal.h buf_inspect_s64.h buf_inspect_s64_binary.h buf_inspect_s64_decimal.h buf_inspect_s64_hexadecimal.h buf_inspect_s64_octal.h buf_inspect_s8.h buf_inspect_s8_binary.h buf_inspect_s8_decimal.h buf_inspect_s8_hexadecimal.h buf_inspect_s8_octal.h buf_inspect_sw.h buf_inspect_sw_binary.h buf_inspect_sw_decimal.h buf_inspect_sw_hexadecimal.h buf_inspect_sw_octal.h buf_inspect_u16.h buf_inspect_u16_binary.h buf_inspect_u16_decimal.h buf_inspect_u16_hexadecimal.h buf_inspect_u16_octal.h buf_inspect_u32.h buf_inspect_u32_binary.h buf_inspect_u32_decimal.h buf_inspect_u32_hexadecimal.h buf_inspect_u32_octal.h buf_inspect_u64.h buf_inspect_u64_binary.h buf_inspect_u64_decimal.h buf_inspect_u64_hexadecimal.h buf_inspect_u64_octal.h buf_inspect_u8.h buf_inspect_u8_binary.h buf_inspect_u8_decimal.h buf_inspect_u8_hexadecimal.h buf_inspect_u8_octal.h buf_inspect_uw.h buf_inspect_uw_binary.h buf_inspect_uw_decimal.h buf_inspect_uw_hexadecimal.h buf_inspect_uw_octal.h buf_parse.h buf_parse_s16.h buf_parse_s32.h buf_parse_s64.h buf_parse_s8.h buf_parse_sw.h buf_parse_u16.h buf_parse_u32.h buf_parse_u64.h buf_parse_u8.h buf_parse_uw.h buf_rw.h buf_save.h call.h cast.h ceiling.h cfn.h character.h compare.h complex.h cow.h data.h env.h error.h error_handler.h eval.h f128.h f32.h f64.h fact.h fact_action.h fact_list.h facts.h facts_cursor.h facts_spec.h facts_spec_cursor.h facts_transaction.h facts_with.h facts_with_cursor.h file.h float.h fn.h fn_clause.h frame.h hash.h ident.h inspect.h integer.h io.h kc3.h kc3_main.h list.h list_init.h log.h map.h module.h operator.h pcomplex.h pcow.h ptag.h ptr.h ptr_free.h queue.h quote.h ratio.h s16.h s32.h s64.h s8.h sequence.h set__fact.h set__tag.h set_cursor__fact.h set_cursor__tag.h set_item__fact.h set_item__tag.h sha1.h sign.h skiplist__fact.h skiplist_node__fact.h special_operator.h str.h struct.h struct_type.h sw.h sym.h tag.h tag_init.h tag_type.h time.h tuple.h types.h u16.h u32.h u64.h u8.h ucd.h unquote.h uw.h var.h void.h '
-SOURCES='abs.c alist.c alloc.c arg.c array.c binding.c block.c bool.c buf.c buf_fd.c buf_file.c buf_getc.c buf_getchar.c buf_inspect.c buf_inspect_s16.c buf_inspect_s16_binary.c buf_inspect_s16_decimal.c buf_inspect_s16_hexadecimal.c buf_inspect_s16_octal.c buf_inspect_s32.c buf_inspect_s32_binary.c buf_inspect_s32_decimal.c buf_inspect_s32_hexadecimal.c buf_inspect_s32_octal.c buf_inspect_s64.c buf_inspect_s64_binary.c buf_inspect_s64_decimal.c buf_inspect_s64_hexadecimal.c buf_inspect_s64_octal.c buf_inspect_s8.c buf_inspect_s8_binary.c buf_inspect_s8_decimal.c buf_inspect_s8_hexadecimal.c buf_inspect_s8_octal.c buf_inspect_sw.c buf_inspect_sw_binary.c buf_inspect_sw_decimal.c buf_inspect_sw_hexadecimal.c buf_inspect_sw_octal.c buf_inspect_u16.c buf_inspect_u16_binary.c buf_inspect_u16_decimal.c buf_inspect_u16_hexadecimal.c buf_inspect_u16_octal.c buf_inspect_u32.c buf_inspect_u32_binary.c buf_inspect_u32_decimal.c buf_inspect_u32_hexadecimal.c buf_inspect_u32_octal.c buf_inspect_u64.c buf_inspect_u64_binary.c buf_inspect_u64_decimal.c buf_inspect_u64_hexadecimal.c buf_inspect_u64_octal.c buf_inspect_u8.c buf_inspect_u8_binary.c buf_inspect_u8_decimal.c buf_inspect_u8_hexadecimal.c buf_inspect_u8_octal.c buf_inspect_uw.c buf_inspect_uw_binary.c buf_inspect_uw_decimal.c buf_inspect_uw_hexadecimal.c buf_inspect_uw_octal.c buf_parse.c buf_parse_s16.c buf_parse_s32.c buf_parse_s64.c buf_parse_s8.c buf_parse_sw.c buf_parse_u16.c buf_parse_u32.c buf_parse_u64.c buf_parse_u8.c buf_parse_uw.c buf_rw.c buf_save.c call.c cast.c ceiling.c cfn.c character.c compare.c complex.c cow.c data.c env.c error.c error_handler.c eval.c f128.c f32.c f64.c fact.c fact_action.c fact_list.c facts.c facts_cursor.c facts_spec.c facts_spec_cursor.c facts_transaction.c facts_with.c facts_with_cursor.c file.c fn.c fn_clause.c frame.c hash.c ident.c inspect.c integer.c io.c kc3.c license.c list.c list_init.c log.c map.c module.c operator.c pcomplex.c pcow.c ptag.c ptr.c ptr_free.c queue.c quote.c ratio.c s16.c s32.c s64.c s8.c sequence.c set__fact.c set__tag.c set_cursor__fact.c set_cursor__tag.c set_item__fact.c set_item__tag.c sign.c skiplist__fact.c skiplist_node__fact.c special_operator.c str.c struct.c struct_type.c sw.c sym.c tag.c tag_add.c tag_addi.c tag_band.c tag_bnot.c tag_bor.c tag_bxor.c tag_div.c tag_init.c tag_mod.c tag_mul.c tag_neg.c tag_shift_left.c tag_shift_right.c tag_sqrt.c tag_sub.c tag_type.c time.c tuple.c u16.c u32.c u64.c u8.c ucd.c unquote.c uw.c var.c void.c '
-LO_SOURCES=' ../libtommath/bn_cutoffs.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_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_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_exptmod.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_mag_u32.c ../libtommath/bn_mp_get_mag_u64.c ../libtommath/bn_mp_grow.c ../libtommath/bn_mp_init.c ../libtommath/bn_mp_init_copy.c ../libtommath/bn_mp_init_multi.c ../libtommath/bn_mp_init_size.c ../libtommath/bn_mp_invmod.c ../libtommath/bn_mp_lcm.c ../libtommath/bn_mp_lshd.c ../libtommath/bn_mp_mod.c ../libtommath/bn_mp_mod_2d.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_radix_size.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_rshd.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_u32.c ../libtommath/bn_mp_set_u64.c ../libtommath/bn_mp_set_ul.c ../libtommath/bn_mp_sqr.c ../libtommath/bn_mp_sqrt.c ../libtommath/bn_mp_sub.c ../libtommath/bn_mp_sub_d.c ../libtommath/bn_mp_xor.c ../libtommath/bn_mp_zero.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_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_rand_platform.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 abs.c alist.c alloc.c arg.c array.c binding.c block.c bool.c buf.c buf_fd.c buf_file.c buf_getc.c buf_getchar.c buf_inspect.c buf_inspect_s16.c buf_inspect_s16_binary.c buf_inspect_s16_decimal.c buf_inspect_s16_hexadecimal.c buf_inspect_s16_octal.c buf_inspect_s32.c buf_inspect_s32_binary.c buf_inspect_s32_decimal.c buf_inspect_s32_hexadecimal.c buf_inspect_s32_octal.c buf_inspect_s64.c buf_inspect_s64_binary.c buf_inspect_s64_decimal.c buf_inspect_s64_hexadecimal.c buf_inspect_s64_octal.c buf_inspect_s8.c buf_inspect_s8_binary.c buf_inspect_s8_decimal.c buf_inspect_s8_hexadecimal.c buf_inspect_s8_octal.c buf_inspect_sw.c buf_inspect_sw_binary.c buf_inspect_sw_decimal.c buf_inspect_sw_hexadecimal.c buf_inspect_sw_octal.c buf_inspect_u16.c buf_inspect_u16_binary.c buf_inspect_u16_decimal.c buf_inspect_u16_hexadecimal.c buf_inspect_u16_octal.c buf_inspect_u32.c buf_inspect_u32_binary.c buf_inspect_u32_decimal.c buf_inspect_u32_hexadecimal.c buf_inspect_u32_octal.c buf_inspect_u64.c buf_inspect_u64_binary.c buf_inspect_u64_decimal.c buf_inspect_u64_hexadecimal.c buf_inspect_u64_octal.c buf_inspect_u8.c buf_inspect_u8_binary.c buf_inspect_u8_decimal.c buf_inspect_u8_hexadecimal.c buf_inspect_u8_octal.c buf_inspect_uw.c buf_inspect_uw_binary.c buf_inspect_uw_decimal.c buf_inspect_uw_hexadecimal.c buf_inspect_uw_octal.c buf_parse.c buf_parse_s16.c buf_parse_s32.c buf_parse_s64.c buf_parse_s8.c buf_parse_sw.c buf_parse_u16.c buf_parse_u32.c buf_parse_u64.c buf_parse_u8.c buf_parse_uw.c buf_rw.c buf_save.c call.c cast.c ceiling.c cfn.c character.c compare.c complex.c cow.c data.c env.c error.c error_handler.c eval.c f128.c f32.c f64.c fact.c fact_action.c fact_list.c facts.c facts_cursor.c facts_spec.c facts_spec_cursor.c facts_transaction.c facts_with.c facts_with_cursor.c file.c fn.c fn_clause.c frame.c hash.c ident.c inspect.c integer.c io.c kc3.c license.c list.c list_init.c log.c map.c module.c operator.c pcomplex.c pcow.c ptag.c ptr.c ptr_free.c queue.c quote.c ratio.c s16.c s32.c s64.c s8.c sequence.c set__fact.c set__tag.c set_cursor__fact.c set_cursor__tag.c set_item__fact.c set_item__tag.c sign.c skiplist__fact.c skiplist_node__fact.c special_operator.c str.c struct.c struct_type.c sw.c sym.c tag.c tag_add.c tag_addi.c tag_band.c tag_bnot.c tag_bor.c tag_bxor.c tag_div.c tag_init.c tag_mod.c tag_mul.c tag_neg.c tag_shift_left.c tag_shift_right.c tag_sqrt.c tag_sub.c tag_type.c time.c tuple.c u16.c u32.c u64.c u8.c ucd.c unquote.c uw.c var.c void.c '
+HEADERS='abs.h alist.h alloc.h arg.h array.h assert.h binding.h block.h bool.h buf.h buf_fd.h buf_file.h buf_getc.h buf_getchar.h buf_inspect.h buf_inspect_s16.h buf_inspect_s16_binary.h buf_inspect_s16_decimal.h buf_inspect_s16_hexadecimal.h buf_inspect_s16_octal.h buf_inspect_s32.h buf_inspect_s32_binary.h buf_inspect_s32_decimal.h buf_inspect_s32_hexadecimal.h buf_inspect_s32_octal.h buf_inspect_s64.h buf_inspect_s64_binary.h buf_inspect_s64_decimal.h buf_inspect_s64_hexadecimal.h buf_inspect_s64_octal.h buf_inspect_s8.h buf_inspect_s8_binary.h buf_inspect_s8_decimal.h buf_inspect_s8_hexadecimal.h buf_inspect_s8_octal.h buf_inspect_sw.h buf_inspect_sw_binary.h buf_inspect_sw_decimal.h buf_inspect_sw_hexadecimal.h buf_inspect_sw_octal.h buf_inspect_u16.h buf_inspect_u16_binary.h buf_inspect_u16_decimal.h buf_inspect_u16_hexadecimal.h buf_inspect_u16_octal.h buf_inspect_u32.h buf_inspect_u32_binary.h buf_inspect_u32_decimal.h buf_inspect_u32_hexadecimal.h buf_inspect_u32_octal.h buf_inspect_u64.h buf_inspect_u64_binary.h buf_inspect_u64_decimal.h buf_inspect_u64_hexadecimal.h buf_inspect_u64_octal.h buf_inspect_u8.h buf_inspect_u8_binary.h buf_inspect_u8_decimal.h buf_inspect_u8_hexadecimal.h buf_inspect_u8_octal.h buf_inspect_uw.h buf_inspect_uw_binary.h buf_inspect_uw_decimal.h buf_inspect_uw_hexadecimal.h buf_inspect_uw_octal.h buf_parse.h buf_parse_s16.h buf_parse_s32.h buf_parse_s64.h buf_parse_s8.h buf_parse_sw.h buf_parse_u16.h buf_parse_u32.h buf_parse_u64.h buf_parse_u8.h buf_parse_uw.h buf_rw.h buf_save.h call.h cast.h ceiling.h cfn.h character.h compare.h complex.h cow.h data.h env.h error.h error_handler.h eval.h f128.h f32.h f64.h fact.h fact_action.h fact_list.h facts.h facts_cursor.h facts_spec.h facts_spec_cursor.h facts_transaction.h facts_with.h facts_with_cursor.h file.h float.h fn.h fn_clause.h frame.h hash.h ident.h inspect.h integer.h io.h kc3.h kc3_main.h list.h list_init.h log.h map.h module.h operator.h pcomplex.h pcow.h pretty.h ptag.h ptr.h ptr_free.h queue.h quote.h ratio.h s16.h s32.h s64.h s8.h sequence.h set__fact.h set__tag.h set_cursor__fact.h set_cursor__tag.h set_item__fact.h set_item__tag.h sha1.h sign.h skiplist__fact.h skiplist_node__fact.h special_operator.h str.h struct.h struct_type.h sw.h sym.h tag.h tag_init.h tag_type.h time.h tuple.h types.h u16.h u32.h u64.h u8.h ucd.h unquote.h uw.h var.h void.h '
+SOURCES='abs.c alist.c alloc.c arg.c array.c binding.c block.c bool.c buf.c buf_fd.c buf_file.c buf_getc.c buf_getchar.c buf_inspect.c buf_inspect_s16.c buf_inspect_s16_binary.c buf_inspect_s16_decimal.c buf_inspect_s16_hexadecimal.c buf_inspect_s16_octal.c buf_inspect_s32.c buf_inspect_s32_binary.c buf_inspect_s32_decimal.c buf_inspect_s32_hexadecimal.c buf_inspect_s32_octal.c buf_inspect_s64.c buf_inspect_s64_binary.c buf_inspect_s64_decimal.c buf_inspect_s64_hexadecimal.c buf_inspect_s64_octal.c buf_inspect_s8.c buf_inspect_s8_binary.c buf_inspect_s8_decimal.c buf_inspect_s8_hexadecimal.c buf_inspect_s8_octal.c buf_inspect_sw.c buf_inspect_sw_binary.c buf_inspect_sw_decimal.c buf_inspect_sw_hexadecimal.c buf_inspect_sw_octal.c buf_inspect_u16.c buf_inspect_u16_binary.c buf_inspect_u16_decimal.c buf_inspect_u16_hexadecimal.c buf_inspect_u16_octal.c buf_inspect_u32.c buf_inspect_u32_binary.c buf_inspect_u32_decimal.c buf_inspect_u32_hexadecimal.c buf_inspect_u32_octal.c buf_inspect_u64.c buf_inspect_u64_binary.c buf_inspect_u64_decimal.c buf_inspect_u64_hexadecimal.c buf_inspect_u64_octal.c buf_inspect_u8.c buf_inspect_u8_binary.c buf_inspect_u8_decimal.c buf_inspect_u8_hexadecimal.c buf_inspect_u8_octal.c buf_inspect_uw.c buf_inspect_uw_binary.c buf_inspect_uw_decimal.c buf_inspect_uw_hexadecimal.c buf_inspect_uw_octal.c buf_parse.c buf_parse_s16.c buf_parse_s32.c buf_parse_s64.c buf_parse_s8.c buf_parse_sw.c buf_parse_u16.c buf_parse_u32.c buf_parse_u64.c buf_parse_u8.c buf_parse_uw.c buf_rw.c buf_save.c call.c cast.c ceiling.c cfn.c character.c compare.c complex.c cow.c data.c env.c error.c error_handler.c eval.c f128.c f32.c f64.c fact.c fact_action.c fact_list.c facts.c facts_cursor.c facts_spec.c facts_spec_cursor.c facts_transaction.c facts_with.c facts_with_cursor.c file.c fn.c fn_clause.c frame.c hash.c ident.c inspect.c integer.c io.c kc3.c license.c list.c list_init.c log.c map.c module.c operator.c pcomplex.c pcow.c pretty.c ptag.c ptr.c ptr_free.c queue.c quote.c ratio.c s16.c s32.c s64.c s8.c sequence.c set__fact.c set__tag.c set_cursor__fact.c set_cursor__tag.c set_item__fact.c set_item__tag.c sign.c skiplist__fact.c skiplist_node__fact.c special_operator.c str.c struct.c struct_type.c sw.c sym.c tag.c tag_add.c tag_addi.c tag_band.c tag_bnot.c tag_bor.c tag_bxor.c tag_div.c tag_init.c tag_mod.c tag_mul.c tag_neg.c tag_shift_left.c tag_shift_right.c tag_sqrt.c tag_sub.c tag_type.c time.c tuple.c u16.c u32.c u64.c u8.c ucd.c unquote.c uw.c var.c void.c '
+LO_SOURCES=' ../libtommath/bn_cutoffs.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_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_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_exptmod.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_mag_u32.c ../libtommath/bn_mp_get_mag_u64.c ../libtommath/bn_mp_grow.c ../libtommath/bn_mp_init.c ../libtommath/bn_mp_init_copy.c ../libtommath/bn_mp_init_multi.c ../libtommath/bn_mp_init_size.c ../libtommath/bn_mp_invmod.c ../libtommath/bn_mp_lcm.c ../libtommath/bn_mp_lshd.c ../libtommath/bn_mp_mod.c ../libtommath/bn_mp_mod_2d.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_radix_size.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_rshd.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_u32.c ../libtommath/bn_mp_set_u64.c ../libtommath/bn_mp_set_ul.c ../libtommath/bn_mp_sqr.c ../libtommath/bn_mp_sqrt.c ../libtommath/bn_mp_sub.c ../libtommath/bn_mp_sub_d.c ../libtommath/bn_mp_xor.c ../libtommath/bn_mp_zero.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_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_rand_platform.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 abs.c alist.c alloc.c arg.c array.c binding.c block.c bool.c buf.c buf_fd.c buf_file.c buf_getc.c buf_getchar.c buf_inspect.c buf_inspect_s16.c buf_inspect_s16_binary.c buf_inspect_s16_decimal.c buf_inspect_s16_hexadecimal.c buf_inspect_s16_octal.c buf_inspect_s32.c buf_inspect_s32_binary.c buf_inspect_s32_decimal.c buf_inspect_s32_hexadecimal.c buf_inspect_s32_octal.c buf_inspect_s64.c buf_inspect_s64_binary.c buf_inspect_s64_decimal.c buf_inspect_s64_hexadecimal.c buf_inspect_s64_octal.c buf_inspect_s8.c buf_inspect_s8_binary.c buf_inspect_s8_decimal.c buf_inspect_s8_hexadecimal.c buf_inspect_s8_octal.c buf_inspect_sw.c buf_inspect_sw_binary.c buf_inspect_sw_decimal.c buf_inspect_sw_hexadecimal.c buf_inspect_sw_octal.c buf_inspect_u16.c buf_inspect_u16_binary.c buf_inspect_u16_decimal.c buf_inspect_u16_hexadecimal.c buf_inspect_u16_octal.c buf_inspect_u32.c buf_inspect_u32_binary.c buf_inspect_u32_decimal.c buf_inspect_u32_hexadecimal.c buf_inspect_u32_octal.c buf_inspect_u64.c buf_inspect_u64_binary.c buf_inspect_u64_decimal.c buf_inspect_u64_hexadecimal.c buf_inspect_u64_octal.c buf_inspect_u8.c buf_inspect_u8_binary.c buf_inspect_u8_decimal.c buf_inspect_u8_hexadecimal.c buf_inspect_u8_octal.c buf_inspect_uw.c buf_inspect_uw_binary.c buf_inspect_uw_decimal.c buf_inspect_uw_hexadecimal.c buf_inspect_uw_octal.c buf_parse.c buf_parse_s16.c buf_parse_s32.c buf_parse_s64.c buf_parse_s8.c buf_parse_sw.c buf_parse_u16.c buf_parse_u32.c buf_parse_u64.c buf_parse_u8.c buf_parse_uw.c buf_rw.c buf_save.c call.c cast.c ceiling.c cfn.c character.c compare.c complex.c cow.c data.c env.c error.c error_handler.c eval.c f128.c f32.c f64.c fact.c fact_action.c fact_list.c facts.c facts_cursor.c facts_spec.c facts_spec_cursor.c facts_transaction.c facts_with.c facts_with_cursor.c file.c fn.c fn_clause.c frame.c hash.c ident.c inspect.c integer.c io.c kc3.c license.c list.c list_init.c log.c map.c module.c operator.c pcomplex.c pcow.c pretty.c ptag.c ptr.c ptr_free.c queue.c quote.c ratio.c s16.c s32.c s64.c s8.c sequence.c set__fact.c set__tag.c set_cursor__fact.c set_cursor__tag.c set_item__fact.c set_item__tag.c sign.c skiplist__fact.c skiplist_node__fact.c special_operator.c str.c struct.c struct_type.c sw.c sym.c tag.c tag_add.c tag_addi.c tag_band.c tag_bnot.c tag_bor.c tag_bxor.c tag_div.c tag_init.c tag_mod.c tag_mul.c tag_neg.c tag_shift_left.c tag_shift_right.c tag_sqrt.c tag_sub.c tag_type.c time.c tuple.c u16.c u32.c u64.c u8.c ucd.c unquote.c uw.c var.c void.c '
diff --git a/libkc3/types.h b/libkc3/types.h
index 0131386..63e1b28 100644
--- a/libkc3/types.h
+++ b/libkc3/types.h
@@ -172,6 +172,7 @@ typedef struct fact_list s_fact_list;
typedef struct list s_list_map;
typedef struct log s_log;
typedef struct map s_map;
+typedef struct pretty s_pretty;
typedef struct queue s_queue;
typedef struct quote s_quote;
typedef struct ratio s_ratio;
@@ -279,6 +280,10 @@ struct map {
s_tag *value;
};
+struct pretty {
+ uw base_column;
+};
+
union ptr_ {
const void *p;
const char *pchar;
@@ -349,11 +354,11 @@ struct var {
/* 2 */
struct buf {
- uw base_column;
sw column;
sw (*flush) (s_buf *buf);
bool free;
sw line;
+ s_pretty pretty;
u_ptr_w ptr;
bool read_only;
sw (*refill) (s_buf *buf);
diff --git a/sources.mk b/sources.mk
index 52702bc..1d15427 100644
--- a/sources.mk
+++ b/sources.mk
@@ -398,6 +398,8 @@ KC3_C_SOURCES = \
"libkc3/pcomplex.h" \
"libkc3/pcow.c" \
"libkc3/pcow.h" \
+ "libkc3/pretty.c" \
+ "libkc3/pretty.h" \
"libkc3/ptag.c" \
"libkc3/ptag.h" \
"libkc3/ptr.c" \
@@ -664,7 +666,199 @@ KC3_C_SOURCES = \
"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" \
diff --git a/sources.sh b/sources.sh
index 47ced52..f5baa15 100644
--- a/sources.sh
+++ b/sources.sh
@@ -1,8 +1,8 @@
# 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 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_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/pretty.c libkc3/pretty.h libkc3/ptag.c libkc3/ptag.h libkc3/ptr.c libkc3/ptr.h libkc3/ptr_free.c libkc3/ptr_free.h libkc3/queue.c libkc3/queue.h libkc3/quote.c libkc3/quote.h libkc3/ratio.c libkc3/ratio.h libkc3/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='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 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/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 '
diff --git a/test/http/07_event_echo.kc3 b/test/http/07_event_echo.kc3
index 866468a..3c8e9c6 100644
--- a/test/http/07_event_echo.kc3
+++ b/test/http/07_event_echo.kc3
@@ -14,14 +14,12 @@ acceptor = fn (server_socket, events, acceptor_ev, void) do
client_ev = HTTP.Event.new(event_base, client.sockfd, [:read, :write],
echo_client, client)
puts(client_ev)
- HTTP.Event.base_set(event_base, client_ev)
HTTP.Event.add(client_ev, timeout)
end
end
puts(socket.fd)
acceptor_ev = HTTP.Event.new(event_base, socket.fd, [:read], acceptor,
void)
-puts(HTTP.Event.base_set(event_base, acceptor_ev))
puts(HTTP.Event.add(acceptor_ev, timeout))
r = HTTP.Event.dispatch(event_base)
if r do