From c2e1eb97786dd6c6f89ac76e188466d5dfe424a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Minisini?= Date: Thu, 5 Feb 2009 13:52:52 +0000 Subject: [PATCH] [INTERPRETER] * BUG: Buffered streams now correctly handle interrupted system calls. [GB.CAIRO] * BUG: Cairo.Scale() now scales. git-svn-id: svn://localhost/gambas/trunk@1859 867c0c6c-44f3-4631-809d-bfa615b0a4ec --- gb.cairo/src/c_cairo.c | 2 +- main/gbx/gbx_stream.c | 1 - main/gbx/gbx_stream_buffer.c | 4 ++-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/gb.cairo/src/c_cairo.c b/gb.cairo/src/c_cairo.c index adae9849b..7e0626cd4 100644 --- a/gb.cairo/src/c_cairo.c +++ b/gb.cairo/src/c_cairo.c @@ -896,7 +896,7 @@ GB_DESC CairoDesc[] = GB_STATIC_METHOD("RadialGradient", "CairoPattern", CAIRO_radial_gradient_pattern, "(CX0)f(CY0)f(Radius0)f(CX1)f(CY1)f(Radius1)f(Colors)Float[][];"), GB_STATIC_METHOD("Translate", NULL, CAIRO_translate, "(TX)f(TY)f"), - GB_STATIC_METHOD("Scale", NULL, CAIRO_translate, "(SX)f(SY)f"), + GB_STATIC_METHOD("Scale", NULL, CAIRO_scale, "(SX)f(SY)f"), GB_STATIC_METHOD("Rotate", NULL, CAIRO_rotate, "(Angle)f"), GB_STATIC_PROPERTY("Matrix", "CairoMatrix", CAIRO_matrix), diff --git a/main/gbx/gbx_stream.c b/main/gbx/gbx_stream.c index 2c3a7619a..9abdee543 100644 --- a/main/gbx/gbx_stream.c +++ b/main/gbx/gbx_stream.c @@ -1163,7 +1163,6 @@ int STREAM_read_direct(int fd, char *buffer, int len) if (eff_read <= 0 && errno != EINTR) return TRUE; } - } return FALSE; diff --git a/main/gbx/gbx_stream_buffer.c b/main/gbx/gbx_stream_buffer.c index 18c023e87..55e87ecc3 100644 --- a/main/gbx/gbx_stream_buffer.c +++ b/main/gbx/gbx_stream_buffer.c @@ -114,7 +114,7 @@ static int stream_read(STREAM *stream, char *buffer, int len) errno = 0; return TRUE; } - if (ferror(FD)) + if (ferror(FD) && errno != EINTR) return TRUE; } } @@ -153,7 +153,7 @@ static int stream_write(STREAM *stream, char *buffer, int len) if (eff_write < len_write) { - if (ferror(FD)) + if (ferror(FD) && errno != EINTR) return TRUE; }