From f6965b92e1915c9f49fafbadf603b4fd0da735bd Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Tue, 13 Nov 2018 21:38:53 +0000 Subject: [PATCH] Adopt C99 bool in the printing API. Not many changes here: the 'dotted' flag passed to print_line_dotted is bool, and so is the printing_in_colour flag passed to print_get_colour. Also ps_init() takes a bool. line_dotted is also a method in the drawing API structure, but it's not actually filled in for any non-print-oriented implementation of that API. So only front ends that do platform-specific _printing_ should need to make a corresponding change. In-tree, for example, windows.c needed a fix because it prints via Windows GDI, but gtk.c didn't have to do anything, because its CLI-based printing facility just delegates to ps.c. --- devel.but | 9 ++++----- drawing.c | 4 ++-- nullfe.c | 2 +- ps.c | 4 ++-- puzzles.h | 8 ++++---- windows.c | 2 +- 6 files changed, 14 insertions(+), 15 deletions(-) diff --git a/devel.but b/devel.but index 825e57f..0a0f1cd 100644 --- a/devel.but +++ b/devel.but @@ -2394,15 +2394,14 @@ capabilities. \S{print-line-dotted} \cw{print_line_dotted()} -\c void print_line_dotted(drawing *dr, int dotted); +\c void print_line_dotted(drawing *dr, bool dotted); This function is called to toggle the drawing of dotted lines during printing. It is not supported during drawing. -The parameter \cq{dotted} is a boolean; \cw{TRUE} means that future -lines drawn by \cw{draw_line()}, \cw{draw_circle} and -\cw{draw_polygon()} will be dotted, and \cw{FALSE} means that they -will be solid. +Setting \cq{dotted} to \cw{true} means that future lines drawn by +\cw{draw_line()}, \cw{draw_circle} and \cw{draw_polygon()} will be +dotted. Setting it to \cw{false} means that they will be solid. Some front ends may impose restrictions on the width of dotted lines. Asking for a dotted line via this front end will override any diff --git a/drawing.c b/drawing.c index caf0b4b..a8eb8cf 100644 --- a/drawing.c +++ b/drawing.c @@ -264,7 +264,7 @@ void print_end_doc(drawing *dr) dr->api->end_doc(dr->handle); } -void print_get_colour(drawing *dr, int colour, int printing_in_colour, +void print_get_colour(drawing *dr, int colour, bool printing_in_colour, int *hatch, float *r, float *g, float *b) { assert(colour >= 0 && colour < dr->ncolours); @@ -347,7 +347,7 @@ void print_line_width(drawing *dr, int width) dr->api->line_width(dr->handle, (float)sqrt(dr->scale) * width); } -void print_line_dotted(drawing *dr, int dotted) +void print_line_dotted(drawing *dr, bool dotted) { dr->api->line_dotted(dr->handle, dotted); } diff --git a/nullfe.c b/nullfe.c index 14b6e09..7cba4e0 100644 --- a/nullfe.c +++ b/nullfe.c @@ -40,7 +40,7 @@ int print_rgb_grey_colour(drawing *dr, float r, float g, float b, float grey) int print_rgb_hatched_colour(drawing *dr, float r, float g, float b, int hatch) { return 0; } void print_line_width(drawing *dr, int width) {} -void print_line_dotted(drawing *dr, int dotted) {} +void print_line_dotted(drawing *dr, bool dotted) {} void midend_supersede_game_desc(midend *me, const char *desc, const char *privdesc) {} void status_bar(drawing *dr, const char *text) {} diff --git a/ps.c b/ps.c index ac021aa..0e469fb 100644 --- a/ps.c +++ b/ps.c @@ -232,7 +232,7 @@ static void ps_line_width(void *handle, float width) ps_printf(ps, "%g setlinewidth\n", width); } -static void ps_line_dotted(void *handle, int dotted) +static void ps_line_dotted(void *handle, bool dotted) { psdata *ps = (psdata *)handle; @@ -408,7 +408,7 @@ static const struct drawing_api ps_drawing = { ps_text_fallback, }; -psdata *ps_init(FILE *outfile, int colour) +psdata *ps_init(FILE *outfile, bool colour) { psdata *ps = snew(psdata); diff --git a/puzzles.h b/puzzles.h index 1ece2a6..379be15 100644 --- a/puzzles.h +++ b/puzzles.h @@ -292,7 +292,7 @@ void print_begin_puzzle(drawing *dr, float xm, float xc, void print_end_puzzle(drawing *dr); void print_end_page(drawing *dr, int number); void print_end_doc(drawing *dr); -void print_get_colour(drawing *dr, int colour, int printing_in_colour, +void print_get_colour(drawing *dr, int colour, bool printing_in_colour, int *hatch, float *r, float *g, float *b); int print_mono_colour(drawing *dr, int grey); /* 0==black, 1==white */ int print_grey_colour(drawing *dr, float grey); @@ -302,7 +302,7 @@ int print_rgb_grey_colour(drawing *dr, float r, float g, float b, float grey); int print_rgb_hatched_colour(drawing *dr, float r, float g, float b, int hatch); void print_line_width(drawing *dr, int width); -void print_line_dotted(drawing *dr, int dotted); +void print_line_dotted(drawing *dr, bool dotted); /* * midend.c @@ -538,7 +538,7 @@ void document_print(document *doc, drawing *dr); /* * ps.c */ -psdata *ps_init(FILE *outfile, int colour); +psdata *ps_init(FILE *outfile, bool colour); void ps_free(psdata *ps); drawing *ps_drawing_api(psdata *ps); @@ -699,7 +699,7 @@ struct drawing_api { void (*end_page)(void *handle, int number); void (*end_doc)(void *handle); void (*line_width)(void *handle, float width); - void (*line_dotted)(void *handle, int dotted); + void (*line_dotted)(void *handle, bool dotted); char *(*text_fallback)(void *handle, const char *const *strings, int nstrings); void (*draw_thick_line)(void *handle, float thickness, diff --git a/windows.c b/windows.c index 268c8f5..557e13f 100644 --- a/windows.c +++ b/windows.c @@ -799,7 +799,7 @@ static void win_line_width(void *handle, float width) fe->linewidth = (int)(width * fe->printpixelscale); } -static void win_line_dotted(void *handle, int dotted) +static void win_line_dotted(void *handle, bool dotted) { frontend *fe = (frontend *)handle;