Fixes in styles for modern GCC XML
authorJan Vrany <jan.vrany@fit.cvut.cz>
Wed, 30 May 2012 19:57:40 +0000
changeset 21 899da9dea8a9
parent 20 31f3152de537
child 22 57da23a9fbbd
Fixes in styles for modern GCC XML
resources/examples/libcairo/Makefile
resources/examples/libcairo/libcairo.def
resources/styles/gccxml2def-utils.xsl
resources/styles/gccxml2def.xsl
--- a/resources/examples/libcairo/Makefile	Wed May 30 19:56:35 2012 +0000
+++ b/resources/examples/libcairo/Makefile	Wed May 30 19:57:40 2012 +0000
@@ -21,17 +21,17 @@
 
 xml: $(CAIRO_XMLFILES)
 
-libcairo.def:	$(CAIRO_DEFFILES)
-	cat $(CAIRO_DEFFILES) > libcairo.def 
+libcairo.def:   $(CAIRO_DEFFILES)
+	cat $(CAIRO_DEFFILES) > libcairo.def
 
 %.h.def:%.h.xml
-	$(XSLTPROC) $(XSLTPROC_FLAGS) -o $@ $(XML2DEF_XSL) $< 
+	$(XSLTPROC) $(XSLTPROC_FLAGS) -o $@ $(XML2DEF_XSL) $<
 
-%.h.xml: $(CAIRO_INCLUDE_DIR)/%.h	
-	$(GCC_XML) -I$(CAIRO_INCLUDE_DIR) $< -fxml=$@
+%.h.xml: $(CAIRO_INCLUDE_DIR)/%.h
+	$(GCC_XML) --gccxml-compiler gcc -m32 -I$(CAIRO_INCLUDE_DIR) $< -fxml=$@
 
 clean:
-	rm -rf *.h.xml *.h.def 
+	rm -rf *.h.xml *.h.def
 
 distclean: clean
 	rm -rf libcairo.def
--- a/resources/examples/libcairo/libcairo.def	Wed May 30 19:56:35 2012 +0000
+++ b/resources/examples/libcairo/libcairo.def	Wed May 30 19:57:40 2012 +0000
@@ -3,6 +3,15 @@
 	(
 		(argument ((pointer-to cairo_t)) cr))
 	(return void))
+(enum _cairo_text_cluster_flags
+	(value (CAIRO_TEXT_CLUSTER_FLAG_BACKWARD) 1))
+(typedef cairo_text_cluster_flags_t
+	_cairo_text_cluster_flags)
+(function cairo_region_intersect_rectangle
+	(
+		(argument ((pointer-to cairo_region_t)) dst)
+		(argument ((pointer-to const cairo_rectangle_int_t)) rectangle))
+	(return cairo_status_t))
 (struct cairo_glyph_t :size 160
 	(field (long unsigned int) index :offset 0)
 	(field (double) x :offset 32)
@@ -37,6 +46,13 @@
 	(
 		(argument ((pointer-to cairo_t)) cr))
 	(return cairo_fill_rule_t))
+(enum _cairo_device_type
+	(value (CAIRO_DEVICE_TYPE_DRM) 0)
+	(value (CAIRO_DEVICE_TYPE_GL) 1)
+	(value (CAIRO_DEVICE_TYPE_SCRIPT) 2)
+	(value (CAIRO_DEVICE_TYPE_XCB) 3)
+	(value (CAIRO_DEVICE_TYPE_XLIB) 4)
+	(value (CAIRO_DEVICE_TYPE_XML) 5))
 (function cairo_arc
 	(
 		(argument ((pointer-to cairo_t)) cr)
@@ -74,6 +90,12 @@
 	(
 		(argument ((pointer-to cairo_pattern_t)) pattern))
 	(return cairo_pattern_type_t))
+(struct _cairo_region :size 0)
+(typedef cairo_region_t
+	_cairo_region)
+(function cairo_region_create
+	()
+	(return (pointer-to cairo_region_t)))
 (struct _cairo_user_data_key :size 32
 	(field (int) unused :offset 0))
 (function cairo_rel_line_to
@@ -141,6 +163,16 @@
 	(
 		(argument ((pointer-to cairo_surface_t)) surface))
 	(return int))
+(function cairo_user_font_face_get_render_glyph_func
+	(
+		(argument ((pointer-to cairo_font_face_t)) font_face))
+	(return (pointer-to (function-type cairo_user_scaled_font_render_glyph_func_t
+			(
+				(argument ((pointer-to cairo_scaled_font_t)) )
+				(argument (long unsigned int) )
+				(argument ((pointer-to cairo_t)) )
+				(argument ((pointer-to cairo_text_extents_t)) ))
+			(return cairo_status_t)))))
 (struct cairo_text_extents_t :size 384
 	(field (double) x_bearing :offset 0)
 	(field (double) y_bearing :offset 64)
@@ -172,6 +204,10 @@
 		(argument ((pointer-to double)) y1)
 		(argument ((pointer-to double)) r1))
 	(return cairo_status_t))
+(function cairo_device_finish
+	(
+		(argument ((pointer-to cairo_device_t)) device))
+	(return void))
 (function cairo_matrix_rotate
 	(
 		(argument ((pointer-to cairo_matrix_t)) matrix)
@@ -196,6 +232,12 @@
 		(argument (int) height)
 		(argument (int) stride))
 	(return (pointer-to cairo_surface_t)))
+(function cairo_line_to
+	(
+		(argument ((pointer-to cairo_t)) cr)
+		(argument (double) x)
+		(argument (double) y))
+	(return void))
 (struct _cairo_rectangle_list :size 96
 	(field (cairo_status_t) status :offset 0)
 	(field (
@@ -209,6 +251,12 @@
 		(argument (cairo_format_t) format)
 		(argument (int) width))
 	(return int))
+(enum _cairo_region_overlap
+	(value (CAIRO_REGION_OVERLAP_IN) 0)
+	(value (CAIRO_REGION_OVERLAP_OUT) 1)
+	(value (CAIRO_REGION_OVERLAP_PART) 2))
+(typedef cairo_region_overlap_t
+	_cairo_region_overlap)
 (function cairo_surface_destroy
 	(
 		(argument ((pointer-to cairo_surface_t)) surface))
@@ -242,7 +290,19 @@
 	(value (CAIRO_STATUS_INVALID_INDEX) 21)
 	(value (CAIRO_STATUS_CLIP_NOT_REPRESENTABLE) 22)
 	(value (CAIRO_STATUS_TEMP_FILE_ERROR) 23)
-	(value (CAIRO_STATUS_INVALID_STRIDE) 24))
+	(value (CAIRO_STATUS_INVALID_STRIDE) 24)
+	(value (CAIRO_STATUS_FONT_TYPE_MISMATCH) 25)
+	(value (CAIRO_STATUS_USER_FONT_IMMUTABLE) 26)
+	(value (CAIRO_STATUS_USER_FONT_ERROR) 27)
+	(value (CAIRO_STATUS_NEGATIVE_COUNT) 28)
+	(value (CAIRO_STATUS_INVALID_CLUSTERS) 29)
+	(value (CAIRO_STATUS_INVALID_SLANT) 30)
+	(value (CAIRO_STATUS_INVALID_WEIGHT) 31)
+	(value (CAIRO_STATUS_INVALID_SIZE) 32)
+	(value (CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED) 33)
+	(value (CAIRO_STATUS_DEVICE_TYPE_MISMATCH) 34)
+	(value (CAIRO_STATUS_DEVICE_ERROR) 35)
+	(value (CAIRO_STATUS_LAST_STATUS) 36))
 (typedef cairo_status_t
 	_cairo_status)
 (function cairo_set_user_data
@@ -255,16 +315,6 @@
 				(argument ((pointer-to void)) ))
 			(return void)))) destroy))
 	(return cairo_status_t))
-(function cairo_curve_to
-	(
-		(argument ((pointer-to cairo_t)) cr)
-		(argument (double) x1)
-		(argument (double) y1)
-		(argument (double) x2)
-		(argument (double) y2)
-		(argument (double) x3)
-		(argument (double) y3))
-	(return void))
 (function cairo_matrix_init_rotate
 	(
 		(argument ((pointer-to cairo_matrix_t)) matrix)
@@ -290,11 +340,35 @@
 		(argument (double) x)
 		(argument (double) y))
 	(return void))
+(function cairo_user_font_face_get_init_func
+	(
+		(argument ((pointer-to cairo_font_face_t)) font_face))
+	(return (pointer-to (function-type cairo_user_scaled_font_init_func_t
+			(
+				(argument ((pointer-to cairo_scaled_font_t)) )
+				(argument ((pointer-to cairo_t)) )
+				(argument ((pointer-to cairo_font_extents_t)) ))
+			(return cairo_status_t)))))
+(function cairo_region_reference
+	(
+		(argument ((pointer-to cairo_region_t)) region))
+	(return (pointer-to cairo_region_t)))
 (function cairo_set_scaled_font
 	(
 		(argument ((pointer-to cairo_t)) cr)
 		(argument ((pointer-to const cairo_scaled_font_t)) scaled_font))
 	(return void))
+(function cairo_region_get_rectangle
+	(
+		(argument ((pointer-to const cairo_region_t)) region)
+		(argument (int) nth)
+		(argument ((pointer-to cairo_rectangle_int_t)) rectangle))
+	(return void))
+(function cairo_region_equal
+	(
+		(argument ((pointer-to const cairo_region_t)) a)
+		(argument ((pointer-to const cairo_region_t)) b))
+	(return int))
 (function cairo_font_face_reference
 	(
 		(argument ((pointer-to cairo_font_face_t)) font_face))
@@ -380,6 +454,9 @@
 		(argument (double) green)
 		(argument (double) blue))
 	(return void))
+(function cairo_user_font_face_create
+	()
+	(return (pointer-to cairo_font_face_t)))
 (function cairo_show_page
 	(
 		(argument ((pointer-to cairo_t)) cr))
@@ -390,7 +467,17 @@
 	(value (CAIRO_FONT_TYPE_TOY) 0)
 	(value (CAIRO_FONT_TYPE_FT) 1)
 	(value (CAIRO_FONT_TYPE_WIN32) 2)
-	(value (CAIRO_FONT_TYPE_QUARTZ) 3))
+	(value (CAIRO_FONT_TYPE_QUARTZ) 3)
+	(value (CAIRO_FONT_TYPE_USER) 4))
+(function cairo_region_intersect
+	(
+		(argument ((pointer-to cairo_region_t)) dst)
+		(argument ((pointer-to const cairo_region_t)) other))
+	(return cairo_status_t))
+(function cairo_region_copy
+	(
+		(argument ((pointer-to const cairo_region_t)) original))
+	(return (pointer-to cairo_region_t)))
 (function cairo_append_path
 	(
 		(argument ((pointer-to cairo_t)) cr)
@@ -408,6 +495,10 @@
 		(argument ((pointer-to cairo_t)) cr)
 		(argument (double) size))
 	(return void))
+(function cairo_region_status
+	(
+		(argument ((pointer-to const cairo_region_t)) region))
+	(return cairo_status_t))
 (enum _cairo_font_slant
 	(value (CAIRO_FONT_SLANT_NORMAL) 0)
 	(value (CAIRO_FONT_SLANT_ITALIC) 1)
@@ -427,6 +518,11 @@
 		(argument ((pointer-to cairo_t)) cr)
 		(argument ((pointer-to const cairo_matrix_t)) matrix))
 	(return void))
+(function cairo_recording_surface_create
+	(
+		(argument (cairo_content_t) content)
+		(argument ((pointer-to const cairo_rectangle_t)) extents))
+	(return (pointer-to cairo_surface_t)))
 (function cairo_get_tolerance
 	(
 		(argument ((pointer-to cairo_t)) cr))
@@ -452,6 +548,10 @@
 				(argument ((pointer-to void)) ))
 			(return void)))) destroy))
 	(return cairo_status_t))
+(function cairo_glyph_allocate
+	(
+		(argument (int) num_glyphs))
+	(return (pointer-to cairo_glyph_t)))
 (function cairo_translate
 	(
 		(argument ((pointer-to cairo_t)) cr)
@@ -467,6 +567,10 @@
 		(argument ((pointer-to cairo_t)) cr)
 		(argument (double) angle))
 	(return void))
+(function cairo_region_num_rectangles
+	(
+		(argument ((pointer-to const cairo_region_t)) region))
+	(return int))
 (function cairo_get_line_join
 	(
 		(argument ((pointer-to cairo_t)) cr))
@@ -535,16 +639,43 @@
 			(return cairo_status_t)))) write_func)
 		(argument ((pointer-to void)) closure))
 	(return cairo_status_t))
-(function cairo_pattern_status
-	(
-		(argument ((pointer-to cairo_pattern_t)) pattern))
-	(return cairo_status_t))
+(struct _cairo_device :size 0)
+(typedef cairo_device_t
+	_cairo_device)
 (function cairo_text_extents
 	(
 		(argument ((pointer-to cairo_t)) cr)
 		(argument ((pointer-to const char)) utf8)
 		(argument ((pointer-to cairo_text_extents_t)) extents))
 	(return void))
+(function cairo_user_font_face_set_render_glyph_func
+	(
+		(argument ((pointer-to cairo_font_face_t)) font_face)
+		(argument ((pointer-to (function-type cairo_user_scaled_font_render_glyph_func_t
+			(
+				(argument ((pointer-to cairo_scaled_font_t)) )
+				(argument (long unsigned int) )
+				(argument ((pointer-to cairo_t)) )
+				(argument ((pointer-to cairo_text_extents_t)) ))
+			(return cairo_status_t)))) render_glyph_func))
+	(return void))
+(function cairo_region_contains_rectangle
+	(
+		(argument ((pointer-to const cairo_region_t)) region)
+		(argument ((pointer-to const cairo_rectangle_int_t)) rectangle))
+	(return cairo_region_overlap_t))
+(function cairo_toy_font_face_get_family
+	(
+		(argument ((pointer-to cairo_font_face_t)) font_face))
+	(return (pointer-to const char)))
+(function cairo_surface_has_show_text_glyphs
+	(
+		(argument ((pointer-to cairo_surface_t)) surface))
+	(return int))
+(function cairo_toy_font_face_get_slant
+	(
+		(argument ((pointer-to cairo_font_face_t)) font_face))
+	(return cairo_font_slant_t))
 (function cairo_pattern_get_color_stop_rgba
 	(
 		(argument ((pointer-to cairo_pattern_t)) pattern)
@@ -569,7 +700,22 @@
 	(value (CAIRO_OPERATOR_DEST_ATOP) 10)
 	(value (CAIRO_OPERATOR_XOR) 11)
 	(value (CAIRO_OPERATOR_ADD) 12)
-	(value (CAIRO_OPERATOR_SATURATE) 13))
+	(value (CAIRO_OPERATOR_SATURATE) 13)
+	(value (CAIRO_OPERATOR_MULTIPLY) 14)
+	(value (CAIRO_OPERATOR_SCREEN) 15)
+	(value (CAIRO_OPERATOR_OVERLAY) 16)
+	(value (CAIRO_OPERATOR_DARKEN) 17)
+	(value (CAIRO_OPERATOR_LIGHTEN) 18)
+	(value (CAIRO_OPERATOR_COLOR_DODGE) 19)
+	(value (CAIRO_OPERATOR_COLOR_BURN) 20)
+	(value (CAIRO_OPERATOR_HARD_LIGHT) 21)
+	(value (CAIRO_OPERATOR_SOFT_LIGHT) 22)
+	(value (CAIRO_OPERATOR_DIFFERENCE) 23)
+	(value (CAIRO_OPERATOR_EXCLUSION) 24)
+	(value (CAIRO_OPERATOR_HSL_HUE) 25)
+	(value (CAIRO_OPERATOR_HSL_SATURATION) 26)
+	(value (CAIRO_OPERATOR_HSL_COLOR) 27)
+	(value (CAIRO_OPERATOR_HSL_LUMINOSITY) 28))
 (typedef cairo_operator_t
 	_cairo_operator)
 (function cairo_pattern_reference
@@ -581,14 +727,34 @@
 	(value (CAIRO_FONT_WEIGHT_BOLD) 1))
 (typedef cairo_font_weight_t
 	_cairo_font_weight)
-(function cairo_pattern_get_reference_count
-	(
-		(argument ((pointer-to cairo_pattern_t)) pattern))
-	(return unsigned int))
+(function cairo_device_release
+	(
+		(argument ((pointer-to cairo_device_t)) device))
+	(return void))
+(struct cairo_text_cluster_t :size 64
+	(field (int) num_bytes :offset 0)
+	(field (int) num_glyphs :offset 32))
 (function cairo_pattern_get_filter
 	(
 		(argument ((pointer-to cairo_pattern_t)) pattern))
 	(return cairo_filter_t))
+(function cairo_scaled_font_text_to_glyphs
+	(
+		(argument ((pointer-to cairo_scaled_font_t)) scaled_font)
+		(argument (double) x)
+		(argument (double) y)
+		(argument ((pointer-to const char)) utf8)
+		(argument (int) utf8_len)
+		(argument ((pointer-to (pointer-to cairo_glyph_t))) glyphs)
+		(argument ((pointer-to int)) num_glyphs)
+		(argument ((pointer-to (pointer-to cairo_text_cluster_t))) clusters)
+		(argument ((pointer-to int)) num_clusters)
+		(argument ((pointer-to cairo_text_cluster_flags_t)) cluster_flags))
+	(return cairo_status_t))
+(function cairo_device_acquire
+	(
+		(argument ((pointer-to cairo_device_t)) device))
+	(return cairo_status_t))
 (function cairo_scaled_font_get_ctm
 	(
 		(argument ((pointer-to cairo_scaled_font_t)) scaled_font)
@@ -618,12 +784,26 @@
 		(argument ((pointer-to cairo_t)) cr)
 		(argument ((pointer-to cairo_font_extents_t)) extents))
 	(return void))
+(struct _cairo_rectangle_int :size 128
+	(field (int) x :offset 0)
+	(field (int) y :offset 32)
+	(field (int) width :offset 64)
+	(field (int) height :offset 96))
 (function cairo_matrix_transform_point
 	(
 		(argument ((pointer-to const cairo_matrix_t)) matrix)
 		(argument ((pointer-to double)) x)
 		(argument ((pointer-to double)) y))
 	(return void))
+(function cairo_user_font_face_get_unicode_to_glyph_func
+	(
+		(argument ((pointer-to cairo_font_face_t)) font_face))
+	(return (pointer-to (function-type cairo_user_scaled_font_unicode_to_glyph_func_t
+			(
+				(argument ((pointer-to cairo_scaled_font_t)) )
+				(argument (long unsigned int) )
+				(argument ((pointer-to long unsigned int)) ))
+			(return cairo_status_t)))))
 (function cairo_paint_with_alpha
 	(
 		(argument ((pointer-to cairo_t)) cr)
@@ -634,6 +814,11 @@
 		(argument ((pointer-to cairo_t)) cr)
 		(argument (cairo_content_t) content))
 	(return void))
+(function cairo_region_subtract
+	(
+		(argument ((pointer-to cairo_region_t)) dst)
+		(argument ((pointer-to const cairo_region_t)) other))
+	(return cairo_status_t))
 (function cairo_scaled_font_extents
 	(
 		(argument ((pointer-to cairo_scaled_font_t)) scaled_font)
@@ -671,6 +856,10 @@
 (function cairo_debug_reset_static_data
 	()
 	(return void))
+(function cairo_region_create_rectangle
+	(
+		(argument ((pointer-to const cairo_rectangle_int_t)) rectangle))
+	(return (pointer-to cairo_region_t)))
 (function cairo_image_surface_create
 	(
 		(argument (cairo_format_t) format)
@@ -689,10 +878,6 @@
 	(
 		(argument ((pointer-to cairo_t)) cr))
 	(return void))
-(function cairo_font_options_copy
-	(
-		(argument ((pointer-to const cairo_font_options_t)) original))
-	(return (pointer-to cairo_font_options_t)))
 (function cairo_matrix_init_identity
 	(
 		(argument ((pointer-to cairo_matrix_t)) matrix))
@@ -701,12 +886,30 @@
 	(
 		(argument ((pointer-to cairo_t)) cr))
 	(return cairo_status_t))
+(function cairo_user_font_face_set_unicode_to_glyph_func
+	(
+		(argument ((pointer-to cairo_font_face_t)) font_face)
+		(argument ((pointer-to (function-type cairo_user_scaled_font_unicode_to_glyph_func_t
+			(
+				(argument ((pointer-to cairo_scaled_font_t)) )
+				(argument (long unsigned int) )
+				(argument ((pointer-to long unsigned int)) ))
+			(return cairo_status_t)))) unicode_to_glyph_func))
+	(return void))
 (function cairo_matrix_multiply
 	(
 		(argument ((pointer-to cairo_matrix_t)) result)
 		(argument ((pointer-to const cairo_matrix_t)) a)
 		(argument ((pointer-to const cairo_matrix_t)) b))
 	(return void))
+(function cairo_device_get_type
+	(
+		(argument ((pointer-to cairo_device_t)) device))
+	(return cairo_device_type_t))
+(function cairo_region_is_empty
+	(
+		(argument ((pointer-to const cairo_region_t)) region))
+	(return int))
 (function cairo_scaled_font_text_extents
 	(
 		(argument ((pointer-to cairo_scaled_font_t)) scaled_font)
@@ -765,6 +968,10 @@
 	(
 		(argument ((pointer-to cairo_t)) cr))
 	(return (pointer-to cairo_pattern_t)))
+(function cairo_font_options_copy
+	(
+		(argument ((pointer-to const cairo_font_options_t)) original))
+	(return (pointer-to cairo_font_options_t)))
 (enum _cairo_surface_type
 	(value (CAIRO_SURFACE_TYPE_IMAGE) 0)
 	(value (CAIRO_SURFACE_TYPE_PDF) 1)
@@ -779,7 +986,22 @@
 	(value (CAIRO_SURFACE_TYPE_SVG) 10)
 	(value (CAIRO_SURFACE_TYPE_OS2) 11)
 	(value (CAIRO_SURFACE_TYPE_WIN32_PRINTING) 12)
-	(value (CAIRO_SURFACE_TYPE_QUARTZ_IMAGE) 13))
+	(value (CAIRO_SURFACE_TYPE_QUARTZ_IMAGE) 13)
+	(value (CAIRO_SURFACE_TYPE_SCRIPT) 14)
+	(value (CAIRO_SURFACE_TYPE_QT) 15)
+	(value (CAIRO_SURFACE_TYPE_RECORDING) 16)
+	(value (CAIRO_SURFACE_TYPE_VG) 17)
+	(value (CAIRO_SURFACE_TYPE_GL) 18)
+	(value (CAIRO_SURFACE_TYPE_DRM) 19)
+	(value (CAIRO_SURFACE_TYPE_TEE) 20)
+	(value (CAIRO_SURFACE_TYPE_XML) 21)
+	(value (CAIRO_SURFACE_TYPE_SKIA) 22)
+	(value (CAIRO_SURFACE_TYPE_SUBSURFACE) 23))
+(function cairo_device_get_user_data
+	(
+		(argument ((pointer-to cairo_device_t)) device)
+		(argument ((pointer-to const cairo_user_data_key_t)) key))
+	(return (pointer-to void)))
 (function cairo_image_surface_get_width
 	(
 		(argument ((pointer-to cairo_surface_t)) surface))
@@ -795,6 +1017,23 @@
 		(argument ((pointer-to double)) dx)
 		(argument ((pointer-to double)) dy))
 	(return void))
+(function cairo_toy_font_face_create
+	(
+		(argument ((pointer-to const char)) family)
+		(argument (cairo_font_slant_t) slant)
+		(argument (cairo_font_weight_t) weight))
+	(return (pointer-to cairo_font_face_t)))
+(function cairo_surface_get_mime_data
+	(
+		(argument ((pointer-to cairo_surface_t)) surface)
+		(argument ((pointer-to const char)) mime_type)
+		(argument ((pointer-to (pointer-to const unsigned char))) data)
+		(argument ((pointer-to long unsigned int)) length))
+	(return void))
+(function cairo_pattern_get_reference_count
+	(
+		(argument ((pointer-to cairo_pattern_t)) pattern))
+	(return unsigned int))
 (function cairo_get_line_cap
 	(
 		(argument ((pointer-to cairo_t)) cr))
@@ -833,6 +1072,10 @@
 		(argument ((pointer-to cairo_pattern_t)) pattern)
 		(argument ((pointer-to const cairo_matrix_t)) matrix))
 	(return void))
+(function cairo_surface_get_device
+	(
+		(argument ((pointer-to cairo_surface_t)) surface))
+	(return (pointer-to cairo_device_t)))
 (function cairo_rectangle_list_destroy
 	(
 		(argument ((pointer-to cairo_rectangle_list_t)) rectangle_list))
@@ -857,6 +1100,10 @@
 	(
 		(argument ((pointer-to cairo_t)) cr))
 	(return (pointer-to cairo_scaled_font_t)))
+(function cairo_copy_path
+	(
+		(argument ((pointer-to cairo_t)) cr))
+	(return (pointer-to cairo_path_t)))
 (struct _cairo_pattern :size 0)
 (function cairo_get_current_point
 	(
@@ -865,12 +1112,20 @@
 		(argument ((pointer-to double)) y))
 	(return void))
 (enum _cairo_format
+	(value (CAIRO_FORMAT_INVALID) -1)
 	(value (CAIRO_FORMAT_ARGB32) 0)
 	(value (CAIRO_FORMAT_RGB24) 1)
 	(value (CAIRO_FORMAT_A8) 2)
-	(value (CAIRO_FORMAT_A1) 3))
+	(value (CAIRO_FORMAT_A1) 3)
+	(value (CAIRO_FORMAT_RGB16_565) 4))
 (typedef cairo_format_t
 	_cairo_format)
+(function cairo_region_contains_point
+	(
+		(argument ((pointer-to const cairo_region_t)) region)
+		(argument (int) x)
+		(argument (int) y))
+	(return int))
 (function cairo_push_group
 	(
 		(argument ((pointer-to cairo_t)) cr))
@@ -883,6 +1138,22 @@
 	(
 		(argument ((pointer-to cairo_t)) cr))
 	(return void))
+(function cairo_user_font_face_set_init_func
+	(
+		(argument ((pointer-to cairo_font_face_t)) font_face)
+		(argument ((pointer-to (function-type cairo_user_scaled_font_init_func_t
+			(
+				(argument ((pointer-to cairo_scaled_font_t)) )
+				(argument ((pointer-to cairo_t)) )
+				(argument ((pointer-to cairo_font_extents_t)) ))
+			(return cairo_status_t)))) init_func))
+	(return void))
+(function cairo_in_clip
+	(
+		(argument ((pointer-to cairo_t)) cr)
+		(argument (double) x)
+		(argument (double) y))
+	(return int))
 (function cairo_font_options_get_subpixel_order
 	(
 		(argument ((pointer-to const cairo_font_options_t)) options))
@@ -924,6 +1195,17 @@
 		(argument ((pointer-to cairo_font_options_t)) options)
 		(argument (cairo_antialias_t) antialias))
 	(return void))
+(function cairo_show_text_glyphs
+	(
+		(argument ((pointer-to cairo_t)) cr)
+		(argument ((pointer-to const char)) utf8)
+		(argument (int) utf8_len)
+		(argument ((pointer-to const cairo_glyph_t)) glyphs)
+		(argument (int) num_glyphs)
+		(argument ((pointer-to const cairo_text_cluster_t)) clusters)
+		(argument (int) num_clusters)
+		(argument (cairo_text_cluster_flags_t) cluster_flags))
+	(return void))
 (function cairo_set_source_surface
 	(
 		(argument ((pointer-to cairo_t)) cr)
@@ -938,10 +1220,34 @@
 		(argument ((pointer-to const cairo_matrix_t)) ctm)
 		(argument ((pointer-to const cairo_font_options_t)) options))
 	(return (pointer-to cairo_scaled_font_t)))
+(function cairo_region_translate
+	(
+		(argument ((pointer-to cairo_region_t)) region)
+		(argument (int) dx)
+		(argument (int) dy))
+	(return void))
 (function cairo_image_surface_get_data
 	(
 		(argument ((pointer-to cairo_surface_t)) surface))
 	(return (pointer-to unsigned char)))
+(function cairo_user_font_face_get_text_to_glyphs_func
+	(
+		(argument ((pointer-to cairo_font_face_t)) font_face))
+	(return (pointer-to (function-type cairo_user_scaled_font_text_to_glyphs_func_t
+			(
+				(argument ((pointer-to cairo_scaled_font_t)) )
+				(argument ((pointer-to const char)) )
+				(argument (int) )
+				(argument ((pointer-to (pointer-to cairo_glyph_t))) )
+				(argument ((pointer-to int)) )
+				(argument ((pointer-to (pointer-to cairo_text_cluster_t))) )
+				(argument ((pointer-to int)) )
+				(argument ((pointer-to cairo_text_cluster_flags_t)) ))
+			(return cairo_status_t)))))
+(function cairo_pattern_status
+	(
+		(argument ((pointer-to cairo_pattern_t)) pattern))
+	(return cairo_status_t))
 (function cairo_rectangle
 	(
 		(argument ((pointer-to cairo_t)) cr)
@@ -956,6 +1262,11 @@
 		(argument ((pointer-to double)) dashes)
 		(argument ((pointer-to double)) offset))
 	(return void))
+(function cairo_region_union
+	(
+		(argument ((pointer-to cairo_region_t)) dst)
+		(argument ((pointer-to const cairo_region_t)) other))
+	(return cairo_status_t))
 (function cairo_font_options_set_hint_style
 	(
 		(argument ((pointer-to cairo_font_options_t)) options)
@@ -964,17 +1275,19 @@
 (function cairo_font_options_create
 	()
 	(return (pointer-to cairo_font_options_t)))
+(function cairo_surface_create_for_rectangle
+	(
+		(argument ((pointer-to cairo_surface_t)) target)
+		(argument (double) x)
+		(argument (double) y)
+		(argument (double) width)
+		(argument (double) height))
+	(return (pointer-to cairo_surface_t)))
 (function cairo_text_path
 	(
 		(argument ((pointer-to cairo_t)) cr)
 		(argument ((pointer-to const char)) utf8))
 	(return void))
-(function cairo_line_to
-	(
-		(argument ((pointer-to cairo_t)) cr)
-		(argument (double) x)
-		(argument (double) y))
-	(return void))
 (function cairo_pattern_get_linear_points
 	(
 		(argument ((pointer-to cairo_pattern_t)) pattern)
@@ -1026,16 +1339,33 @@
 	(
 		(argument ((pointer-to cairo_t)) cr))
 	(return void))
+(function cairo_curve_to
+	(
+		(argument ((pointer-to cairo_t)) cr)
+		(argument (double) x1)
+		(argument (double) y1)
+		(argument (double) x2)
+		(argument (double) y2)
+		(argument (double) x3)
+		(argument (double) y3))
+	(return void))
 (function cairo_scale
 	(
 		(argument ((pointer-to cairo_t)) cr)
 		(argument (double) sx)
 		(argument (double) sy))
 	(return void))
+(typedef cairo_rectangle_int_t
+	_cairo_rectangle_int)
 (function cairo_get_group_target
 	(
 		(argument ((pointer-to cairo_t)) cr))
 	(return (pointer-to cairo_surface_t)))
+(function cairo_region_get_extents
+	(
+		(argument ((pointer-to const cairo_region_t)) region)
+		(argument ((pointer-to cairo_rectangle_int_t)) extents))
+	(return void))
 (function cairo_pattern_get_surface
 	(
 		(argument ((pointer-to cairo_pattern_t)) pattern)
@@ -1050,12 +1380,29 @@
 		(argument (double) blue)
 		(argument (double) alpha))
 	(return void))
+(function cairo_surface_get_fallback_resolution
+	(
+		(argument ((pointer-to cairo_surface_t)) surface)
+		(argument ((pointer-to double)) x_pixels_per_inch)
+		(argument ((pointer-to double)) y_pixels_per_inch))
+	(return void))
 (typedef cairo_hint_style_t
 	_cairo_hint_style)
-(function cairo_copy_path
-	(
-		(argument ((pointer-to cairo_t)) cr))
-	(return (pointer-to cairo_path_t)))
+(function cairo_user_font_face_set_text_to_glyphs_func
+	(
+		(argument ((pointer-to cairo_font_face_t)) font_face)
+		(argument ((pointer-to (function-type cairo_user_scaled_font_text_to_glyphs_func_t
+			(
+				(argument ((pointer-to cairo_scaled_font_t)) )
+				(argument ((pointer-to const char)) )
+				(argument (int) )
+				(argument ((pointer-to (pointer-to cairo_glyph_t))) )
+				(argument ((pointer-to int)) )
+				(argument ((pointer-to (pointer-to cairo_text_cluster_t))) )
+				(argument ((pointer-to int)) )
+				(argument ((pointer-to cairo_text_cluster_flags_t)) ))
+			(return cairo_status_t)))) text_to_glyphs_func))
+	(return void))
 (function cairo_mask_surface
 	(
 		(argument ((pointer-to cairo_t)) cr)
@@ -1063,6 +1410,11 @@
 		(argument (double) surface_x)
 		(argument (double) surface_y))
 	(return void))
+(function cairo_region_xor
+	(
+		(argument ((pointer-to cairo_region_t)) dst)
+		(argument ((pointer-to const cairo_region_t)) other))
+	(return cairo_status_t))
 (function cairo_path_extents
 	(
 		(argument ((pointer-to cairo_t)) cr)
@@ -1091,6 +1443,10 @@
 		(argument (double) blue)
 		(argument (double) alpha))
 	(return (pointer-to cairo_pattern_t)))
+(function cairo_toy_font_face_get_weight
+	(
+		(argument ((pointer-to cairo_font_face_t)) font_face))
+	(return cairo_font_weight_t))
 (function cairo_surface_write_to_png
 	(
 		(argument ((pointer-to cairo_surface_t)) surface)
@@ -1163,6 +1519,12 @@
 		(argument ((pointer-to cairo_t)) cr)
 		(argument (cairo_antialias_t) antialias))
 	(return void))
+(function cairo_device_get_reference_count
+	(
+		(argument ((pointer-to cairo_device_t)) device))
+	(return unsigned int))
+(typedef cairo_device_type_t
+	_cairo_device_type)
 (function cairo_font_face_get_user_data
 	(
 		(argument ((pointer-to cairo_font_face_t)) font_face)
@@ -1187,12 +1549,20 @@
 	(
 		(argument ((pointer-to cairo_t)) cr))
 	(return void))
+(function cairo_region_destroy
+	(
+		(argument ((pointer-to cairo_region_t)) region))
+	(return void))
 (function cairo_glyph_path
 	(
 		(argument ((pointer-to cairo_t)) cr)
 		(argument ((pointer-to const cairo_glyph_t)) glyphs)
 		(argument (int) num_glyphs))
 	(return void))
+(function cairo_device_flush
+	(
+		(argument ((pointer-to cairo_device_t)) device))
+	(return void))
 (function cairo_device_to_user
 	(
 		(argument ((pointer-to cairo_t)) cr)
@@ -1219,6 +1589,10 @@
 	(
 		(argument ((pointer-to cairo_surface_t)) surface))
 	(return (pointer-to cairo_pattern_t)))
+(function cairo_text_cluster_allocate
+	(
+		(argument (int) num_clusters))
+	(return (pointer-to cairo_text_cluster_t)))
 (function cairo_surface_mark_dirty_rectangle
 	(
 		(argument ((pointer-to cairo_surface_t)) surface)
@@ -1227,6 +1601,10 @@
 		(argument (int) width)
 		(argument (int) height))
 	(return void))
+(function cairo_glyph_free
+	(
+		(argument ((pointer-to cairo_glyph_t)) glyphs))
+	(return void))
 (function cairo_set_miter_limit
 	(
 		(argument ((pointer-to cairo_t)) cr)
@@ -1249,6 +1627,11 @@
 		(argument ((pointer-to double)) x_offset)
 		(argument ((pointer-to double)) y_offset))
 	(return void))
+(function cairo_region_union_rectangle
+	(
+		(argument ((pointer-to cairo_region_t)) dst)
+		(argument ((pointer-to const cairo_rectangle_int_t)) rectangle))
+	(return cairo_status_t))
 (function cairo_pop_group
 	(
 		(argument ((pointer-to cairo_t)) cr))
@@ -1270,10 +1653,20 @@
 	(
 		(argument ((pointer-to cairo_t)) cr))
 	(return void))
+(function cairo_scaled_font_get_scale_matrix
+	(
+		(argument ((pointer-to cairo_scaled_font_t)) scaled_font)
+		(argument ((pointer-to cairo_matrix_t)) scale_matrix))
+	(return void))
 (function cairo_get_operator
 	(
 		(argument ((pointer-to cairo_t)) cr))
 	(return cairo_operator_t))
+(function cairo_region_xor_rectangle
+	(
+		(argument ((pointer-to cairo_region_t)) dst)
+		(argument ((pointer-to const cairo_rectangle_int_t)) rectangle))
+	(return cairo_status_t))
 (function cairo_matrix_init_scale
 	(
 		(argument ((pointer-to cairo_matrix_t)) matrix)
@@ -1290,6 +1683,16 @@
 	_cairo)
 (typedef cairo_font_options_t
 	_cairo_font_options)
+(function cairo_device_set_user_data
+	(
+		(argument ((pointer-to cairo_device_t)) device)
+		(argument ((pointer-to const cairo_user_data_key_t)) key)
+		(argument ((pointer-to void)) user_data)
+		(argument ((pointer-to (function-type cairo_destroy_func_t
+			(
+				(argument ((pointer-to void)) ))
+			(return void)))) destroy))
+	(return cairo_status_t))
 (function cairo_get_reference_count
 	(
 		(argument ((pointer-to cairo_t)) cr))
@@ -1302,6 +1705,18 @@
 		(argument ((pointer-to cairo_t)) cr)
 		(argument ((pointer-to const cairo_matrix_t)) matrix))
 	(return void))
+(function cairo_surface_set_mime_data
+	(
+		(argument ((pointer-to cairo_surface_t)) surface)
+		(argument ((pointer-to const char)) mime_type)
+		(argument ((pointer-to const unsigned char)) data)
+		(argument (long unsigned int) length)
+		(argument ((pointer-to (function-type cairo_destroy_func_t
+			(
+				(argument ((pointer-to void)) ))
+			(return void)))) destroy)
+		(argument ((pointer-to void)) closure))
+	(return cairo_status_t))
 (function cairo_fill_preserve
 	(
 		(argument ((pointer-to cairo_t)) cr))
@@ -1330,6 +1745,15 @@
 	(
 		(argument ((pointer-to cairo_font_face_t)) font_face))
 	(return cairo_font_type_t))
+(function cairo_device_status
+	(
+		(argument ((pointer-to cairo_device_t)) device))
+	(return cairo_status_t))
+(function cairo_region_create_rectangles
+	(
+		(argument ((pointer-to const cairo_rectangle_int_t)) rects)
+		(argument (int) count))
+	(return (pointer-to cairo_region_t)))
 (function cairo_pattern_set_filter
 	(
 		(argument ((pointer-to cairo_pattern_t)) pattern)
@@ -1345,6 +1769,19 @@
 	(
 		(argument ((pointer-to cairo_surface_t)) surface))
 	(return void))
+(function cairo_recording_surface_ink_extents
+	(
+		(argument ((pointer-to cairo_surface_t)) surface)
+		(argument ((pointer-to double)) x0)
+		(argument ((pointer-to double)) y0)
+		(argument ((pointer-to double)) width)
+		(argument ((pointer-to double)) height))
+	(return void))
+(function cairo_region_subtract_rectangle
+	(
+		(argument ((pointer-to cairo_region_t)) dst)
+		(argument ((pointer-to const cairo_rectangle_int_t)) rectangle))
+	(return cairo_status_t))
 (function cairo_clip_extents
 	(
 		(argument ((pointer-to cairo_t)) cr)
@@ -1353,6 +1790,10 @@
 		(argument ((pointer-to double)) x2)
 		(argument ((pointer-to double)) y2))
 	(return void))
+(function cairo_device_reference
+	(
+		(argument ((pointer-to cairo_device_t)) device))
+	(return (pointer-to cairo_device_t)))
 (function cairo_pattern_destroy
 	(
 		(argument ((pointer-to cairo_pattern_t)) pattern))
@@ -1376,6 +1817,10 @@
 		(argument (double) dx3)
 		(argument (double) dy3))
 	(return void))
+(function cairo_device_destroy
+	(
+		(argument ((pointer-to cairo_device_t)) device))
+	(return void))
 (function cairo_stroke_extents
 	(
 		(argument ((pointer-to cairo_t)) cr)
@@ -1391,6 +1836,10 @@
 	(
 		(argument ((pointer-to cairo_surface_t)) surface))
 	(return cairo_format_t))
+(function cairo_text_cluster_free
+	(
+		(argument ((pointer-to cairo_text_cluster_t)) clusters))
+	(return void))
 (function cairo_font_face_status
 	(
 		(argument ((pointer-to cairo_font_face_t)) font_face))
@@ -1406,11 +1855,22 @@
 		(argument (double) width_in_points)
 		(argument (double) height_in_points))
 	(return (pointer-to cairo_surface_t)))
+(enum-foreign _cairo_text_cluster_flags
+	(value (CAIRO_TEXT_CLUSTER_FLAG_BACKWARD) 1))
+(typedef-foreign cairo_text_cluster_flags_t
+	_cairo_text_cluster_flags)
 (struct-foreign cairo_glyph_t :size 160
 	(field (long unsigned int) index :offset 0)
 	(field (double) x :offset 32)
 	(field (double) y :offset 96))
 (struct-foreign _cairo_font_options :size 0)
+(enum-foreign _cairo_device_type
+	(value (CAIRO_DEVICE_TYPE_DRM) 0)
+	(value (CAIRO_DEVICE_TYPE_GL) 1)
+	(value (CAIRO_DEVICE_TYPE_SCRIPT) 2)
+	(value (CAIRO_DEVICE_TYPE_XCB) 3)
+	(value (CAIRO_DEVICE_TYPE_XLIB) 4)
+	(value (CAIRO_DEVICE_TYPE_XML) 5))
 (enum-foreign _cairo_line_cap
 	(value (CAIRO_LINE_CAP_BUTT) 0)
 	(value (CAIRO_LINE_CAP_ROUND) 1)
@@ -1423,6 +1883,9 @@
 	(value (CAIRO_SUBPIXEL_ORDER_BGR) 2)
 	(value (CAIRO_SUBPIXEL_ORDER_VRGB) 3)
 	(value (CAIRO_SUBPIXEL_ORDER_VBGR) 4))
+(struct-foreign _cairo_region :size 0)
+(typedef-foreign cairo_region_t
+	_cairo_region)
 (struct-foreign _cairo_user_data_key :size 32
 	(field (int) unused :offset 0))
 (struct-foreign _cairo_scaled_font :size 0)
@@ -1466,6 +1929,12 @@
 	(field (int) num_rectangles :offset 64))
 (typedef-foreign cairo_rectangle_list_t
 	_cairo_rectangle_list)
+(enum-foreign _cairo_region_overlap
+	(value (CAIRO_REGION_OVERLAP_IN) 0)
+	(value (CAIRO_REGION_OVERLAP_OUT) 1)
+	(value (CAIRO_REGION_OVERLAP_PART) 2))
+(typedef-foreign cairo_region_overlap_t
+	_cairo_region_overlap)
 (enum-foreign _cairo_status
 	(value (CAIRO_STATUS_SUCCESS) 0)
 	(value (CAIRO_STATUS_NO_MEMORY) 1)
@@ -1491,7 +1960,19 @@
 	(value (CAIRO_STATUS_INVALID_INDEX) 21)
 	(value (CAIRO_STATUS_CLIP_NOT_REPRESENTABLE) 22)
 	(value (CAIRO_STATUS_TEMP_FILE_ERROR) 23)
-	(value (CAIRO_STATUS_INVALID_STRIDE) 24))
+	(value (CAIRO_STATUS_INVALID_STRIDE) 24)
+	(value (CAIRO_STATUS_FONT_TYPE_MISMATCH) 25)
+	(value (CAIRO_STATUS_USER_FONT_IMMUTABLE) 26)
+	(value (CAIRO_STATUS_USER_FONT_ERROR) 27)
+	(value (CAIRO_STATUS_NEGATIVE_COUNT) 28)
+	(value (CAIRO_STATUS_INVALID_CLUSTERS) 29)
+	(value (CAIRO_STATUS_INVALID_SLANT) 30)
+	(value (CAIRO_STATUS_INVALID_WEIGHT) 31)
+	(value (CAIRO_STATUS_INVALID_SIZE) 32)
+	(value (CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED) 33)
+	(value (CAIRO_STATUS_DEVICE_TYPE_MISMATCH) 34)
+	(value (CAIRO_STATUS_DEVICE_ERROR) 35)
+	(value (CAIRO_STATUS_LAST_STATUS) 36))
 (typedef-foreign cairo_status_t
 	_cairo_status)
 (enum-foreign _cairo_hint_style
@@ -1500,6 +1981,11 @@
 	(value (CAIRO_HINT_STYLE_SLIGHT) 2)
 	(value (CAIRO_HINT_STYLE_MEDIUM) 3)
 	(value (CAIRO_HINT_STYLE_FULL) 4))
+(function cairo_pdf_surface_restrict_to_version
+	(
+		(argument ((pointer-to cairo_surface_t)) surface)
+		(argument (cairo_pdf_version_t) version))
+	(return void))
 (struct-foreign cairo_font_extents_t :size 320
 	(field (double) ascent :offset 0)
 	(field (double) descent :offset 64)
@@ -1552,7 +2038,8 @@
 	(value (CAIRO_FONT_TYPE_TOY) 0)
 	(value (CAIRO_FONT_TYPE_FT) 1)
 	(value (CAIRO_FONT_TYPE_WIN32) 2)
-	(value (CAIRO_FONT_TYPE_QUARTZ) 3))
+	(value (CAIRO_FONT_TYPE_QUARTZ) 3)
+	(value (CAIRO_FONT_TYPE_USER) 4))
 (enum-foreign _cairo_font_slant
 	(value (CAIRO_FONT_SLANT_NORMAL) 0)
 	(value (CAIRO_FONT_SLANT_ITALIC) 1)
@@ -1565,6 +2052,9 @@
 	(value (CAIRO_CONTENT_COLOR_ALPHA) 12288))
 (typedef-foreign cairo_content_t
 	_cairo_content)
+(struct-foreign _cairo_device :size 0)
+(typedef-foreign cairo_device_t
+	_cairo_device)
 (enum-foreign _cairo_operator
 	(value (CAIRO_OPERATOR_CLEAR) 0)
 	(value (CAIRO_OPERATOR_SOURCE) 1)
@@ -1579,7 +2069,22 @@
 	(value (CAIRO_OPERATOR_DEST_ATOP) 10)
 	(value (CAIRO_OPERATOR_XOR) 11)
 	(value (CAIRO_OPERATOR_ADD) 12)
-	(value (CAIRO_OPERATOR_SATURATE) 13))
+	(value (CAIRO_OPERATOR_SATURATE) 13)
+	(value (CAIRO_OPERATOR_MULTIPLY) 14)
+	(value (CAIRO_OPERATOR_SCREEN) 15)
+	(value (CAIRO_OPERATOR_OVERLAY) 16)
+	(value (CAIRO_OPERATOR_DARKEN) 17)
+	(value (CAIRO_OPERATOR_LIGHTEN) 18)
+	(value (CAIRO_OPERATOR_COLOR_DODGE) 19)
+	(value (CAIRO_OPERATOR_COLOR_BURN) 20)
+	(value (CAIRO_OPERATOR_HARD_LIGHT) 21)
+	(value (CAIRO_OPERATOR_SOFT_LIGHT) 22)
+	(value (CAIRO_OPERATOR_DIFFERENCE) 23)
+	(value (CAIRO_OPERATOR_EXCLUSION) 24)
+	(value (CAIRO_OPERATOR_HSL_HUE) 25)
+	(value (CAIRO_OPERATOR_HSL_SATURATION) 26)
+	(value (CAIRO_OPERATOR_HSL_COLOR) 27)
+	(value (CAIRO_OPERATOR_HSL_LUMINOSITY) 28))
 (typedef-foreign cairo_operator_t
 	_cairo_operator)
 (enum-foreign _cairo_font_weight
@@ -1587,6 +2092,9 @@
 	(value (CAIRO_FONT_WEIGHT_BOLD) 1))
 (typedef-foreign cairo_font_weight_t
 	_cairo_font_weight)
+(struct-foreign cairo_text_cluster_t :size 64
+	(field (int) num_bytes :offset 0)
+	(field (int) num_glyphs :offset 32))
 (struct-foreign _cairo :size 0)
 (struct-foreign cairo_path :size 96
 	(field (cairo_status_t) status :offset 0)
@@ -1594,8 +2102,18 @@
 		(pointer-to cairo_path_data_t)
 ) data :offset 32)
 	(field (int) num_data :offset 64))
+(struct-foreign _cairo_rectangle_int :size 128
+	(field (int) x :offset 0)
+	(field (int) y :offset 32)
+	(field (int) width :offset 64)
+	(field (int) height :offset 96))
 (typedef-foreign cairo_path_data_t
 	_cairo_path_data_t)
+(enum _cairo_pdf_version
+	(value (CAIRO_PDF_VERSION_1_4) 0)
+	(value (CAIRO_PDF_VERSION_1_5) 1))
+(typedef cairo_pdf_version_t
+	_cairo_pdf_version)
 (typedef-foreign cairo_filter_t
 	_cairo_filter)
 (enum-foreign _cairo_path_data_type
@@ -1621,7 +2139,17 @@
 	(value (CAIRO_SURFACE_TYPE_SVG) 10)
 	(value (CAIRO_SURFACE_TYPE_OS2) 11)
 	(value (CAIRO_SURFACE_TYPE_WIN32_PRINTING) 12)
-	(value (CAIRO_SURFACE_TYPE_QUARTZ_IMAGE) 13))
+	(value (CAIRO_SURFACE_TYPE_QUARTZ_IMAGE) 13)
+	(value (CAIRO_SURFACE_TYPE_SCRIPT) 14)
+	(value (CAIRO_SURFACE_TYPE_QT) 15)
+	(value (CAIRO_SURFACE_TYPE_RECORDING) 16)
+	(value (CAIRO_SURFACE_TYPE_VG) 17)
+	(value (CAIRO_SURFACE_TYPE_GL) 18)
+	(value (CAIRO_SURFACE_TYPE_DRM) 19)
+	(value (CAIRO_SURFACE_TYPE_TEE) 20)
+	(value (CAIRO_SURFACE_TYPE_XML) 21)
+	(value (CAIRO_SURFACE_TYPE_SKIA) 22)
+	(value (CAIRO_SURFACE_TYPE_SUBSURFACE) 23))
 (struct-foreign _cairo_font_face :size 0)
 (enum-foreign _cairo_fill_rule
 	(value (CAIRO_FILL_RULE_WINDING) 0)
@@ -1630,10 +2158,12 @@
 	_cairo_fill_rule)
 (struct-foreign _cairo_pattern :size 0)
 (enum-foreign _cairo_format
+	(value (CAIRO_FORMAT_INVALID) -1)
 	(value (CAIRO_FORMAT_ARGB32) 0)
 	(value (CAIRO_FORMAT_RGB24) 1)
 	(value (CAIRO_FORMAT_A8) 2)
-	(value (CAIRO_FORMAT_A1) 3))
+	(value (CAIRO_FORMAT_A1) 3)
+	(value (CAIRO_FORMAT_RGB16_565) 4))
 (typedef-foreign cairo_format_t
 	_cairo_format)
 (typedef-foreign cairo_font_type_t
@@ -1646,6 +2176,10 @@
 	_cairo_line_join)
 (typedef-foreign cairo_surface_type_t
 	_cairo_surface_type)
+(function cairo_pdf_version_to_string
+	(
+		(argument (cairo_pdf_version_t) version))
+	(return (pointer-to const char)))
 (enum-foreign _cairo_hint_metrics
 	(value (CAIRO_HINT_METRICS_DEFAULT) 0)
 	(value (CAIRO_HINT_METRICS_OFF) 1)
@@ -1654,6 +2188,8 @@
 	_cairo_hint_metrics)
 (typedef-foreign cairo_scaled_font_t
 	_cairo_scaled_font)
+(typedef-foreign cairo_rectangle_int_t
+	_cairo_rectangle_int)
 (function cairo_pdf_surface_set_size
 	(
 		(argument ((pointer-to cairo_surface_t)) surface)
@@ -1664,6 +2200,13 @@
 	_cairo_hint_style)
 (typedef-foreign cairo_font_face_t
 	_cairo_font_face)
+(function cairo_pdf_get_versions
+	(
+		(argument ((pointer-to (pointer-to const cairo_pdf_version_t))) versions)
+		(argument ((pointer-to int)) num_versions))
+	(return void))
+(typedef-foreign cairo_device_type_t
+	_cairo_device_type)
 (typedef-foreign cairo_bool_t
 	int)
 (typedef-foreign cairo_pattern_t
@@ -1689,6 +2232,10 @@
 	(pointer-to _XOC))
 (typedef-foreign XOM
 	(pointer-to _XOM))
+(enum-foreign _cairo_text_cluster_flags
+	(value (CAIRO_TEXT_CLUSTER_FLAG_BACKWARD) 1))
+(typedef-foreign cairo_text_cluster_flags_t
+	_cairo_text_cluster_flags)
 (typedef-foreign blksize_t
 	long int)
 (struct-foreign XNoExposeEvent :size 224
@@ -1721,6 +2268,13 @@
 		(pointer-to (pointer-to char))
 ) charset_list :offset 32))
 (struct-foreign _cairo_font_options :size 0)
+(enum-foreign _cairo_device_type
+	(value (CAIRO_DEVICE_TYPE_DRM) 0)
+	(value (CAIRO_DEVICE_TYPE_GL) 1)
+	(value (CAIRO_DEVICE_TYPE_SCRIPT) 2)
+	(value (CAIRO_DEVICE_TYPE_XCB) 3)
+	(value (CAIRO_DEVICE_TYPE_XLIB) 4)
+	(value (CAIRO_DEVICE_TYPE_XML) 5))
 (struct-foreign XDestroyWindowEvent :size 192
 	(field (int) type :offset 0)
 	(field (long unsigned int) serial :offset 32)
@@ -1741,7 +2295,7 @@
 		(pointer-to _XExtData)
 ) next :offset 32)
 	(field (
-		(pointer-to (function-type _2050
+		(pointer-to (function-type _2902
 			(
 				(argument ((pointer-to _XExtData)) ))
 			(return int)))
@@ -1791,6 +2345,9 @@
 	(field (int) same_screen :offset 448))
 (typedef-foreign XButtonPressedEvent
 	XButtonEvent)
+(struct-foreign _cairo_region :size 0)
+(typedef-foreign cairo_region_t
+	_cairo_region)
 (struct-foreign _XIMPreeditDrawCallbackStruct :size 128
 	(field (int) caret :offset 0)
 	(field (int) chg_first :offset 32)
@@ -1844,10 +2401,6 @@
 ) l :offset 0))
 
 ) data :offset 224))
-(struct-foreign __pthread_internal_slist :size 32
-	(field (
-		(pointer-to __pthread_internal_slist)
-) __next :offset 0))
 (union-foreign XEDataObject :size 32 
 	(field (
 		(pointer-to Display)
@@ -1875,16 +2428,16 @@
 	(field (long unsigned int) event :offset 128)
 	(field (long unsigned int) window :offset 160)
 	(field (int) override_redirect :offset 192))
-(struct-foreign XIMCallback :size 64
-	(field ((pointer-to char)) client_data :offset 0)
-	(field ((pointer-to (function-type XIMProc
-			(
-				(argument ((pointer-to _XIM)) )
-				(argument ((pointer-to char)) )
-				(argument ((pointer-to char)) ))
-			(return void)))) callback :offset 32))
+(struct-foreign XOMFontInfo :size 96
+	(field (int) num_font :offset 0)
+	(field (
+		(pointer-to (pointer-to XFontStruct))
+) font_struct_list :offset 32)
+	(field (
+		(pointer-to (pointer-to char))
+) font_name_list :offset 64))
 (typedef-foreign blkcnt64_t
-	long long int)
+	long int)
 (struct-foreign XMapRequestEvent :size 192
 	(field (int) type :offset 0)
 	(field (long unsigned int) serial :offset 32)
@@ -1931,7 +2484,7 @@
 
 ) point :offset 0))
 (typedef-foreign __uint64_t
-	long long unsigned int)
+	long unsigned int)
 (typedef-foreign __id_t
 	unsigned int)
 (typedef-foreign Font
@@ -1950,7 +2503,7 @@
 	(field (int) delta :offset 64)
 	(field ((pointer-to _XOC)) font_set :offset 96))
 (typedef-foreign __intptr_t
-	int)
+	long int)
 (struct-foreign cairo_text_extents_t :size 384
 	(field (double) x_bearing :offset 0)
 	(field (double) y_bearing :offset 64)
@@ -2006,7 +2559,7 @@
 	XMotionEvent)
 (struct-foreign _XPrivate :size 0)
 (typedef-foreign fsblkcnt64_t
-	long long unsigned int)
+	long unsigned int)
 (typedef-foreign __socklen_t
 	unsigned int)
 (struct-foreign _cairo_matrix :size 384
@@ -2028,9 +2581,8 @@
 	(field (int) from_configure :offset 192))
 (typedef-foreign __int16_t
 	short int)
-(struct-foreign _XrmHashBucketRec :size 0)
 (typedef-foreign __loff_t
-	long long int)
+	long int)
 (struct-foreign _cairo_rectangle_list :size 96
 	(field (cairo_status_t) status :offset 0)
 	(field (
@@ -2040,7 +2592,7 @@
 (typedef-foreign cairo_rectangle_list_t
 	_cairo_rectangle_list)
 (typedef-foreign __rlim64_t
-	long long unsigned int)
+	long unsigned int)
 (struct-foreign XKeyEvent :size 480
 	(field (int) type :offset 0)
 	(field (long unsigned int) serial :offset 32)
@@ -2096,6 +2648,12 @@
 ) text :offset 96))
 (typedef-foreign XIMStringConversionCallbackStruct
 	_XIMStringConversionCallbackStruct)
+(enum-foreign _cairo_region_overlap
+	(value (CAIRO_REGION_OVERLAP_IN) 0)
+	(value (CAIRO_REGION_OVERLAP_OUT) 1)
+	(value (CAIRO_REGION_OVERLAP_PART) 2))
+(typedef-foreign cairo_region_overlap_t
+	_cairo_region_overlap)
 (typedef-foreign XIMStringConversionType
 	short unsigned int)
 (struct-foreign Screen :size 640
@@ -2151,6 +2709,18 @@
 	(field (long unsigned int) target :offset 224)
 	(field (long unsigned int) property :offset 256)
 	(field (long unsigned int) time :offset 288))
+(struct-foreign XSelectionEvent :size 288
+	(field (int) type :offset 0)
+	(field (long unsigned int) serial :offset 32)
+	(field (int) send_event :offset 64)
+	(field (
+		(pointer-to Display)
+) display :offset 96)
+	(field (long unsigned int) requestor :offset 128)
+	(field (long unsigned int) selection :offset 160)
+	(field (long unsigned int) target :offset 192)
+	(field (long unsigned int) property :offset 224)
+	(field (long unsigned int) time :offset 256))
 (enum-foreign _cairo_status
 	(value (CAIRO_STATUS_SUCCESS) 0)
 	(value (CAIRO_STATUS_NO_MEMORY) 1)
@@ -2176,7 +2746,19 @@
 	(value (CAIRO_STATUS_INVALID_INDEX) 21)
 	(value (CAIRO_STATUS_CLIP_NOT_REPRESENTABLE) 22)
 	(value (CAIRO_STATUS_TEMP_FILE_ERROR) 23)
-	(value (CAIRO_STATUS_INVALID_STRIDE) 24))
+	(value (CAIRO_STATUS_INVALID_STRIDE) 24)
+	(value (CAIRO_STATUS_FONT_TYPE_MISMATCH) 25)
+	(value (CAIRO_STATUS_USER_FONT_IMMUTABLE) 26)
+	(value (CAIRO_STATUS_USER_FONT_ERROR) 27)
+	(value (CAIRO_STATUS_NEGATIVE_COUNT) 28)
+	(value (CAIRO_STATUS_INVALID_CLUSTERS) 29)
+	(value (CAIRO_STATUS_INVALID_SLANT) 30)
+	(value (CAIRO_STATUS_INVALID_WEIGHT) 31)
+	(value (CAIRO_STATUS_INVALID_SIZE) 32)
+	(value (CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED) 33)
+	(value (CAIRO_STATUS_DEVICE_TYPE_MISMATCH) 34)
+	(value (CAIRO_STATUS_DEVICE_ERROR) 35)
+	(value (CAIRO_STATUS_LAST_STATUS) 36))
 (typedef-foreign cairo_status_t
 	_cairo_status)
 (typedef-foreign Cursor
@@ -2226,10 +2808,6 @@
 	(field (int) depth :offset 0)
 	(field (int) bits_per_pixel :offset 32)
 	(field (int) scanline_pad :offset 64))
-(struct-foreign __fsid_t :size 64
-	(field (
-		(array (int) 1u)
-) __val :offset 0))
 (struct-foreign _cairo_rectangle :size 256
 	(field (double) x :offset 0)
 	(field (double) y :offset 64)
@@ -2295,7 +2873,8 @@
 	(value (CAIRO_FONT_TYPE_TOY) 0)
 	(value (CAIRO_FONT_TYPE_FT) 1)
 	(value (CAIRO_FONT_TYPE_WIN32) 2)
-	(value (CAIRO_FONT_TYPE_QUARTZ) 3))
+	(value (CAIRO_FONT_TYPE_QUARTZ) 3)
+	(value (CAIRO_FONT_TYPE_USER) 4))
 (typedef-foreign uid_t
 	unsigned int)
 (struct-foreign XGraphicsExposeEvent :size 384
@@ -2313,13 +2892,11 @@
 	(field (int) count :offset 288)
 	(field (int) major_code :offset 320)
 	(field (int) minor_code :offset 352))
-(struct-foreign XTextItem :size 128
-	(field (
-		(pointer-to char)
-) chars :offset 0)
-	(field (int) nchars :offset 32)
-	(field (int) delta :offset 64)
-	(field (long unsigned int) font :offset 96))
+(struct-foreign XFontProp :size 64
+	(field (long unsigned int) name :offset 0)
+	(field (long unsigned int) card32 :offset 32))
+(typedef-foreign ino64_t
+	long unsigned int)
 (typedef-foreign pthread_spinlock_t
 	int)
 (typedef-foreign __mode_t
@@ -2347,9 +2924,6 @@
 	_XDisplay)
 (typedef-foreign timer_t
 	(pointer-to void))
-(struct-foreign XFontProp :size 64
-	(field (long unsigned int) name :offset 0)
-	(field (long unsigned int) card32 :offset 32))
 (function cairo_xlib_surface_create
 	(
 		(argument ((pointer-to Display)) dpy)
@@ -2386,9 +2960,9 @@
 		(array (char) 47u)
 ) __size :offset 0)
 	(field (long long int) __align :offset 0))
-(union-foreign pthread_barrier_t :size 160 
+(union-foreign pthread_barrier_t :size 256 
 	(field (
-		(array (char) 19u)
+		(array (char) 31u)
 ) __size :offset 0)
 	(field (long int) __align :offset 0))
 (typedef-foreign __uint8_t
@@ -2428,20 +3002,26 @@
 	(field (XMappingEvent) xmapping :offset 0)
 	(field (XErrorEvent) xerror :offset 0)
 	(field (XKeymapEvent) xkeymap :offset 0)
+	(field (XGenericEvent) xgeneric :offset 0)
+	(field (XGenericEventCookie) xcookie :offset 0)
 	(field (
 		(array (long int) 23u)
 ) pad :offset 0))
 (typedef-foreign XEvent
 	_XEvent)
+(typedef-foreign XIMStringConversionPosition
+	short unsigned int)
 (struct-foreign XOMOrientation :size 64
 	(field (int) num_orientation :offset 0)
 	(field (
 		(pointer-to XOrientation)
 ) orientation :offset 32))
-(typedef-foreign XIMStringConversionPosition
-	short unsigned int)
 (typedef-foreign Colormap
 	long unsigned int)
+(struct-foreign __fsid_t :size 64
+	(field (
+		(array (int) 1u)
+) __val :offset 0))
 (typedef-foreign fsid_t
 	__fsid_t)
 (typedef-foreign __int8_t
@@ -2456,6 +3036,9 @@
 	(return int))
 (typedef-foreign u_short
 	short unsigned int)
+(struct-foreign _cairo_device :size 0)
+(typedef-foreign cairo_device_t
+	_cairo_device)
 (typedef-foreign __useconds_t
 	unsigned int)
 (struct-foreign XCrossingEvent :size 544
@@ -2496,7 +3079,9 @@
 	(field (short int) descent :offset 64)
 	(field (short unsigned int) attributes :offset 80))
 (typedef-foreign __nlink_t
-	unsigned int)
+	long unsigned int)
+(typedef-foreign dev_t
+	long unsigned int)
 (struct-foreign XTimeCoord :size 64
 	(field (long unsigned int) time :offset 0)
 	(field (short int) x :offset 32)
@@ -2517,7 +3102,22 @@
 	(value (CAIRO_OPERATOR_DEST_ATOP) 10)
 	(value (CAIRO_OPERATOR_XOR) 11)
 	(value (CAIRO_OPERATOR_ADD) 12)
-	(value (CAIRO_OPERATOR_SATURATE) 13))
+	(value (CAIRO_OPERATOR_SATURATE) 13)
+	(value (CAIRO_OPERATOR_MULTIPLY) 14)
+	(value (CAIRO_OPERATOR_SCREEN) 15)
+	(value (CAIRO_OPERATOR_OVERLAY) 16)
+	(value (CAIRO_OPERATOR_DARKEN) 17)
+	(value (CAIRO_OPERATOR_LIGHTEN) 18)
+	(value (CAIRO_OPERATOR_COLOR_DODGE) 19)
+	(value (CAIRO_OPERATOR_COLOR_BURN) 20)
+	(value (CAIRO_OPERATOR_HARD_LIGHT) 21)
+	(value (CAIRO_OPERATOR_SOFT_LIGHT) 22)
+	(value (CAIRO_OPERATOR_DIFFERENCE) 23)
+	(value (CAIRO_OPERATOR_EXCLUSION) 24)
+	(value (CAIRO_OPERATOR_HSL_HUE) 25)
+	(value (CAIRO_OPERATOR_HSL_SATURATION) 26)
+	(value (CAIRO_OPERATOR_HSL_COLOR) 27)
+	(value (CAIRO_OPERATOR_HSL_LUMINOSITY) 28))
 (typedef-foreign cairo_operator_t
 	_cairo_operator)
 (enum-foreign XOrientation
@@ -2526,10 +3126,6 @@
 	(value (XOMOrientation_TTB_LTR) 2)
 	(value (XOMOrientation_TTB_RTL) 3)
 	(value (XOMOrientation_Context) 4))
-(function cairo_xlib_surface_get_gc
-	(
-		(argument ((pointer-to cairo_surface_t)) surface))
-	(return (pointer-to _XGC)))
 (struct-foreign XColor :size 96
 	(field (long unsigned int) pixel :offset 0)
 	(field (short unsigned int) red :offset 32)
@@ -2549,10 +3145,29 @@
 	(field (int) depth :offset 32)
 	(field (int) bits_per_pixel :offset 64)
 	(field (int) scanline_pad :offset 96))
+(struct-foreign cairo_text_cluster_t :size 64
+	(field (int) num_bytes :offset 0)
+	(field (int) num_glyphs :offset 32))
+(struct-foreign XIMCallback :size 64
+	(field ((pointer-to char)) client_data :offset 0)
+	(field ((pointer-to (function-type XIMProc
+			(
+				(argument ((pointer-to _XIM)) )
+				(argument ((pointer-to char)) )
+				(argument ((pointer-to char)) ))
+			(return void)))) callback :offset 32))
 (typedef-foreign quad_t
-	long long int)
+	long int)
 (typedef-foreign u_long
 	long unsigned int)
+(struct-foreign XICCallback :size 64
+	(field ((pointer-to char)) client_data :offset 0)
+	(field ((pointer-to (function-type XICProc
+			(
+				(argument ((pointer-to _XIC)) )
+				(argument ((pointer-to char)) )
+				(argument ((pointer-to char)) ))
+			(return int)))) callback :offset 32))
 (struct-foreign XRectangle :size 64
 	(field (short int) x :offset 0)
 	(field (short int) y :offset 16)
@@ -2560,9 +3175,19 @@
 	(field (short unsigned int) height :offset 48))
 (typedef-foreign int32_t
 	int)
-(enum-foreign XIMStatusDataType
-	(value (XIMTextType) 0)
-	(value (XIMBitmapType) 1))
+(enum-foreign XIMCaretDirection
+	(value (XIMForwardChar) 0)
+	(value (XIMBackwardChar) 1)
+	(value (XIMForwardWord) 2)
+	(value (XIMBackwardWord) 3)
+	(value (XIMCaretUp) 4)
+	(value (XIMCaretDown) 5)
+	(value (XIMNextLine) 6)
+	(value (XIMPreviousLine) 7)
+	(value (XIMLineStart) 8)
+	(value (XIMLineEnd) 9)
+	(value (XIMAbsolutePosition) 10)
+	(value (XIMDontChange) 11))
 (struct-foreign XGCValues :size 736
 	(field (int) function :offset 0)
 	(field (long unsigned int) plane_mask :offset 32)
@@ -2609,6 +3234,11 @@
 		(pointer-to cairo_path_data_t)
 ) data :offset 32)
 	(field (int) num_data :offset 64))
+(struct-foreign _cairo_rectangle_int :size 128
+	(field (int) x :offset 0)
+	(field (int) y :offset 32)
+	(field (int) width :offset 64)
+	(field (int) height :offset 96))
 (typedef-foreign __pid_t
 	int)
 (struct-foreign XIMStyles :size 64
@@ -2616,6 +3246,13 @@
 	(field (
 		(pointer-to long unsigned int)
 ) supported_styles :offset 32))
+(struct-foreign __pthread_internal_list :size 64
+	(field (
+		(pointer-to __pthread_internal_list)
+) __prev :offset 0)
+	(field (
+		(pointer-to __pthread_internal_list)
+) __next :offset 32))
 (typedef-foreign cairo_path_data_t
 	_cairo_path_data_t)
 (function cairo_xlib_surface_set_size
@@ -2625,7 +3262,7 @@
 		(argument (int) height))
 	(return void))
 (typedef-foreign __dev_t
-	long long unsigned int)
+	long unsigned int)
 (typedef-foreign cairo_filter_t
 	_cairo_filter)
 (struct-foreign timespec :size 64
@@ -2660,7 +3297,7 @@
 		(pointer-to Screen)
 ) screen :offset 704))
 (typedef-foreign __blkcnt64_t
-	long long int)
+	long int)
 (typedef-foreign Window
 	long unsigned int)
 (struct-foreign _XIMStringConversionText :size 128
@@ -2682,7 +3319,7 @@
 (typedef-foreign fsblkcnt_t
 	long unsigned int)
 (typedef-foreign __qaddr_t
-	(pointer-to long long int))
+	(pointer-to long int))
 (struct-foreign _XIMStatusDrawCallbackStruct :size 64
 	(field (XIMStatusDataType) type :offset 0)
 	(field (
@@ -2711,8 +3348,6 @@
 	XFocusChangeEvent)
 (typedef-foreign XKeyPressedEvent
 	XKeyEvent)
-(typedef-foreign __pthread_slist_t
-	__pthread_internal_slist)
 (struct-foreign XErrorEvent :size 160
 	(field (int) type :offset 0)
 	(field (
@@ -2727,8 +3362,6 @@
 	XFocusChangeEvent)
 (typedef-foreign __uint32_t
 	unsigned int)
-(typedef-foreign ino64_t
-	long long unsigned int)
 (enum-foreign _cairo_path_data_type
 	(value (CAIRO_PATH_MOVE_TO) 0)
 	(value (CAIRO_PATH_LINE_TO) 1)
@@ -2745,18 +3378,6 @@
 		(array (char) 3u)
 ) __size :offset 0)
 	(field (int) __align :offset 0))
-(struct-foreign XSelectionEvent :size 288
-	(field (int) type :offset 0)
-	(field (long unsigned int) serial :offset 32)
-	(field (int) send_event :offset 64)
-	(field (
-		(pointer-to Display)
-) display :offset 96)
-	(field (long unsigned int) requestor :offset 128)
-	(field (long unsigned int) selection :offset 160)
-	(field (long unsigned int) target :offset 192)
-	(field (long unsigned int) property :offset 224)
-	(field (long unsigned int) time :offset 256))
 (typedef-foreign int16_t
 	short int)
 (function cairo_xlib_surface_get_visual
@@ -2771,8 +3392,6 @@
 		(argument (int) width)
 		(argument (int) height))
 	(return void))
-(typedef-foreign blkcnt_t
-	long int)
 (typedef-foreign __daddr_t
 	int)
 (enum-foreign _cairo_surface_type
@@ -2789,7 +3408,17 @@
 	(value (CAIRO_SURFACE_TYPE_SVG) 10)
 	(value (CAIRO_SURFACE_TYPE_OS2) 11)
 	(value (CAIRO_SURFACE_TYPE_WIN32_PRINTING) 12)
-	(value (CAIRO_SURFACE_TYPE_QUARTZ_IMAGE) 13))
+	(value (CAIRO_SURFACE_TYPE_QUARTZ_IMAGE) 13)
+	(value (CAIRO_SURFACE_TYPE_SCRIPT) 14)
+	(value (CAIRO_SURFACE_TYPE_QT) 15)
+	(value (CAIRO_SURFACE_TYPE_RECORDING) 16)
+	(value (CAIRO_SURFACE_TYPE_VG) 17)
+	(value (CAIRO_SURFACE_TYPE_GL) 18)
+	(value (CAIRO_SURFACE_TYPE_DRM) 19)
+	(value (CAIRO_SURFACE_TYPE_TEE) 20)
+	(value (CAIRO_SURFACE_TYPE_XML) 21)
+	(value (CAIRO_SURFACE_TYPE_SKIA) 22)
+	(value (CAIRO_SURFACE_TYPE_SUBSURFACE) 23))
 (struct-foreign _cairo_font_face :size 0)
 (typedef-foreign ulong
 	long unsigned int)
@@ -2805,15 +3434,11 @@
 (typedef-foreign id_t
 	unsigned int)
 (typedef-foreign __ssize_t
-	int)
+	long int)
 (typedef-foreign __fsfilcnt_t
 	long unsigned int)
 (typedef-foreign __blkcnt_t
 	long int)
-(function cairo_xlib_surface_get_display
-	(
-		(argument ((pointer-to cairo_surface_t)) surface))
-	(return (pointer-to Display)))
 (typedef-foreign __u_int
 	unsigned int)
 (enum-foreign _cairo_fill_rule
@@ -2827,13 +3452,15 @@
 		(pointer-to (pointer-to char))
 ) supported_values :offset 32))
 (typedef-foreign fsfilcnt64_t
-	long long unsigned int)
+	long unsigned int)
 (typedef-foreign XIMFeedback
 	long unsigned int)
 (struct-foreign _cairo_pattern :size 0)
 (struct-foreign _XGC :size 0)
 (typedef-foreign XLeaveWindowEvent
 	XCrossingEvent)
+(typedef-foreign blkcnt_t
+	long int)
 (struct-foreign _XIC :size 0)
 (struct-foreign _XIMHotKeyTrigger :size 96
 	(field (long unsigned int) keysym :offset 0)
@@ -2842,10 +3469,12 @@
 (typedef-foreign XIMHotKeyTrigger
 	_XIMHotKeyTrigger)
 (enum-foreign _cairo_format
+	(value (CAIRO_FORMAT_INVALID) -1)
 	(value (CAIRO_FORMAT_ARGB32) 0)
 	(value (CAIRO_FORMAT_RGB24) 1)
 	(value (CAIRO_FORMAT_A8) 2)
-	(value (CAIRO_FORMAT_A1) 3))
+	(value (CAIRO_FORMAT_A1) 3)
+	(value (CAIRO_FORMAT_RGB16_565) 4))
 (typedef-foreign cairo_format_t
 	_cairo_format)
 (typedef-foreign __time_t
@@ -2854,15 +3483,9 @@
 	(field (
 		(array (long int) 31u)
 ) fds_bits :offset 0))
-(union-foreign pthread_attr_t :size 288 
+(union-foreign pthread_attr_t :size 448 
 	(field (
-		(array (char) 35u)
-) __size :offset 0)
-	(field (long int) __align :offset 0))
-(union-foreign pthread_mutex_t :size 192 
-	(field (__pthread_mutex_s) __data :offset 0)
-	(field (
-		(array (char) 23u)
+		(array (char) 55u)
 ) __size :offset 0)
 	(field (long int) __align :offset 0))
 (typedef-foreign __off_t
@@ -2876,8 +3499,11 @@
 	int)
 (typedef-foreign daddr_t
 	int)
+(enum-foreign XIMStatusDataType
+	(value (XIMTextType) 0)
+	(value (XIMBitmapType) 1))
 (typedef-foreign __fsblkcnt64_t
-	long long unsigned int)
+	long unsigned int)
 (typedef-foreign cairo_font_type_t
 	_cairo_font_type)
 (typedef-foreign KeyCode
@@ -2885,14 +3511,14 @@
 (typedef-foreign XIMPreeditCaretCallbackStruct
 	_XIMPreeditCaretCallbackStruct)
 (typedef-foreign ssize_t
-	int)
+	long int)
 (union-foreign pthread_rwlockattr_t :size 64 
 	(field (
 		(array (char) 7u)
 ) __size :offset 0)
 	(field (long int) __align :offset 0))
 (typedef-foreign __int64_t
-	long long int)
+	long int)
 (typedef-foreign __fsblkcnt_t
 	long unsigned int)
 (typedef-foreign __clockid_t
@@ -2907,9 +3533,9 @@
 	(field (int) key :offset 192)
 	(field (int) auto_repeat_mode :offset 224))
 (typedef-foreign size_t
-	unsigned int)
+	long unsigned int)
 (typedef-foreign __fsfilcnt64_t
-	long long unsigned int)
+	long unsigned int)
 (struct-foreign XKeyboardState :size 448
 	(field (int) key_click_percent :offset 0)
 	(field (int) bell_percent :offset 32)
@@ -2924,7 +3550,7 @@
 	(field (short int) x :offset 0)
 	(field (short int) y :offset 16))
 (typedef-foreign loff_t
-	long long int)
+	long int)
 (typedef-foreign __u_char
 	unsigned char)
 (struct-foreign _XImage :size 704
@@ -2964,6 +3590,16 @@
 	long unsigned int)
 (typedef-foreign Atom
 	long unsigned int)
+(struct-foreign XResizeRequestEvent :size 224
+	(field (int) type :offset 0)
+	(field (long unsigned int) serial :offset 32)
+	(field (int) send_event :offset 64)
+	(field (
+		(pointer-to Display)
+) display :offset 96)
+	(field (long unsigned int) window :offset 128)
+	(field (int) width :offset 160)
+	(field (int) height :offset 192))
 (enum-foreign _cairo_line_join
 	(value (CAIRO_LINE_JOIN_MITER) 0)
 	(value (CAIRO_LINE_JOIN_ROUND) 1)
@@ -2977,7 +3613,7 @@
 (typedef-foreign XIMStringConversionText
 	_XIMStringConversionText)
 (typedef-foreign _XPrivDisplay
-	(pointer-to _1020))
+	(pointer-to _1108))
 (enum-foreign _cairo_hint_metrics
 	(value (CAIRO_HINT_METRICS_DEFAULT) 0)
 	(value (CAIRO_HINT_METRICS_OFF) 1)
@@ -3012,6 +3648,8 @@
 	(field (int) map_entries :offset 224))
 (typedef-foreign int64_t
 	long long int)
+(typedef-foreign cairo_rectangle_int_t
+	_cairo_rectangle_int)
 (struct-foreign XSegment :size 64
 	(field (short int) x1 :offset 0)
 	(field (short int) y1 :offset 16)
@@ -3074,6 +3712,12 @@
 	unsigned int)
 (typedef-foreign __fd_mask
 	long int)
+(union-foreign pthread_mutex_t :size 320 
+	(field (__pthread_mutex_s) __data :offset 0)
+	(field (
+		(array (char) 39u)
+) __size :offset 0)
+	(field (long int) __align :offset 0))
 (typedef-foreign Mask
 	long unsigned int)
 (struct-foreign XCreateWindowEvent :size 384
@@ -3091,29 +3735,29 @@
 	(field (int) height :offset 288)
 	(field (int) border_width :offset 320)
 	(field (int) override_redirect :offset 352))
-(enum-foreign XIMCaretDirection
-	(value (XIMForwardChar) 0)
-	(value (XIMBackwardChar) 1)
-	(value (XIMForwardWord) 2)
-	(value (XIMBackwardWord) 3)
-	(value (XIMCaretUp) 4)
-	(value (XIMCaretDown) 5)
-	(value (XIMNextLine) 6)
-	(value (XIMPreviousLine) 7)
-	(value (XIMLineStart) 8)
-	(value (XIMLineEnd) 9)
-	(value (XIMAbsolutePosition) 10)
-	(value (XIMDontChange) 11))
+(struct-foreign XTextItem :size 128
+	(field (
+		(pointer-to char)
+) chars :offset 0)
+	(field (int) nchars :offset 32)
+	(field (int) delta :offset 64)
+	(field (long unsigned int) font :offset 96))
+(typedef-foreign __pthread_list_t
+	__pthread_internal_list)
 (typedef-foreign ptrdiff_t
-	int)
+	long int)
 (typedef-foreign pthread_key_t
 	unsigned int)
 (typedef-foreign __timer_t
 	(pointer-to void))
 (typedef-foreign __off64_t
-	long long int)
+	long int)
 (typedef-foreign cairo_font_face_t
 	_cairo_font_face)
+(function cairo_xlib_surface_get_display
+	(
+		(argument ((pointer-to cairo_surface_t)) surface))
+	(return (pointer-to Display)))
 (struct-foreign XHostAddress :size 96
 	(field (int) family :offset 0)
 	(field (int) length :offset 32)
@@ -3121,7 +3765,7 @@
 		(pointer-to char)
 ) address :offset 64))
 (typedef-foreign u_quad_t
-	long long unsigned int)
+	long unsigned int)
 (typedef-foreign XEnterWindowEvent
 	XCrossingEvent)
 (typedef-foreign GC
@@ -3139,8 +3783,10 @@
 	(field (int) state :offset 160))
 (typedef-foreign XIMResetState
 	long unsigned int)
+(typedef-foreign cairo_device_type_t
+	_cairo_device_type)
 (typedef-foreign __quad_t
-	long long int)
+	long int)
 (typedef-foreign __u_long
 	long unsigned int)
 (struct-foreign XColormapEvent :size 256
@@ -3154,8 +3800,9 @@
 	(field (long unsigned int) colormap :offset 160)
 	(field (int) c_new :offset 192)
 	(field (int) state :offset 224))
+(struct-foreign _XrmHashBucketRec :size 0)
 (typedef-foreign nlink_t
-	unsigned int)
+	long unsigned int)
 (typedef-foreign pthread_once_t
 	int)
 (typedef-foreign caddr_t
@@ -3174,24 +3821,24 @@
 	long unsigned int)
 (typedef-foreign cairo_user_data_key_t
 	_cairo_user_data_key)
-(union-foreign pthread_rwlock_t :size 256 
+(union-foreign pthread_rwlock_t :size 448 
 	(field (
-		(struct-foreign  :size 256
+		(struct-foreign  :size 352
 	(field (int) __lock :offset 0)
 	(field (unsigned int) __nr_readers :offset 32)
 	(field (unsigned int) __readers_wakeup :offset 64)
 	(field (unsigned int) __writer_wakeup :offset 96)
 	(field (unsigned int) __nr_readers_queued :offset 128)
 	(field (unsigned int) __nr_writers_queued :offset 160)
-	(field (unsigned char) __flags :offset 192)
-	(field (unsigned char) __shared :offset 200)
-	(field (unsigned char) __pad1 :offset 208)
-	(field (unsigned char) __pad2 :offset 216)
-	(field (int) __writer :offset 224))
+	(field (int) __writer :offset 192)
+	(field (int) __shared :offset 224)
+	(field (long unsigned int) __pad1 :offset 256)
+	(field (long unsigned int) __pad2 :offset 288)
+	(field (unsigned int) __flags :offset 320))
 
 ) __data :offset 0)
 	(field (
-		(array (char) 31u)
+		(array (char) 55u)
 ) __size :offset 0)
 	(field (long int) __align :offset 0))
 (struct-foreign XArc :size 96
@@ -3222,7 +3869,7 @@
 	(field (long unsigned int) private5 :offset 288)
 	(field (int) private6 :offset 320)
 	(field (
-		(pointer-to (function-type _2061
+		(pointer-to (function-type _3024
 			(
 				(argument ((pointer-to _XDisplay)) ))
 			(return long unsigned int)))
@@ -3255,7 +3902,7 @@
 		(pointer-to _XrmHashBucketRec)
 ) db :offset 960)
 	(field (
-		(pointer-to (function-type _2062
+		(pointer-to (function-type _3025
 			(
 				(argument ((pointer-to _XDisplay)) ))
 			(return int)))
@@ -3307,16 +3954,6 @@
 	(field (int) y :offset 224))
 (typedef-foreign ino_t
 	long unsigned int)
-(struct-foreign XResizeRequestEvent :size 224
-	(field (int) type :offset 0)
-	(field (long unsigned int) serial :offset 32)
-	(field (int) send_event :offset 64)
-	(field (
-		(pointer-to Display)
-) display :offset 96)
-	(field (long unsigned int) window :offset 128)
-	(field (int) width :offset 160)
-	(field (int) height :offset 192))
 (struct-foreign XCirculateEvent :size 224
 	(field (int) type :offset 0)
 	(field (long unsigned int) serial :offset 32)
@@ -3327,34 +3964,40 @@
 	(field (long unsigned int) event :offset 128)
 	(field (long unsigned int) window :offset 160)
 	(field (int) place :offset 192))
+(struct-foreign XGenericEventCookie :size 256
+	(field (int) type :offset 0)
+	(field (long unsigned int) serial :offset 32)
+	(field (int) send_event :offset 64)
+	(field (
+		(pointer-to Display)
+) display :offset 96)
+	(field (int) extension :offset 128)
+	(field (int) evtype :offset 160)
+	(field (unsigned int) cookie :offset 192)
+	(field (
+		(pointer-to void)
+) data :offset 224))
 (typedef-foreign XIMText
 	_XIMText)
+(struct-foreign XGenericEvent :size 192
+	(field (int) type :offset 0)
+	(field (long unsigned int) serial :offset 32)
+	(field (int) send_event :offset 64)
+	(field (
+		(pointer-to Display)
+) display :offset 96)
+	(field (int) extension :offset 128)
+	(field (int) evtype :offset 160))
 (typedef-foreign off64_t
-	long long int)
+	long int)
 (typedef-foreign key_t
 	int)
-(struct-foreign XOMFontInfo :size 96
-	(field (int) num_font :offset 0)
-	(field (
-		(pointer-to (pointer-to XFontStruct))
-) font_struct_list :offset 32)
-	(field (
-		(pointer-to (pointer-to char))
-) font_name_list :offset 64))
 (function cairo_xlib_surface_get_screen
 	(
 		(argument ((pointer-to cairo_surface_t)) surface))
 	(return (pointer-to Screen)))
 (typedef-foreign __u_quad_t
-	long long unsigned int)
-(struct-foreign XICCallback :size 64
-	(field ((pointer-to char)) client_data :offset 0)
-	(field ((pointer-to (function-type XICProc
-			(
-				(argument ((pointer-to _XIC)) )
-				(argument ((pointer-to char)) )
-				(argument ((pointer-to char)) ))
-			(return int)))) callback :offset 32))
+	long unsigned int)
 (typedef-foreign cairo_antialias_t
 	_cairo_antialias)
 (typedef-foreign __rlim_t
@@ -3376,12 +4019,10 @@
 	cairo_path)
 (typedef-foreign __blksize_t
 	long int)
-(typedef-foreign dev_t
-	long long unsigned int)
 (typedef-foreign XButtonReleasedEvent
 	XButtonEvent)
 (typedef-foreign __ino64_t
-	long long unsigned int)
+	long unsigned int)
 (typedef-foreign XIC
 	(pointer-to _XIC))
 (typedef-foreign XID
--- a/resources/styles/gccxml2def-utils.xsl	Wed May 30 19:56:35 2012 +0000
+++ b/resources/styles/gccxml2def-utils.xsl	Wed May 30 19:57:40 2012 +0000
@@ -1,43 +1,43 @@
 <?xml version="1.0" encoding="iso-8859-2"?>
-<xsl:stylesheet 
+<xsl:stylesheet
     version="1.0"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 
   <xsl:template name="c-type-string">
     <xsl:param name="c-type-id"/>
     <xsl:param name="c-name-id" select="$c-type-id"/>
-    
+
     <xsl:choose>
       <xsl:when test="/GCC_XML/PointerType[@id = $c-type-id]">
 	<xsl:text>(pointer-to </xsl:text>
-	
+
 	<xsl:choose>
 	  <!-- Pointer is a part of the user defined type -->
 	  <!-- save the name that type -->
 	  <xsl:when test="/GCC_XML/Typedef[@type = $c-type-id]">
 	    <xsl:call-template name="c-type-string">
 	      <xsl:with-param name="c-type-id" select="/GCC_XML/PointerType[@id = $c-type-id]/@type"/>
-	      <xsl:with-param name="c-name-id" select="/GCC_XML/Typedef[@type = $c-type-id]/@name"/>          
-	    </xsl:call-template>            
+	      <xsl:with-param name="c-name-id" select="/GCC_XML/Typedef[@type = $c-type-id]/@name"/>
+	    </xsl:call-template>
 	  </xsl:when>
 
 	  <xsl:otherwise>
 	    <xsl:call-template name="c-type-string">
 	      <xsl:with-param name="c-type-id" select="/GCC_XML/PointerType[@id = $c-type-id]/@type"/>
-	      <xsl:with-param name="c-name-id" select="/GCC_XML/PointerType[@id = $c-type-id]/@type"/>          
-	    </xsl:call-template>            
+	      <xsl:with-param name="c-name-id" select="/GCC_XML/PointerType[@id = $c-type-id]/@type"/>
+	    </xsl:call-template>
 	  </xsl:otherwise>
 	</xsl:choose>
-	<xsl:text>)</xsl:text>        
+	<xsl:text>)</xsl:text>
       </xsl:when>
 
       <xsl:when test="/GCC_XML/CvQualifiedType[@id = $c-type-id]">
 	<xsl:if test="/GCC_XML/CvQualifiedType[@id = $c-type-id]/@const = 1"><xsl:text>const </xsl:text></xsl:if>
 	<xsl:call-template name="c-type-string">
-	  <xsl:with-param name="c-type-id" select="/GCC_XML/CvQualifiedType[@id = $c-type-id]/@type"/>	 
+	  <xsl:with-param name="c-type-id" select="/GCC_XML/CvQualifiedType[@id = $c-type-id]/@type"/>
 	</xsl:call-template>
       </xsl:when>
-      
+
       <xsl:when test="/GCC_XML/FundamentalType[@id = $c-type-id]">
 	<xsl:value-of select="/GCC_XML/FundamentalType[@id = $c-type-id]/@name"/>
       </xsl:when>
@@ -52,22 +52,22 @@
 	  <!-- Pointers are resolved -->
 	  <xsl:when test="/GCC_XML/PointerType[@id = /GCC_XML/Typedef[@id = $c-type-id]/@type]" >
 	    <xsl:call-template name="c-type-string">
-	      <xsl:with-param name="c-type-id" select="/GCC_XML/Typedef[@id = $c-type-id]/@type"/>	 
+	      <xsl:with-param name="c-type-id" select="/GCC_XML/Typedef[@id = $c-type-id]/@type"/>
 	    </xsl:call-template>
 	  </xsl:when>
 
 	  <!-- Typedefs are resolved -->
 	  <xsl:when test="/GCC_XML/Typedef[@id = /GCC_XML/Typedef[@id = $c-type-id]/@type]" >
 	    <xsl:call-template name="c-type-string">
-	      <xsl:with-param name="c-type-id" select="/GCC_XML/Typedef[@id = $c-type-id]/@type"/>	 
+	      <xsl:with-param name="c-type-id" select="/GCC_XML/Typedef[@id = $c-type-id]/@type"/>
 	    </xsl:call-template>
-	  </xsl:when>         
-	  
+	  </xsl:when>
+
 	  <!-- Function types are resolved -->
 	  <xsl:when test="/GCC_XML/FunctionType[@id = /GCC_XML/Typedef[@id = $c-type-id]/@type]">
 	    <xsl:call-template name="c-type-string">
 	      <xsl:with-param name="c-type-id" select="/GCC_XML/Typedef[@id = $c-type-id]/@type"/>
-	      <xsl:with-param name="c-name-id" select="/GCC_XML/Typedef[@id = $c-type-id]/@name"/>	 
+	      <xsl:with-param name="c-name-id" select="/GCC_XML/Typedef[@id = $c-type-id]/@name"/>
 	    </xsl:call-template>
 	  </xsl:when>
 
@@ -75,12 +75,12 @@
 	  <xsl:otherwise>
 	    <xsl:value-of select="/GCC_XML/Typedef[@id = $c-type-id]/@name"/>
 	  </xsl:otherwise>
-	</xsl:choose>       	                    
+	</xsl:choose>
       </xsl:when>
 
       <xsl:when test="/GCC_XML/FunctionType[@id = $c-type-id]">
-	<xsl:text>(function-type </xsl:text>        
-	<xsl:value-of select="$c-name-id"/>       
+	<xsl:text>(function-type </xsl:text>
+	<xsl:value-of select="$c-name-id"/>
 	<xsl:text>&#10;&#09;&#09;&#09;(</xsl:text>
 
 	<xsl:for-each select="/GCC_XML/FunctionType[@id = $c-type-id]/Argument">
@@ -90,7 +90,7 @@
 	  </xsl:call-template>
 	  <xsl:text>) </xsl:text>
 	  <xsl:value-of select="@name"/>
-	  <xsl:text>)</xsl:text>			
+	  <xsl:text>)</xsl:text>
 	</xsl:for-each>
 	<xsl:text>)&#10;&#09;&#09;&#09;(return </xsl:text>
 	<xsl:call-template name="c-type-string">
@@ -106,35 +106,35 @@
       <xsl:when test="/GCC_XML/Struct[@id = $c-type-id]">
 	<xsl:choose>
 	  <xsl:when test="/GCC_XML/Struct[@id = $c-type-id and not(@name)] or /GCC_XML/Struct[@id = $c-type-id]/@name = ''">
-	    <xsl:value-of select="/GCC_XML/Struct[@id = $c-type-id]/@id"/>  
+	    <xsl:value-of select="/GCC_XML/Struct[@id = $c-type-id]/@id"/>
 	  </xsl:when>
 	  <xsl:otherwise>
 	    <xsl:value-of select="/GCC_XML/Struct[@id = $c-type-id]/@name"/>
 	  </xsl:otherwise>
-	</xsl:choose>                
+	</xsl:choose>
       </xsl:when>
 
       <xsl:when test="/GCC_XML/ArrayType[@id = $c-type-id]">
-	<xsl:text>(array (</xsl:text>        
+	<xsl:text>(array (</xsl:text>
 	<xsl:call-template name="c-type-string">
-	  <xsl:with-param name="c-type-id" select="/GCC_XML/ArrayType[@id = $c-type-id]/@type"/>	 
+	  <xsl:with-param name="c-type-id" select="/GCC_XML/ArrayType[@id = $c-type-id]/@type"/>
 	</xsl:call-template>
 	<xsl:text>) </xsl:text>
-	<xsl:value-of select="/GCC_XML/ArrayType[@id = $c-type-id]/@max"/>                
-	<xsl:text>)</xsl:text>                
+	<xsl:value-of select="/GCC_XML/ArrayType[@id = $c-type-id]/@max"/>
+	<xsl:text>)</xsl:text>
       </xsl:when>
-      
+
       <xsl:when test="/GCC_XML/Union[@id = $c-type-id]">
 	<xsl:choose>
 	  <xsl:when test="/GCC_XML/Union[@id = $c-type-id and not(@name)] or /GCC_XML/Union[@id = $c-type-id]/@name = ''">
-	    <xsl:value-of select="/GCC_XML/Union[@id = $c-type-id]/@id"/>  
+	    <xsl:value-of select="/GCC_XML/Union[@id = $c-type-id]/@id"/>
 	  </xsl:when>
-	  <xsl:otherwise>            
+	  <xsl:otherwise>
 	    <xsl:value-of select="/GCC_XML/Union[@id = $c-type-id]/@name"/>
 	  </xsl:otherwise>
-	</xsl:choose>        
+	</xsl:choose>
       </xsl:when>
-      
+
       <xsl:otherwise>
 	<xsl:message>
 	  <xsl:text>&#10;#Error: --c-type-string-- Unknown C type with id </xsl:text>
@@ -142,9 +142,9 @@
 	</xsl:message>
       </xsl:otherwise>
     </xsl:choose>
-  </xsl:template>  
+  </xsl:template>
 
-  
+
   <!--- ========== Tokenizer ================== -->
   <xsl:template name="tokenize">
     <xsl:param name="string" select="''" />
@@ -177,28 +177,28 @@
 	  <xsl:with-param name="field-id" select="substring-before($string, $delimiter)"/>
 	  <xsl:with-param name="string" select="$string"/>
 	  <xsl:with-param name="indent" select="$indent" />
-	</xsl:call-template>       
+	</xsl:call-template>
 
 	<xsl:call-template name="_tokenize-delimiter">
-	  <xsl:with-param name="string"	select="substring-after($string, $delimiter)" />
+	  <xsl:with-param name="string" select="substring-after($string, $delimiter)" />
 	  <xsl:with-param name="delimiter" select="$delimiter" />
 	  <xsl:with-param name="indent" select="$indent" />
 	</xsl:call-template>
-      </xsl:when>	  
-      
+      </xsl:when>
+
       <xsl:otherwise>
-	<xsl:message>              
-	  <xsl:text>&#10;#Error: --tokenizer-- Nothing happend for string </xsl:text>            
+	<xsl:message>
+	  <xsl:text>&#10;#Error: --tokenizer-- Nothing happend for string </xsl:text>
 	  <xsl:value-of select="$string"/>
-	</xsl:message>            
+	</xsl:message>
       </xsl:otherwise>
     </xsl:choose>
-    
+
   </xsl:template>
 
-  
+
 
-  <!--- ========== Find Field ================== -->  
+  <!--- ========== Find Field ================== -->
   <xsl:template name="find-field">
     <xsl:param name="field-id"/>
     <xsl:param name="field" select="/GCC_XML/*[@id = $field-id]"/>
@@ -219,12 +219,16 @@
       <xsl:when test="local-name($field) = 'Enumeration'"/>
       <xsl:when test="local-name($field) = 'Union'"/>
 
+      <xsl:when test="local-name($field) = 'Constructor'"/>
+      <xsl:when test="local-name($field) = 'Destructor'"/>
+      <xsl:when test="local-name($field) = 'OperatorMethod'"/>
+
       <xsl:when test="$field">
 	<xsl:text>&#10;</xsl:text>
 	<xsl:call-template name="indent">
 	  <xsl:with-param name="count" select="$indent"/>
-	</xsl:call-template>	
-	<xsl:text>(field (</xsl:text>	
+	</xsl:call-template>
+	<xsl:text>(field (</xsl:text>
 	<xsl:choose>
 	  <xsl:when test="not($field-type/@name)">
 	    <xsl:text>&#10;</xsl:text>
@@ -251,11 +255,11 @@
 	  <xsl:otherwise>
 	    <xsl:call-template name="c-type-string">
 	      <xsl:with-param name="c-type-id" select="/GCC_XML/Field[@id = $field-id]/@type"/>
-	    </xsl:call-template>        
+	    </xsl:call-template>
 	  </xsl:otherwise>
 	</xsl:choose>
 	<xsl:text>) </xsl:text>
-	
+
 	<xsl:if test="/GCC_XML/Field[@id = $field-id]/@name = ''">
 	  <!-- Field has not defined name -->
 	  <xsl:text>unknown</xsl:text>
@@ -265,8 +269,8 @@
 
 	<xsl:text> :offset </xsl:text>
 	<xsl:value-of select="/GCC_XML/Field[@id = $field-id]/@offset"/>
-	
-	<xsl:text>)</xsl:text>               
+
+	<xsl:text>)</xsl:text>
       </xsl:when>
 
       <xsl:otherwise>
@@ -277,20 +281,20 @@
       </xsl:otherwise>
     </xsl:choose>
   </xsl:template>
-  
-  
-  
+
+
+
   <!--- ========== indent ================== -->
-  <xsl:template name="indent">  
+  <xsl:template name="indent">
     <xsl:param name="count" select="1"/>
-    
+
     <xsl:if test="$count > 0">
-      <xsl:text>&#09;</xsl:text>      
+      <xsl:text>&#09;</xsl:text>
       <xsl:call-template name="indent">
 	<xsl:with-param name="count" select="$count - 1"/>
       </xsl:call-template>
-    </xsl:if>      
-  </xsl:template>  
-  
-  
+    </xsl:if>
+  </xsl:template>
+
+
 </xsl:stylesheet>
--- a/resources/styles/gccxml2def.xsl	Wed May 30 19:56:35 2012 +0000
+++ b/resources/styles/gccxml2def.xsl	Wed May 30 19:57:40 2012 +0000
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="iso-8859-2"?>
-<xsl:stylesheet 
+<xsl:stylesheet
     version="1.0"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:import href="gccxml2def-function.xsl"/>
@@ -8,10 +8,10 @@
 
   <!-- Do not copy white characters from input to output -->
   <xsl:strip-space elements="*" />
-  
+
   <!-- c-header-file should be set to source C header file from command line -->
   <xsl:param name="c-header-file" select="/GCC_XML/File[1]/@name"/>
-  <!-- get ID of source header file; file with ID = f0 is NOT always source header file -->	
+  <!-- get ID of source header file; file with ID = f0 is NOT always source header file -->
   <xsl:param name="c-header-file-id" select="/GCC_XML/File[contains(@name,substring($c-header-file,1,string-length($c-header-file)-4))]/@id"/>
   <xsl:param name="c-header-filename" select="/GCC_XML/File[@id=$c-header-file-id]/@name"/>
 
@@ -22,7 +22,7 @@
     <xsl:text>&#10;</xsl:text>
 <!--
 	<xsl:apply-templates select="//*[@file=$c-header-file-id]"/>
--->    
+-->
     <xsl:apply-templates select="/GCC_XML/*[@context='_1']"/>
   </xsl:template>
 
@@ -32,7 +32,7 @@
 
   <!-- FunctionType has no meaning -->
   <xsl:template match="/GCC_XML/FunctionType"/>
-  
+
   <!-- CvQualifiedType is processed by c-type-string template -->
   <xsl:template match="/GCC_XML/CvQualifiedType"/>
 
@@ -40,14 +40,14 @@
   <xsl:template match="/GCC_XML/FundamentalType"/>
 
   <!-- PointerType is processed by c-type-string template -->
-  <xsl:template match="/GCC_XML/PointerType"/>  
+  <xsl:template match="/GCC_XML/PointerType"/>
 
   <!-- ArrayType is processed by c-type-string template -->
-  <xsl:template match="/GCC_XML/ArrayType"/>    
-        
+  <xsl:template match="/GCC_XML/ArrayType"/>
+
   <!-- Class has no meaning -->
   <xsl:template match="/GCC_XML/Class"/>
-  
+
   <!-- constructors of structures ??? -->
   <xsl:template match="/GCC_XML/Constructor"/>
 
@@ -56,22 +56,22 @@
 
   <!-- Destructor has no meaning -->
   <xsl:template match="/GCC_XML/Destructor"/>
-  
+
   <!-- Method has no meaning -->
   <xsl:template match="/GCC_XML/Method"/>
 
   <!-- MethodType has no meaning -->
-  <xsl:template match="/GCC_XML/MethodType"/>  
-  
+  <xsl:template match="/GCC_XML/MethodType"/>
+
   <!-- namespace has no meaning -->
-  <xsl:template match="/GCC_XML/Namespace"/>  
+  <xsl:template match="/GCC_XML/Namespace"/>
 
   <!-- NamespaceAlias has no meaning -->
   <xsl:template match="/GCC_XML/NamespaceAlias"/>
 
   <!-- OperatorFunction has no meaning -->
   <xsl:template match="/GCC_XML/OperatorFunction"/>
-  
+
   <!-- OperatorMethod has no meaning -->
   <xsl:template match="/GCC_XML/OperatorMethod"/>
 
@@ -79,28 +79,28 @@
   <xsl:template match="/GCC_XML/OffsetType"/>
 
   <!-- Unimplemented has no meaning -->
-  <xsl:template match="/GCC_XML/Unimplemented"/>      
-    
+  <xsl:template match="/GCC_XML/Unimplemented"/>
+
   <!-- ReferenceType has no meaning, it has some connection with Constructor -->
   <xsl:template match="/GCC_XML/ReferenceType"/>
-  
+
   <!-- Variable has no meaning -->
-  <xsl:template match="/GCC_XML/Variable"/>   
-     
+  <xsl:template match="/GCC_XML/Variable"/>
+
   <xsl:template match="/GCC_XML/Struct">
     <xsl:param name="id" select="@id" />
-	  
+
       <xsl:text>(</xsl:text>
       <xsl:text>struct</xsl:text>
       <xsl:if test="not(@file=$c-header-file-id)">
-	<xsl:text>-foreign</xsl:text>		  
-      </xsl:if>		
-      <xsl:text> </xsl:text>	  	     
+	<xsl:text>-foreign</xsl:text>
+      </xsl:if>
+      <xsl:text> </xsl:text>
       <xsl:value-of select="@name"/>
       <xsl:text> :size </xsl:text>
       <xsl:choose>
 	<xsl:when test="@size">
-	  <xsl:value-of select="@size"/>      
+	  <xsl:value-of select="@size"/>
 	</xsl:when>
 	<xsl:otherwise>
 	  <xsl:text>0</xsl:text>
@@ -108,50 +108,50 @@
       </xsl:choose>
       <xsl:call-template name="tokenize">
 	<xsl:with-param name="string" select="@members" />
-      </xsl:call-template>      
-      <xsl:text>)&#10;</xsl:text>      
-      
+      </xsl:call-template>
+      <xsl:text>)&#10;</xsl:text>
+
   </xsl:template>
-    
+
   <!-- fields of structures, processed indirectly through tokenize -->
   <xsl:template match="/GCC_XML/Field"/>
-   
+
   <xsl:template match="/GCC_XML/Enumeration">
     <xsl:param name="id" select="@id" />
-	  
+
       <xsl:text>(</xsl:text>
       <xsl:text>enum</xsl:text>
       <xsl:if test="not(@file=$c-header-file-id)">
-        <xsl:text>-foreign</xsl:text>		  
-      </xsl:if>			  	     
+	<xsl:text>-foreign</xsl:text>
+      </xsl:if>
       <xsl:text> </xsl:text>
       <xsl:value-of select="@name"/>
 
       <xsl:for-each select="./EnumValue">
-        <xsl:text>&#10;&#09;(value (</xsl:text>
-        <xsl:value-of select="@name"/>
-        <xsl:text>) </xsl:text>
-        <xsl:value-of select="@init"/>
-        <xsl:text>)</xsl:text>  
-      </xsl:for-each>       
-                
+	<xsl:text>&#10;&#09;(value (</xsl:text>
+	<xsl:value-of select="@name"/>
+	<xsl:text>) </xsl:text>
+	<xsl:value-of select="@init"/>
+	<xsl:text>)</xsl:text>
+      </xsl:for-each>
+
       <xsl:text>)&#10;</xsl:text>
   </xsl:template>
 
   <xsl:template match="/GCC_XML/Union">
     <xsl:param name="id" select="@id" />
-	  
+
       <xsl:text>(</xsl:text>
       <xsl:text>union</xsl:text>
       <xsl:if test="not(@file=$c-header-file-id)">
-        <xsl:text>-foreign</xsl:text>		  
-	  </xsl:if>			  	     
+	<xsl:text>-foreign</xsl:text>
+	  </xsl:if>
       <xsl:text> </xsl:text>
       <xsl:value-of select="@name"/>
       <xsl:text> :size </xsl:text>
       <xsl:choose>
 	<xsl:when test="@size">
-	  <xsl:value-of select="@size"/>      
+	  <xsl:value-of select="@size"/>
 	</xsl:when>
 	<xsl:otherwise>
 	  <xsl:text>0</xsl:text>
@@ -164,51 +164,51 @@
       <xsl:call-template name="tokenize">
 	<xsl:with-param name="string" select="@members" />
       </xsl:call-template>
-      
+
       <xsl:text>)&#10;</xsl:text>
   </xsl:template>
 
   <xsl:template match="/GCC_XML/Typedef">
 	  <xsl:param name="name" select="@name" />
 	  <xsl:param name="type" select="@type" />
-    
+
     <xsl:choose>
       <!-- Omits Typedefs of Structs or Enumaretions with same name -->
       <xsl:when test="/GCC_XML/Struct[@id = $type and @name = $name] or /GCC_XML/Enumeration[@id = $type and @name = $name]"/>
-      
+
       <!-- Omits Typedefs of Function types and pointers on function types -->
       <xsl:when test="/GCC_XML/FunctionType[@id = $type] or /GCC_XML/FunctionType[@id = /GCC_XML/PointerType[@id = $type]/@type]"/>
-           
+
       <xsl:otherwise>
-        <xsl:text>(typedef</xsl:text>
-        <xsl:if test="not(@file=$c-header-file-id)">
-          <xsl:text>-foreign</xsl:text>		  
-	    </xsl:if>			  	     
-        <xsl:text> </xsl:text>
-        <xsl:value-of select="@name"/>
-        <xsl:text>&#10;&#09;</xsl:text>
+	<xsl:text>(typedef</xsl:text>
+	<xsl:if test="not(@file=$c-header-file-id)">
+	  <xsl:text>-foreign</xsl:text>
+	    </xsl:if>
+	<xsl:text> </xsl:text>
+	<xsl:value-of select="@name"/>
+	<xsl:text>&#10;&#09;</xsl:text>
 
-        <xsl:call-template name="c-type-string">
-          <xsl:with-param name="c-type-id" select="@type"/>
-        </xsl:call-template>
-            
-       <xsl:text>)&#10;</xsl:text>           
+	<xsl:call-template name="c-type-string">
+	  <xsl:with-param name="c-type-id" select="@type"/>
+	</xsl:call-template>
+
+       <xsl:text>)&#10;</xsl:text>
       </xsl:otherwise>
-    </xsl:choose>    
+    </xsl:choose>
   </xsl:template>
-  
+
   <xsl:template match="/GCC_XML/Function">
-    <xsl:if test="@file = $c-header-file-id">  
+    <xsl:if test="@file = $c-header-file-id">
       <xsl:call-template name="function"/>
     </xsl:if>
   </xsl:template>
-  
+
   <!-- If reaches here some element is not processed -->
   <xsl:template match="/GCC_XML/*">
     <xsl:message>
       <xsl:text>&#10;#Error: No template for element </xsl:text>
       <xsl:value-of select="local-name(.)"/>
-    </xsl:message>  
+    </xsl:message>
   </xsl:template>
 
 </xsl:stylesheet>