shithub: puzzles

Download patch

ref: f6965b92e1915c9f49fafbadf603b4fd0da735bd
parent: cd6cadbecf245b2916350939343db14e2978f782
author: Simon Tatham <anakin@pobox.com>
date: Tue Nov 13 16:38:53 EST 2018

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.

--- a/devel.but
+++ b/devel.but
@@ -2394,15 +2394,14 @@
 
 \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
--- a/drawing.c
+++ b/drawing.c
@@ -264,7 +264,7 @@
     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 @@
     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);
 }
--- a/nullfe.c
+++ b/nullfe.c
@@ -40,7 +40,7 @@
 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) {}
--- a/ps.c
+++ b/ps.c
@@ -232,7 +232,7 @@
     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 @@
     ps_text_fallback,
 };
 
-psdata *ps_init(FILE *outfile, int colour)
+psdata *ps_init(FILE *outfile, bool colour)
 {
     psdata *ps = snew(psdata);
 
--- a/puzzles.h
+++ b/puzzles.h
@@ -292,7 +292,7 @@
 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_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 @@
 /*
  * 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 @@
     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,
--- a/windows.c
+++ b/windows.c
@@ -799,7 +799,7 @@
     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;