diff --git a/Makefile b/Makefile
index 5550ab5..a135173 100644
--- a/Makefile
+++ b/Makefile
@@ -11,6 +11,7 @@
## THIS SOFTWARE.
build: gen
+build:
${GMAKE} -C libffi all
${MAKE} -C libtommath build
${MAKE} -C ucd2c build
@@ -20,6 +21,7 @@ build: gen
${MAKE} -C test build
all: gen
+all:
${GMAKE} -C libffi all
${MAKE} -C libtommath all
${MAKE} -C ucd2c all
@@ -53,6 +55,7 @@ clean_cov:
${MAKE} -C test clean_cov
cov: gen
+cov:
${GMAKE} -C libffi all
${MAKE} -C libtommath cov
${MAKE} -C libc3 cov
@@ -69,6 +72,7 @@ debug:
${MAKE} -C test debug
demo: build
+demo:
${MAKE} -C libc3 demo
dist: c3-${C3_VERSION}.tar.gz
@@ -96,12 +100,15 @@ gcovr:
if [ -d "$$HOME/Downloads/c3_gcovr" ]; then bin/gcovr-to-downloads; fi
gdb_demo: debug
+gdb_demo:
${MAKE} -C libc3 gdb_demo
gdb_ic3: debug
+gdb_ic3:
${MAKE} -C ic3 gdb_ic3
gdb_test: debug
+gdb_test:
${MAKE} -C test gdb_test
gen:
@@ -132,22 +139,28 @@ license:
update_header license.h ${C3_C_SOURCES}
lldb_ic3: debug
+lldb_ic3:
${MAKE} -C ic3 lldb_ic3
lldb_test: debug
+lldb_test:
${MAKE} -C test lldb_test
test: build
+test:
${MAKE} -C test test
if ${HAVE_ASAN}; then ${MAKE} test_asan; fi
test_asan: asan
+test_asan:
${MAKE} -C test test_asan
test_cov: cov clean_cov
+test_cov:
${MAKE} -C test test_cov
test_debug: debug
+test_debug:
${MAKE} -C test test_debug
test_gcovr:
@@ -157,24 +170,31 @@ test_gcovr:
${MAKE} gcovr
test_ic3: build
+test_ic3:
${MAKE} -C test test_ic3
test_ic3_asan: asan
+test_ic3_asan:
${MAKE} -C test test_ic3_asan
test_ic3_cov: cov
+test_ic3_cov:
${MAKE} -C test test_ic3_cov
test_ic3_debug: debug
+test_ic3_debug:
${MAKE} -C test test_ic3_debug
test_libc3: build
+test_libc3:
${MAKE} -C test test_libc3
test_libc3_cov: cov
+test_libc3_cov:
${MAKE} -C test test_libc3_cov
test_libc3_debug: debug
+test_libc3_debug:
${MAKE} -C test test_libc3_debug
.PHONY: \
diff --git a/config.subr b/config.subr
index b47437c..db04157 100644
--- a/config.subr
+++ b/config.subr
@@ -119,7 +119,7 @@ env_reset() {
}
objc_o_rule() {
- echo "$1" | sed -e 's/^\(.*\)\.m$/\1.o: \1.c/'
+ echo "$1" | sed -e 's/^\(.*\)\.m$/\1.o: \1.m/'
echo "$1" | sed -e 's/^\(.*\)\.m$/\1.o: Makefile config.mk/'
}
diff --git a/libc3/window/Makefile b/libc3/window/Makefile
index 8594686..2f1e261 100644
--- a/libc3/window/Makefile
+++ b/libc3/window/Makefile
@@ -10,9 +10,8 @@
## AUTHOR BE CONSIDERED LIABLE FOR THE USE AND PERFORMANCE OF
## THIS SOFTWARE.
-include config.mk
-
build: ${LIB}
+build:
if ${HAVE_CAIRO}; then ${MAKE} -C cairo build; fi
all:
@@ -22,6 +21,7 @@ all:
if ${HAVE_ASAN}; then ${MAKE} asan; fi
asan: ${LIB_ASAN}
+asan:
if ${HAVE_CAIRO}; then ${MAKE} -C cairo asan; fi
clean:
@@ -31,12 +31,15 @@ clean_cov:
if ${HAVE_CAIRO}; then ${MAKE} -C cairo clean_cov; fi
cov: ${LIB_COV}
+cov:
if ${HAVE_CAIRO}; then ${MAKE} -C cairo cov; fi
debug: ${LIB_DEBUG}
+debug:
if ${HAVE_CAIRO}; then ${MAKE} -C cairo debug; fi
demo: build
+demo:
if ${HAVE_CAIRO}; then ${MAKE} -C cairo demo; fi
distclean:
@@ -46,6 +49,7 @@ gcovr:
if ${HAVE_CAIRO}; then ${MAKE} -C cairo gcovr; fi
gdb_demo: debug
+gdb_demo:
if ${HAVE_CAIRO}; then ${MAKE} -C cairo gdb_demo; fi
install:
@@ -69,3 +73,5 @@ update_sources:
install \
test \
update_sources
+
+include config.mk
diff --git a/libc3/window/cairo/Makefile b/libc3/window/cairo/Makefile
index c4886da..79cd361 100644
--- a/libc3/window/cairo/Makefile
+++ b/libc3/window/cairo/Makefile
@@ -10,9 +10,8 @@
## AUTHOR BE CONSIDERED LIABLE FOR THE USE AND PERFORMANCE OF
## THIS SOFTWARE.
-include config.mk
-
build: ${LIB}
+build:
if ${HAVE_SWIFT}; then ${MAKE} -C quartz build; fi
if ${HAVE_XCB}; then ${MAKE} -C xcb build; fi
@@ -23,6 +22,7 @@ all:
if ${HAVE_ASAN}; then ${MAKE} asan; fi
asan: ${LIB_ASAN}
+asan:
if ${HAVE_SWIFT}; then ${MAKE} -C quartz asan; fi
if ${HAVE_XCB}; then ${MAKE} -C xcb asan; fi
@@ -35,14 +35,17 @@ clean_cov:
if ${HAVE_XCB}; then ${MAKE} -C xcb clean_cov; fi
cov: ${LIB_COV}
+cov:
if ${HAVE_SWIFT}; then ${MAKE} -C quartz cov; fi
if ${HAVE_XCB}; then ${MAKE} -C xcb cov; fi
debug: ${LIB_DEBUG}
+debug:
if ${HAVE_SWIFT}; then ${MAKE} -C quartz debug; fi
if ${HAVE_XCB}; then ${MAKE} -C xcb debug; fi
demo: build
+demo:
if ${HAVE_SWIFT}; then ${MAKE} -C quartz demo; fi
if ${HAVE_XCB}; then ${MAKE} -C xcb demo; fi
@@ -55,6 +58,7 @@ gcovr:
if ${HAVE_XCB}; then ${MAKE} -C xcb gcovr; fi
gdb_demo: debug
+gdb_demo:
if ${HAVE_SWIFT}; then ${MAKE} -C quartz gdb_demo; fi
if ${HAVE_XCB}; then ${MAKE} -C xcb gdb_demo; fi
@@ -82,3 +86,5 @@ update_sources:
install \
test \
update_sources
+
+include config.mk
diff --git a/libc3/window/cairo/configure b/libc3/window/cairo/configure
index dce9ec2..6f8d91f 100755
--- a/libc3/window/cairo/configure
+++ b/libc3/window/cairo/configure
@@ -27,11 +27,6 @@ echo "LIB_ASAN = $LIB_ASAN" >> ${CONFIG_MK}
echo "LIB_COV = $LIB_COV" >> ${CONFIG_MK}
echo "LIB_DEBUG = $LIB_DEBUG" >> ${CONFIG_MK}
-#LIBC3=../../libc3.la
-#LIBC3_ASAN=../../libc3_asan.la
-#LIBC3_COV=../../libc3_cov.la
-#LIBC3_DEBUG=../../libc3_debug.la
-
. ./sources.sh
OBJECTS="$(c2ext .main.lo "$SOURCES")"
diff --git a/libc3/window/cairo/quartz/configure b/libc3/window/cairo/quartz/configure
index a2e446b..8a077f1 100755
--- a/libc3/window/cairo/quartz/configure
+++ b/libc3/window/cairo/quartz/configure
@@ -30,17 +30,21 @@ echo "LIB_DEBUG = $LIB_DEBUG" >> ${CONFIG_MK}
. ./sources.sh
OBJECTS="$(c2ext .main.lo "$SOURCES")"
+OBJECTS="$OBJECTS $(objc2ext .main.lo "$OBJC_SOURCES")"
echo "OBJECTS = $OBJECTS" >> ${CONFIG_MK}
OBJECTS_ASAN="$(c2ext .asan.lo "$SOURCES")"
+OBJECTS_ASAN="$OBJECTS_ASAN $(objc2ext .asan.lo "$OBJC_SOURCES")"
echo "OBJECTS_ASAN = $OBJECTS_ASAN" >> ${CONFIG_MK}
if $HAVE_GCOV; then
OBJECTS_COV="$(c2ext .cov.lo "$SOURCES")"
+ OBJECTS_COV="$OBJECTS_COV $(objc2ext .cov.lo "$OBJC_SOURCES")"
echo "OBJECTS_COV = $OBJECTS_COV" >> ${CONFIG_MK}
fi
OBJECTS_DEBUG="$(c2ext .debug.lo "$SOURCES")"
+OBJECTS_DEBUG="$OBJECTS_DEBUG $(objc2ext .debug.lo "$OBJC_SOURCES")"
echo "OBJECTS_DEBUG = $OBJECTS_DEBUG" >> ${CONFIG_MK}
# Default config
@@ -151,7 +155,7 @@ for SRC in $OBJC_SOURCES; do
echo >> ${CONFIG_MK}
SRC_LO="$(objc2ext .main.lo "$SRC")"
objc_ext_rule .main.lo "$SRC" >> ${CONFIG_MK}
- echo " ${LIBTOOL} --tag=OBJCC --mode=compile \${OBJCC} \${CFLAGS} -c $SRC -o $SRC_LO" >> ${CONFIG_MK}
+ echo " ${LIBTOOL} --tag=CC --mode=compile \${OBJCC} \${CPPFLAGS} \${CFLAGS} -c $SRC -o $SRC_LO" >> ${CONFIG_MK}
done
update_config_mk
diff --git a/libc3/window/cairo/quartz/content_view.swift b/libc3/window/cairo/quartz/content_view.swift
deleted file mode 100644
index 0b85d7f..0000000
--- a/libc3/window/cairo/quartz/content_view.swift
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// ContentView.swift
-// libc3_window_cairo_quartz
-//
-// Created by Thomas de Grivel on 14/11/2023.
-//
-
-import SwiftUI
-
-struct ContentView: View {
- var body: some View {
- CustomCairoSwiftUIView()
- .frame(maxWidth: .infinity, maxHeight: .infinity)
- }
-}
-
-#Preview {
- ContentView()
-}
diff --git a/libc3/window/cairo/quartz/custom_cairo_swiftui_view.swift b/libc3/window/cairo/quartz/custom_cairo_swiftui_view.swift
deleted file mode 100644
index 223ffc3..0000000
--- a/libc3/window/cairo/quartz/custom_cairo_swiftui_view.swift
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-// custom_cairo_swiftui_view.swift
-// libc3_window_cairo_quartz
-//
-// Created by Thomas de Grivel on 14/11/2023.
-//
-
-import SwiftUI
-
-struct CustomCairoSwiftUIView : NSViewRepresentable {
-
- func makeNSView(context: Context) -> CustomCairoView {
- return CustomCairoView();
- }
-
- func updateNSView(_ nsView: CustomCairoView, context: Context) {
- puts("updateNSView");
- }
-}
diff --git a/libc3/window/cairo/quartz/custom_cairo_view.h b/libc3/window/cairo/quartz/custom_cairo_view.h
deleted file mode 100644
index cb22840..0000000
--- a/libc3/window/cairo/quartz/custom_cairo_view.h
+++ /dev/null
@@ -1,17 +0,0 @@
-//
-// custom_cairo_view.h
-// libc3_window_cairo_quartz
-//
-// Created by Thomas de Grivel on 14/11/2023.
-//
-
-#ifndef custom_cairo_view_h
-#define custom_cairo_view_h
-
-#import <Cocoa/Cocoa.h>
-
-@interface CustomCairoView : NSView
-
-@end
-
-#endif /* custom_cairo_view_h */
diff --git a/libc3/window/cairo/quartz/custom_cairo_view.m b/libc3/window/cairo/quartz/custom_cairo_view.m
deleted file mode 100644
index a12f957..0000000
--- a/libc3/window/cairo/quartz/custom_cairo_view.m
+++ /dev/null
@@ -1,25 +0,0 @@
-//
-// custom_cairo_view.m
-// libc3_window_cairo_quartz
-//
-// Created by Thomas de Grivel on 14/11/2023.
-//
-
-#import <Foundation/Foundation.h>
-#import "custom_cairo_view.h"
-#import <cairo/cairo-quartz.h>
-
-@implementation CustomCairoView
-
-- (void) drawRect:(NSRect)dirtyRect {
- [super drawRect:dirtyRect];
- cairo_surface_t *surface =
- cairo_quartz_surface_create_for_cg_context([[NSGraphicsContext currentContext] CGContext], self.bounds.size.width, self.bounds.size.height);
- cairo_t *cr = cairo_create(surface);
-
- cairo_destroy(cr);
- cairo_surface_destroy(surface);
-}
-
-@end
-
diff --git a/libc3/window/cairo/quartz/demo.xcodeproj/project.xcworkspace/xcuserdata/thodg.xcuserdatad/UserInterfaceState.xcuserstate b/libc3/window/cairo/quartz/demo.xcodeproj/project.xcworkspace/xcuserdata/thodg.xcuserdatad/UserInterfaceState.xcuserstate
index d832dc3..73dbe44 100644
Binary files a/libc3/window/cairo/quartz/demo.xcodeproj/project.xcworkspace/xcuserdata/thodg.xcuserdatad/UserInterfaceState.xcuserstate and b/libc3/window/cairo/quartz/demo.xcodeproj/project.xcworkspace/xcuserdata/thodg.xcuserdatad/UserInterfaceState.xcuserstate differ
diff --git a/libc3/window/cairo/quartz/demo/c3_window_cairo_quartz_demo b/libc3/window/cairo/quartz/demo/c3_window_cairo_quartz_demo
new file mode 100755
index 0000000..a0b7e1b
--- /dev/null
+++ b/libc3/window/cairo/quartz/demo/c3_window_cairo_quartz_demo
@@ -0,0 +1,210 @@
+#! /bin/sh
+
+# c3_window_cairo_quartz_demo - temporary wrapper script for .libs/c3_window_cairo_quartz_demo
+# Generated by libtool (GNU libtool) 2.4.7
+#
+# The c3_window_cairo_quartz_demo program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='s|\([`"$\\]\)|\\\1|g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command=""
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+ # install mode needs the following variables:
+ generated_by_libtool_version='2.4.7'
+ notinst_deplibs=' ../libc3_window_cairo_quartz.la /Users/thodg/c/thodg/c3-lang/c3/libc3/window/cairo/libc3_window_cairo.la /Users/thodg/c/thodg/c3-lang/c3/libc3/window/libc3_window.la /Users/thodg/c/thodg/c3-lang/c3/libc3/libc3.la /Users/thodg/c/thodg/c3-lang/c3/libffi/libffi.la'
+else
+ # When we are sourced in execute mode, $file and $ECHO are already set.
+ if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+ file="$0"
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+ eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+}
+ ECHO="printf %s\\n"
+ fi
+
+# Very basic option parsing. These options are (a) specific to
+# the libtool wrapper, (b) are identical between the wrapper
+# /script/ and the wrapper /executable/ that is used only on
+# windows platforms, and (c) all begin with the string --lt-
+# (application programs are unlikely to have options that match
+# this pattern).
+#
+# There are only two supported options: --lt-debug and
+# --lt-dump-script. There is, deliberately, no --lt-help.
+#
+# The first argument to this parsing function should be the
+# script's /opt/homebrew/bin/glibtool value, followed by no.
+lt_option_debug=
+func_parse_lt_options ()
+{
+ lt_script_arg0=$0
+ shift
+ for lt_opt
+ do
+ case "$lt_opt" in
+ --lt-debug) lt_option_debug=1 ;;
+ --lt-dump-script)
+ lt_dump_D=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%/[^/]*$%%'`
+ test "X$lt_dump_D" = "X$lt_script_arg0" && lt_dump_D=.
+ lt_dump_F=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%^.*/%%'`
+ cat "$lt_dump_D/$lt_dump_F"
+ exit 0
+ ;;
+ --lt-*)
+ $ECHO "Unrecognized --lt- option: '$lt_opt'" 1>&2
+ exit 1
+ ;;
+ esac
+ done
+
+ # Print the debug banner immediately:
+ if test -n "$lt_option_debug"; then
+ echo "c3_window_cairo_quartz_demo:c3_window_cairo_quartz_demo:$LINENO: libtool wrapper (GNU libtool) 2.4.7" 1>&2
+ fi
+}
+
+# Used when --lt-debug. Prints its arguments to stdout
+# (redirection is the responsibility of the caller)
+func_lt_dump_args ()
+{
+ lt_dump_args_N=1;
+ for lt_arg
+ do
+ $ECHO "c3_window_cairo_quartz_demo:c3_window_cairo_quartz_demo:$LINENO: newargv[$lt_dump_args_N]: $lt_arg"
+ lt_dump_args_N=`expr $lt_dump_args_N + 1`
+ done
+}
+
+# Core function for launching the target application
+func_exec_program_core ()
+{
+
+ if test -n "$lt_option_debug"; then
+ $ECHO "c3_window_cairo_quartz_demo:c3_window_cairo_quartz_demo:$LINENO: newargv[0]: $progdir/$program" 1>&2
+ func_lt_dump_args ${1+"$@"} 1>&2
+ fi
+ exec "$progdir/$program" ${1+"$@"}
+
+ $ECHO "$0: cannot exec $program $*" 1>&2
+ exit 1
+}
+
+# A function to encapsulate launching the target application
+# Strips options in the --lt-* namespace from $@ and
+# launches target application with the remaining arguments.
+func_exec_program ()
+{
+ case " $* " in
+ *\ --lt-*)
+ for lt_wr_arg
+ do
+ case $lt_wr_arg in
+ --lt-*) ;;
+ *) set x "$@" "$lt_wr_arg"; shift;;
+ esac
+ shift
+ done ;;
+ esac
+ func_exec_program_core ${1+"$@"}
+}
+
+ # Parse options
+ func_parse_lt_options "$0" ${1+"$@"}
+
+ # Find the directory that this script lives in.
+ thisdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'`
+ test "x$thisdir" = "x$file" && thisdir=.
+
+ # Follow symbolic links until we get to the real thisdir.
+ file=`ls -ld "$file" | /usr/bin/sed -n 's/.*-> //p'`
+ while test -n "$file"; do
+ destdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'`
+
+ # If there was a directory component, then change thisdir.
+ if test "x$destdir" != "x$file"; then
+ case "$destdir" in
+ [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+ *) thisdir="$thisdir/$destdir" ;;
+ esac
+ fi
+
+ file=`$ECHO "$file" | /usr/bin/sed 's%^.*/%%'`
+ file=`ls -ld "$thisdir/$file" | /usr/bin/sed -n 's/.*-> //p'`
+ done
+
+ # Usually 'no', except on cygwin/mingw when embedded into
+ # the cwrapper.
+ WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+ if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+ # special case for '.'
+ if test "$thisdir" = "."; then
+ thisdir=`pwd`
+ fi
+ # remove .libs from thisdir
+ case "$thisdir" in
+ *[\\/].libs ) thisdir=`$ECHO "$thisdir" | /usr/bin/sed 's%[\\/][^\\/]*$%%'` ;;
+ .libs ) thisdir=. ;;
+ esac
+ fi
+
+ # Try to get the absolute directory name.
+ absdir=`cd "$thisdir" && pwd`
+ test -n "$absdir" && thisdir="$absdir"
+
+ program='c3_window_cairo_quartz_demo'
+ progdir="$thisdir/.libs"
+
+
+ if test -f "$progdir/$program"; then
+ # Add our own library path to DYLD_LIBRARY_PATH
+ DYLD_LIBRARY_PATH="/Users/thodg/c/thodg/c3-lang/c3/libc3/window/cairo/quartz/.libs:/Users/thodg/c/thodg/c3-lang/c3/libc3/window/cairo/.libs:/Users/thodg/c/thodg/c3-lang/c3/libc3/window/.libs:/Users/thodg/c/thodg/c3-lang/c3/libc3/.libs:/Users/thodg/c/thodg/c3-lang/c3/libffi/.libs:$DYLD_LIBRARY_PATH"
+
+ # Some systems cannot cope with colon-terminated DYLD_LIBRARY_PATH
+ # The second colon is a workaround for a bug in BeOS R4 sed
+ DYLD_LIBRARY_PATH=`$ECHO "$DYLD_LIBRARY_PATH" | /usr/bin/sed 's/::*$//'`
+
+ export DYLD_LIBRARY_PATH
+
+ if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+ # Run the actual program with our arguments.
+ func_exec_program ${1+"$@"}
+ fi
+ else
+ # The program doesn't exist.
+ $ECHO "$0: error: '$progdir/$program' does not exist" 1>&2
+ $ECHO "This script is just a wrapper for $program." 1>&2
+ $ECHO "See the libtool documentation for more information." 1>&2
+ exit 1
+ fi
+fi
diff --git a/libc3/window/cairo/quartz/demo/c3_window_cairo_quartz_demo.app/Contents/Info.plist b/libc3/window/cairo/quartz/demo/c3_window_cairo_quartz_demo.app/Contents/Info.plist
new file mode 100644
index 0000000..a9fe5db
--- /dev/null
+++ b/libc3/window/cairo/quartz/demo/c3_window_cairo_quartz_demo.app/Contents/Info.plist
@@ -0,0 +1 @@
+xml
diff --git a/libc3/window/cairo/quartz/demo/c3_window_cairo_quartz_demo.app/Contents/MacOS/c3_window_cairo_quartz_demo b/libc3/window/cairo/quartz/demo/c3_window_cairo_quartz_demo.app/Contents/MacOS/c3_window_cairo_quartz_demo
new file mode 100755
index 0000000..f464801
--- /dev/null
+++ b/libc3/window/cairo/quartz/demo/c3_window_cairo_quartz_demo.app/Contents/MacOS/c3_window_cairo_quartz_demo
@@ -0,0 +1,210 @@
+#! /bin/sh
+
+# c3_window_cairo_quartz_demo.app/Contents/MacOS/c3_window_cairo_quartz_demo - temporary wrapper script for .libs/c3_window_cairo_quartz_demo
+# Generated by libtool (GNU libtool) 2.4.7
+#
+# The c3_window_cairo_quartz_demo.app/Contents/MacOS/c3_window_cairo_quartz_demo program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='s|\([`"$\\]\)|\\\1|g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command=""
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+ # install mode needs the following variables:
+ generated_by_libtool_version='2.4.7'
+ notinst_deplibs=' ../libc3_window_cairo_quartz.la /Users/thodg/c/thodg/c3-lang/c3/libc3/window/cairo/libc3_window_cairo.la /Users/thodg/c/thodg/c3-lang/c3/libc3/window/libc3_window.la /Users/thodg/c/thodg/c3-lang/c3/libc3/libc3.la /Users/thodg/c/thodg/c3-lang/c3/libffi/libffi.la'
+else
+ # When we are sourced in execute mode, $file and $ECHO are already set.
+ if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+ file="$0"
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+ eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+}
+ ECHO="printf %s\\n"
+ fi
+
+# Very basic option parsing. These options are (a) specific to
+# the libtool wrapper, (b) are identical between the wrapper
+# /script/ and the wrapper /executable/ that is used only on
+# windows platforms, and (c) all begin with the string --lt-
+# (application programs are unlikely to have options that match
+# this pattern).
+#
+# There are only two supported options: --lt-debug and
+# --lt-dump-script. There is, deliberately, no --lt-help.
+#
+# The first argument to this parsing function should be the
+# script's /opt/homebrew/bin/glibtool value, followed by no.
+lt_option_debug=
+func_parse_lt_options ()
+{
+ lt_script_arg0=$0
+ shift
+ for lt_opt
+ do
+ case "$lt_opt" in
+ --lt-debug) lt_option_debug=1 ;;
+ --lt-dump-script)
+ lt_dump_D=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%/[^/]*$%%'`
+ test "X$lt_dump_D" = "X$lt_script_arg0" && lt_dump_D=.
+ lt_dump_F=`$ECHO "X$lt_script_arg0" | /usr/bin/sed -e 's/^X//' -e 's%^.*/%%'`
+ cat "$lt_dump_D/$lt_dump_F"
+ exit 0
+ ;;
+ --lt-*)
+ $ECHO "Unrecognized --lt- option: '$lt_opt'" 1>&2
+ exit 1
+ ;;
+ esac
+ done
+
+ # Print the debug banner immediately:
+ if test -n "$lt_option_debug"; then
+ echo "c3_window_cairo_quartz_demo:c3_window_cairo_quartz_demo.app/Contents/MacOS/c3_window_cairo_quartz_demo:$LINENO: libtool wrapper (GNU libtool) 2.4.7" 1>&2
+ fi
+}
+
+# Used when --lt-debug. Prints its arguments to stdout
+# (redirection is the responsibility of the caller)
+func_lt_dump_args ()
+{
+ lt_dump_args_N=1;
+ for lt_arg
+ do
+ $ECHO "c3_window_cairo_quartz_demo:c3_window_cairo_quartz_demo.app/Contents/MacOS/c3_window_cairo_quartz_demo:$LINENO: newargv[$lt_dump_args_N]: $lt_arg"
+ lt_dump_args_N=`expr $lt_dump_args_N + 1`
+ done
+}
+
+# Core function for launching the target application
+func_exec_program_core ()
+{
+
+ if test -n "$lt_option_debug"; then
+ $ECHO "c3_window_cairo_quartz_demo:c3_window_cairo_quartz_demo.app/Contents/MacOS/c3_window_cairo_quartz_demo:$LINENO: newargv[0]: $progdir/$program" 1>&2
+ func_lt_dump_args ${1+"$@"} 1>&2
+ fi
+ exec "$progdir/$program" ${1+"$@"}
+
+ $ECHO "$0: cannot exec $program $*" 1>&2
+ exit 1
+}
+
+# A function to encapsulate launching the target application
+# Strips options in the --lt-* namespace from $@ and
+# launches target application with the remaining arguments.
+func_exec_program ()
+{
+ case " $* " in
+ *\ --lt-*)
+ for lt_wr_arg
+ do
+ case $lt_wr_arg in
+ --lt-*) ;;
+ *) set x "$@" "$lt_wr_arg"; shift;;
+ esac
+ shift
+ done ;;
+ esac
+ func_exec_program_core ${1+"$@"}
+}
+
+ # Parse options
+ func_parse_lt_options "$0" ${1+"$@"}
+
+ # Find the directory that this script lives in.
+ thisdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'`
+ test "x$thisdir" = "x$file" && thisdir=.
+
+ # Follow symbolic links until we get to the real thisdir.
+ file=`ls -ld "$file" | /usr/bin/sed -n 's/.*-> //p'`
+ while test -n "$file"; do
+ destdir=`$ECHO "$file" | /usr/bin/sed 's%/[^/]*$%%'`
+
+ # If there was a directory component, then change thisdir.
+ if test "x$destdir" != "x$file"; then
+ case "$destdir" in
+ [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+ *) thisdir="$thisdir/$destdir" ;;
+ esac
+ fi
+
+ file=`$ECHO "$file" | /usr/bin/sed 's%^.*/%%'`
+ file=`ls -ld "$thisdir/$file" | /usr/bin/sed -n 's/.*-> //p'`
+ done
+
+ # Usually 'no', except on cygwin/mingw when embedded into
+ # the cwrapper.
+ WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+ if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+ # special case for '.'
+ if test "$thisdir" = "."; then
+ thisdir=`pwd`
+ fi
+ # remove .libs from thisdir
+ case "$thisdir" in
+ *[\\/].libs ) thisdir=`$ECHO "$thisdir" | /usr/bin/sed 's%[\\/][^\\/]*$%%'` ;;
+ .libs ) thisdir=. ;;
+ esac
+ fi
+
+ # Try to get the absolute directory name.
+ absdir=`cd "$thisdir" && pwd`
+ test -n "$absdir" && thisdir="$absdir"
+
+ program='c3_window_cairo_quartz_demo'
+ progdir="$thisdir/.libs"
+
+
+ if test -f "$progdir/$program"; then
+ # Add our own library path to DYLD_LIBRARY_PATH
+ DYLD_LIBRARY_PATH="/Users/thodg/c/thodg/c3-lang/c3/libc3/window/cairo/quartz/.libs:/Users/thodg/c/thodg/c3-lang/c3/libc3/window/cairo/.libs:/Users/thodg/c/thodg/c3-lang/c3/libc3/window/.libs:/Users/thodg/c/thodg/c3-lang/c3/libc3/.libs:/Users/thodg/c/thodg/c3-lang/c3/libffi/.libs:$DYLD_LIBRARY_PATH"
+
+ # Some systems cannot cope with colon-terminated DYLD_LIBRARY_PATH
+ # The second colon is a workaround for a bug in BeOS R4 sed
+ DYLD_LIBRARY_PATH=`$ECHO "$DYLD_LIBRARY_PATH" | /usr/bin/sed 's/::*$//'`
+
+ export DYLD_LIBRARY_PATH
+
+ if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+ # Run the actual program with our arguments.
+ func_exec_program ${1+"$@"}
+ fi
+ else
+ # The program doesn't exist.
+ $ECHO "$0: error: '$progdir/$program' does not exist" 1>&2
+ $ECHO "This script is just a wrapper for $program." 1>&2
+ $ECHO "See the libtool documentation for more information." 1>&2
+ exit 1
+ fi
+fi
diff --git a/libc3/window/cairo/quartz/demo/c3_window_cairo_quartz_demo.c b/libc3/window/cairo/quartz/demo/c3_window_cairo_quartz_demo.c
new file mode 100644
index 0000000..429adc7
--- /dev/null
+++ b/libc3/window/cairo/quartz/demo/c3_window_cairo_quartz_demo.c
@@ -0,0 +1,78 @@
+/* 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.
+ */
+#include <stdio.h>
+#include <stdlib.h>
+#include <cairo/cairo.h>
+#include <libc3/c3.h>
+#include "../../../window.h"
+#include "../../c3_window_cairo_demo.h"
+#include "../window_cairo_quartz.h"
+
+static bool on_button (s_window_cairo *window, u8 button,
+ sw x, sw y);
+static bool on_key (s_window_cairo *window, uw key);
+
+int main (void)
+{
+ s_window_cairo window;
+ window_cairo_init(&window, 0, 0, 800, 600,
+ "C3.Window.Cairo.Quartz demo",
+ LIBC3_WINDOW_CAIRO_DEMO_SEQUENCE_COUNT);
+ window.button = on_button;
+ window.key = on_key;
+ window.load = c3_window_cairo_demo_load;
+ window.render = c3_window_cairo_demo_render;
+ window.resize = c3_window_cairo_demo_resize;
+ if (! window_cairo_quartz_run(&window))
+ return g_c3_exit_code;
+ return 0;
+}
+
+static bool on_button (s_window_cairo *window, u8 button, sw x, sw y)
+{
+ assert(window);
+ (void) window;
+ (void) button;
+ (void) x;
+ (void) y;
+ printf("on_button: %lu (%ld, %ld)\n", (uw) button, x, y);
+ return true;
+}
+
+static bool on_key (s_window_cairo *window, uw key)
+{
+ assert(window);
+ (void) window;
+ switch (key) {
+ case 9:
+ case 38:
+ g_c3_exit_code = 0;
+ return false;
+ case 100:
+ if (! window_set_sequence_pos((s_window *) window,
+ (window->sequence_pos +
+ window->sequence_count - 1) %
+ window->sequence_count))
+ return false;
+ break;
+ case 102:
+ if (! window_set_sequence_pos((s_window *) window,
+ (window->sequence_pos + 1) %
+ window->sequence_count))
+ return false;
+ break;
+ default:
+ printf("on_key: %lu\n", key);
+ }
+ return true;
+}
diff --git a/libc3/window/cairo/quartz/demo/c3_window_cairo_quartz_demo.swift b/libc3/window/cairo/quartz/demo/c3_window_cairo_quartz_demo.swift
deleted file mode 100644
index 64bb76c..0000000
--- a/libc3/window/cairo/quartz/demo/c3_window_cairo_quartz_demo.swift
+++ /dev/null
@@ -1,17 +0,0 @@
-//
-// libc3_window_cairo_quartzApp.swift
-// libc3_window_cairo_quartz
-//
-// Created by Thomas de Grivel on 14/11/2023.
-//
-
-import SwiftUI
-
-@main
-struct appApp: App {
- var body: some Scene {
- WindowGroup {
- ContentView()
- }
- }
-}
diff --git a/libc3/window/cairo/quartz/demo/configure b/libc3/window/cairo/quartz/demo/configure
index d006069..79ccc89 100755
--- a/libc3/window/cairo/quartz/demo/configure
+++ b/libc3/window/cairo/quartz/demo/configure
@@ -17,45 +17,52 @@ export SRC_TOP="$(dirname "$PWD")"
. ../../../../../config.subr
-PROG=c3_window_cairo_quartz_demo
-PROG_ASAN=c3_window_cairo_quartz_demo_asan
-PROG_COV=c3_window_cairo_quartz_demo_cov
-PROG_DEBUG=c3_window_cairo_quartz_demo_debug
+PROG=c3_window_cairo_quartz_demo.app/Contents/MacOS/c3_window_cairo_quartz_demo
+PROG_ASAN=c3_window_cairo_quartz_demo.app/Contents/MacOS/c3_window_cairo_quartz_demo_asan
+PROG_COV=c3_window_cairo_quartz_demo.app/Contents/MacOS/c3_window_cairo_quartz_demo_cov
+PROG_DEBUG=c3_window_cairo_quartz_demo.app/Contents/MacOS/c3_window_cairo_quartz_demo_debug
echo "PROG = $PROG" >> ${CONFIG_MK}
echo "PROG_ASAN = $PROG_ASAN" >> ${CONFIG_MK}
echo "PROG_COV = $PROG_COV" >> ${CONFIG_MK}
echo "PROG_DEBUG = $PROG_DEBUG" >> ${CONFIG_MK}
+APP=c3_window_cairo_quartz_demo.app
+APP_ASAN=c3_window_cairo_quartz_demo_asan.app
+APP_COV=c3_window_cairo_quartz_demo_cov.app
+APP_DEBUG=c3_window_cairo_quartz_demo_debug.app
+
. ./sources.sh
OBJECTS="$(c2ext .main.lo "$SOURCES")"
+OBJECTS="$OBJECTS $(objc2ext .main.lo "$OBJ_SOURCES")"
+OBJECTS="$OBJECTS $(swift2ext .main.lo "$SWIFT_SOURCES")"
echo "OBJECTS = $OBJECTS" >> ${CONFIG_MK}
OBJECTS_ASAN="$(c2ext .asan.lo "$SOURCES")"
+OBJECTS_ASAN="$OBJECTS_ASAN $(objc2ext .asan.lo "$OBJ_SOURCES")"
+OBJECTS_ASAN="$OBJECTS_ASAN $(swift2ext .asan.lo "$SWIFT_SOURCES")"
echo "OBJECTS_ASAN = $OBJECTS_ASAN" >> ${CONFIG_MK}
if $HAVE_GCOV; then
OBJECTS_COV="$(c2ext .cov.lo "$SOURCES")"
+ OBJECTS_COV="$OBJECTS_COV $(objc2ext .cov.lo "$OBJ_SOURCES")"
+ OBJECTS_COV="$OBJECTS_COV $(swift2ext .cov.lo "$SWIFT_SOURCES")"
echo "OBJECTS_COV = $OBJECTS_COV" >> ${CONFIG_MK}
fi
OBJECTS_DEBUG="$(c2ext .debug.lo "$SOURCES")"
+OBJECTS_DEBUG="$OBJECTS_DEBUG $(objc2ext .debug.lo "$OBJ_SOURCES")"
+OBJECTS_DEBUG="$OBJECTS_DEBUG $(swift2ext .debug.lo "$SWIFT_SOURCES")"
echo "OBJECTS_DEBUG = $OBJECTS_DEBUG" >> ${CONFIG_MK}
-# Default config
-CPPFLAGS="${CPPFLAGS:-}"
-ENV_CFLAGS="${CFLAGS:-}"
-DEFAULT_CFLAGS="-O2 -pipe -fPIC"
-LDFLAGS="${LDFLAGS:-}"
-LIBS="${LIBS:-}"
-
# Common config for all targets
-CFLAGS="$CFLAGS -W -Wall -Werror -std=c99 -pedantic"
CPPFLAGS="$CPPFLAGS -I../../../../../libffi/include -I../../../../.."
+CFLAGS="$CFLAGS -W -Wall -Werror -std=c99 -pedantic"
+LDFLAGS="$LDFLAGS -framework Cocoa"
+LIBS="$LIBS"
config_asan
config_gnu
-LIBS="$LIBS"
# Asan config
CFLAGS_ASAN="$CFLAGS -fsanitize=address -O1 -fno-omit-frame-pointer -g"
@@ -76,6 +83,7 @@ LOCAL_LIBS_DEBUG="../libc3_window_cairo_quartz_debug.la"
LIBS_DEBUG="$LOCAL_LIBS_DEBUG $LIBS"
# Main config
+DEFAULT_CFLAGS="-O2 -pipe -fPIC"
if [ "x$ENV_CFLAGS" = "x" ]; then
CFLAGS="$CFLAGS $DEFAULT_CFLAGS"
fi
diff --git a/libc3/window/cairo/quartz/demo/demo.xcodeproj/project.pbxproj b/libc3/window/cairo/quartz/demo/demo.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..1eedaf0
--- /dev/null
+++ b/libc3/window/cairo/quartz/demo/demo.xcodeproj/project.pbxproj
@@ -0,0 +1,354 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 56;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 2A54171E2B052C0300E42968 /* c3_window_cairo_quartz_demo.c in Sources */ = {isa = PBXBuildFile; fileRef = 2A54171D2B052C0300E42968 /* c3_window_cairo_quartz_demo.c */; };
+ 2A5417202B052C6600E42968 /* libc3_window_cairo_quartz.0.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 2A54171F2B052C6600E42968 /* libc3_window_cairo_quartz.0.dylib */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ 2A54170B2B0528E500E42968 /* c3_window_cairo_quartz_demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = c3_window_cairo_quartz_demo.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 2A54171D2B052C0300E42968 /* c3_window_cairo_quartz_demo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = c3_window_cairo_quartz_demo.c; sourceTree = "<group>"; };
+ 2A54171F2B052C6600E42968 /* libc3_window_cairo_quartz.0.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libc3_window_cairo_quartz.0.dylib; path = ../.libs/libc3_window_cairo_quartz.0.dylib; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 2A5417082B0528E500E42968 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 2A5417202B052C6600E42968 /* libc3_window_cairo_quartz.0.dylib in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 2A5417022B0528E500E42968 = {
+ isa = PBXGroup;
+ children = (
+ 2A54171F2B052C6600E42968 /* libc3_window_cairo_quartz.0.dylib */,
+ 2A54171D2B052C0300E42968 /* c3_window_cairo_quartz_demo.c */,
+ 2A54170C2B0528E500E42968 /* Products */,
+ );
+ sourceTree = "<group>";
+ };
+ 2A54170C2B0528E500E42968 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 2A54170B2B0528E500E42968 /* c3_window_cairo_quartz_demo.app */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 2A54170A2B0528E500E42968 /* c3_window_cairo_quartz_demo */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 2A54171A2B0528E700E42968 /* Build configuration list for PBXNativeTarget "c3_window_cairo_quartz_demo" */;
+ buildPhases = (
+ 2A5417072B0528E500E42968 /* Sources */,
+ 2A5417082B0528E500E42968 /* Frameworks */,
+ 2A5417092B0528E500E42968 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = c3_window_cairo_quartz_demo;
+ productName = c3_window_cairo_quartz_demo;
+ productReference = 2A54170B2B0528E500E42968 /* c3_window_cairo_quartz_demo.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 2A5417032B0528E500E42968 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ BuildIndependentTargetsInParallel = 1;
+ LastSwiftUpdateCheck = 1500;
+ LastUpgradeCheck = 1500;
+ TargetAttributes = {
+ 2A54170A2B0528E500E42968 = {
+ CreatedOnToolsVersion = 15.0.1;
+ };
+ };
+ };
+ buildConfigurationList = 2A5417062B0528E500E42968 /* Build configuration list for PBXProject "demo" */;
+ compatibilityVersion = "Xcode 14.0";
+ developmentRegion = en;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ Base,
+ );
+ mainGroup = 2A5417022B0528E500E42968;
+ productRefGroup = 2A54170C2B0528E500E42968 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 2A54170A2B0528E500E42968 /* c3_window_cairo_quartz_demo */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 2A5417092B0528E500E42968 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 2A5417072B0528E500E42968 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 2A54171E2B052C0300E42968 /* c3_window_cairo_quartz_demo.c in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ 2A5417182B0528E700E42968 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_TESTABILITY = YES;
+ ENABLE_USER_SCRIPT_SANDBOXING = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu17;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
+ MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
+ MTL_FAST_MATH = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)";
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ };
+ name = Debug;
+ };
+ 2A5417192B0528E700E42968 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
+ CLANG_ENABLE_MODULES = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_USER_SCRIPT_SANDBOXING = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu17;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
+ MTL_ENABLE_DEBUG_INFO = NO;
+ MTL_FAST_MATH = YES;
+ SWIFT_COMPILATION_MODE = wholemodule;
+ };
+ name = Release;
+ };
+ 2A54171B2B0528E700E42968 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
+ CODE_SIGN_ENTITLEMENTS = c3_window_cairo_quartz_demo.entitlements;
+ CODE_SIGN_IDENTITY = "Apple Development";
+ CODE_SIGN_STYLE = Automatic;
+ CURRENT_PROJECT_VERSION = 1;
+ DEVELOPMENT_ASSET_PATHS = "\"Preview Content\"";
+ DEVELOPMENT_TEAM = W4AD54MQ5Q;
+ ENABLE_HARDENED_RUNTIME = YES;
+ ENABLE_PREVIEWS = YES;
+ GENERATE_INFOPLIST_FILE = YES;
+ "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES;
+ "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES;
+ "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphoneos*]" = YES;
+ "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphonesimulator*]" = YES;
+ "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphoneos*]" = YES;
+ "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphonesimulator*]" = YES;
+ "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphoneos*]" = UIStatusBarStyleDefault;
+ "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault;
+ INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
+ INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
+ IPHONEOS_DEPLOYMENT_TARGET = 17.0;
+ LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
+ "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
+ MACOSX_DEPLOYMENT_TARGET = 14.0;
+ MARKETING_VERSION = 1.0;
+ OTHER_CFLAGS = (
+ "-I/opt/homebrew/include",
+ "-I../../../../..",
+ "-I../../../../../libffi/include",
+ );
+ OTHER_LDFLAGS = "-L/opt/homebrew/lib";
+ PRODUCT_BUNDLE_IDENTIFIER = "kmx.io.c3-window-cairo-quartz-demo";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SDKROOT = auto;
+ SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx";
+ SWIFT_EMIT_LOC_STRINGS = YES;
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = Debug;
+ };
+ 2A54171C2B0528E700E42968 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
+ CODE_SIGN_ENTITLEMENTS = c3_window_cairo_quartz_demo.entitlements;
+ CODE_SIGN_IDENTITY = "Apple Development";
+ CODE_SIGN_STYLE = Automatic;
+ CURRENT_PROJECT_VERSION = 1;
+ DEVELOPMENT_ASSET_PATHS = "\"Preview Content\"";
+ DEVELOPMENT_TEAM = W4AD54MQ5Q;
+ ENABLE_HARDENED_RUNTIME = YES;
+ ENABLE_PREVIEWS = YES;
+ GENERATE_INFOPLIST_FILE = YES;
+ "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES;
+ "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES;
+ "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphoneos*]" = YES;
+ "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphonesimulator*]" = YES;
+ "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphoneos*]" = YES;
+ "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphonesimulator*]" = YES;
+ "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphoneos*]" = UIStatusBarStyleDefault;
+ "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault;
+ INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
+ INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
+ IPHONEOS_DEPLOYMENT_TARGET = 17.0;
+ LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
+ "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
+ MACOSX_DEPLOYMENT_TARGET = 14.0;
+ MARKETING_VERSION = 1.0;
+ OTHER_CFLAGS = (
+ "-I/opt/homebrew/include",
+ "-I../../../../..",
+ "-I../../../../../libffi/include",
+ );
+ OTHER_LDFLAGS = "-L/opt/homebrew/lib";
+ PRODUCT_BUNDLE_IDENTIFIER = "kmx.io.c3-window-cairo-quartz-demo";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ SDKROOT = auto;
+ SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx";
+ SWIFT_EMIT_LOC_STRINGS = YES;
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 2A5417062B0528E500E42968 /* Build configuration list for PBXProject "demo" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 2A5417182B0528E700E42968 /* Debug */,
+ 2A5417192B0528E700E42968 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 2A54171A2B0528E700E42968 /* Build configuration list for PBXNativeTarget "c3_window_cairo_quartz_demo" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 2A54171B2B0528E700E42968 /* Debug */,
+ 2A54171C2B0528E700E42968 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 2A5417032B0528E500E42968 /* Project object */;
+}
diff --git a/libc3/window/cairo/quartz/demo/demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/libc3/window/cairo/quartz/demo/demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..919434a
--- /dev/null
+++ b/libc3/window/cairo/quartz/demo/demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+ version = "1.0">
+ <FileRef
+ location = "self:">
+ </FileRef>
+</Workspace>
diff --git a/libc3/window/cairo/quartz/demo/demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/libc3/window/cairo/quartz/demo/demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 0000000..18d9810
--- /dev/null
+++ b/libc3/window/cairo/quartz/demo/demo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>IDEDidComputeMac32BitWarning</key>
+ <true/>
+</dict>
+</plist>
diff --git a/libc3/window/cairo/quartz/demo/demo.xcodeproj/project.xcworkspace/xcuserdata/thodg.xcuserdatad/UserInterfaceState.xcuserstate b/libc3/window/cairo/quartz/demo/demo.xcodeproj/project.xcworkspace/xcuserdata/thodg.xcuserdatad/UserInterfaceState.xcuserstate
new file mode 100644
index 0000000..aa59342
Binary files /dev/null and b/libc3/window/cairo/quartz/demo/demo.xcodeproj/project.xcworkspace/xcuserdata/thodg.xcuserdatad/UserInterfaceState.xcuserstate differ
diff --git a/libc3/window/cairo/quartz/demo/demo.xcodeproj/xcuserdata/thodg.xcuserdatad/xcschemes/xcschememanagement.plist b/libc3/window/cairo/quartz/demo/demo.xcodeproj/xcuserdata/thodg.xcuserdatad/xcschemes/xcschememanagement.plist
new file mode 100644
index 0000000..f4a6f10
--- /dev/null
+++ b/libc3/window/cairo/quartz/demo/demo.xcodeproj/xcuserdata/thodg.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>SchemeUserState</key>
+ <dict>
+ <key>c3_window_cairo_quartz_demo.xcscheme_^#shared#^_</key>
+ <dict>
+ <key>orderHint</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+</dict>
+</plist>
diff --git a/libc3/window/cairo/quartz/demo/sources.mk b/libc3/window/cairo/quartz/demo/sources.mk
index cd17a02..2bcd1c7 100644
--- a/libc3/window/cairo/quartz/demo/sources.mk
+++ b/libc3/window/cairo/quartz/demo/sources.mk
@@ -3,11 +3,8 @@ HEADERS = \
c3_window_cairo_quartz_demo_bridging_header.h \
SOURCES = \
- \
+ c3_window_cairo_quartz_demo.c \
OBJC_SOURCES = \
\
-SWIFT_SOURCES = \
- c3_window_cairo_quartz_demo.swift \
-
diff --git a/libc3/window/cairo/quartz/demo/sources.sh b/libc3/window/cairo/quartz/demo/sources.sh
index 55fa708..fa67117 100644
--- a/libc3/window/cairo/quartz/demo/sources.sh
+++ b/libc3/window/cairo/quartz/demo/sources.sh
@@ -1,5 +1,4 @@
# sources.sh generated by update_sources
HEADERS='c3_window_cairo_quartz_demo_bridging_header.h '
-SOURCES=' '
+SOURCES='c3_window_cairo_quartz_demo.c '
OBJC_SOURCES=' '
-SWIFT_SOURCES='c3_window_cairo_quartz_demo.swift '
diff --git a/libc3/window/cairo/quartz/demo/update_sources b/libc3/window/cairo/quartz/demo/update_sources
index 7eb14d6..f4de160 100755
--- a/libc3/window/cairo/quartz/demo/update_sources
+++ b/libc3/window/cairo/quartz/demo/update_sources
@@ -19,17 +19,13 @@ echo "# sources.sh generated by update_sources" > ${SOURCES_SH}
HEADERS="$(ls *.h | sort)"
sources HEADERS "$HEADERS"
-SOURCES=
-#SOURCES="$(ls *.c | sort)"
+#SOURCES=
+SOURCES="$(ls *.c | sort)"
sources SOURCES "$SOURCES"
OBJC_SOURCES=
#OBJC_SOURCES="$(ls *.m | sort)"
sources OBJC_SOURCES "$OBJC_SOURCES"
-#SWIFT_SOURCES=
-SWIFT_SOURCES="$(ls *.swift | sort)"
-sources SWIFT_SOURCES "$SWIFT_SOURCES"
-
update_sources_mk
update_sources_sh
diff --git a/libc3/window/cairo/quartz/libc3_window_cairo_quartz.0.dylib b/libc3/window/cairo/quartz/libc3_window_cairo_quartz.0.dylib
deleted file mode 120000
index edbee5b..0000000
--- a/libc3/window/cairo/quartz/libc3_window_cairo_quartz.0.dylib
+++ /dev/null
@@ -1 +0,0 @@
-.libs/libc3_window_cairo_quartz.0.dylib
\ No newline at end of file
diff --git a/libc3/window/cairo/quartz/libc3_window_cairo_quartz/libc3_window_cairo_quartz/Assets.xcassets/AccentColor.colorset/Contents.json b/libc3/window/cairo/quartz/libc3_window_cairo_quartz/libc3_window_cairo_quartz/Assets.xcassets/AccentColor.colorset/Contents.json
deleted file mode 100644
index eb87897..0000000
--- a/libc3/window/cairo/quartz/libc3_window_cairo_quartz/libc3_window_cairo_quartz/Assets.xcassets/AccentColor.colorset/Contents.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "colors" : [
- {
- "idiom" : "universal"
- }
- ],
- "info" : {
- "author" : "xcode",
- "version" : 1
- }
-}
diff --git a/libc3/window/cairo/quartz/libc3_window_cairo_quartz/libc3_window_cairo_quartz/Assets.xcassets/AppIcon.appiconset/Contents.json b/libc3/window/cairo/quartz/libc3_window_cairo_quartz/libc3_window_cairo_quartz/Assets.xcassets/AppIcon.appiconset/Contents.json
deleted file mode 100644
index 532cd72..0000000
--- a/libc3/window/cairo/quartz/libc3_window_cairo_quartz/libc3_window_cairo_quartz/Assets.xcassets/AppIcon.appiconset/Contents.json
+++ /dev/null
@@ -1,63 +0,0 @@
-{
- "images" : [
- {
- "idiom" : "universal",
- "platform" : "ios",
- "size" : "1024x1024"
- },
- {
- "idiom" : "mac",
- "scale" : "1x",
- "size" : "16x16"
- },
- {
- "idiom" : "mac",
- "scale" : "2x",
- "size" : "16x16"
- },
- {
- "idiom" : "mac",
- "scale" : "1x",
- "size" : "32x32"
- },
- {
- "idiom" : "mac",
- "scale" : "2x",
- "size" : "32x32"
- },
- {
- "idiom" : "mac",
- "scale" : "1x",
- "size" : "128x128"
- },
- {
- "idiom" : "mac",
- "scale" : "2x",
- "size" : "128x128"
- },
- {
- "idiom" : "mac",
- "scale" : "1x",
- "size" : "256x256"
- },
- {
- "idiom" : "mac",
- "scale" : "2x",
- "size" : "256x256"
- },
- {
- "idiom" : "mac",
- "scale" : "1x",
- "size" : "512x512"
- },
- {
- "idiom" : "mac",
- "scale" : "2x",
- "size" : "512x512"
- }
- ],
- "info" : {
- "author" : "xcode",
- "version" : 1
- }
-}
diff --git a/libc3/window/cairo/quartz/libc3_window_cairo_quartz/libc3_window_cairo_quartz/Assets.xcassets/Contents.json b/libc3/window/cairo/quartz/libc3_window_cairo_quartz/libc3_window_cairo_quartz/Assets.xcassets/Contents.json
deleted file mode 100644
index 73c0059..0000000
--- a/libc3/window/cairo/quartz/libc3_window_cairo_quartz/libc3_window_cairo_quartz/Assets.xcassets/Contents.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "info" : {
- "author" : "xcode",
- "version" : 1
- }
-}
diff --git a/libc3/window/cairo/quartz/libc3_window_cairo_quartz/libc3_window_cairo_quartz/Preview Content/Preview Assets.xcassets/Contents.json b/libc3/window/cairo/quartz/libc3_window_cairo_quartz/libc3_window_cairo_quartz/Preview Content/Preview Assets.xcassets/Contents.json
deleted file mode 100644
index 73c0059..0000000
--- a/libc3/window/cairo/quartz/libc3_window_cairo_quartz/libc3_window_cairo_quartz/Preview Content/Preview Assets.xcassets/Contents.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "info" : {
- "author" : "xcode",
- "version" : 1
- }
-}
diff --git a/libc3/window/cairo/quartz/sources.mk b/libc3/window/cairo/quartz/sources.mk
index 5b8a674..369ca4b 100644
--- a/libc3/window/cairo/quartz/sources.mk
+++ b/libc3/window/cairo/quartz/sources.mk
@@ -1,14 +1,14 @@
# sources.mk generated by update_sources
HEADERS = \
- custom_cairo_view.h \
+ window_cairo_quartz.h \
+ window_cairo_quartz_app_delegate.h \
+ window_cairo_quartz_view.h \
SOURCES = \
\
OBJC_SOURCES = \
- custom_cairo_view.m \
-
-SWIFT_SOURCES = \
- content_view.swift \
- custom_cairo_swiftui_view.swift \
+ window_cairo_quartz.m \
+ window_cairo_quartz_app_delegate.m \
+ window_cairo_quartz_view.m \
diff --git a/libc3/window/cairo/quartz/sources.sh b/libc3/window/cairo/quartz/sources.sh
index 99fedd2..4bf74fb 100644
--- a/libc3/window/cairo/quartz/sources.sh
+++ b/libc3/window/cairo/quartz/sources.sh
@@ -1,5 +1,4 @@
# sources.sh generated by update_sources
-HEADERS='custom_cairo_view.h '
+HEADERS='window_cairo_quartz.h window_cairo_quartz_app_delegate.h window_cairo_quartz_view.h '
SOURCES=' '
-OBJC_SOURCES='custom_cairo_view.m '
-SWIFT_SOURCES='content_view.swift custom_cairo_swiftui_view.swift '
+OBJC_SOURCES='window_cairo_quartz.m window_cairo_quartz_app_delegate.m window_cairo_quartz_view.m '
diff --git a/libc3/window/cairo/quartz/update_sources b/libc3/window/cairo/quartz/update_sources
index 1c35b01..e451e01 100755
--- a/libc3/window/cairo/quartz/update_sources
+++ b/libc3/window/cairo/quartz/update_sources
@@ -26,9 +26,6 @@ sources SOURCES "$SOURCES"
OBJC_SOURCES="$(ls *.m | sort)"
sources OBJC_SOURCES "$OBJC_SOURCES"
-SWIFT_SOURCES="$(ls *.swift | sort)"
-sources SWIFT_SOURCES "$SWIFT_SOURCES"
-
update_sources_mk
update_sources_sh
diff --git a/libc3/window/cairo/quartz/window_cairo_quartz.h b/libc3/window/cairo/quartz/window_cairo_quartz.h
new file mode 100644
index 0000000..a99e4c2
--- /dev/null
+++ b/libc3/window/cairo/quartz/window_cairo_quartz.h
@@ -0,0 +1,22 @@
+/* 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.
+ */
+#ifndef LIBC3_WINDOW_CAIRO_QUARTZ_H
+#define LIBC3_WINDOW_CAIRO_QUARTZ_H
+
+#include <libc3/types.h>
+#include "../types.h"
+#include "../window_cairo.h"
+
+bool window_cairo_quartz_run (s_window_cairo *window);
+
+#endif /* LIBC3_WINDOW_CAIRO_XCB_H */
diff --git a/libc3/window/cairo/quartz/window_cairo_quartz.m b/libc3/window/cairo/quartz/window_cairo_quartz.m
new file mode 100644
index 0000000..04a9dc0
--- /dev/null
+++ b/libc3/window/cairo/quartz/window_cairo_quartz.m
@@ -0,0 +1,31 @@
+/* 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.
+ */
+#import <Cocoa/Cocoa.h>
+#import "window_cairo_quartz.h"
+#import "window_cairo_quartz_app_delegate.h"
+
+bool window_cairo_quartz_run (s_window_cairo *window)
+{
+ @autoreleasepool {
+ NSApplication *app = [NSApplication sharedApplication];
+ WindowCairoQuartzAppDelegate *app_delegate = [[WindowCairoQuartzAppDelegate alloc] initWithWindowCairo:window];
+ [app setDelegate:app_delegate];
+ [app run];
+ }
+ return true;
+}
+
+bool window_cairo_run (s_window_cairo *window)
+{
+ return window_cairo_quartz_run(window);
+}
diff --git a/libc3/window/cairo/quartz/window_cairo_quartz_app_delegate.h b/libc3/window/cairo/quartz/window_cairo_quartz_app_delegate.h
new file mode 100644
index 0000000..62b7587
--- /dev/null
+++ b/libc3/window/cairo/quartz/window_cairo_quartz_app_delegate.h
@@ -0,0 +1,23 @@
+/* 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.
+ */
+#import <Cocoa/Cocoa.h>
+#import "../window_cairo.h"
+
+@interface WindowCairoQuartzAppDelegate : NSObject <NSApplicationDelegate>
+
+@property (strong, nonatomic) NSWindow *window;
+@property (nonatomic, assign) s_window_cairo *window_cairo;
+
+- (instancetype) initWithWindowCairo:(s_window_cairo *) window_cairo;
+
+@end
diff --git a/libc3/window/cairo/quartz/window_cairo_quartz_app_delegate.m b/libc3/window/cairo/quartz/window_cairo_quartz_app_delegate.m
new file mode 100644
index 0000000..4f8c594
--- /dev/null
+++ b/libc3/window/cairo/quartz/window_cairo_quartz_app_delegate.m
@@ -0,0 +1,47 @@
+/* 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.
+ */
+#import "window_cairo_quartz_app_delegate.h"
+#import "window_cairo_quartz_view.h"
+
+@implementation WindowCairoQuartzAppDelegate
+
+- (instancetype) initWithWindowCairo:(s_window_cairo *)window_cairo {
+ self = [super init];
+ if (self) {
+ self.window_cairo = window_cairo;
+ }
+ return self;
+}
+
+- (void)applicationDidFinishLaunching:(NSNotification *)notification {
+ NSRect frame = NSMakeRect(self.window_cairo->x, self.window_cairo->y,
+ self.window_cairo->w, self.window_cairo->h);
+ self.window = [[NSWindow alloc]
+ initWithContentRect:frame
+ styleMask:(NSWindowStyleMaskTitled |
+ NSWindowStyleMaskClosable |
+ NSWindowStyleMaskResizable)
+ backing:NSBackingStoreBuffered
+ defer:NO];
+ [self.window makeKeyAndOrderFront:nil];
+ [self.window
+ setTitle:[NSString
+ stringWithUTF8String:self.window_cairo->title]];
+
+ WindowCairoQuartzView *view =
+ [[WindowCairoQuartzView alloc]
+ initWithWindowCairo:self.window_cairo];
+ [self.window setContentView:view];
+}
+
+@end
diff --git a/libc3/window/cairo/quartz/window_cairo_quartz_view.h b/libc3/window/cairo/quartz/window_cairo_quartz_view.h
new file mode 100644
index 0000000..595173a
--- /dev/null
+++ b/libc3/window/cairo/quartz/window_cairo_quartz_view.h
@@ -0,0 +1,27 @@
+/* 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.
+ */
+#ifndef LIBC3_WINDOW_CAIRO_QUARTZ_VIEW_H
+#define LIBC3_WINDOW_CAIRO_QUARTZ_VIEW_H
+
+#import <Cocoa/Cocoa.h>
+#import "../window_cairo.h"
+
+@interface WindowCairoQuartzView : NSView
+
+@property (nonatomic, assign) s_window_cairo *window_cairo;
+
+- (instancetype) initWithWindowCairo:(s_window_cairo *) window_cairo;
+
+@end
+
+#endif /* LIBC3_WINDOW_CAIRO_QUARTZ_VIEW_H */
diff --git a/libc3/window/cairo/quartz/window_cairo_quartz_view.m b/libc3/window/cairo/quartz/window_cairo_quartz_view.m
new file mode 100644
index 0000000..e87eb90
--- /dev/null
+++ b/libc3/window/cairo/quartz/window_cairo_quartz_view.m
@@ -0,0 +1,43 @@
+/* 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.
+ */
+#import <Foundation/Foundation.h>
+#import <cairo/cairo-quartz.h>
+#import "window_cairo_quartz_view.h"
+
+@implementation WindowCairoQuartzView
+
+- (instancetype) initWithWindowCairo:(s_window_cairo *) window_cairo {
+ NSRect frame = NSMakeRect(window_cairo->x, window_cairo->y, window_cairo->w, window_cairo->h);
+ self = [super initWithFrame:frame];
+ if (self) {
+ self.window_cairo = window_cairo;
+ }
+ return self;
+}
+
+- (void) drawRect:(NSRect)dirtyRect {
+ [super drawRect:dirtyRect];
+ cairo_surface_t *surface =
+ cairo_quartz_surface_create_for_cg_context([[NSGraphicsContext currentContext] CGContext], self.bounds.size.width, self.bounds.size.height);
+ cairo_t *cr = cairo_create(surface);
+ if (! self.window_cairo->render(self.window_cairo, cr)) {
+ /* close window */
+ (void) 0;
+ }
+ cairo_surface_flush(surface);
+ cairo_destroy(cr);
+ cairo_surface_destroy(surface);
+}
+
+@end
+
diff --git a/libc3/window/cairo/xcb/demo/c3_window_cairo_demo.c b/libc3/window/cairo/xcb/demo/c3_window_cairo_demo.c
deleted file mode 100644
index c609279..0000000
--- a/libc3/window/cairo/xcb/demo/c3_window_cairo_demo.c
+++ /dev/null
@@ -1,13 +0,0 @@
-/* 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.
- */
-#include "../../c3_window_cairo_demo.c"
diff --git a/libc3/window/cairo/xcb/demo/sources.mk b/libc3/window/cairo/xcb/demo/sources.mk
index 21e3c6b..e6bb6b2 100644
--- a/libc3/window/cairo/xcb/demo/sources.mk
+++ b/libc3/window/cairo/xcb/demo/sources.mk
@@ -3,7 +3,6 @@ HEADERS = \
\
SOURCES = \
- c3_window_cairo_demo.c \
c3_window_cairo_xcb_demo.c \
window.c \
diff --git a/libc3/window/cairo/xcb/demo/sources.sh b/libc3/window/cairo/xcb/demo/sources.sh
index 0bdce4a..f734d9a 100644
--- a/libc3/window/cairo/xcb/demo/sources.sh
+++ b/libc3/window/cairo/xcb/demo/sources.sh
@@ -1,3 +1,3 @@
# sources.sh generated by update_sources
HEADERS=' '
-SOURCES='c3_window_cairo_demo.c c3_window_cairo_xcb_demo.c window.c '
+SOURCES='c3_window_cairo_xcb_demo.c window.c '
diff --git a/sources.mk b/sources.mk
index 9b83d49..e5130de 100644
--- a/sources.mk
+++ b/sources.mk
@@ -7,18 +7,18 @@ C3_CONFIGURES = \
ic3/update_sources \
libc3/configure \
libc3/update_sources \
+ libc3/window/configure \
+ libc3/window/update_sources \
+ libc3/window/cairo/xcb/demo/configure \
+ libc3/window/cairo/xcb/demo/update_sources \
libc3/window/cairo/xcb/configure \
libc3/window/cairo/xcb/update_sources \
- libc3/window/cairo/xcb/demo/update_sources \
- libc3/window/cairo/xcb/demo/configure \
- libc3/window/cairo/quartz/configure \
+ libc3/window/cairo/configure \
+ libc3/window/cairo/update_sources \
libc3/window/cairo/quartz/demo/configure \
libc3/window/cairo/quartz/demo/update_sources \
+ libc3/window/cairo/quartz/configure \
libc3/window/cairo/quartz/update_sources \
- libc3/window/cairo/configure \
- libc3/window/cairo/update_sources \
- libc3/window/configure \
- libc3/window/update_sources \
libtommath/configure \
libtommath/update_sources \
test/configure \
@@ -29,14 +29,14 @@ C3_MAKEFILES = \
c3c/Makefile \
c3s/Makefile \
ic3/Makefile \
- libc3/gen.mk \
libc3/Makefile \
- libc3/window/cairo/xcb/Makefile \
+ libc3/gen.mk \
+ libc3/window/Makefile \
libc3/window/cairo/xcb/demo/Makefile \
- libc3/window/cairo/quartz/Makefile \
- libc3/window/cairo/quartz/demo/Makefile \
+ libc3/window/cairo/xcb/Makefile \
libc3/window/cairo/Makefile \
- libc3/window/Makefile \
+ libc3/window/cairo/quartz/demo/Makefile \
+ libc3/window/cairo/quartz/Makefile \
libtommath/Makefile \
test/Makefile \
ucd2c/Makefile \
@@ -46,364 +46,364 @@ C3_C_SOURCES = \
c3s/buf_readline.c \
c3s/c3s.c \
c3s/buf_readline.h \
- ic3/ic3.c \
- ic3/buf_linenoise.c \
ic3/buf_linenoise.h \
+ ic3/ic3.c \
ic3/linenoise.c \
- libc3/abs.c \
- libc3/buf_inspect_s8.c \
- libc3/buf.c \
- libc3/buf_inspect_s8.h \
- libc3/buf_inspect_s8_binary.c \
- libc3/buf_inspect_s8_binary.h \
- libc3/buf_inspect_s8_octal.c \
+ ic3/buf_linenoise.c \
+ libc3/buf_inspect_s_base.c.in \
+ libc3/type.h \
+ libc3/fact.c \
+ libc3/time.h \
+ libc3/fn.h \
+ libc3/s16.h \
libc3/buf_inspect_s8_octal.h \
- libc3/buf_inspect_s8_decimal.c \
- libc3/buf_inspect_s8_decimal.h \
- libc3/buf_inspect_s8_hexadecimal.c \
- libc3/array.h \
- libc3/buf_inspect_s16.c \
- libc3/call.c \
- libc3/arg.c \
- libc3/array.c \
- libc3/binding.c \
- libc3/c3.c \
- libc3/buf_inspect_s8_hexadecimal.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/buf_inspect_s16_hexadecimal.h \
- libc3/buf_inspect_s32.c \
+ libc3/log.c \
+ libc3/error.h \
+ libc3/buf_inspect_u64_octal.h \
+ libc3/set_item.h.in \
+ libc3/compare.c \
+ libc3/buf_inspect_s8_binary.h \
+ libc3/buf_inspect_uw_hexadecimal.h \
+ libc3/uw.c \
+ libc3/eval.c \
+ libc3/set__fact.c \
+ libc3/sym.h \
+ libc3/env.h \
+ libc3/cfn.c \
+ libc3/buf_inspect_u16_octal.h \
+ libc3/u.h.in \
+ libc3/buf_parse_s16.c \
+ libc3/s8.h \
+ libc3/quote.h \
libc3/buf_inspect_s32.h \
- libc3/bool.c \
- libc3/bool.h \
- libc3/buf_file.c \
- 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.c \
+ libc3/buf_parse_u.h.in \
+ libc3/skiplist_node__fact.h \
+ libc3/skiplist__fact.c \
libc3/buf_inspect_s32_hexadecimal.h \
- libc3/buf_inspect_s64.c \
- libc3/buf_inspect_s64.h \
- libc3/buf_inspect_s64_binary.c \
- libc3/buf_inspect_s64_binary.h \
- libc3/buf_inspect_sw.c \
- libc3/buf_parse.h \
- libc3/buf.h \
- libc3/buf_save.c \
- libc3/facts_spec_cursor.c \
- 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.h \
- libc3/buf_inspect_sw_binary.c \
- libc3/buf_inspect_sw_binary.h \
- libc3/buf_inspect_sw_octal.c \
- libc3/buf_inspect_sw_octal.h \
+ libc3/ceiling.h \
+ libc3/list.c \
+ libc3/buf_inspect_u64.c \
+ libc3/facts.h \
+ libc3/buf_inspect_u16_decimal.c \
+ libc3/facts_with_cursor.c \
libc3/buf_inspect_sw_decimal.c \
- libc3/buf_file.h \
- libc3/buf_save.h \
- libc3/c3.h \
- libc3/call.h \
- libc3/buf_inspect_sw_decimal.h \
- libc3/buf_inspect_sw_hexadecimal.c \
+ libc3/facts_cursor.c \
+ libc3/buf_inspect_u64_binary.h \
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_s32_decimal.h \
+ libc3/u16.h \
+ libc3/buf_inspect_s64_octal.h \
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_u16.c \
- libc3/binding.h \
- libc3/io.c \
- libc3/ceiling.c \
- libc3/ceiling.h \
- libc3/cfn.c \
- libc3/cfn.h \
- libc3/character.c \
- libc3/character.h \
- libc3/buf_inspect_u8_hexadecimal.c \
- libc3/buf_inspect_u8_hexadecimal.h \
- 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_inspect_u16_decimal.c \
- libc3/buf_inspect_u16_decimal.h \
- libc3/buf_inspect_u16_hexadecimal.c \
+ libc3/buf_inspect_s8.h \
+ libc3/buf_inspect_s16_octal.h \
+ libc3/ucd.c \
+ libc3/buf_inspect_s16_binary.h \
+ libc3/tuple.c \
+ libc3/buf_inspect_uw_octal.h \
+ libc3/buf_parse_u8.c \
+ libc3/tag.h \
+ libc3/float.h \
+ libc3/buf_inspect_u_base.c.in \
+ libc3/buf_parse_u16.c \
libc3/buf_inspect_u16_hexadecimal.h \
- libc3/compare.c \
- libc3/buf_inspect.c \
- libc3/compare.h \
- libc3/buf_inspect_u32.c \
+ libc3/buf_inspect_s8_decimal.c \
libc3/buf_inspect_u32.h \
+ libc3/array.c \
+ libc3/buf_parse_sw.h \
+ libc3/set.h.in \
+ libc3/s.c.in \
+ libc3/buf_parse_s.c.in \
+ libc3/map.h \
+ libc3/skiplist.h.in \
+ libc3/set__tag.h \
+ libc3/buf_inspect_s64.c \
+ libc3/io.c \
+ libc3/set_item__tag.c \
+ libc3/sequence.c \
+ libc3/types.h \
+ libc3/buf_inspect_uw.c \
libc3/buf_inspect_u32_binary.c \
- libc3/buf_inspect_u32_binary.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_s64_decimal.h \
+ libc3/set_cursor.c.in \
+ libc3/ident.c \
+ libc3/buf_inspect_s64_hexadecimal.c \
+ libc3/bool.h \
+ libc3/s.h.in \
+ libc3/set.c.in \
+ libc3/skiplist.c.in \
+ libc3/operator.h \
+ libc3/fn_clause.h \
+ libc3/buf_parse_s.h.in \
+ libc3/buf_inspect_s16.c \
+ libc3/binding.c \
+ libc3/ptag.h \
+ libc3/buf_parse_s32.h \
+ libc3/var.h \
+ libc3/set_item__fact.h \
+ libc3/u8.c \
+ libc3/set_cursor.h.in \
+ libc3/f32.c \
+ libc3/buf_inspect_sw_octal.h \
+ libc3/c3.h \
+ libc3/arg.h \
+ libc3/buf_inspect_u8_hexadecimal.c \
libc3/buf_inspect_u32_hexadecimal.h \
- libc3/buf_inspect_u64.c \
- libc3/error.c \
- libc3/error.h \
- libc3/error_handler.c \
- libc3/eval.h \
- libc3/eval.c \
- libc3/facts.h \
- 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/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/set__fact.c \
+ libc3/buf_parse_u64.c \
+ libc3/module.c \
+ libc3/frame.h \
+ libc3/buf_inspect_s16_decimal.c \
libc3/file.h \
- libc3/fact.c \
- libc3/fact.h \
- libc3/facts_cursor.c \
+ libc3/sw.h \
+ libc3/s32.c \
+ libc3/error_handler.c \
+ libc3/str.c \
+ libc3/buf_parse.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/buf_inspect_uw_hexadecimal.c \
- libc3/buf_inspect_uw_hexadecimal.h \
- libc3/buf_parse_s8.c \
- libc3/buf_parse_s8.h \
- libc3/buf_parse_s16.c \
- libc3/buf_parse_s16.h \
- libc3/buf_parse_s32.c \
- libc3/buf_parse_s32.h \
- libc3/s8.c \
- libc3/list.c \
- libc3/facts_cursor.h \
- libc3/facts_spec.c \
- libc3/facts_spec.h \
- libc3/facts_spec_cursor.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/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/buf_parse_u.h.in \
+ libc3/facts_spec_cursor.c \
+ libc3/u64.h \
+ libc3/buf_inspect_u_base.h.in \
+ libc3/buf_inspect_s32_octal.h \
+ libc3/f64.h \
+ libc3/buf_inspect_u8_octal.h \
+ libc3/buf_inspect_s64_binary.c \
+ libc3/buf_inspect_u64_hexadecimal.c \
+ libc3/buf_inspect_u16_binary.c \
+ libc3/buf_save.h \
+ libc3/buf_inspect_u16.c \
+ libc3/buf_inspect_s8_hexadecimal.c \
+ libc3/u.c.in \
+ libc3/buf_inspect_sw.h \
libc3/facts_with.c \
- libc3/facts_with.h \
- libc3/facts_with_cursor.c \
- libc3/set__tag.h \
+ libc3/buf_parse_u.c.in \
+ libc3/buf_parse_u32.h \
libc3/set_cursor__fact.c \
- libc3/set_cursor__fact.h \
- libc3/set_cursor__tag.c \
+ libc3/buf.h \
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/skiplist__fact.h \
- libc3/skiplist_node__fact.c \
- libc3/skiplist_node__fact.h \
- libc3/s8.h \
- libc3/s16.c \
- libc3/s16.h \
- libc3/s32.c \
- libc3/s32.h \
- libc3/facts_with_cursor.h \
- libc3/float.h \
- libc3/frame.c \
- libc3/frame.h \
- libc3/s64.c \
- libc3/s64.h \
- libc3/types.h \
- libc3/sw.c \
- libc3/sw.h \
- libc3/u8.c \
- libc3/u8.h \
- libc3/u16.c \
- libc3/f64.h \
- libc3/u16.h \
+ libc3/buf_inspect_s16_hexadecimal.h \
+ libc3/buf_inspect_u32_decimal.h \
+ libc3/buf_parse_uw.c \
+ libc3/buf_parse_s64.c \
+ libc3/abs.h \
+ libc3/buf_inspect_sw_binary.c \
+ libc3/buf_parse_s8.h \
+ libc3/call.h \
+ libc3/sign.c \
+ libc3/buf_inspect_u8_decimal.h \
+ libc3/character.h \
+ libc3/buf_inspect_u64_decimal.h \
+ libc3/buf_inspect_s_base.h.in \
+ libc3/buf_inspect_u32_octal.h \
libc3/u32.c \
- libc3/f32.c \
- libc3/f64.c \
- libc3/u32.h \
- libc3/u64.c \
- libc3/u64.h \
- libc3/uw.c \
- libc3/uw.h \
- libc3/hash.h \
- libc3/ident.h \
+ libc3/hash.c \
+ libc3/buf_file.h \
libc3/integer.c \
- libc3/integer.h \
- libc3/io.h \
- libc3/list.h \
- libc3/log.c \
- libc3/log.h \
- libc3/buf_inspect_s.h.in \
- libc3/module.c \
+ libc3/buf_inspect_u8.c \
+ libc3/facts_spec.c \
+ libc3/buf_inspect_s32_binary.h \
+ libc3/set_item.c.in \
+ libc3/s64.h \
+ libc3/buf_inspect_u16_decimal.h \
+ libc3/facts.c \
+ libc3/buf_inspect_u64.h \
+ libc3/buf_inspect_sw_decimal.h \
+ libc3/facts_with_cursor.h \
+ libc3/skiplist_node__fact.c \
libc3/buf_inspect.h \
- libc3/c3_main.h \
- libc3/sequence.c \
- libc3/sequence.h \
- libc3/abs.h \
- libc3/str.c \
- libc3/module.h \
- libc3/buf_parse_u.c.in \
libc3/quote.c \
- libc3/quote.h \
- libc3/set.c.in \
- libc3/set.h.in \
- libc3/buf_inspect_s_base.h.in \
- libc3/map.h \
- libc3/set_cursor.c.in \
- libc3/set_cursor.h.in \
- libc3/set_item.c.in \
- libc3/set_item.h.in \
- 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/buf_inspect_s32.c \
libc3/skiplist_node.h.in \
- libc3/str.h \
- libc3/tag.c \
- libc3/ucd.c \
- libc3/sym.h \
- libc3/tuple.c \
- libc3/tuple.h \
- libc3/type.c \
- libc3/buf_parse.c \
- libc3/ucd.h \
- libc3/buf_parse_s.c.in \
- libc3/buf_parse_s.h.in \
- libc3/buf_inspect_s.c.in \
- libc3/error_handler.h \
- libc3/ident.c \
+ libc3/s8.c \
+ libc3/buf_parse_s16.h \
+ libc3/list.h \
+ libc3/ceiling.c \
+ libc3/buf_inspect_s.h.in \
+ libc3/buf_inspect_s32_hexadecimal.c \
+ libc3/skiplist__fact.h \
+ libc3/uw.h \
+ libc3/buf_inspect_uw_hexadecimal.c \
+ libc3/buf_inspect_s8_binary.c \
+ libc3/compare.h \
+ libc3/buf_inspect_u64_octal.c \
+ libc3/buf_inspect_u16_octal.c \
+ libc3/cfn.h \
libc3/env.c \
- libc3/buf_inspect_s_base.c.in \
- libc3/buf_inspect_u.c.in \
- libc3/buf_inspect_u.h.in \
- libc3/env.h \
- libc3/arg.h \
- libc3/buf_inspect_u_base.c.in \
- libc3/buf_inspect_u_base.h.in \
- libc3/map.c \
- libc3/window/cairo/xcb/config.h \
- libc3/window/cairo/xcb/window_cairo_xcb.c \
+ libc3/set__fact.h \
+ libc3/sym.c \
+ libc3/eval.h \
+ libc3/c3_main.h \
+ libc3/buf_inspect_s8_octal.c \
+ libc3/s16.c \
+ libc3/fn.c \
+ libc3/time.c \
+ libc3/fact.h \
+ libc3/type.c \
+ libc3/error.c \
+ libc3/log.h \
+ libc3/sequence.h \
+ libc3/set_item__tag.h \
+ libc3/io.h \
+ libc3/buf_inspect_s64.h \
+ libc3/buf_inspect_s64_hexadecimal.h \
+ libc3/window/types.h \
+ libc3/window/window.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/demo/window.c \
libc3/window/cairo/xcb/window_cairo_xcb.h \
+ libc3/window/cairo/xcb/config.h \
+ libc3/window/cairo/xcb/window_cairo_xcb.c \
libc3/window/cairo/types.h \
+ libc3/window/cairo/window_cairo.c \
libc3/window/cairo/c3_window_cairo_demo.h \
+ libc3/window/cairo/quartz/demo/c3_window_cairo_quartz_demo_bridging_header.h \
+ libc3/window/cairo/quartz/demo/main.c \
+ libc3/window/cairo/quartz/custom_cairo_view.h \
libc3/window/cairo/window_cairo.h \
libc3/window/cairo/c3_window_cairo_demo.c \
- libc3/window/cairo/window_cairo.c \
- libc3/window/cairo/quartz/custom_cairo_view.h \
- libc3/window/cairo/quartz/demo/c3_window_cairo_quartz_demo_bridging_header.h \
- libc3/window/types.h \
libc3/window/window.c \
- libc3/window/window.h \
- libc3/u.c.in \
- libc3/fn.c \
- libc3/u.h.in \
+ libc3/ident.h \
+ libc3/buf_inspect_s64_decimal.c \
+ libc3/buf_inspect_u32_binary.h \
+ libc3/buf_inspect_uw.h \
+ libc3/buf_inspect_u.c.in \
+ libc3/buf_parse_sw.c \
+ libc3/array.h \
+ libc3/buf_inspect_u32.c \
+ libc3/buf_inspect_s8_decimal.h \
+ libc3/buf_inspect_u16_hexadecimal.c \
+ libc3/buf_parse_u16.h \
+ libc3/set__tag.c \
+ libc3/map.c \
+ libc3/tag.c \
+ libc3/buf_parse_u8.h \
+ libc3/buf_inspect_uw_octal.c \
+ libc3/buf_inspect_u8_binary.c \
+ libc3/buf_inspect_s64_octal.c \
+ libc3/u16.c \
+ libc3/buf_inspect_sw_hexadecimal.c \
+ libc3/buf_inspect_s32_decimal.c \
+ libc3/buf_inspect_u64_binary.c \
+ libc3/facts_cursor.h \
+ libc3/tuple.h \
+ libc3/buf_inspect_s16_binary.c \
+ libc3/ucd.h \
+ libc3/buf_inspect_s16_octal.c \
+ libc3/buf_inspect_s8.c \
libc3/sha1.h \
- libc3/fn.h \
- libc3/tag.h \
- libc3/facts.c \
- libc3/license.c \
- libc3/operator.c \
- libc3/ptag.h \
+ libc3/buf_inspect_uw_binary.h \
+ libc3/buf_parse.c \
+ libc3/str.h \
+ libc3/error_handler.h \
+ libc3/u64.c \
+ libc3/buf_inspect_s32_octal.c \
+ libc3/facts_spec_cursor.h \
+ libc3/buf_inspect_uw_decimal.c \
+ libc3/sw.c \
+ libc3/file.c \
+ libc3/buf_inspect_s16_decimal.h \
+ libc3/frame.c \
+ libc3/s32.h \
+ libc3/c3.c \
libc3/f32.h \
- libc3/fn_clause.h \
- libc3/s.c.in \
- libc3/operator.h \
- libc3/sym.c \
+ libc3/buf_inspect_sw_octal.c \
+ libc3/u8.h \
+ libc3/set_item__fact.c \
+ libc3/var.c \
+ libc3/module.h \
+ libc3/license.c \
+ libc3/buf_inspect_u32_hexadecimal.c \
+ libc3/buf_parse_u64.h \
+ libc3/buf_inspect_u8_hexadecimal.h \
+ libc3/arg.c \
libc3/fn_clause.c \
+ libc3/operator.c \
+ libc3/bool.c \
+ libc3/buf_parse_s32.c \
libc3/ptag.c \
- libc3/var.h \
- libc3/var.c \
- libc3/time.c \
- libc3/time.h \
- libc3/file.c \
- 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 \
+ libc3/binding.h \
+ libc3/buf_inspect_u.h.in \
+ libc3/buf_inspect_s16.h \
+ libc3/integer.h \
+ libc3/buf_file.c \
+ libc3/s64.c \
+ libc3/buf_inspect_s32_binary.c \
+ libc3/buf_inspect_u8.h \
+ libc3/facts_spec.h \
+ libc3/buf_inspect_u8_decimal.c \
+ libc3/sign.h \
+ libc3/call.c \
+ libc3/buf_parse_s8.c \
+ libc3/buf_inspect_sw_binary.h \
+ libc3/hash.h \
+ libc3/u32.h \
+ libc3/buf_inspect_u32_octal.c \
+ libc3/character.c \
+ libc3/buf_inspect_u64_decimal.c \
+ libc3/buf_parse_uw.h \
+ libc3/buf_inspect_u32_decimal.c \
+ libc3/buf_inspect_s16_hexadecimal.c \
+ libc3/set_cursor__tag.c \
+ libc3/set_cursor__fact.h \
+ libc3/buf.c \
+ libc3/abs.c \
+ libc3/buf_parse_s64.h \
+ libc3/buf_inspect_s.c.in \
+ libc3/buf_inspect_s64_binary.h \
+ libc3/buf_inspect_u8_octal.c \
+ libc3/f64.c \
+ libc3/skiplist_node.c.in \
+ libc3/buf_parse_u32.c \
+ libc3/facts_with.h \
+ libc3/buf_inspect_sw.c \
+ libc3/buf_inspect_u16.h \
+ libc3/buf_inspect_s8_hexadecimal.h \
+ libc3/buf_inspect_u16_binary.h \
+ libc3/buf_inspect_u64_hexadecimal.h \
+ libc3/buf_save.c \
+ test/ident_test.c \
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_inspect_test.c \
+ test/libc3_test.c \
+ test/fn_test.c \
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/str_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_s8.c \
+ test/skiplist__fact_test.c \
+ test/sym_test.c \
+ test/tag_test.h \
+ test/buf_file_test.c \
+ test/bool_test.c \
test/fact_test.h \
+ test/buf_parse_test_u64.c \
+ test/compare_test.c \
test/facts_with_test.c \
+ test/array_test.c \
+ test/buf_parse_test.h \
+ test/test.h \
+ test/buf_parse_test_su.h \
+ test/env_test.c \
+ test/buf_parse_test_s64.c \
+ test/types_test.c \
test/hash_test.c \
- test/ident_test.c \
- test/set__fact_test.c \
+ test/call_test.c \
test/set__tag_test.c \
- test/skiplist__fact_test.c \
- test/str_test.c \
- test/sym_test.c \
+ test/facts_test.c \
+ test/facts_cursor_test.c \
+ test/compare_test.h \
+ test/buf_parse_test_s32.c \
+ test/test.c \
+ test/buf_parse_test.c \
+ test/fact_test.c \
test/tag_test.c \
- test/tag_test.h \
- test/array_test.c \
- test/fn_test.c \
+ test/set__fact_test.c \
+ test/buf_parse_test_u32.c \
+ test/buf_test.c \
+ test/list_test.c \
+ test/buf_parse_test_u8.c \
test/tuple_test.c \
- test/types_test.c \
- test/libc3_test.c \
ucd2c/ucd.h \
ucd2c/ucd2c.c \
diff --git a/sources.sh b/sources.sh
index 806f541..7a3c133 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 libc3/window/cairo/xcb/configure libc3/window/cairo/xcb/update_sources libc3/window/cairo/xcb/demo/update_sources libc3/window/cairo/xcb/demo/configure libc3/window/cairo/quartz/configure libc3/window/cairo/quartz/demo/configure libc3/window/cairo/quartz/demo/update_sources libc3/window/cairo/quartz/update_sources libc3/window/cairo/configure libc3/window/cairo/update_sources libc3/window/configure libc3/window/update_sources libtommath/configure libtommath/update_sources test/configure test/update_sources ucd2c/configure '
-C3_MAKEFILES='c3c/Makefile c3s/Makefile ic3/Makefile libc3/gen.mk libc3/Makefile libc3/window/cairo/xcb/Makefile libc3/window/cairo/xcb/demo/Makefile libc3/window/cairo/quartz/Makefile libc3/window/cairo/quartz/demo/Makefile libc3/window/cairo/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/ic3.c ic3/buf_linenoise.c ic3/buf_linenoise.h ic3/linenoise.c libc3/abs.c libc3/buf_inspect_s8.c libc3/buf.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/buf_inspect_s8_hexadecimal.c libc3/array.h libc3/buf_inspect_s16.c libc3/call.c libc3/arg.c libc3/array.c libc3/binding.c libc3/c3.c libc3/buf_inspect_s8_hexadecimal.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/buf_inspect_s16_hexadecimal.h libc3/buf_inspect_s32.c libc3/buf_inspect_s32.h libc3/bool.c libc3/bool.h libc3/buf_file.c 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/buf_inspect_s64_binary.h libc3/buf_inspect_sw.c libc3/buf_parse.h libc3/buf.h libc3/buf_save.c libc3/facts_spec_cursor.c 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.h libc3/buf_inspect_sw_binary.c 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_file.h libc3/buf_save.h libc3/c3.h libc3/call.h 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/buf_inspect_u8_octal.h libc3/buf_inspect_u8_decimal.c libc3/buf_inspect_u8_decimal.h libc3/buf_inspect_u16.c libc3/binding.h libc3/io.c libc3/ceiling.c libc3/ceiling.h libc3/cfn.c libc3/cfn.h libc3/character.c libc3/character.h libc3/buf_inspect_u8_hexadecimal.c libc3/buf_inspect_u8_hexadecimal.h 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_inspect_u16_decimal.c libc3/buf_inspect_u16_decimal.h libc3/buf_inspect_u16_hexadecimal.c libc3/buf_inspect_u16_hexadecimal.h libc3/compare.c libc3/buf_inspect.c libc3/compare.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/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/error.c libc3/error.h libc3/error_handler.c libc3/eval.h libc3/eval.c libc3/facts.h 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/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/set__fact.c libc3/file.h libc3/fact.c libc3/fact.h libc3/facts_cursor.c 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/buf_inspect_uw_hexadecimal.c libc3/buf_inspect_uw_hexadecimal.h libc3/buf_parse_s8.c libc3/buf_parse_s8.h libc3/buf_parse_s16.c libc3/buf_parse_s16.h libc3/buf_parse_s32.c libc3/buf_parse_s32.h libc3/s8.c libc3/list.c libc3/facts_cursor.h libc3/facts_spec.c libc3/facts_spec.h libc3/facts_spec_cursor.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/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/buf_parse_u.h.in libc3/facts_with.c libc3/facts_with.h libc3/facts_with_cursor.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/skiplist__fact.h libc3/skiplist_node__fact.c libc3/skiplist_node__fact.h libc3/s8.h libc3/s16.c libc3/s16.h libc3/s32.c libc3/s32.h libc3/facts_with_cursor.h libc3/float.h libc3/frame.c libc3/frame.h libc3/s64.c libc3/s64.h libc3/types.h libc3/sw.c libc3/sw.h libc3/u8.c libc3/u8.h libc3/u16.c libc3/f64.h libc3/u16.h libc3/u32.c libc3/f32.c libc3/f64.c libc3/u32.h libc3/u64.c libc3/u64.h libc3/uw.c libc3/uw.h libc3/hash.h libc3/ident.h libc3/integer.c libc3/integer.h libc3/io.h libc3/list.h libc3/log.c libc3/log.h libc3/buf_inspect_s.h.in libc3/module.c libc3/buf_inspect.h libc3/c3_main.h libc3/sequence.c libc3/sequence.h libc3/abs.h libc3/str.c libc3/module.h libc3/buf_parse_u.c.in libc3/quote.c libc3/quote.h libc3/set.c.in libc3/set.h.in libc3/buf_inspect_s_base.h.in libc3/map.h libc3/set_cursor.c.in libc3/set_cursor.h.in libc3/set_item.c.in libc3/set_item.h.in 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/tag.c libc3/ucd.c libc3/sym.h libc3/tuple.c libc3/tuple.h libc3/type.c libc3/buf_parse.c libc3/ucd.h libc3/buf_parse_s.c.in libc3/buf_parse_s.h.in libc3/buf_inspect_s.c.in libc3/error_handler.h libc3/ident.c libc3/env.c libc3/buf_inspect_s_base.c.in libc3/buf_inspect_u.c.in libc3/buf_inspect_u.h.in libc3/env.h libc3/arg.h libc3/buf_inspect_u_base.c.in libc3/buf_inspect_u_base.h.in libc3/map.c libc3/window/cairo/xcb/config.h libc3/window/cairo/xcb/window_cairo_xcb.c 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/demo/window.c libc3/window/cairo/xcb/window_cairo_xcb.h libc3/window/cairo/types.h libc3/window/cairo/c3_window_cairo_demo.h libc3/window/cairo/window_cairo.h libc3/window/cairo/c3_window_cairo_demo.c libc3/window/cairo/window_cairo.c libc3/window/cairo/quartz/custom_cairo_view.h libc3/window/cairo/quartz/demo/c3_window_cairo_quartz_demo_bridging_header.h libc3/window/types.h libc3/window/window.c libc3/window/window.h libc3/u.c.in libc3/fn.c libc3/u.h.in libc3/sha1.h libc3/fn.h libc3/tag.h libc3/facts.c libc3/license.c libc3/operator.c libc3/ptag.h libc3/f32.h libc3/fn_clause.h libc3/s.c.in libc3/operator.h libc3/sym.c libc3/fn_clause.c libc3/ptag.c libc3/var.h libc3/var.c libc3/time.c libc3/time.h libc3/file.c 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/configure libc3/update_sources libc3/window/configure libc3/window/update_sources libc3/window/cairo/xcb/demo/configure libc3/window/cairo/xcb/demo/update_sources libc3/window/cairo/xcb/configure libc3/window/cairo/xcb/update_sources libc3/window/cairo/configure libc3/window/cairo/update_sources libc3/window/cairo/quartz/demo/configure libc3/window/cairo/quartz/demo/update_sources libc3/window/cairo/quartz/configure libc3/window/cairo/quartz/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 libc3/window/Makefile libc3/window/cairo/xcb/demo/Makefile libc3/window/cairo/xcb/Makefile libc3/window/cairo/Makefile libc3/window/cairo/quartz/demo/Makefile libc3/window/cairo/quartz/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.h ic3/ic3.c ic3/linenoise.c ic3/buf_linenoise.c libc3/buf_inspect_s_base.c.in libc3/type.h libc3/fact.c libc3/time.h libc3/fn.h libc3/s16.h libc3/buf_inspect_s8_octal.h libc3/log.c libc3/error.h libc3/buf_inspect_u64_octal.h libc3/set_item.h.in libc3/compare.c libc3/buf_inspect_s8_binary.h libc3/buf_inspect_uw_hexadecimal.h libc3/uw.c libc3/eval.c libc3/set__fact.c libc3/sym.h libc3/env.h libc3/cfn.c libc3/buf_inspect_u16_octal.h libc3/u.h.in libc3/buf_parse_s16.c libc3/s8.h libc3/quote.h libc3/buf_inspect_s32.h libc3/buf_inspect.c libc3/buf_parse_u.h.in libc3/skiplist_node__fact.h libc3/skiplist__fact.c libc3/buf_inspect_s32_hexadecimal.h libc3/ceiling.h libc3/list.c libc3/buf_inspect_u64.c libc3/facts.h libc3/buf_inspect_u16_decimal.c libc3/facts_with_cursor.c libc3/buf_inspect_sw_decimal.c libc3/facts_cursor.c libc3/buf_inspect_u64_binary.h libc3/buf_inspect_sw_hexadecimal.h libc3/buf_inspect_s32_decimal.h libc3/u16.h libc3/buf_inspect_s64_octal.h libc3/buf_inspect_u8_binary.h libc3/buf_inspect_s8.h libc3/buf_inspect_s16_octal.h libc3/ucd.c libc3/buf_inspect_s16_binary.h libc3/tuple.c libc3/buf_inspect_uw_octal.h libc3/buf_parse_u8.c libc3/tag.h libc3/float.h libc3/buf_inspect_u_base.c.in libc3/buf_parse_u16.c libc3/buf_inspect_u16_hexadecimal.h libc3/buf_inspect_s8_decimal.c libc3/buf_inspect_u32.h libc3/array.c libc3/buf_parse_sw.h libc3/set.h.in libc3/s.c.in libc3/buf_parse_s.c.in libc3/map.h libc3/skiplist.h.in libc3/set__tag.h libc3/buf_inspect_s64.c libc3/io.c libc3/set_item__tag.c libc3/sequence.c libc3/types.h libc3/buf_inspect_uw.c libc3/buf_inspect_u32_binary.c libc3/buf_inspect_s64_decimal.h libc3/set_cursor.c.in libc3/ident.c libc3/buf_inspect_s64_hexadecimal.c libc3/bool.h libc3/s.h.in libc3/set.c.in libc3/skiplist.c.in libc3/operator.h libc3/fn_clause.h libc3/buf_parse_s.h.in libc3/buf_inspect_s16.c libc3/binding.c libc3/ptag.h libc3/buf_parse_s32.h libc3/var.h libc3/set_item__fact.h libc3/u8.c libc3/set_cursor.h.in libc3/f32.c libc3/buf_inspect_sw_octal.h libc3/c3.h libc3/arg.h libc3/buf_inspect_u8_hexadecimal.c libc3/buf_inspect_u32_hexadecimal.h libc3/buf_parse_u64.c libc3/module.c libc3/frame.h libc3/buf_inspect_s16_decimal.c libc3/file.h libc3/sw.h libc3/s32.c libc3/error_handler.c libc3/str.c libc3/buf_parse.h libc3/buf_inspect_uw_binary.c libc3/buf_inspect_uw_decimal.h libc3/facts_spec_cursor.c libc3/u64.h libc3/buf_inspect_u_base.h.in libc3/buf_inspect_s32_octal.h libc3/f64.h libc3/buf_inspect_u8_octal.h libc3/buf_inspect_s64_binary.c libc3/buf_inspect_u64_hexadecimal.c libc3/buf_inspect_u16_binary.c libc3/buf_save.h libc3/buf_inspect_u16.c libc3/buf_inspect_s8_hexadecimal.c libc3/u.c.in libc3/buf_inspect_sw.h libc3/facts_with.c libc3/buf_parse_u.c.in libc3/buf_parse_u32.h libc3/set_cursor__fact.c libc3/buf.h libc3/set_cursor__tag.h libc3/buf_inspect_s16_hexadecimal.h libc3/buf_inspect_u32_decimal.h libc3/buf_parse_uw.c libc3/buf_parse_s64.c libc3/abs.h libc3/buf_inspect_sw_binary.c libc3/buf_parse_s8.h libc3/call.h libc3/sign.c libc3/buf_inspect_u8_decimal.h libc3/character.h libc3/buf_inspect_u64_decimal.h libc3/buf_inspect_s_base.h.in libc3/buf_inspect_u32_octal.h libc3/u32.c libc3/hash.c libc3/buf_file.h libc3/integer.c libc3/buf_inspect_u8.c libc3/facts_spec.c libc3/buf_inspect_s32_binary.h libc3/set_item.c.in libc3/s64.h libc3/buf_inspect_u16_decimal.h libc3/facts.c libc3/buf_inspect_u64.h libc3/buf_inspect_sw_decimal.h libc3/facts_with_cursor.h libc3/skiplist_node__fact.c libc3/buf_inspect.h libc3/quote.c libc3/buf_inspect_s32.c libc3/skiplist_node.h.in libc3/s8.c libc3/buf_parse_s16.h libc3/list.h libc3/ceiling.c libc3/buf_inspect_s.h.in libc3/buf_inspect_s32_hexadecimal.c libc3/skiplist__fact.h libc3/uw.h libc3/buf_inspect_uw_hexadecimal.c libc3/buf_inspect_s8_binary.c libc3/compare.h libc3/buf_inspect_u64_octal.c libc3/buf_inspect_u16_octal.c libc3/cfn.h libc3/env.c libc3/set__fact.h libc3/sym.c libc3/eval.h libc3/c3_main.h libc3/buf_inspect_s8_octal.c libc3/s16.c libc3/fn.c libc3/time.c libc3/fact.h libc3/type.c libc3/error.c libc3/log.h libc3/sequence.h libc3/set_item__tag.h libc3/io.h libc3/buf_inspect_s64.h libc3/buf_inspect_s64_hexadecimal.h libc3/window/types.h libc3/window/window.h libc3/window/cairo/xcb/demo/c3_window_cairo_xcb_demo.c libc3/window/cairo/xcb/demo/window.c libc3/window/cairo/xcb/window_cairo_xcb.h libc3/window/cairo/xcb/config.h libc3/window/cairo/xcb/window_cairo_xcb.c libc3/window/cairo/types.h libc3/window/cairo/window_cairo.c libc3/window/cairo/c3_window_cairo_demo.h libc3/window/cairo/quartz/demo/c3_window_cairo_quartz_demo_bridging_header.h libc3/window/cairo/quartz/demo/main.c libc3/window/cairo/quartz/custom_cairo_view.h libc3/window/cairo/window_cairo.h libc3/window/cairo/c3_window_cairo_demo.c libc3/window/window.c libc3/ident.h libc3/buf_inspect_s64_decimal.c libc3/buf_inspect_u32_binary.h libc3/buf_inspect_uw.h libc3/buf_inspect_u.c.in libc3/buf_parse_sw.c libc3/array.h libc3/buf_inspect_u32.c libc3/buf_inspect_s8_decimal.h libc3/buf_inspect_u16_hexadecimal.c libc3/buf_parse_u16.h libc3/set__tag.c libc3/map.c libc3/tag.c libc3/buf_parse_u8.h libc3/buf_inspect_uw_octal.c libc3/buf_inspect_u8_binary.c libc3/buf_inspect_s64_octal.c libc3/u16.c libc3/buf_inspect_sw_hexadecimal.c libc3/buf_inspect_s32_decimal.c libc3/buf_inspect_u64_binary.c libc3/facts_cursor.h libc3/tuple.h libc3/buf_inspect_s16_binary.c libc3/ucd.h libc3/buf_inspect_s16_octal.c libc3/buf_inspect_s8.c libc3/sha1.h libc3/buf_inspect_uw_binary.h libc3/buf_parse.c libc3/str.h libc3/error_handler.h libc3/u64.c libc3/buf_inspect_s32_octal.c libc3/facts_spec_cursor.h libc3/buf_inspect_uw_decimal.c libc3/sw.c libc3/file.c libc3/buf_inspect_s16_decimal.h libc3/frame.c libc3/s32.h libc3/c3.c libc3/f32.h libc3/buf_inspect_sw_octal.c libc3/u8.h libc3/set_item__fact.c libc3/var.c libc3/module.h libc3/license.c libc3/buf_inspect_u32_hexadecimal.c libc3/buf_parse_u64.h libc3/buf_inspect_u8_hexadecimal.h libc3/arg.c libc3/fn_clause.c libc3/operator.c libc3/bool.c libc3/buf_parse_s32.c libc3/ptag.c libc3/binding.h libc3/buf_inspect_u.h.in libc3/buf_inspect_s16.h libc3/integer.h libc3/buf_file.c libc3/s64.c libc3/buf_inspect_s32_binary.c libc3/buf_inspect_u8.h libc3/facts_spec.h libc3/buf_inspect_u8_decimal.c libc3/sign.h libc3/call.c libc3/buf_parse_s8.c libc3/buf_inspect_sw_binary.h libc3/hash.h libc3/u32.h libc3/buf_inspect_u32_octal.c libc3/character.c libc3/buf_inspect_u64_decimal.c libc3/buf_parse_uw.h libc3/buf_inspect_u32_decimal.c libc3/buf_inspect_s16_hexadecimal.c libc3/set_cursor__tag.c libc3/set_cursor__fact.h libc3/buf.c libc3/abs.c libc3/buf_parse_s64.h libc3/buf_inspect_s.c.in libc3/buf_inspect_s64_binary.h libc3/buf_inspect_u8_octal.c libc3/f64.c libc3/skiplist_node.c.in libc3/buf_parse_u32.c libc3/facts_with.h libc3/buf_inspect_sw.c libc3/buf_inspect_u16.h libc3/buf_inspect_s8_hexadecimal.h libc3/buf_inspect_u16_binary.h libc3/buf_inspect_u64_hexadecimal.h libc3/buf_save.c test/ident_test.c test/buf_parse_test_s16.c test/buf_inspect_test.c test/libc3_test.c test/fn_test.c test/buf_parse_test_u16.c test/str_test.c test/cfn_test.c test/character_test.c test/buf_parse_test_s8.c test/skiplist__fact_test.c test/sym_test.c test/tag_test.h test/buf_file_test.c test/bool_test.c test/fact_test.h test/buf_parse_test_u64.c test/compare_test.c test/facts_with_test.c test/array_test.c test/buf_parse_test.h test/test.h test/buf_parse_test_su.h test/env_test.c test/buf_parse_test_s64.c test/types_test.c test/hash_test.c test/call_test.c test/set__tag_test.c test/facts_test.c test/facts_cursor_test.c test/compare_test.h test/buf_parse_test_s32.c test/test.c test/buf_parse_test.c test/fact_test.c test/tag_test.c test/set__fact_test.c test/buf_parse_test_u32.c test/buf_test.c test/list_test.c test/buf_parse_test_u8.c test/tuple_test.c ucd2c/ucd.h ucd2c/ucd2c.c '