From a5e9812f12ff738d1caca08143132f49c8027115 Mon Sep 17 00:00:00 2001 From: Matthew Fernandez Date: Sat, 27 Nov 2021 18:39:31 -0800 Subject: [PATCH] fix misuse of 'gvjobs_output_langname' Many callers of `gvjobs_output_langname` were written as if this function returns `NO_SUPPORT` when given an unsupported language. But this is incorrect. It returns `FALSE`. --- CHANGELOG.md | 4 ++++ lib/gvc/gvc.c | 8 ++++---- tclpkg/tcldot/tcldot-graphcmd.c | 7 +++---- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ead58b49..7f24d3134 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased (2.50.1)] +### Fixed + +- fix detection of unavailable output format + ## [2.50.0] – 2021-12-04 ### Added diff --git a/lib/gvc/gvc.c b/lib/gvc/gvc.c index e9810f135..c7386dea3 100644 --- a/lib/gvc/gvc.c +++ b/lib/gvc/gvc.c @@ -89,7 +89,7 @@ int gvRender(GVC_t *gvc, graph_t *g, const char *format, FILE *out) /* create a job for the required format */ rc = gvjobs_output_langname(gvc, format); job = gvc->job; - if (rc == NO_SUPPORT) { + if (!rc) { agerr (AGERR, "Format: \"%s\" not recognized. Use one of:%s\n", format, gvplugin_list(gvc, API_device, format)); return -1; @@ -121,7 +121,7 @@ int gvRenderFilename(GVC_t *gvc, graph_t *g, const char *format, const char *fil /* create a job for the required format */ rc = gvjobs_output_langname(gvc, format); job = gvc->job; - if (rc == NO_SUPPORT) { + if (!rc) { agerr(AGERR, "Format: \"%s\" not recognized. Use one of:%s\n", format, gvplugin_list(gvc, API_device, format)); return -1; @@ -152,7 +152,7 @@ int gvRenderContext(GVC_t *gvc, graph_t *g, const char *format, void *context) /* create a job for the required format */ rc = gvjobs_output_langname(gvc, format); job = gvc->job; - if (rc == NO_SUPPORT) { + if (!rc) { agerr(AGERR, "Format: \"%s\" not recognized. Use one of:%s\n", format, gvplugin_list(gvc, API_device, format)); return -1; @@ -186,7 +186,7 @@ int gvRenderData(GVC_t *gvc, graph_t *g, const char *format, char **result, unsi /* create a job for the required format */ rc = gvjobs_output_langname(gvc, format); job = gvc->job; - if (rc == NO_SUPPORT) { + if (!rc) { agerr(AGERR, "Format: \"%s\" not recognized. Use one of:%s\n", format, gvplugin_list(gvc, API_device, format)); return -1; diff --git a/tclpkg/tcldot/tcldot-graphcmd.c b/tclpkg/tcldot/tcldot-graphcmd.c index aeeb373be..42a6cfb7e 100644 --- a/tclpkg/tcldot/tcldot-graphcmd.c +++ b/tclpkg/tcldot/tcldot-graphcmd.c @@ -26,7 +26,7 @@ int graphcmd(ClientData clientData, Tcl_Interp * interp, ictx_t *ictx = gctx->ictx; Agsym_t *a; char c, buf[256], **argv2; - int i, j, argc2, rc; + int i, j, argc2; size_t length; GVC_t *gvc = ictx->gvc; GVJ_t *job = gvc->job; @@ -328,8 +328,7 @@ int graphcmd(ClientData clientData, Tcl_Interp * interp, } else { canvas = argv[2]; } - rc = gvjobs_output_langname(gvc, "tk"); - if (rc == NO_SUPPORT) { + if (!gvjobs_output_langname(gvc, "tk")) { Tcl_AppendResult(interp, " Format: \"tk\" not recognized.\n", NULL); return TCL_ERROR; } @@ -453,7 +452,7 @@ int graphcmd(ClientData clientData, Tcl_Interp * interp, } else { i = gvjobs_output_langname(gvc, argv[3]); } - if (i == NO_SUPPORT) { + if (!i) { const char *s = gvplugin_list(gvc, API_render, argv[3]); Tcl_AppendResult(interp, "bad langname: \"", argv[3], "\". Use one of:", s, NULL); return TCL_ERROR; -- 2.40.0