diff --git a/Makefile b/Makefile
index 2150f52..7826dce 100644
--- a/Makefile
+++ b/Makefile
@@ -15,6 +15,7 @@ build: gen
${MAKE} -C libtommath build
${MAKE} -C ucd2c build
${MAKE} -C libc3 build
+ ${MAKE} -C libc3/window build
${MAKE} -C ic3 build
${MAKE} -C c3s build
${MAKE} -C test build
@@ -24,6 +25,7 @@ all: gen
${MAKE} -C libtommath all
${MAKE} -C ucd2c all
${MAKE} -C libc3 all
+ ${MAKE} -C libc3/window all
${MAKE} -C ic3 all
${MAKE} -C c3s all
${MAKE} -C test all
@@ -32,6 +34,7 @@ asan:
${GMAKE} -C libffi all
${MAKE} -C libtommath asan
${MAKE} -C libc3 asan
+ ${MAKE} -C libc3/window asan
${MAKE} -C ic3 asan
${MAKE} -C c3s asan
${MAKE} -C test asan
@@ -40,6 +43,7 @@ cov: gen
${GMAKE} -C libffi all
${MAKE} -C libtommath cov
${MAKE} -C libc3 cov
+ ${MAKE} -C libc3/window cov
${MAKE} -C ic3 cov
${MAKE} -C c3s cov
${MAKE} -C test cov
@@ -49,6 +53,7 @@ clean:
${MAKE} -C libtommath clean
${MAKE} -C ucd2c clean
${MAKE} -C libc3 clean
+ ${MAKE} -C libc3/window clean
${MAKE} -C ic3 clean
${MAKE} -C c3s clean
${MAKE} -C test clean
@@ -56,6 +61,7 @@ clean:
clean_cov:
${MAKE} -C libtommath clean_cov
${MAKE} -C libc3 clean_cov
+ ${MAKE} -C libc3/window clean_cov
${MAKE} -C ic3 clean_cov
${MAKE} -C c3s clean_cov
${MAKE} -C test clean_cov
@@ -64,6 +70,7 @@ debug:
${GMAKE} -C libffi all
${MAKE} -C libtommath debug
${MAKE} -C libc3 debug
+ ${MAKE} -C libc3/window debug
${MAKE} -C ic3 debug
${MAKE} -C c3s debug
${MAKE} -C test debug
@@ -81,12 +88,14 @@ distclean:
${MAKE} -C libtommath distclean
${MAKE} -C ucd2c distclean
${MAKE} -C libc3 distclean
+ ${MAKE} -C libc3/window distclean
${MAKE} -C ic3 distclean
${MAKE} -C c3s distclean
${MAKE} -C test distclean
gcovr:
${MAKE} -C libc3 gcovr
+ ${MAKE} -C libc3/window gcovr
${MAKE} -C ic3 gcovr
${MAKE} -C c3s gcovr
${MAKE} -C test gcovr
@@ -109,6 +118,7 @@ ic3_gcovr:
install:
${GMAKE} -C libffi install
${MAKE} -C libc3 install
+ ${MAKE} -C libc3/window install
${MAKE} -C ic3 install
${MAKE} -C c3s install
diff --git a/config.subr b/config.subr
index f25ccab..62c064d 100644
--- a/config.subr
+++ b/config.subr
@@ -13,7 +13,8 @@
set -e
-echo "$(basename "$PWD")/$(basename "$0")"
+cd "$(dirname "$0")"
+echo "$PWD/$(basename "$0")"
o_rule() {
"$CC" $CPPFLAGS $CFLAGS -M "$1" || { echo "$1" | sed -e 's/^\(.*\)\.c$/\1.o: \1.c/'; }
@@ -134,7 +135,7 @@ update_config_h() {
echo "#endif" >> "${CONFIG_H}"
if ! cmp "${CONFIG_H}" config.h >/dev/null 2>&1; then
mv "${CONFIG_H}" config.h
- echo "-> $(basename "$PWD")/config.h"
+ echo "-> ${PWD}/config.h"
else
rm "${CONFIG_H}"
fi
@@ -143,7 +144,7 @@ update_config_h() {
update_config_mk() {
if ! cmp "${CONFIG_MK}" config.mk >/dev/null 2>&1; then
mv "${CONFIG_MK}" config.mk
- echo "-> $(basename "$PWD")/config.mk"
+ echo "-> ${PWD}/config.mk"
else
rm "${CONFIG_MK}"
fi
@@ -152,7 +153,7 @@ update_config_mk() {
update_sources_mk() {
if ! cmp "${SOURCES_MK}" sources.mk >/dev/null 2>&1; then
mv "${SOURCES_MK}" sources.mk
- echo "-> $(basename "$PWD")/sources.mk"
+ echo "-> ${PWD}/sources.mk"
else
rm "${SOURCES_MK}"
fi
@@ -161,7 +162,7 @@ update_sources_mk() {
update_sources_sh() {
if ! cmp "${SOURCES_SH}" sources.sh >/dev/null 2>&1; then
mv "${SOURCES_SH}" sources.sh
- echo "-> $(basename "$PWD")/sources.sh"
+ echo "-> ${PWD}/sources.sh"
else
rm "${SOURCES_SH}"
fi
@@ -170,8 +171,8 @@ update_sources_sh() {
CONFIG_H=config.h
CONFIG_H=".config.h.tmp"
echo "/* config.h generated by configure */" > ${CONFIG_H}
-echo "#ifndef CONFIG_H" >> "${CONFIG_H}"
-echo "#define CONFIG_H" >> "${CONFIG_H}"
+echo "#ifndef CONFIG_H" >> ${CONFIG_H}
+echo "#define CONFIG_H" >> ${CONFIG_H}
CONFIG_MK=config.mk
CONFIG_MK=".config.mk.tmp"
diff --git a/configure b/configure
index 3e3c2ec..e7eae28 100755
--- a/configure
+++ b/configure
@@ -39,6 +39,9 @@ update_config_mk
( cd libtommath && ./configure; )
( cd ucd2c && ./configure; )
( cd libc3 && ./configure; )
+( cd libc3/window && ./configure; )
+( cd libc3/window/cairo/xcb && ./configure; )
+( cd libc3/window/cairo/xcb/demo && ./configure; )
( cd ic3 && ./configure; )
( cd c3s && ./configure; )
( cd test && ./configure; )
diff --git a/libc3/window/Makefile b/libc3/window/Makefile
new file mode 100644
index 0000000..a7bf3b8
--- /dev/null
+++ b/libc3/window/Makefile
@@ -0,0 +1,65 @@
+## c3
+## Copyright 2022,2023 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.
+
+build:
+ if ${HAVE_CAIRO} && ${HAVE_XCB}; then ${MAKE} -C cairo/xcb build; fi
+ if ${HAVE_CAIRO} && ${HAVE_XCB}; then ${MAKE} -C cairo/xcb/demo build; fi
+
+all:
+ ${MAKE} build
+ if ${HAVE_GCOV}; then ${MAKE} cov; fi
+ ${MAKE} debug
+ if ${HAVE_ASAN}; then ${MAKE} asan; fi
+
+asan:
+ if ${HAVE_CAIRO} && ${HAVE_XCB}; then ${MAKE} -C cairo/xcb asan; fi
+ if ${HAVE_CAIRO} && ${HAVE_XCB}; then ${MAKE} -C cairo/xcb/demo asan; fi
+
+clean:
+ if ${HAVE_CAIRO} && ${HAVE_XCB}; then ${MAKE} -C cairo/xcb clean; fi
+ if ${HAVE_CAIRO} && ${HAVE_XCB}; then ${MAKE} -C cairo/xcb/demo clean; fi
+
+clean_cov:
+ if ${HAVE_CAIRO} && ${HAVE_XCB}; then ${MAKE} -C cairo/xcb clean_cov; fi
+ if ${HAVE_CAIRO} && ${HAVE_XCB}; then ${MAKE} -C cairo/xcb/demo clean_cov; fi
+
+cov:
+ if ${HAVE_CAIRO} && ${HAVE_XCB}; then ${MAKE} -C cairo/xcb cov; fi
+ if ${HAVE_CAIRO} && ${HAVE_XCB}; then ${MAKE} -C cairo/xcb/demo cov; fi
+
+debug:
+ if ${HAVE_CAIRO} && ${HAVE_XCB}; then ${MAKE} -C cairo/xcb debug; fi
+ if ${HAVE_CAIRO} && ${HAVE_XCB}; then ${MAKE} -C cairo/xcb/demo debug; fi
+
+distclean:
+ if ${HAVE_CAIRO} && ${HAVE_XCB}; then ${MAKE} -C cairo/xcb distclean; fi
+ if ${HAVE_CAIRO} && ${HAVE_XCB}; then ${MAKE} -C cairo/xcb/demo distclean; fi
+
+gcovr:
+ if ${HAVE_CAIRO} && ${HAVE_XCB}; then ${MAKE} -C cairo/xcb gcovr; fi
+ if ${HAVE_CAIRO} && ${HAVE_XCB}; then ${MAKE} -C cairo/xcb/demo gcovr; fi
+
+install:
+ if ${HAVE_CAIRO} && ${HAVE_XCB}; then ${MAKE} -C cairo/xcb install; fi
+ if ${HAVE_CAIRO} && ${HAVE_XCB}; then ${MAKE} -C cairo/xcb/demo install; fi
+
+test:
+ if ${HAVE_CAIRO} && ${HAVE_XCB}; then ${MAKE} -C cairo/xcb test; fi
+ if ${HAVE_CAIRO} && ${HAVE_XCB}; then ${MAKE} -C cairo/xcb/demo test; fi
+
+update_sources:
+ if ${HAVE_CAIRO} && ${HAVE_XCB}; then ${MAKE} -C cairo/xcb update_sources; fi
+ if ${HAVE_CAIRO} && ${HAVE_XCB}; then ${MAKE} -C cairo/xcb/demo update_sources; fi
+
+.PHONY: all asan build clean cov debug distclean install test update_sources
+
+include config.mk
diff --git a/libc3/window/cairo/window_cairo.c b/libc3/window/cairo/window_cairo.c
index 081d29a..96a6d30 100644
--- a/libc3/window/cairo/window_cairo.c
+++ b/libc3/window/cairo/window_cairo.c
@@ -31,15 +31,17 @@ s_window_cairo * window_cairo_init (s_window_cairo *window,
bool window_cairo_render_default (s_window_cairo *window, cairo_t *cr)
{
- (void) window;
- (void) cr;
+ assert(window);
+ assert(cr);
+ cairo_set_source_rgb(cr, 1, 1, 1);
+ cairo_rectangle(cr, 0, 0, window->w, window->h);
+ cairo_fill(cr);
return true;
}
bool window_cairo_resize_default (s_window_cairo *window, uw w, uw h)
{
- (void) window;
- (void) w;
- (void) h;
+ window->w = w;
+ window->h = h;
return true;
}
diff --git a/libc3/window/configure b/libc3/window/configure
new file mode 100644
index 0000000..d646c1d
--- /dev/null
+++ b/libc3/window/configure
@@ -0,0 +1,36 @@
+#!/bin/sh
+## c3
+## Copyright 2022,2023 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.
+
+set -e
+
+export SRC_TOP="$(dirname "$PWD")"
+
+. ../../config.subr
+
+if pkg-config cairo; then
+ HAVE_CAIRO=true
+ if pkg-config xcb; then
+ HAVE_XCB=true
+ ( cd cairo/xcb && ./configure; )
+ ( cd cairo/xcb/demo && ./configure; )
+ else
+ HAVE_XCB=false
+ fi
+else
+ HAVE_CAIRO=false
+fi
+
+echo "HAVE_CAIRO = $HAVE_CAIRO" >> ${CONFIG_MK}
+echo "HAVE_XCB = $HAVE_XCB" >> ${CONFIG_MK}
+
+update_config_mk
diff --git a/sources.mk b/sources.mk
index f5fe05f..dd4c6b7 100644
--- a/sources.mk
+++ b/sources.mk
@@ -5,8 +5,13 @@ C3_CONFIGURES = \
c3s/update_sources \
ic3/configure \
ic3/update_sources \
- libc3/configure \
libc3/update_sources \
+ libc3/configure \
+ libc3/window/cairo/xcb/configure \
+ libc3/window/cairo/xcb/demo/configure \
+ libc3/window/cairo/xcb/demo/update_sources \
+ libc3/window/cairo/xcb/update_sources \
+ libc3/window/configure \
libtommath/configure \
libtommath/update_sources \
test/configure \
@@ -19,6 +24,9 @@ C3_MAKEFILES = \
ic3/Makefile \
libc3/Makefile \
libc3/gen.mk \
+ libc3/window/cairo/xcb/Makefile \
+ libc3/window/cairo/xcb/demo/Makefile \
+ libc3/window/Makefile \
libtommath/Makefile \
test/Makefile \
ucd2c/Makefile \
@@ -28,33 +36,16 @@ C3_C_SOURCES = \
c3s/buf_readline.c \
c3s/c3s.c \
c3s/buf_readline.h \
- ic3/ic3.c \
ic3/buf_linenoise.c \
+ ic3/ic3.c \
ic3/buf_linenoise.h \
ic3/linenoise.c \
- libc3/abs.c \
- libc3/abs.h \
- libc3/buf.c \
- libc3/buf.h \
- libc3/buf_inspect_s8.c \
- libc3/buf_inspect_s8.h \
- libc3/buf_inspect_s8_binary.c \
- libc3/buf_inspect_s8_binary.h \
- libc3/buf_inspect_s8_octal.c \
- libc3/buf_inspect_s8_octal.h \
- libc3/buf_inspect_s8_decimal.c \
libc3/buf_inspect_s8_decimal.h \
- libc3/call.c \
- libc3/arg.c \
- libc3/arg.h \
- libc3/array.c \
- libc3/array.h \
- libc3/binding.c \
- libc3/c3.c \
+ libc3/fn.h \
libc3/buf_inspect_s8_hexadecimal.c \
+ libc3/sym.c \
libc3/buf_inspect_s8_hexadecimal.h \
libc3/buf_inspect_s16.c \
- libc3/binding.h \
libc3/buf_inspect_s16.h \
libc3/buf_inspect_s16_binary.c \
libc3/buf_inspect_s16_binary.h \
@@ -63,11 +54,29 @@ C3_C_SOURCES = \
libc3/buf_inspect_s16_decimal.c \
libc3/buf_inspect_s16_decimal.h \
libc3/buf_inspect_s16_hexadecimal.c \
- libc3/bool.c \
- libc3/bool.h \
+ libc3/s8.c \
+ libc3/binding.c \
+ libc3/binding.h \
+ libc3/buf_inspect_s8.c \
+ libc3/facts_with_cursor.c \
+ libc3/array.h \
+ libc3/buf.c \
+ libc3/buf_parse.c \
+ libc3/integer.h \
+ libc3/types.h \
+ libc3/type.c \
+ libc3/buf_inspect_s8.h \
+ libc3/buf_inspect_s8_binary.c \
+ libc3/buf_inspect_s8_binary.h \
+ libc3/buf_inspect_s8_octal.c \
+ libc3/buf_inspect_s8_octal.h \
+ libc3/buf_inspect_s8_decimal.c \
+ libc3/buf_inspect.c \
libc3/buf_file.c \
libc3/buf_file.h \
+ libc3/bool.c \
libc3/buf_inspect_s16_hexadecimal.h \
+ libc3/io.h \
libc3/buf_inspect_s32.c \
libc3/buf_inspect_s32.h \
libc3/buf_inspect_s32_binary.c \
@@ -79,12 +88,11 @@ C3_C_SOURCES = \
libc3/buf_inspect_s32_hexadecimal.c \
libc3/buf_inspect_s32_hexadecimal.h \
libc3/buf_inspect_s64.c \
- libc3/buf_parse.h \
- libc3/buf_parse_c.c \
- libc3/buf_save.c \
libc3/buf_inspect_s64.h \
- libc3/facts_spec_cursor.c \
libc3/buf_inspect_s64_binary.c \
+ libc3/io.c \
+ libc3/abs.h \
+ libc3/fn_clause.c \
libc3/buf_inspect_s64_binary.h \
libc3/buf_inspect_s64_octal.c \
libc3/buf_inspect_s64_octal.h \
@@ -95,29 +103,32 @@ C3_C_SOURCES = \
libc3/buf_inspect_sw.c \
libc3/buf_inspect_sw.h \
libc3/buf_inspect_sw_binary.c \
+ libc3/set__fact.c \
+ libc3/file.c \
+ libc3/ceiling.c \
+ libc3/buf_parse_c.c \
libc3/buf_parse_c.h \
- libc3/buf_save.h \
- libc3/c3.h \
- libc3/c_types.h \
- libc3/call.h \
libc3/buf_inspect_sw_binary.h \
+ libc3/buf_save.c \
libc3/buf_inspect_sw_octal.c \
+ libc3/buf_parse.h \
+ libc3/compare.c \
libc3/buf_inspect_sw_octal.h \
libc3/buf_inspect_sw_decimal.c \
libc3/buf_inspect_sw_decimal.h \
libc3/buf_inspect_sw_hexadecimal.c \
libc3/buf_inspect_sw_hexadecimal.h \
+ libc3/call.h \
libc3/buf_inspect_u8.c \
libc3/buf_inspect_u8.h \
+ libc3/buf_parse_s8.c \
+ libc3/character.c \
+ libc3/buf_save.h \
+ libc3/fact.h \
libc3/buf_inspect_u8_binary.c \
+ libc3/error.c \
libc3/buf_inspect_u8_binary.h \
libc3/buf_inspect_u8_octal.c \
- libc3/ceiling.c \
- libc3/ceiling.h \
- libc3/cfn.c \
- libc3/cfn.h \
- libc3/character.c \
- libc3/character.h \
libc3/buf_inspect_u8_octal.h \
libc3/buf_inspect_u8_decimal.c \
libc3/buf_inspect_u8_decimal.h \
@@ -128,33 +139,30 @@ C3_C_SOURCES = \
libc3/buf_inspect_u16_binary.c \
libc3/buf_inspect_u16_binary.h \
libc3/buf_inspect_u16_octal.c \
- libc3/buf_inspect_u16_octal.h \
- libc3/buf_parse_s8.c \
- libc3/compare.c \
- libc3/buf_inspect.c \
+ libc3/buf_parse_s8.h \
+ libc3/error.h \
+ libc3/character.h \
libc3/compare.h \
- libc3/buf_parse.c \
- libc3/timespec.h \
- libc3/operator.c \
- libc3/operator.h \
- libc3/sym.c \
+ libc3/buf_inspect_u16_octal.h \
libc3/buf_inspect_u16_decimal.c \
+ libc3/tag.h \
+ libc3/sign.h \
+ libc3/buf.h \
libc3/buf_inspect_u16_decimal.h \
libc3/buf_inspect_u16_hexadecimal.c \
libc3/buf_inspect_u16_hexadecimal.h \
libc3/buf_inspect_u32.c \
- libc3/u8.h \
libc3/buf_inspect_u32.h \
libc3/buf_inspect_u32_binary.c \
libc3/buf_inspect_u32_binary.h \
- libc3/error.c \
- libc3/error.h \
- libc3/error_handler.c \
- libc3/error_handler.h \
- libc3/eval.c \
- libc3/eval.h \
libc3/buf_inspect_u32_octal.c \
+ libc3/set__fact.h \
libc3/buf_inspect_u32_octal.h \
+ libc3/error_handler.c \
+ libc3/set_cursor.c.in \
+ libc3/set_cursor.h.in \
+ libc3/set_item.c.in \
+ libc3/set_item.h.in \
libc3/buf_inspect_u32_decimal.c \
libc3/buf_inspect_u32_decimal.h \
libc3/buf_inspect_u32_hexadecimal.c \
@@ -164,13 +172,16 @@ C3_C_SOURCES = \
libc3/buf_inspect_u64_binary.c \
libc3/buf_inspect_u64_binary.h \
libc3/buf_inspect_u64_octal.c \
- libc3/buf_parse_s8.h \
- libc3/fact.c \
- libc3/fact.h \
- libc3/facts_cursor.c \
libc3/buf_inspect_u64_octal.h \
+ libc3/s8.h \
+ libc3/error_handler.h \
libc3/buf_inspect_u64_decimal.c \
+ libc3/eval.c \
+ libc3/eval.h \
libc3/buf_inspect_u64_decimal.h \
+ libc3/fact.c \
+ libc3/facts_cursor.c \
+ libc3/ceiling.h \
libc3/buf_inspect_u64_hexadecimal.c \
libc3/buf_inspect_u64_hexadecimal.h \
libc3/buf_inspect_uw.c \
@@ -180,14 +191,15 @@ C3_C_SOURCES = \
libc3/buf_inspect_uw_octal.c \
libc3/buf_inspect_uw_octal.h \
libc3/buf_inspect_uw_decimal.c \
- libc3/buf_inspect_uw_decimal.h \
+ libc3/buf_parse_s16.c \
libc3/facts_cursor.h \
libc3/facts_spec.c \
- libc3/facts_spec.h \
- libc3/facts_spec_cursor.h \
+ libc3/frame.h \
+ libc3/sign.c \
+ libc3/skiplist.c.in \
+ libc3/buf_inspect_uw_decimal.h \
libc3/buf_inspect_uw_hexadecimal.c \
libc3/buf_inspect_uw_hexadecimal.h \
- libc3/buf_parse_s16.c \
libc3/buf_parse_s16.h \
libc3/buf_parse_s32.c \
libc3/buf_parse_s32.h \
@@ -198,18 +210,17 @@ C3_C_SOURCES = \
libc3/buf_parse_u8.c \
libc3/buf_parse_u8.h \
libc3/buf_parse_u16.c \
+ libc3/timespec.h \
libc3/buf_parse_u16.h \
libc3/buf_parse_u32.c \
- libc3/set__fact.c \
- libc3/facts_with.c \
- libc3/facts_with.h \
- libc3/facts_with_cursor.c \
libc3/buf_parse_u32.h \
+ libc3/facts_spec.h \
+ libc3/facts_spec_cursor.c \
libc3/buf_parse_u64.c \
+ libc3/facts_spec_cursor.h \
libc3/buf_parse_u64.h \
libc3/buf_parse_uw.c \
libc3/buf_parse_uw.h \
- libc3/set__fact.h \
libc3/set__tag.c \
libc3/set__tag.h \
libc3/set_cursor__fact.c \
@@ -218,156 +229,165 @@ C3_C_SOURCES = \
libc3/set_cursor__tag.h \
libc3/set_item__fact.c \
libc3/set_item__fact.h \
+ libc3/operator.c \
libc3/set_item__tag.c \
+ libc3/s16.c \
+ libc3/c3.c \
libc3/set_item__tag.h \
+ libc3/facts_with.c \
+ libc3/facts_with.h \
libc3/skiplist__fact.c \
- libc3/facts_with_cursor.h \
- libc3/float.h \
- libc3/frame.c \
- libc3/frame.h \
libc3/skiplist__fact.h \
+ libc3/buf_parse_u.c.in \
+ libc3/fn_clause.h \
libc3/skiplist_node__fact.c \
libc3/skiplist_node__fact.h \
- libc3/types.h \
- libc3/f64.h \
- libc3/f32.c \
- libc3/f64.c \
- libc3/hash.h \
+ libc3/s16.h \
+ libc3/s32.c \
+ libc3/s32.h \
+ libc3/s64.c \
+ libc3/s64.h \
+ libc3/sw.c \
+ libc3/sw.h \
+ libc3/u8.c \
+ libc3/u8.h \
+ libc3/u16.c \
+ libc3/u16.h \
+ libc3/u32.c \
+ libc3/u32.h \
+ libc3/u64.c \
+ libc3/module.c \
+ libc3/abs.c \
+ libc3/u64.h \
+ libc3/uw.c \
+ libc3/facts_with_cursor.h \
+ libc3/uw.h \
libc3/ident.h \
- libc3/integer.c \
- libc3/integer.h \
- libc3/io.c \
- libc3/io.h \
+ libc3/str.c \
+ libc3/c_types.h \
+ libc3/buf_parse_s.c.in \
+ libc3/array.c \
+ libc3/buf_inspect.h \
+ libc3/set.c.in \
libc3/list.c \
- libc3/list.h \
libc3/log.c \
libc3/log.h \
- libc3/buf_inspect_s.h.in \
- libc3/module.c \
- libc3/str.c \
+ libc3/sym.h \
+ libc3/c3.h \
libc3/module.h \
- libc3/buf_parse_u.c.in \
libc3/quote.c \
libc3/quote.h \
- libc3/s32.h \
- libc3/s64.c \
- libc3/s64.h \
- libc3/sw.c \
- libc3/sw.h \
- libc3/set.c.in \
+ libc3/env.c \
+ libc3/fn.c \
libc3/set.h.in \
- libc3/buf_inspect_s_base.h.in \
- libc3/sha1.h \
- libc3/set_cursor.c.in \
- libc3/set_cursor.h.in \
- libc3/buf_inspect.h \
- libc3/set_item.c.in \
- libc3/set_item.h.in \
libc3/tag.c \
- libc3/s.h.in \
- libc3/sign.c \
- libc3/sign.h \
- libc3/skiplist.c.in \
libc3/skiplist.h.in \
- libc3/type.h \
+ libc3/facts.h \
+ libc3/sha1.h \
libc3/skiplist_node.c.in \
libc3/skiplist_node.h.in \
- libc3/str.h \
- libc3/s8.c \
- libc3/ucd.c \
- libc3/sym.h \
libc3/tuple.c \
libc3/tuple.h \
- libc3/type.c \
+ libc3/ucd.c \
libc3/ucd.h \
- libc3/buf_parse_s.c.in \
+ libc3/hash.h \
+ libc3/license.c \
+ libc3/str.h \
+ libc3/type.h \
libc3/buf_parse_s.h.in \
- libc3/buf_inspect_s.c.in \
libc3/buf_parse_u.h.in \
- libc3/env.c \
- libc3/ident.c \
+ libc3/cfn.c \
+ libc3/operator.h \
+ libc3/float.h \
+ libc3/f64.c \
+ libc3/hash.c \
+ libc3/frame.c \
libc3/buf_inspect_s_base.c.in \
+ libc3/buf_inspect_s.c.in \
+ libc3/buf_inspect_s.h.in \
libc3/buf_inspect_u.c.in \
- libc3/buf_inspect_u.h.in \
- libc3/env.h \
- libc3/s8.h \
- libc3/s16.c \
libc3/buf_inspect_u_base.c.in \
+ libc3/buf_inspect_u.h.in \
+ libc3/c3_main.h \
+ libc3/call.c \
+ libc3/arg.c \
+ libc3/f32.c \
libc3/buf_inspect_u_base.h.in \
- libc3/timespec.c \
- libc3/s16.h \
- libc3/s32.c \
- libc3/u16.h \
- libc3/u.c.in \
- libc3/fn.c \
- libc3/u.h.in \
- libc3/fn.h \
- libc3/tag.h \
- libc3/u32.h \
- libc3/u64.h \
- libc3/uw.h \
- libc3/u16.c \
- libc3/u32.c \
- libc3/u64.c \
- libc3/uw.c \
- libc3/ptag.h \
+ libc3/env.h \
+ libc3/integer.c \
+ libc3/cfn.h \
libc3/f32.h \
- libc3/fn_clause.h \
+ libc3/facts.c \
+ libc3/file.h \
libc3/s.c.in \
- libc3/fn_clause.c \
+ libc3/s.h.in \
+ libc3/u.c.in \
+ libc3/u.h.in \
libc3/ptag.c \
- libc3/var.h \
+ libc3/ptag.h \
+ libc3/ident.c \
+ libc3/list.h \
+ libc3/arg.h \
+ libc3/timespec.c \
+ libc3/buf_inspect_s_base.h.in \
+ libc3/window/cairo/c3_window_cairo_demo.c \
+ libc3/window/cairo/c3_window_cairo_demo.h \
+ libc3/window/cairo/types.h \
+ libc3/window/cairo/window_cairo.h \
+ libc3/window/cairo/xcb/demo/c3_window_cairo_xcb_demo.c \
+ libc3/window/cairo/xcb/demo/c3_window_cairo_demo.c \
+ libc3/window/cairo/xcb/window_cairo_xcb.c \
+ libc3/window/cairo/xcb/window_cairo_xcb.h \
+ libc3/window/cairo/xcb/config.h \
+ libc3/window/cairo/window_cairo.c \
+ libc3/window/types.h \
libc3/var.c \
- libc3/facts.c \
- libc3/u8.c \
- libc3/facts.h \
- libc3/file.c \
- libc3/c3_main.h \
- libc3/file.h \
- libc3/hash.c \
- test/buf_inspect_test.c \
- test/bool_test.c \
+ libc3/f64.h \
+ libc3/bool.h \
+ libc3/var.h \
+ test/facts_with_test.c \
+ test/set__fact_test.c \
+ test/test.c \
+ test/fn_test.c \
+ test/test.h \
test/buf_parse_test.c \
+ test/array_test.c \
+ test/facts_cursor_test.c \
+ test/set__tag_test.c \
+ test/tag_test.c \
+ test/sym_test.c \
+ test/tag_test.h \
+ test/tuple_test.c \
+ test/types_test.c \
+ test/call_test.c \
+ test/compare_test.c \
+ test/skiplist__fact_test.c \
+ test/fact_test.c \
+ test/compare_test.h \
+ test/str_test.c \
test/facts_test.c \
- test/buf_file_test.c \
+ test/hash_test.c \
test/list_test.c \
- test/test.c \
- test/test.h \
- test/buf_parse_test_u8.c \
- test/buf_parse_test.h \
- test/buf_parse_test_s16.c \
+ test/ident_test.c \
+ test/libc3_test.c \
+ test/buf_inspect_test.c \
+ test/bool_test.c \
+ test/cfn_test.c \
+ test/buf_parse_test_s8.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_u8.c \
test/buf_parse_test_u32.c \
- test/buf_test.c \
test/buf_parse_test_u64.c \
- test/call_test.c \
- test/facts_cursor_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/buf_parse_test.h \
+ test/buf_test.c \
test/fact_test.h \
- test/facts_with_test.c \
- test/hash_test.c \
- test/ident_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/array_test.c \
- test/fn_test.c \
- test/tuple_test.c \
- test/types_test.c \
- test/libc3_test.c \
+ test/buf_file_test.c \
+ test/character_test.c \
+ test/buf_parse_test_su.h \
+ test/buf_parse_test_s16.c \
ucd2c/ucd.h \
ucd2c/ucd2c.c \
diff --git a/sources.sh b/sources.sh
index 2286a5c..90fc572 100644
--- a/sources.sh
+++ b/sources.sh
@@ -1,4 +1,4 @@
# sources.sh generated by update_sources
-C3_CONFIGURES='c3c/configure c3s/configure c3s/update_sources ic3/configure ic3/update_sources libc3/configure libc3/update_sources libtommath/configure libtommath/update_sources test/configure test/update_sources ucd2c/configure '
-C3_MAKEFILES='c3c/Makefile c3s/Makefile ic3/Makefile libc3/Makefile libc3/gen.mk libtommath/Makefile test/Makefile ucd2c/Makefile '
-C3_C_SOURCES='c3c/c3c.c c3s/buf_readline.c c3s/c3s.c c3s/buf_readline.h ic3/ic3.c ic3/buf_linenoise.c ic3/buf_linenoise.h ic3/linenoise.c libc3/abs.c libc3/abs.h libc3/buf.c libc3/buf.h libc3/buf_inspect_s8.c libc3/buf_inspect_s8.h libc3/buf_inspect_s8_binary.c libc3/buf_inspect_s8_binary.h libc3/buf_inspect_s8_octal.c libc3/buf_inspect_s8_octal.h libc3/buf_inspect_s8_decimal.c libc3/buf_inspect_s8_decimal.h libc3/call.c libc3/arg.c libc3/arg.h libc3/array.c libc3/array.h libc3/binding.c libc3/c3.c libc3/buf_inspect_s8_hexadecimal.c libc3/buf_inspect_s8_hexadecimal.h libc3/buf_inspect_s16.c libc3/binding.h libc3/buf_inspect_s16.h libc3/buf_inspect_s16_binary.c libc3/buf_inspect_s16_binary.h libc3/buf_inspect_s16_octal.c libc3/buf_inspect_s16_octal.h libc3/buf_inspect_s16_decimal.c libc3/buf_inspect_s16_decimal.h libc3/buf_inspect_s16_hexadecimal.c libc3/bool.c libc3/bool.h libc3/buf_file.c libc3/buf_file.h libc3/buf_inspect_s16_hexadecimal.h libc3/buf_inspect_s32.c libc3/buf_inspect_s32.h libc3/buf_inspect_s32_binary.c libc3/buf_inspect_s32_binary.h libc3/buf_inspect_s32_octal.c libc3/buf_inspect_s32_octal.h libc3/buf_inspect_s32_decimal.c libc3/buf_inspect_s32_decimal.h libc3/buf_inspect_s32_hexadecimal.c libc3/buf_inspect_s32_hexadecimal.h libc3/buf_inspect_s64.c libc3/buf_parse.h libc3/buf_parse_c.c libc3/buf_save.c libc3/buf_inspect_s64.h libc3/facts_spec_cursor.c libc3/buf_inspect_s64_binary.c libc3/buf_inspect_s64_binary.h libc3/buf_inspect_s64_octal.c libc3/buf_inspect_s64_octal.h libc3/buf_inspect_s64_decimal.c libc3/buf_inspect_s64_decimal.h libc3/buf_inspect_s64_hexadecimal.c libc3/buf_inspect_s64_hexadecimal.h libc3/buf_inspect_sw.c libc3/buf_inspect_sw.h libc3/buf_inspect_sw_binary.c libc3/buf_parse_c.h libc3/buf_save.h libc3/c3.h libc3/c_types.h libc3/call.h libc3/buf_inspect_sw_binary.h libc3/buf_inspect_sw_octal.c libc3/buf_inspect_sw_octal.h libc3/buf_inspect_sw_decimal.c libc3/buf_inspect_sw_decimal.h libc3/buf_inspect_sw_hexadecimal.c libc3/buf_inspect_sw_hexadecimal.h libc3/buf_inspect_u8.c libc3/buf_inspect_u8.h libc3/buf_inspect_u8_binary.c libc3/buf_inspect_u8_binary.h libc3/buf_inspect_u8_octal.c libc3/ceiling.c libc3/ceiling.h libc3/cfn.c libc3/cfn.h libc3/character.c libc3/character.h libc3/buf_inspect_u8_octal.h libc3/buf_inspect_u8_decimal.c libc3/buf_inspect_u8_decimal.h libc3/buf_inspect_u8_hexadecimal.c libc3/buf_inspect_u8_hexadecimal.h libc3/buf_inspect_u16.c libc3/buf_inspect_u16.h libc3/buf_inspect_u16_binary.c libc3/buf_inspect_u16_binary.h libc3/buf_inspect_u16_octal.c libc3/buf_inspect_u16_octal.h libc3/buf_parse_s8.c libc3/compare.c libc3/buf_inspect.c libc3/compare.h libc3/buf_parse.c libc3/timespec.h libc3/operator.c libc3/operator.h libc3/sym.c libc3/buf_inspect_u16_decimal.c libc3/buf_inspect_u16_decimal.h libc3/buf_inspect_u16_hexadecimal.c libc3/buf_inspect_u16_hexadecimal.h libc3/buf_inspect_u32.c libc3/u8.h libc3/buf_inspect_u32.h libc3/buf_inspect_u32_binary.c libc3/buf_inspect_u32_binary.h libc3/error.c libc3/error.h libc3/error_handler.c libc3/error_handler.h libc3/eval.c libc3/eval.h libc3/buf_inspect_u32_octal.c libc3/buf_inspect_u32_octal.h libc3/buf_inspect_u32_decimal.c libc3/buf_inspect_u32_decimal.h libc3/buf_inspect_u32_hexadecimal.c libc3/buf_inspect_u32_hexadecimal.h libc3/buf_inspect_u64.c libc3/buf_inspect_u64.h libc3/buf_inspect_u64_binary.c libc3/buf_inspect_u64_binary.h libc3/buf_inspect_u64_octal.c libc3/buf_parse_s8.h libc3/fact.c libc3/fact.h libc3/facts_cursor.c libc3/buf_inspect_u64_octal.h libc3/buf_inspect_u64_decimal.c libc3/buf_inspect_u64_decimal.h libc3/buf_inspect_u64_hexadecimal.c libc3/buf_inspect_u64_hexadecimal.h libc3/buf_inspect_uw.c libc3/buf_inspect_uw.h libc3/buf_inspect_uw_binary.c libc3/buf_inspect_uw_binary.h libc3/buf_inspect_uw_octal.c libc3/buf_inspect_uw_octal.h libc3/buf_inspect_uw_decimal.c libc3/buf_inspect_uw_decimal.h libc3/facts_cursor.h libc3/facts_spec.c libc3/facts_spec.h libc3/facts_spec_cursor.h libc3/buf_inspect_uw_hexadecimal.c libc3/buf_inspect_uw_hexadecimal.h libc3/buf_parse_s16.c libc3/buf_parse_s16.h libc3/buf_parse_s32.c libc3/buf_parse_s32.h libc3/buf_parse_s64.c libc3/buf_parse_s64.h libc3/buf_parse_sw.c libc3/buf_parse_sw.h libc3/buf_parse_u8.c libc3/buf_parse_u8.h libc3/buf_parse_u16.c libc3/buf_parse_u16.h libc3/buf_parse_u32.c libc3/set__fact.c libc3/facts_with.c libc3/facts_with.h libc3/facts_with_cursor.c libc3/buf_parse_u32.h libc3/buf_parse_u64.c libc3/buf_parse_u64.h libc3/buf_parse_uw.c libc3/buf_parse_uw.h libc3/set__fact.h libc3/set__tag.c libc3/set__tag.h libc3/set_cursor__fact.c libc3/set_cursor__fact.h libc3/set_cursor__tag.c libc3/set_cursor__tag.h libc3/set_item__fact.c libc3/set_item__fact.h libc3/set_item__tag.c libc3/set_item__tag.h libc3/skiplist__fact.c libc3/facts_with_cursor.h libc3/float.h libc3/frame.c libc3/frame.h libc3/skiplist__fact.h libc3/skiplist_node__fact.c libc3/skiplist_node__fact.h libc3/types.h libc3/f64.h libc3/f32.c libc3/f64.c libc3/hash.h libc3/ident.h libc3/integer.c libc3/integer.h libc3/io.c libc3/io.h libc3/list.c libc3/list.h libc3/log.c libc3/log.h libc3/buf_inspect_s.h.in libc3/module.c libc3/str.c libc3/module.h libc3/buf_parse_u.c.in libc3/quote.c libc3/quote.h libc3/s32.h libc3/s64.c libc3/s64.h libc3/sw.c libc3/sw.h libc3/set.c.in libc3/set.h.in libc3/buf_inspect_s_base.h.in libc3/sha1.h libc3/set_cursor.c.in libc3/set_cursor.h.in libc3/buf_inspect.h libc3/set_item.c.in libc3/set_item.h.in libc3/tag.c libc3/s.h.in libc3/sign.c libc3/sign.h libc3/skiplist.c.in libc3/skiplist.h.in libc3/type.h libc3/skiplist_node.c.in libc3/skiplist_node.h.in libc3/str.h libc3/s8.c libc3/ucd.c libc3/sym.h libc3/tuple.c libc3/tuple.h libc3/type.c libc3/ucd.h libc3/buf_parse_s.c.in libc3/buf_parse_s.h.in libc3/buf_inspect_s.c.in libc3/buf_parse_u.h.in libc3/env.c libc3/ident.c libc3/buf_inspect_s_base.c.in libc3/buf_inspect_u.c.in libc3/buf_inspect_u.h.in libc3/env.h libc3/s8.h libc3/s16.c libc3/buf_inspect_u_base.c.in libc3/buf_inspect_u_base.h.in libc3/timespec.c libc3/s16.h libc3/s32.c libc3/u16.h libc3/u.c.in libc3/fn.c libc3/u.h.in libc3/fn.h libc3/tag.h libc3/u32.h libc3/u64.h libc3/uw.h libc3/u16.c libc3/u32.c libc3/u64.c libc3/uw.c libc3/ptag.h libc3/f32.h libc3/fn_clause.h libc3/s.c.in libc3/fn_clause.c libc3/ptag.c libc3/var.h libc3/var.c libc3/facts.c libc3/u8.c libc3/facts.h libc3/file.c libc3/c3_main.h libc3/file.h libc3/hash.c test/buf_inspect_test.c test/bool_test.c test/buf_parse_test.c test/facts_test.c test/buf_file_test.c test/list_test.c test/test.c test/test.h test/buf_parse_test_u8.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_test.c test/buf_parse_test_u64.c test/call_test.c test/facts_cursor_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_with_test.c test/hash_test.c test/ident_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/array_test.c test/fn_test.c test/tuple_test.c test/types_test.c test/libc3_test.c ucd2c/ucd.h ucd2c/ucd2c.c '
+C3_CONFIGURES='c3c/configure c3s/configure c3s/update_sources ic3/configure ic3/update_sources libc3/update_sources libc3/configure libc3/window/cairo/xcb/configure libc3/window/cairo/xcb/demo/configure libc3/window/cairo/xcb/demo/update_sources libc3/window/cairo/xcb/update_sources libc3/window/configure libtommath/configure libtommath/update_sources test/configure test/update_sources ucd2c/configure '
+C3_MAKEFILES='c3c/Makefile c3s/Makefile ic3/Makefile libc3/Makefile libc3/gen.mk libc3/window/cairo/xcb/Makefile libc3/window/cairo/xcb/demo/Makefile libc3/window/Makefile libtommath/Makefile test/Makefile ucd2c/Makefile '
+C3_C_SOURCES='c3c/c3c.c c3s/buf_readline.c c3s/c3s.c c3s/buf_readline.h ic3/buf_linenoise.c ic3/ic3.c ic3/buf_linenoise.h ic3/linenoise.c libc3/buf_inspect_s8_decimal.h libc3/fn.h libc3/buf_inspect_s8_hexadecimal.c libc3/sym.c libc3/buf_inspect_s8_hexadecimal.h libc3/buf_inspect_s16.c libc3/buf_inspect_s16.h libc3/buf_inspect_s16_binary.c libc3/buf_inspect_s16_binary.h libc3/buf_inspect_s16_octal.c libc3/buf_inspect_s16_octal.h libc3/buf_inspect_s16_decimal.c libc3/buf_inspect_s16_decimal.h libc3/buf_inspect_s16_hexadecimal.c libc3/s8.c libc3/binding.c libc3/binding.h libc3/buf_inspect_s8.c libc3/facts_with_cursor.c libc3/array.h libc3/buf.c libc3/buf_parse.c libc3/integer.h libc3/types.h libc3/type.c libc3/buf_inspect_s8.h libc3/buf_inspect_s8_binary.c libc3/buf_inspect_s8_binary.h libc3/buf_inspect_s8_octal.c libc3/buf_inspect_s8_octal.h libc3/buf_inspect_s8_decimal.c libc3/buf_inspect.c libc3/buf_file.c libc3/buf_file.h libc3/bool.c libc3/buf_inspect_s16_hexadecimal.h libc3/io.h libc3/buf_inspect_s32.c libc3/buf_inspect_s32.h libc3/buf_inspect_s32_binary.c libc3/buf_inspect_s32_binary.h libc3/buf_inspect_s32_octal.c libc3/buf_inspect_s32_octal.h libc3/buf_inspect_s32_decimal.c libc3/buf_inspect_s32_decimal.h libc3/buf_inspect_s32_hexadecimal.c libc3/buf_inspect_s32_hexadecimal.h libc3/buf_inspect_s64.c libc3/buf_inspect_s64.h libc3/buf_inspect_s64_binary.c libc3/io.c libc3/abs.h libc3/fn_clause.c libc3/buf_inspect_s64_binary.h libc3/buf_inspect_s64_octal.c libc3/buf_inspect_s64_octal.h libc3/buf_inspect_s64_decimal.c libc3/buf_inspect_s64_decimal.h libc3/buf_inspect_s64_hexadecimal.c libc3/buf_inspect_s64_hexadecimal.h libc3/buf_inspect_sw.c libc3/buf_inspect_sw.h libc3/buf_inspect_sw_binary.c libc3/set__fact.c libc3/file.c libc3/ceiling.c libc3/buf_parse_c.c libc3/buf_parse_c.h libc3/buf_inspect_sw_binary.h libc3/buf_save.c libc3/buf_inspect_sw_octal.c libc3/buf_parse.h libc3/compare.c libc3/buf_inspect_sw_octal.h libc3/buf_inspect_sw_decimal.c libc3/buf_inspect_sw_decimal.h libc3/buf_inspect_sw_hexadecimal.c libc3/buf_inspect_sw_hexadecimal.h libc3/call.h libc3/buf_inspect_u8.c libc3/buf_inspect_u8.h libc3/buf_parse_s8.c libc3/character.c libc3/buf_save.h libc3/fact.h libc3/buf_inspect_u8_binary.c libc3/error.c libc3/buf_inspect_u8_binary.h libc3/buf_inspect_u8_octal.c libc3/buf_inspect_u8_octal.h libc3/buf_inspect_u8_decimal.c libc3/buf_inspect_u8_decimal.h libc3/buf_inspect_u8_hexadecimal.c libc3/buf_inspect_u8_hexadecimal.h libc3/buf_inspect_u16.c libc3/buf_inspect_u16.h libc3/buf_inspect_u16_binary.c libc3/buf_inspect_u16_binary.h libc3/buf_inspect_u16_octal.c libc3/buf_parse_s8.h libc3/error.h libc3/character.h libc3/compare.h libc3/buf_inspect_u16_octal.h libc3/buf_inspect_u16_decimal.c libc3/tag.h libc3/sign.h libc3/buf.h libc3/buf_inspect_u16_decimal.h libc3/buf_inspect_u16_hexadecimal.c libc3/buf_inspect_u16_hexadecimal.h libc3/buf_inspect_u32.c libc3/buf_inspect_u32.h libc3/buf_inspect_u32_binary.c libc3/buf_inspect_u32_binary.h libc3/buf_inspect_u32_octal.c libc3/set__fact.h libc3/buf_inspect_u32_octal.h libc3/error_handler.c libc3/set_cursor.c.in libc3/set_cursor.h.in libc3/set_item.c.in libc3/set_item.h.in libc3/buf_inspect_u32_decimal.c libc3/buf_inspect_u32_decimal.h libc3/buf_inspect_u32_hexadecimal.c libc3/buf_inspect_u32_hexadecimal.h libc3/buf_inspect_u64.c libc3/buf_inspect_u64.h libc3/buf_inspect_u64_binary.c libc3/buf_inspect_u64_binary.h libc3/buf_inspect_u64_octal.c libc3/buf_inspect_u64_octal.h libc3/s8.h libc3/error_handler.h libc3/buf_inspect_u64_decimal.c libc3/eval.c libc3/eval.h libc3/buf_inspect_u64_decimal.h libc3/fact.c libc3/facts_cursor.c libc3/ceiling.h libc3/buf_inspect_u64_hexadecimal.c libc3/buf_inspect_u64_hexadecimal.h libc3/buf_inspect_uw.c libc3/buf_inspect_uw.h libc3/buf_inspect_uw_binary.c libc3/buf_inspect_uw_binary.h libc3/buf_inspect_uw_octal.c libc3/buf_inspect_uw_octal.h libc3/buf_inspect_uw_decimal.c libc3/buf_parse_s16.c libc3/facts_cursor.h libc3/facts_spec.c libc3/frame.h libc3/sign.c libc3/skiplist.c.in libc3/buf_inspect_uw_decimal.h libc3/buf_inspect_uw_hexadecimal.c libc3/buf_inspect_uw_hexadecimal.h libc3/buf_parse_s16.h libc3/buf_parse_s32.c libc3/buf_parse_s32.h libc3/buf_parse_s64.c libc3/buf_parse_s64.h libc3/buf_parse_sw.c libc3/buf_parse_sw.h libc3/buf_parse_u8.c libc3/buf_parse_u8.h libc3/buf_parse_u16.c libc3/timespec.h libc3/buf_parse_u16.h libc3/buf_parse_u32.c libc3/buf_parse_u32.h libc3/facts_spec.h libc3/facts_spec_cursor.c libc3/buf_parse_u64.c libc3/facts_spec_cursor.h libc3/buf_parse_u64.h libc3/buf_parse_uw.c libc3/buf_parse_uw.h libc3/set__tag.c libc3/set__tag.h libc3/set_cursor__fact.c libc3/set_cursor__fact.h libc3/set_cursor__tag.c libc3/set_cursor__tag.h libc3/set_item__fact.c libc3/set_item__fact.h libc3/operator.c libc3/set_item__tag.c libc3/s16.c libc3/c3.c libc3/set_item__tag.h libc3/facts_with.c libc3/facts_with.h libc3/skiplist__fact.c libc3/skiplist__fact.h libc3/buf_parse_u.c.in libc3/fn_clause.h libc3/skiplist_node__fact.c libc3/skiplist_node__fact.h libc3/s16.h libc3/s32.c libc3/s32.h libc3/s64.c libc3/s64.h libc3/sw.c libc3/sw.h libc3/u8.c libc3/u8.h libc3/u16.c libc3/u16.h libc3/u32.c libc3/u32.h libc3/u64.c libc3/module.c libc3/abs.c libc3/u64.h libc3/uw.c libc3/facts_with_cursor.h libc3/uw.h libc3/ident.h libc3/str.c libc3/c_types.h libc3/buf_parse_s.c.in libc3/array.c libc3/buf_inspect.h libc3/set.c.in libc3/list.c libc3/log.c libc3/log.h libc3/sym.h libc3/c3.h libc3/module.h libc3/quote.c libc3/quote.h libc3/env.c libc3/fn.c libc3/set.h.in libc3/tag.c libc3/skiplist.h.in libc3/facts.h libc3/sha1.h libc3/skiplist_node.c.in libc3/skiplist_node.h.in libc3/tuple.c libc3/tuple.h libc3/ucd.c libc3/ucd.h libc3/hash.h libc3/license.c libc3/str.h libc3/type.h libc3/buf_parse_s.h.in libc3/buf_parse_u.h.in libc3/cfn.c libc3/operator.h libc3/float.h libc3/f64.c libc3/hash.c libc3/frame.c libc3/buf_inspect_s_base.c.in libc3/buf_inspect_s.c.in libc3/buf_inspect_s.h.in libc3/buf_inspect_u.c.in libc3/buf_inspect_u_base.c.in libc3/buf_inspect_u.h.in libc3/c3_main.h libc3/call.c libc3/arg.c libc3/f32.c libc3/buf_inspect_u_base.h.in libc3/env.h libc3/integer.c libc3/cfn.h libc3/f32.h libc3/facts.c libc3/file.h libc3/s.c.in libc3/s.h.in libc3/u.c.in libc3/u.h.in libc3/ptag.c libc3/ptag.h libc3/ident.c libc3/list.h libc3/arg.h libc3/timespec.c libc3/buf_inspect_s_base.h.in libc3/window/cairo/c3_window_cairo_demo.c libc3/window/cairo/c3_window_cairo_demo.h libc3/window/cairo/types.h libc3/window/cairo/window_cairo.h libc3/window/cairo/xcb/demo/c3_window_cairo_xcb_demo.c libc3/window/cairo/xcb/demo/c3_window_cairo_demo.c libc3/window/cairo/xcb/window_cairo_xcb.c libc3/window/cairo/xcb/window_cairo_xcb.h libc3/window/cairo/xcb/config.h libc3/window/cairo/window_cairo.c libc3/window/types.h libc3/var.c libc3/f64.h libc3/bool.h libc3/var.h test/facts_with_test.c test/set__fact_test.c test/test.c test/fn_test.c test/test.h test/buf_parse_test.c test/array_test.c test/facts_cursor_test.c test/set__tag_test.c test/tag_test.c test/sym_test.c test/tag_test.h test/tuple_test.c test/types_test.c test/call_test.c test/compare_test.c test/skiplist__fact_test.c test/fact_test.c test/compare_test.h test/str_test.c test/facts_test.c test/hash_test.c test/list_test.c test/ident_test.c test/libc3_test.c test/buf_inspect_test.c test/bool_test.c test/cfn_test.c test/buf_parse_test_s8.c test/buf_parse_test_s32.c test/buf_parse_test_s64.c test/buf_parse_test_u16.c test/buf_parse_test_u8.c test/buf_parse_test_u32.c test/buf_parse_test_u64.c test/env_test.c test/buf_parse_test.h test/buf_test.c test/fact_test.h test/buf_file_test.c test/character_test.c test/buf_parse_test_su.h test/buf_parse_test_s16.c ucd2c/ucd.h ucd2c/ucd2c.c '
diff --git a/update_sources b/update_sources
index 3e99e34..472d7d0 100755
--- a/update_sources
+++ b/update_sources
@@ -25,6 +25,8 @@ update_sources_sh
( cd libtommath && ./update_sources; )
( cd libc3 && ./update_sources; )
+( cd libc3/window/cairo/xcb && ./update_sources; )
+( cd libc3/window/cairo/xcb/demo && ./update_sources; )
( cd ic3 && ./update_sources; )
( cd c3s && ./update_sources; )
( cd test && ./update_sources; )