rendered paste body/* this was working in Cairo 1.0.2 */
#include <cairo.h>
#define IMAGE_WIDTH 19
#define IMAGE_HEIGHT 19
int
main (void)
{
unsigned char buffer[IMAGE_WIDTH * IMAGE_HEIGHT * 4];
double dashes[] = { 1 };
cairo_surface_t *surface = cairo_image_surface_create_for_data (buffer,
CAIRO_FORMAT_ARGB32, IMAGE_WIDTH, IMAGE_HEIGHT, IMAGE_WIDTH * 4);
cairo_t *cr = cairo_create (surface);
memset (buffer, 0, sizeof (buffer));
cairo_set_line_width (cr, 1);
cairo_set_dash (cr, dashes, 1, 0);
cairo_set_line_cap (cr, CAIRO_LINE_CAP_BUTT);
cairo_move_to (cr, 1, 1);
cairo_line_to (cr, 18, 2);
cairo_stroke (cr);
cairo_set_line_cap (cr, CAIRO_LINE_CAP_SQUARE);
cairo_move_to (cr, 1, 10);
cairo_line_to (cr, 18, 11);
cairo_stroke (cr);
cairo_surface_write_to_png (surface, "dash-line-cap-bug.png");
return 0;
}