From c594cdadbed70bc64274a84b804579412be4a06b Mon Sep 17 00:00:00 2001
From: Justin Ethier <justin.ethier@gmail.com>
Date: Tue, 19 Apr 2016 23:28:40 -0400
Subject: [PATCH] Added include-c-header

---
 examples/game-of-life-png/example/life.sld |  1 +
 scheme/cyclone/libraries.sld               | 10 ++++++++++
 2 files changed, 11 insertions(+)

diff --git a/examples/game-of-life-png/example/life.sld b/examples/game-of-life-png/example/life.sld
index d1a0f84f..85b58c38 100644
--- a/examples/game-of-life-png/example/life.sld
+++ b/examples/game-of-life-png/example/life.sld
@@ -1,4 +1,5 @@
 (define-library (example life)
+  (include-c-header "../write-png.h")
   (export life)
   (import (scheme base) ;TODO: (except (scheme base) set!)
           (scheme write)
diff --git a/scheme/cyclone/libraries.sld b/scheme/cyclone/libraries.sld
index a642026d..93d192e8 100644
--- a/scheme/cyclone/libraries.sld
+++ b/scheme/cyclone/libraries.sld
@@ -30,6 +30,7 @@
     lib:imports
     lib:body
     lib:includes
+    lib:include-c-headers
     lib:import->filename
     lib:import->metalist
     lib:import->path
@@ -115,6 +116,15 @@
         (tagged-list? 'include code))
       (cddr ast))))
 
+(define (lib:include-c-headers ast)
+  (map
+    (lambda (inc-lst)
+      (cadr inc-lst))
+    (filter
+      (lambda (code)
+        (tagged-list? 'include-c-header code))
+      (cddr ast))))
+
 ;; TODO: include-ci, cond-expand
 
 (define (lib:atom->string atom)