gerbv_gdk_draw_oval(GdkPixmap *pixmap, GdkGC *gc,
		int filled, gint x, gint y, gint x_axis, gint y_axis,
		double angle_deg)
{
	gint width;
	GdkPoint points[2];
	GdkGC *local_gc = gdk_gc_new(pixmap);

	gdk_gc_copy(local_gc, gc);

	if (x_axis > y_axis) {
		/* Draw in x axis */
		width = y_axis;

		points[0].x = -(x_axis >> 1) + (y_axis >> 1);
		points[0].y = 0;
		points[1].x =  (x_axis >> 1) - (y_axis >> 1);
		points[1].y = 0;
	} else {
		/* Draw in y axis */
		width = x_axis;

		points[0].x = 0;
		points[0].y = -(y_axis >> 1) + (x_axis >> 1);
		points[1].x = 0;
		points[1].y =  (y_axis >> 1) - (x_axis >> 1);
	}

	points[0] = rotate_point(points[0], angle_deg);
	points[0].x += x;
	points[0].y += y;
	points[1] = rotate_point(points[1], angle_deg);
	points[1].x += x;
	points[1].y += y;

	gdk_gc_set_line_attributes(local_gc, width,
			GDK_LINE_SOLID, GDK_CAP_ROUND, GDK_JOIN_MITER);
	gdk_draw_line(pixmap, local_gc,
			points[0].x, points[0].y,
			points[1].x, points[1].y);

    gdk_gc_unref(local_gc);

    return;
} /* gerbv_gdk_draw_oval */
gerbv_gdk_draw_oval(GdkPixmap *pixmap, GdkGC *gc,
		int filled, gint x, gint y, gint x_axis, gint y_axis,
		double angle_deg)
{
	gint width;
	GdkPoint points[2];
	GdkGC *local_gc = gdk_gc_new(pixmap);

	gdk_gc_copy(local_gc, gc);

	if (x_axis > y_axis) {
		 
		width = y_axis;

		points[0].x = -(x_axis >> 1) + (y_axis >> 1);
		points[0].y = 0;
		points[1].x =  (x_axis >> 1) - (y_axis >> 1);
		points[1].y = 0;
	} else {
		 
		width = x_axis;

		points[0].x = 0;
		points[0].y = -(y_axis >> 1) + (x_axis >> 1);
		points[1].x = 0;
		points[1].y =  (y_axis >> 1) - (x_axis >> 1);
	}

	points[0] = rotate_point(points[0], angle_deg);
	points[0].x += x;
	points[0].y += y;
	points[1] = rotate_point(points[1], angle_deg);
	points[1].x += x;
	points[1].y += y;

	gdk_gc_set_line_attributes(local_gc, width,
			GDK_LINE_SOLID, GDK_CAP_ROUND, GDK_JOIN_MITER);
	gdk_draw_line(pixmap, local_gc,
			points[0].x, points[0].y,
			points[1].x, points[1].y);

    gdk_gc_unref(local_gc);

    return;
}  