]> granicus.if.org Git - graphviz/commitdiff
API BREAK: return a C99 bool from 'gvtextlayout_engine_t.textlayout'
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Sun, 16 Jan 2022 00:16:40 +0000 (16:16 -0800)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Sun, 16 Jan 2022 17:48:23 +0000 (09:48 -0800)
CHANGELOG.md
lib/gvc/gvplugin_textlayout.h
lib/gvc/gvtextlayout.c
plugin/gd/gvtextlayout_gd.c
plugin/gdiplus/gvtextlayout_gdiplus.cpp
plugin/pango/gvtextlayout_pango.c
plugin/quartz/gvtextlayout_quartz.c

index 6bdfb3a642caa60cc35c070a29ebca4640507c81..267808735f11e62f7397542621f7355980407901 100644 (file)
@@ -43,6 +43,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 - **Breaking**: The `loadimage` member of the `gvloadimage_engine_t` struct must
   now accept a C99 `bool` parameter instead of a former Graphviz-specific
   `boolean` parameter.
+- **Breaking**: The `textlayout` member of the `gvtextlayout_engine_t` struct
+  must now return a C99 `bool` instead of a Graphviz-specific `boolean`.
 - **Breaking**: 1-bit fields of the `obj_state_s` struct are now unsigned
   instead of signed.
 - **Breaking**: Graphviz headers no longer define the constant `MAXSHORT`. A
index 47c40c543272ff69d0e9dadd236ed2061a334cb3..45fe2f72e9461bada8af78bd0cedbffd37319c27 100644 (file)
 #include "gvplugin.h"
 #include "gvcjob.h"
 #include "gvcommon.h"
+#include <stdbool.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
     struct gvtextlayout_engine_s {
-       boolean (*textlayout) (textspan_t *span, char** fontpath);
+       bool (*textlayout) (textspan_t *span, char** fontpath);
     };
 
 #ifdef __cplusplus
index 584dd1a45b2c23ed49146e3965575906935266c9..c436bc5de6164ae628682e69bdc1288d296059fa 100644 (file)
@@ -39,6 +39,6 @@ bool gvtextlayout(GVC_t *gvc, textspan_t *span, char **fontpath)
     gvtextlayout_engine_t *gvte = gvc->textlayout.engine;
 
     if (gvte && gvte->textlayout)
-       return gvte->textlayout(span, fontpath) != FALSE;
+       return gvte->textlayout(span, fontpath);
     return false;
 }
index 727aab928bcdb14e3a7c3d0f607a3d17497abfc6..7fdbfd770d8f013d8da53e4fac8cceb3247e09f5 100644 (file)
@@ -10,6 +10,7 @@
 
 #include "config.h"
 
+#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -110,7 +111,7 @@ char* gd_psfontResolve (PostscriptAlias* pa)
     return buf;
 }
 
-static boolean gd_textlayout(textspan_t * span, char **fontpath)
+static bool gd_textlayout(textspan_t * span, char **fontpath)
 {
     char *err, *fontlist, *fontname;
     double fontsize;
@@ -143,7 +144,7 @@ static boolean gd_textlayout(textspan_t * span, char **fontpath)
 
     if (fontname) {
        if (fontsize <= FONTSIZE_MUCH_TOO_SMALL) {
-           return TRUE; /* OK, but ignore text entirely */
+           return true; /* OK, but ignore text entirely */
        } else if (fontsize <= FONTSIZE_TOO_SMALL) {
            /* draw line in place of text */
            /* fake a finite fontsize so that line length is calculated */
@@ -166,7 +167,7 @@ static boolean gd_textlayout(textspan_t * span, char **fontpath)
 
        if (err) {
            agerr(AGERR,"%s\n", err);
-           return FALSE; /* indicate error */
+           return false; /* indicate error */
        }
 
        if (fontpath)
@@ -183,7 +184,7 @@ static boolean gd_textlayout(textspan_t * span, char **fontpath)
            span->size.y = (int)(fontsize * 1.2);
        }
     }
-    return TRUE;
+    return true;
 }
 
 static gvtextlayout_engine_t gd_textlayout_engine = {
index e0fa0b47ed109e723834c508ebc0d20fedc20760..3f863ce91629859ebfc34b2ec77393858c736b7f 100644 (file)
@@ -63,7 +63,7 @@ void gdiplus_free_layout(void *layout)
                delete reinterpret_cast<Layout*>(layout);
 };
 
-boolean gdiplus_textlayout(textspan_t *span, char **)
+bool gdiplus_textlayout(textspan_t *span, char **)
 {
        /* ensure GDI+ is started up: since we get called outside of a job, we can't rely on GDI+ startup then */
        UseGdiplus();
@@ -94,7 +94,7 @@ boolean gdiplus_textlayout(textspan_t *span, char **)
        span->size.y = layout->font->GetHeight(&measureGraphics);
        span->yoffset_layout = fontFamily.GetCellAscent(style) * span->font->size / fontFamily.GetEmHeight(style); /* convert design units to pixels */
        span->yoffset_centerline = 0;
-       return TRUE;
+       return true;
 };
 
 static gvtextlayout_engine_t gdiplus_textlayout_engine = {
index 8abf1e53db53095e99eb56c1fc356f442ccf8333..5ac08bfac910ceba792dcf8f63dcca1813623e55 100644 (file)
@@ -12,6 +12,7 @@
 
 #include <assert.h>
 #include <limits.h>
+#include <stdbool.h>
 #include <stdlib.h>
 #include <string.h>
 #include <gvc/gvplugin_render.h>
@@ -75,7 +76,7 @@ static int agxbput_int(void *buffer, const char *s) {
   return (int)len;
 }
 
-static boolean pango_textlayout(textspan_t * span, char **fontpath)
+static bool pango_textlayout(textspan_t * span, char **fontpath)
 {
     static char buf[1024];  /* returned in fontpath, only good until next call */
     static PangoFontMap *fontmap;
@@ -117,7 +118,7 @@ static boolean pango_textlayout(textspan_t * span, char **fontpath)
 
        /* check if the conversion to Pango units below will overflow */
        if ((double)(G_MAXINT / PANGO_SCALE) < span->font->size) {
-           return FALSE;
+           return false;
        }
 
        free(fontname);
@@ -288,9 +289,7 @@ static boolean pango_textlayout(textspan_t * span, char **fontpath)
     /* The distance below midline for y centering of text strings */
     span->yoffset_centerline = 0.2 * span->font->size;
 
-    if (logical_rect.width == 0)
-       return FALSE;
-    return TRUE;
+    return logical_rect.width != 0;
 }
 
 static gvtextlayout_engine_t pango_textlayout_engine = {
index 8fc775cd80609d2f4fb9a35e1ca515fbd2d59e63..b9a2e65471b5607cd43ec490cd72fd3982a5cc57 100644 (file)
@@ -10,6 +10,7 @@
 
 #include "config.h"
 
+#include <stdbool.h>
 #include <stdlib.h>
 #include <string.h>
 
@@ -86,7 +87,7 @@ void quartz_free_layout(void *layout)
 
 #endif
 
-boolean quartz_textlayout(textspan_t *para, char **fontpath)
+bool quartz_textlayout(textspan_t *para, char **fontpath)
 {
        void *line = quartz_new_layout(para->font->name, para->font->size, para->str);
        if (line)
@@ -96,10 +97,10 @@ boolean quartz_textlayout(textspan_t *para, char **fontpath)
                para->free_layout = &quartz_free_layout;
                quartz_size_layout((void*)line, &para->size.x, &para->size.y, &para->yoffset_layout);
                para->yoffset_centerline = 0.2 * para->font->size;
-               return TRUE;
+               return true;
        }
        else
-               return FALSE;
+               return false;
 };
 
 static gvtextlayout_engine_t quartz_textlayout_engine = {