From 959aef925fac06e8be512e6a2a2c45a7897eac2c Mon Sep 17 00:00:00 2001
From: Eduardo Cavazos <dharmatech@finkelstein.stackeffects.info>
Date: Sun, 9 Mar 2008 03:48:19 -0600
Subject: [PATCH 1/5] logging-docs: typo

---
 extra/logging/logging-docs.factor | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/extra/logging/logging-docs.factor b/extra/logging/logging-docs.factor
index 715b1551b9..a7750fe388 100755
--- a/extra/logging/logging-docs.factor
+++ b/extra/logging/logging-docs.factor
@@ -100,7 +100,7 @@ ARTICLE: "logging.rotation" "Log rotation"
 "The " { $vocab-link "logging.insomniac" } " vocabulary automates log rotation." ;
 
 ARTICLE: "logging.server" "Log implementation"
-"The " { $vocab-link "logging.server" } " vocabulary implements a concurrent log server using " { $vocab-link "concurrency" } ". User code never interacts with the server directly, instead ot uses the words in the " { $link "logging" } " vocabulary. The server is used to synchronize access to log files and ensure that log rotation can proceed in an orderly fashion."
+"The " { $vocab-link "logging.server" } " vocabulary implements a concurrent log server using " { $vocab-link "concurrency" } ". User code never interacts with the server directly, instead it uses the words in the " { $link "logging" } " vocabulary. The server is used to synchronize access to log files and ensure that log rotation can proceed in an orderly fashion."
 $nl
 "The " { $link log-message } " word sends a message to the server which results in the server executing an internal word:"
 { $subsection (log-message) }

From 6f2a435498db0b6fee1cbafa65a3c983f6d52ef5 Mon Sep 17 00:00:00 2001
From: Eduardo Cavazos <dharmatech@finkelstein.stackeffects.info>
Date: Sun, 9 Mar 2008 04:49:35 -0600
Subject: [PATCH 2/5] builder: Include help-lint results in report

---
 extra/builder/builder.factor   | 1 +
 extra/builder/test/test.factor | 5 +++++
 2 files changed, 6 insertions(+)

diff --git a/extra/builder/builder.factor b/extra/builder/builder.factor
index 747f0cd1e5..68f525ec6c 100644
--- a/extra/builder/builder.factor
+++ b/extra/builder/builder.factor
@@ -132,6 +132,7 @@ SYMBOL: build-status
 
       "Did not pass load-everything: " print "load-everything-vocabs" cat
       "Did not pass test-all: "        print "test-all-vocabs"        cat
+      "help-lint results:"             print "help-lint"              cat
 
       "Benchmarks: " print "benchmarks" eval-file benchmarks.
 
diff --git a/extra/builder/test/test.factor b/extra/builder/test/test.factor
index e92efaf8fc..dd3c640a84 100644
--- a/extra/builder/test/test.factor
+++ b/extra/builder/test/test.factor
@@ -8,6 +8,7 @@ USING: kernel namespaces sequences assocs builder continuations
        tools.test
        io.encodings.utf8
        combinators.cleave
+       help.lint
        bootstrap.stage2 benchmark builder.util ;
 
 IN: builder.test
@@ -28,6 +29,9 @@ IN: builder.test
     ]
   with-file-writer ;
 
+: do-help-lint ( -- )
+  "" run-help-lint "../help-lint" utf8 [ typos. ] with-file-writer ;
+
 : do-benchmarks ( -- )
   run-benchmarks "../benchmarks" utf8 [ . ] with-file-writer ;
 
@@ -35,6 +39,7 @@ IN: builder.test
   bootstrap-time get   "../boot-time" utf8 [ . ] with-file-writer
   [ do-load  ] runtime "../load-time" utf8 [ . ] with-file-writer
   [ do-tests ] runtime "../test-time" utf8 [ . ] with-file-writer
+  do-help-lint
   do-benchmarks ;
 
 MAIN: do-all
\ No newline at end of file

From 6f7d7158f15986465c7af3c18d831cc9779c3bb0 Mon Sep 17 00:00:00 2001
From: Slava Pestov <slava@factorcode.org>
Date: Sun, 9 Mar 2008 06:51:22 -0500
Subject: [PATCH 3/5] Fix oracle unit test

---
 extra/oracle/oracle-tests.factor | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/extra/oracle/oracle-tests.factor b/extra/oracle/oracle-tests.factor
index 7006bde23a..2f957ac4a9 100755
--- a/extra/oracle/oracle-tests.factor
+++ b/extra/oracle/oracle-tests.factor
@@ -1,4 +1,5 @@
-USING: oracle oracle.liboci prettyprint tools.test ;
+USING: oracle oracle.liboci prettyprint tools.test
+kernel ;
 
 [
     "testuser" "testpassword" "//localhost/test1" log-on .

From 087316a08e679fbc18cf3381a21b73f56fd7e812 Mon Sep 17 00:00:00 2001
From: Doug Coleman <doug.coleman@gmail.com>
Date: Sun, 9 Mar 2008 16:27:56 -0500
Subject: [PATCH 4/5] add cairo png bindings

---
 extra/cairo/cairo.factor | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/extra/cairo/cairo.factor b/extra/cairo/cairo.factor
index 4ec9de8c5b..ed41500fde 100644
--- a/extra/cairo/cairo.factor
+++ b/extra/cairo/cairo.factor
@@ -14,10 +14,13 @@ IN: cairo
 
 << "cairo" {
         { [ win32? ] [ "cairo.dll" ] }
-        { [ macosx? ] [ "libcairo.dylib" ] }
+        ! { [ macosx? ] [ "libcairo.dylib" ] }
+        { [ macosx? ] [ "/opt/local/lib/libcairo.dylib" ] }
         { [ unix? ] [ "libcairo.so.2" ] }
   } cond "cdecl" add-library >>
 
+LIBRARY: cairo
+
 ! cairo_status_t
 C-ENUM:
     CAIRO_STATUS_SUCCESS
@@ -437,3 +440,18 @@ C-ENUM:
 
 : cairo_pdf_surface_set_size ( surface width height -- )
   "void" "cairo" "cairo_pdf_surface_set_size" [ "void*" "double" "double" ] alien-invoke ;
+
+! Cairo png
+
+TYPEDEF: void* cairo_write_func_t
+TYPEDEF: void* cairo_read_func_t
+TYPEDEF: void* cairo_surface_t*
+TYPEDEF: uint cairo_status_t
+
+FUNCTION: cairo_surface_t* cairo_image_surface_create_from_png ( char* filename ) ;
+
+FUNCTION: cairo_surface_t* cairo_image_surface_create_from_png_stream ( cairo_read_func_t read_func, void* closure ) ;
+
+FUNCTION: cairo_status_t cairo_surface_write_to_png ( cairo_surface_t* surface, char* filename ) ;
+
+FUNCTION: cairo_status_t cairo_surface_write_to_png_stream ( cairo_surface_t* surface, cairo_write_func_t write_func, void* closure ) ;

From 21e0f8c3023a569f933bf873012b881c29d64244 Mon Sep 17 00:00:00 2001
From: Doug Coleman <doug.coleman@gmail.com>
Date: Sun, 9 Mar 2008 16:37:13 -0500
Subject: [PATCH 5/5] add typedefs to cairo add functions to get
 width/height/etc from surfaces

---
 extra/cairo/cairo.factor | 34 ++++++++++++++++++----------------
 1 file changed, 18 insertions(+), 16 deletions(-)

diff --git a/extra/cairo/cairo.factor b/extra/cairo/cairo.factor
index ed41500fde..0d3e0c27e6 100644
--- a/extra/cairo/cairo.factor
+++ b/extra/cairo/cairo.factor
@@ -21,7 +21,7 @@ IN: cairo
 
 LIBRARY: cairo
 
-! cairo_status_t
+TYPEDEF: int cairo_status_t
 C-ENUM:
     CAIRO_STATUS_SUCCESS
     CAIRO_STATUS_NO_MEMORY
@@ -48,12 +48,12 @@ C-ENUM:
     CAIRO_STATUS_CLIP_NOT_REPRESENTABLE
 ;
 
-! cairo_content_t
+TYPEDEF: int cairo_content_t
 : CAIRO_CONTENT_COLOR HEX: 1000 ;
 : CAIRO_CONTENT_ALPHA HEX: 2000 ;
 : CAIRO_CONTENT_COLOR_ALPHA HEX: 3000 ;
 
-! cairo_operator_t
+TYPEDEF: int cairo_operator_t
 C-ENUM:
     CAIRO_OPERATOR_CLEAR
     CAIRO_OPERATOR_SOURCE
@@ -71,34 +71,34 @@ C-ENUM:
     CAIRO_OPERATOR_SATURATE
 ;
 
-! cairo_line_cap_t
+TYPEDEF: int cairo_line_cap_t
 C-ENUM:
     CAIRO_LINE_CAP_BUTT
     CAIRO_LINE_CAP_ROUND
     CAIRO_LINE_CAP_SQUARE
 ;
 
-! cair_line_join_t
+TYPEDEF: int cair_line_join_t
 C-ENUM:
     CAIRO_LINE_JOIN_MITER
     CAIRO_LINE_JOIN_ROUND
     CAIRO_LINE_JOIN_BEVEL
 ;
 
-! cairo_fill_rule_t
+TYPEDEF: int cairo_fill_rule_t
 C-ENUM:
     CAIRO_FILL_RULE_WINDING
     CAIRO_FILL_RULE_EVEN_ODD
 ;
 
-! cairo_font_slant_t
+TYPEDEF: int cairo_font_slant_t
 C-ENUM:
     CAIRO_FONT_SLANT_NORMAL
     CAIRO_FONT_SLANT_ITALIC
     CAIRO_FONT_SLANT_OBLIQUE
 ;
 
-! cairo_font_weight_t
+TYPEDEF: int cairo_font_weight_t
 C-ENUM:
     CAIRO_FONT_WEIGHT_NORMAL
     CAIRO_FONT_WEIGHT_BOLD
@@ -162,7 +162,7 @@ C-STRUCT: cairo_matrix_t
         { "double" "x0" }
         { "double" "y0" } ;
 
-! cairo_format_t
+TYPEDEF: int cairo_format_t
 C-ENUM:
     CAIRO_FORMAT_ARGB32
     CAIRO_FORMAT_RGB24
@@ -170,7 +170,7 @@ C-ENUM:
     CAIRO_FORMAT_A1
 ;
 
-! cairo_antialias_t
+TYPEDEF: int cairo_antialias_t
 C-ENUM:
     CAIRO_ANTIALIAS_DEFAULT
     CAIRO_ANTIALIAS_NONE
@@ -178,7 +178,7 @@ C-ENUM:
     CAIRO_ANTIALIAS_SUBPIXEL
 ;
 
-! cairo_subpixel_order_t
+TYPEDEF: int cairo_subpixel_order_t
 C-ENUM:
     CAIRO_SUBPIXEL_ORDER_DEFAULT
     CAIRO_SUBPIXEL_ORDER_RGB
@@ -187,7 +187,7 @@ C-ENUM:
     CAIRO_SUBPIXEL_ORDER_VBGR
 ;
 
-! cairo_hint_style_t
+TYPEDEF: int cairo_hint_style_t
 C-ENUM:
     CAIRO_HINT_STYLE_DEFAULT
     CAIRO_HINT_STYLE_NONE
@@ -196,7 +196,7 @@ C-ENUM:
     CAIRO_HINT_STYLE_FULL
 ;
 
-! cairo_hint_metrics_t
+TYPEDEF: int cairo_hint_metrics_t
 C-ENUM:
     CAIRO_HINT_METRICS_DEFAULT
     CAIRO_HINT_METRICS_OFF
@@ -423,7 +423,11 @@ C-ENUM:
 : cairo_get_font_matrix ( cairo_t cairo_matrix_t -- )
         "void" "cairo" "cairo_get_font_matrix" [ "cairo_t*" "cairo_matrix_t*" ] alien-invoke ;
 
-
+FUNCTION: uchar* cairo_image_surface_get_data ( cairo_surface_t* surface ) ;
+FUNCTION: cairo_format_t cairo_image_surface_get_format ( cairo_surface_t* surface ) ;
+FUNCTION: int cairo_image_surface_get_width ( cairo_surface_t* surface ) ;
+FUNCTION: int cairo_image_surface_get_height ( cairo_surface_t* surface ) ;
+FUNCTION: int cairo_image_surface_get_stride ( cairo_surface_t* surface ) ;
 
 ! Cairo pdf
 
@@ -445,8 +449,6 @@ C-ENUM:
 
 TYPEDEF: void* cairo_write_func_t
 TYPEDEF: void* cairo_read_func_t
-TYPEDEF: void* cairo_surface_t*
-TYPEDEF: uint cairo_status_t
 
 FUNCTION: cairo_surface_t* cairo_image_surface_create_from_png ( char* filename ) ;