]> granicus.if.org Git - graphviz/log
graphviz
2 years agographml2gv: remove unused 'globalAttrType'
Matthew Fernandez [Sat, 20 Aug 2022 15:56:16 +0000 (08:56 -0700)]
graphml2gv: remove unused 'globalAttrType'

This member was always `TAG_NONE`.

2 years agographml2gv: remove unused 'compositeReadState'
Matthew Fernandez [Sat, 20 Aug 2022 15:54:01 +0000 (08:54 -0700)]
graphml2gv: remove unused 'compositeReadState'

It has never been possible to set this member to true.

2 years agoMerge branch 'smattr/30318de1-0ce7-42b7-b0cc-f7ef55fa1321' into 'main'
Matthew Fernandez [Wed, 24 Aug 2022 01:33:48 +0000 (01:33 +0000)]
Merge branch 'smattr/30318de1-0ce7-42b7-b0cc-f7ef55fa1321' into 'main'

API BREAK: libxdot: use size_t instead of int where appropriate

See merge request graphviz/graphviz!2802

2 years agoAPI BREAK: libxdot: use size_t instead of int for stats and polygon line points
Matthew Fernandez [Sun, 21 Aug 2022 02:46:02 +0000 (19:46 -0700)]
API BREAK: libxdot: use size_t instead of int for stats and polygon line points

This allows exceeding counts of 2³¹ - 1, which is not particularly likely. But
its more important effect is to make arithmetic operations less error prone and
make it impossible by-construction to arrive at a negative count in these fields.

There is some interaction between the stats fields and polygon line points
fields, so doing these two separately would have meant an intermediate state
with lots of casting. It seemed simpler and less error prone to do this all at
once.

There is still casting back to int for the `gvrender_*` functions. Modifying
these would have been too invasive. Surprisingly the call to `gvrender_polyline`
affected in this commit is the only instance of a call to it with a non-literal
point count. But modifying it to take a size_t would still have required
too-invasive changes due to other functions it calls.

For lines that would have been changed anyway, this commit also fixes white
space and tightens variable scoping where possible.

2 years agoclang-format lib/cgraph/prisize_t.h
Matthew Fernandez [Sun, 21 Aug 2022 18:13:58 +0000 (11:13 -0700)]
clang-format lib/cgraph/prisize_t.h

This file was so close to compliant already, we may as well pull it in line.

2 years agocgraph: Doxygen-ize and further explain 'PRISIZE_T'
Matthew Fernandez [Sun, 21 Aug 2022 02:15:57 +0000 (19:15 -0700)]
cgraph: Doxygen-ize and further explain 'PRISIZE_T'

2 years agoAPI BREAK: libxdot: use size_t instead of int for op sizes/counts
Matthew Fernandez [Sun, 21 Aug 2022 01:58:20 +0000 (18:58 -0700)]
API BREAK: libxdot: use size_t instead of int for op sizes/counts

This allows exceeding operation counts of 2³¹ - 1, which is not particularly
likely. But its more important effect is to make arithmetic operations less
error prone and make it impossible by-construction to arrive at a negative
operation size or count.

Doing this as a single sweeping change seemed less error prone and clearer,
despite how large the resulting diff is.

For lines that would have been changed anyway, this commit also fixes white
space and tightens variable scoping where possible.

2 years agoMerge branch 'smattr/9d85d7f5-9526-40da-9753-4d6253b74495' into 'main'
Matthew Fernandez [Tue, 23 Aug 2022 16:33:58 +0000 (16:33 +0000)]
Merge branch 'smattr/9d85d7f5-9526-40da-9753-4d6253b74495' into 'main'

remove setup and checking of 'sort' in the Windows build

See merge request graphviz/graphviz!2805

2 years agoremove setup and checking of 'sort' in the Windows build
Matthew Fernandez [Tue, 23 Aug 2022 00:17:00 +0000 (17:17 -0700)]
remove setup and checking of 'sort' in the Windows build

Building Graphviz has not required the `sort` utility since
ea6b4c99ec32127619b6e5c3a5ff58be51aa4829.

2 years agoMerge branch 'smattr/9882daff-1ca0-45b3-ba75-4e7d308ef6f2' into 'main'
Matthew Fernandez [Tue, 23 Aug 2022 15:26:58 +0000 (15:26 +0000)]
Merge branch 'smattr/9882daff-1ca0-45b3-ba75-4e7d308ef6f2' into 'main'

sfio: remove unused 'SF_APPEND'

See merge request graphviz/graphviz!2804

2 years agosfio: remove unused 'SF_APPEND'
Matthew Fernandez [Sun, 21 Aug 2022 19:22:54 +0000 (12:22 -0700)]
sfio: remove unused 'SF_APPEND'

The last use of this was removed in 052e514170a70a549abbc25199504ae6a58dea27.

2 years agoMerge branch 'extend-svg-analyzer-with-graphviz-awareness' into 'main'
Magnus Jacobsson [Tue, 23 Aug 2022 07:12:24 +0000 (07:12 +0000)]
Merge branch 'extend-svg-analyzer-with-graphviz-awareness' into 'main'

Extend the SVG analyzer with Graphviz awareness

See merge request graphviz/graphviz!2797

2 years agotests: test_rankdir: add checking of relative position of edge and each node
Magnus Jacobsson [Wed, 17 Aug 2022 20:10:28 +0000 (22:10 +0200)]
tests: test_rankdir: add checking of relative position of edge and each node

2 years agotests: SvgAnalyzer: GraphvizEdge add retrieval of center position
Magnus Jacobsson [Wed, 17 Aug 2022 20:05:54 +0000 (22:05 +0200)]
tests: SvgAnalyzer: GraphvizEdge add retrieval of center position

2 years agotests: SvgAnalyzer: GraphvizEdge: add retrieval of bounding box
Magnus Jacobsson [Wed, 17 Aug 2022 19:59:30 +0000 (21:59 +0200)]
tests: SvgAnalyzer: GraphvizEdge: add retrieval of bounding box

2 years agotests: SvgAnalyzer: GraphvizGraph: add retrieval of edge by edgeop
Magnus Jacobsson [Wed, 17 Aug 2022 19:49:03 +0000 (21:49 +0200)]
tests: SvgAnalyzer: GraphvizGraph: add retrieval of edge by edgeop

2 years agotests: test_rankdir: add checking of relative position of nodes
Magnus Jacobsson [Wed, 17 Aug 2022 12:59:04 +0000 (14:59 +0200)]
tests: test_rankdir: add checking of relative position of nodes

2 years agotests: SvgAnalyzer: SVGPoint: add checking of relative position to other point
Magnus Jacobsson [Wed, 17 Aug 2022 12:57:43 +0000 (14:57 +0200)]
tests: SvgAnalyzer: SVGPoint: add checking of relative position to other point

2 years agotests: SvgAnalyzer: GraphvizNode add retrieval of center position
Magnus Jacobsson [Wed, 17 Aug 2022 12:55:18 +0000 (14:55 +0200)]
tests: SvgAnalyzer: GraphvizNode add retrieval of center position

2 years agotests: SvgAnalyzer: GraphvizNode: add retrieval of bounding box
Magnus Jacobsson [Tue, 16 Aug 2022 13:14:27 +0000 (15:14 +0200)]
tests: SvgAnalyzer: GraphvizNode: add retrieval of bounding box

2 years agotests: SvgAnalyzer: SVGElement: add retrieval of bounding box
Magnus Jacobsson [Tue, 16 Aug 2022 13:14:27 +0000 (15:14 +0200)]
tests: SvgAnalyzer: SVGElement: add retrieval of bounding box

2 years agotests: SvgAnalyzer: GraphvizGraph: add retrieval of node by node_id
Magnus Jacobsson [Tue, 16 Aug 2022 13:55:53 +0000 (15:55 +0200)]
tests: SvgAnalyzer: GraphvizGraph: add retrieval of node by node_id

2 years agotests: add new test_rankdir test skeleton
Magnus Jacobsson [Tue, 16 Aug 2022 13:38:28 +0000 (15:38 +0200)]
tests: add new test_rankdir test skeleton

2 years agotests: SvgAnalyzer: add support for retrieving Graphviz components
Magnus Jacobsson [Wed, 17 Aug 2022 10:59:08 +0000 (12:59 +0200)]
tests: SvgAnalyzer: add support for retrieving Graphviz components

2 years agotests: SvgAnalyzer: add a graphvizGraph class
Magnus Jacobsson [Wed, 17 Aug 2022 10:54:36 +0000 (12:54 +0200)]
tests: SvgAnalyzer: add a graphvizGraph class

2 years agotests: SvgAnalyzer: add a graphvizEdge class
Magnus Jacobsson [Wed, 17 Aug 2022 10:52:20 +0000 (12:52 +0200)]
tests: SvgAnalyzer: add a graphvizEdge class

2 years agotests: SvgAnalyzer: add a graphvizNode class
Magnus Jacobsson [Mon, 25 Jul 2022 12:30:05 +0000 (14:30 +0200)]
tests: SvgAnalyzer: add a graphvizNode class

2 years agoMerge branch 'smattr/3544c517-02cf-4433-8cf5-e58b7eb35fa3' into 'main'
Matthew Fernandez [Tue, 23 Aug 2022 05:32:49 +0000 (05:32 +0000)]
Merge branch 'smattr/3544c517-02cf-4433-8cf5-e58b7eb35fa3' into 'main'

common, dotgen: fix truncation to int in intermediate calculations

See merge request graphviz/graphviz!2796

2 years agodotgen flat_limits: fix truncation to int during intermediate calculations
Matthew Fernandez [Thu, 18 Aug 2022 02:52:55 +0000 (19:52 -0700)]
dotgen flat_limits: fix truncation to int during intermediate calculations

Like the prior commits, the problem fixed in this commit seems to have been a
mistake in ebd6191b0eec6e23d96c92aaa06212de339207e3 in not updating these
variables to doubles when transitioning to double-based points. Squashes 3
-Wfloat-conversion warnings.

2 years agodotgen make_flat_labeled_edge: fix truncation to int during intermediate ops
Matthew Fernandez [Thu, 18 Aug 2022 02:46:02 +0000 (19:46 -0700)]
dotgen make_flat_labeled_edge: fix truncation to int during intermediate ops

Like the prior commits, the problem fixed in this commit seems to have been a
mistake in ebd6191b0eec6e23d96c92aaa06212de339207e3 in not updating these
variables to doubles when transitioning to double-based points. Squashes 1
-Wfloat-conversion warnings.

2 years agodotgen make_flat_adj_edges: fix truncation to int during intermediate calculations
Matthew Fernandez [Thu, 18 Aug 2022 02:38:58 +0000 (19:38 -0700)]
dotgen make_flat_adj_edges: fix truncation to int during intermediate calculations

Like the prior commits, the problem fixed in this commit seems to have been a
mistake in ebd6191b0eec6e23d96c92aaa06212de339207e3 in not updating these
variables to doubles when transitioning to double-based points. Squashes 4
-Wfloat-conversion warnings.

2 years agodotgen _dot_splines: fix truncation to int during intermediate calculations
Matthew Fernandez [Thu, 18 Aug 2022 02:31:44 +0000 (19:31 -0700)]
dotgen _dot_splines: fix truncation to int during intermediate calculations

Like the prior commit, the problem fixed in this commit seems to have been a
mistake in ebd6191b0eec6e23d96c92aaa06212de339207e3 in not updating these
variables to doubles when transitioning to double-based points. Squashes 5
-Wfloat-conversion warnings.

2 years agocommon record_path: fix truncation to int during path calculation
Matthew Fernandez [Thu, 18 Aug 2022 02:17:34 +0000 (19:17 -0700)]
common record_path: fix truncation to int during path calculation

This looks to have been a typo in ebd6191b0eec6e23d96c92aaa06212de339207e3 that
switched this code to operate on double points instead of int points, in that it
did not also update the local temporaries used in this calculation. As a result,
this function produced inaccurate answers due to rounding when points were too
close together and downright wrong answers when points did not fit in an int
data type. Squashes 4 -Wfloat-conversion warnings.

2 years agocommon pos_reclbl: treat 'sides' uniformly as an unsigned char
Matthew Fernandez [Thu, 18 Aug 2022 02:03:42 +0000 (19:03 -0700)]
common pos_reclbl: treat 'sides' uniformly as an unsigned char

Squashes a -Wconversion warning.

2 years agocommon point_gencode: tighter scope and stack-allocate 'AF'
Matthew Fernandez [Thu, 18 Aug 2022 01:52:13 +0000 (18:52 -0700)]
common point_gencode: tighter scope and stack-allocate 'AF'

`AF` was being dynamically allocated as if it needed to contain an arbitrary
(potentially large) number of points. However its only use is in being passed to
`gvrender_ellipse` which only looks at the first two points. So we can simplify
and optimize this code by simply stack-allocating 2 entries.

2 years agoremove unnecessary casts around 'ND_shape_info'
Matthew Fernandez [Thu, 18 Aug 2022 01:40:09 +0000 (18:40 -0700)]
remove unnecessary casts around 'ND_shape_info'

2 years agocommon emit_html_rules: perform base calculation uniformly on doubles
Matthew Fernandez [Thu, 18 Aug 2022 01:28:15 +0000 (18:28 -0700)]
common emit_html_rules: perform base calculation uniformly on doubles

It is unclear to me why 070d24215a27219b33581c96c39e6e8811ba52a7 chose to
perform these intermediate calculations truncating to unsigned char. This
resulted in loss of accuracy and multiple possibilities for overflow. This
change makes the computation more natural, squashing 7 compiler warnings.

2 years agocommon size_html_cell: squash a -Wsign-conversion warning
Matthew Fernandez [Thu, 18 Aug 2022 01:10:41 +0000 (18:10 -0700)]
common size_html_cell: squash a -Wsign-conversion warning

`parent->cb` is known non-negative here.

2 years agogvc gvprintpointflist: take number of points as a size_t
Matthew Fernandez [Thu, 18 Aug 2022 00:51:39 +0000 (17:51 -0700)]
gvc gvprintpointflist: take number of points as a size_t

This is a more appropriate type for the length of an array.

2 years agogvc gvprintpointflist: rewrite for clarity
Matthew Fernandez [Thu, 18 Aug 2022 00:42:35 +0000 (17:42 -0700)]
gvc gvprintpointflist: rewrite for clarity

The unusual structure of the loop in this function made it appear as if it was
intending to cope with e.g. an `n` of 0 but still print the first element of
`p`. Surveying the callers of `gvprintpointflist`, we can see it is never used
this way. So we can write it simpler and more readably.

2 years agoMerge branch 'smattr/921086b7-d71e-45a0-b85e-66a3a5f41532' into 'main'
Matthew Fernandez [Sun, 21 Aug 2022 18:47:03 +0000 (18:47 +0000)]
Merge branch 'smattr/921086b7-d71e-45a0-b85e-66a3a5f41532' into 'main'

GD plugin warninig squashing

See merge request graphviz/graphviz!2799

2 years agoGD plugin gd_loadimage_cairo: realign some types with their values
Matthew Fernandez [Sat, 20 Aug 2022 04:15:49 +0000 (21:15 -0700)]
GD plugin gd_loadimage_cairo: realign some types with their values

Squashes 4 -Wsign-conversion warnings that were occurring from mixing signed and
unsigned ints.

2 years agoGD plugin: squash -Wmissing-prototypes warnings for 'gd_psfontResolve'
Matthew Fernandez [Sat, 20 Aug 2022 04:02:37 +0000 (21:02 -0700)]
GD plugin: squash -Wmissing-prototypes warnings for 'gd_psfontResolve'

2 years agoGD plugin doSphere: remove unused parameters
Matthew Fernandez [Sat, 20 Aug 2022 03:52:10 +0000 (20:52 -0700)]
GD plugin doSphere: remove unused parameters

2 years agoGD plugin doSphere: remove commented out code
Matthew Fernandez [Sat, 20 Aug 2022 03:48:14 +0000 (20:48 -0700)]
GD plugin doSphere: remove commented out code

2 years agoGD plugin: squash -Wunused-parameter warnings
Matthew Fernandez [Sat, 20 Aug 2022 03:46:19 +0000 (20:46 -0700)]
GD plugin: squash -Wunused-parameter warnings

These functions are used as callbacks, so their parameters cannot easily be
removed.

2 years agoGD plugin: squash -Wmissing-prototypes warning
Matthew Fernandez [Sat, 20 Aug 2022 03:42:52 +0000 (20:42 -0700)]
GD plugin: squash -Wmissing-prototypes warning

2 years agoGD plugin gdgen_missingfont: remove unused 'err' parameter
Matthew Fernandez [Sat, 20 Aug 2022 03:30:13 +0000 (20:30 -0700)]
GD plugin gdgen_missingfont: remove unused 'err' parameter

2 years agoGD plugin gdgen_end_page: squash -Wswitch-default warning
Matthew Fernandez [Sat, 20 Aug 2022 03:28:42 +0000 (20:28 -0700)]
GD plugin gdgen_end_page: squash -Wswitch-default warning

This switch is exhaustive.

2 years agoGD plugin gdgen_end_page: squash -Wmissing-field-initializers warning
Matthew Fernandez [Sat, 20 Aug 2022 03:26:21 +0000 (20:26 -0700)]
GD plugin gdgen_end_page: squash -Wmissing-field-initializers warning

2 years agoMerge branch 'smattr/gitlab-2257' into 'main'
Matthew Fernandez [Sat, 20 Aug 2022 17:28:25 +0000 (17:28 +0000)]
Merge branch 'smattr/gitlab-2257' into 'main'

remove $GV_FILE_PATH support

Closes #2257

See merge request graphviz/graphviz!2794

2 years agoremove $GV_FILE_PATH support
Matthew Fernandez [Tue, 16 Aug 2022 02:19:29 +0000 (19:19 -0700)]
remove $GV_FILE_PATH support

The `$GV_FILE_PATH` environment variable could be set to sandbox Graphviz’
ability to read and write to the file system. This made sense once upon a time,
but the world around Graphviz has shifted. Sandboxing yourself is no longer as
valuable a proposition as an external sandboxer that can be more easily audited.
Platforms’ ecosystems have matured to support this use case (Capsicum on
FreeBSD, Seccomp on Linux, App Sandbox on macOS, Pledge on OpenBSD, …).

This change makes any attempt to use `$GV_FILE_PATH` “fail-closed,” in the
sense that execution will be aborted. This may be surprising and not what the
user intended, but this conservatively guarantees safety: you can never think
you have enabled `$GV_FILE_PATH`-based sandboxing and be instead running
unguarded.

Gitlab: closes #2257

2 years agoadd a test case for #2257
Matthew Fernandez [Tue, 16 Aug 2022 01:22:32 +0000 (18:22 -0700)]
add a test case for #2257

2 years agoMerge branch 'smattr/c33cd902-b3b8-4865-847d-ad832d997c4f' into 'main'
Matthew Fernandez [Sat, 20 Aug 2022 16:29:09 +0000 (16:29 +0000)]
Merge branch 'smattr/c33cd902-b3b8-4865-847d-ad832d997c4f' into 'main'

start 6.0.0 development

See merge request graphviz/graphviz!2800

2 years agostart 6.0.0 development
Matthew Fernandez [Sat, 20 Aug 2022 14:42:29 +0000 (07:42 -0700)]
start 6.0.0 development

This starts 6.0.0 rather than 5.0.2 because we know we are immediately about to
merge something breaking (`$GV_FILE_PATH` removal).

2 years agoMerge branch 'smattr/859c3111-91ff-44fe-a6ac-f71b9f496f68' into 'main' 5.0.1
Matthew Fernandez [Sat, 20 Aug 2022 15:26:09 +0000 (15:26 +0000)]
Merge branch 'smattr/859c3111-91ff-44fe-a6ac-f71b9f496f68' into 'main'

Stable release 5.0.1

See merge request graphviz/graphviz!2792

2 years agoStable release 5.0.1
Matthew Fernandez [Mon, 15 Aug 2022 00:47:53 +0000 (17:47 -0700)]
Stable release 5.0.1

2 years agoMerge branch 'smattr/f71cbd75-31c7-419f-85ae-1bb310b98b7c' into 'main'
Matthew Fernandez [Sat, 20 Aug 2022 03:55:28 +0000 (03:55 +0000)]
Merge branch 'smattr/f71cbd75-31c7-419f-85ae-1bb310b98b7c' into 'main'

sfio and expr: dead code removal

See merge request graphviz/graphviz!2791

2 years agosfio: remove unused 'SF_CLOSE'
Matthew Fernandez [Sun, 14 Aug 2022 22:12:02 +0000 (15:12 -0700)]
sfio: remove unused 'SF_CLOSE'

All Graphviz uses were updated to use `SF_CLOSING` a long time ago.

2 years agosfio: remove unused 'SF_BUFSIZE'
Matthew Fernandez [Sun, 14 Aug 2022 22:08:49 +0000 (15:08 -0700)]
sfio: remove unused 'SF_BUFSIZE'

The last use of this was removed in faee068a9d838f11233b9bd5d33cabb11f07f02b.

2 years agosfio sfpkrd: use a more appropriate type for 'read' result
Matthew Fernandez [Sun, 14 Aug 2022 21:51:28 +0000 (14:51 -0700)]
sfio sfpkrd: use a more appropriate type for 'read' result

Squashes a -Wconversion warning.

2 years agoexpr expush: remove unused string path
Matthew Fernandez [Sun, 14 Aug 2022 21:45:05 +0000 (14:45 -0700)]
expr expush: remove unused string path

As of the previous commit, this is unused.

2 years agoexpr excomp: remove unused string path
Matthew Fernandez [Sun, 14 Aug 2022 21:36:52 +0000 (14:36 -0700)]
expr excomp: remove unused string path

This function could accept either a string or a file handle. But only the file
handle code path is used.

2 years agosfio: make '_sftype' static
Matthew Fernandez [Sun, 14 Aug 2022 21:25:30 +0000 (14:25 -0700)]
sfio: make '_sftype' static

This function is not used outside of its containing file.

2 years agosfio sfopen: remove 'f' parameter that is always 'NULL'
Matthew Fernandez [Sun, 14 Aug 2022 21:21:54 +0000 (14:21 -0700)]
sfio sfopen: remove 'f' parameter that is always 'NULL'

2 years agoMerge branch 'smattr/0e7b46c3-caee-4459-aae9-f9428bae2d84' into 'main'
Matthew Fernandez [Sat, 20 Aug 2022 02:10:29 +0000 (02:10 +0000)]
Merge branch 'smattr/0e7b46c3-caee-4459-aae9-f9428bae2d84' into 'main'

graphml2gv: fix error message referring to cvtgxl

See merge request graphviz/graphviz!2798

2 years agographml2gv: fix error message referring to cvtgxl
Matthew Fernandez [Fri, 19 Aug 2022 14:53:34 +0000 (07:53 -0700)]
graphml2gv: fix error message referring to cvtgxl

1d28d7d2b4d2b2551bd1f432aa175f54a69364a4 appears to have copy-pasted much of the
initial code from cmd/tools/cvtgxl.c, accidentally retaining this usage message
referring to the wrong tool.

2 years agoMerge branch 'smattr/2c713249-8784-4e0b-87a1-52cd37e4df45' into 'main'
Matthew Fernandez [Sat, 20 Aug 2022 01:15:46 +0000 (01:15 +0000)]
Merge branch 'smattr/2c713249-8784-4e0b-87a1-52cd37e4df45' into 'main'

smyrna, tclpkg warning squashing

See merge request graphviz/graphviz!2795

2 years agosmyrna glcompui.c: squash unused parameter warnings
Matthew Fernandez [Tue, 16 Aug 2022 04:14:17 +0000 (21:14 -0700)]
smyrna glcompui.c: squash unused parameter warnings

These parameters cannot easily be removed because these functions are used as
callbacks. This change squashes 39 compiler warnings.

2 years agosmyrna topviewsettings.c: rename attribute parameters to avoid shadowing
Matthew Fernandez [Tue, 16 Aug 2022 04:00:58 +0000 (21:00 -0700)]
smyrna topviewsettings.c: rename attribute parameters to avoid shadowing

Squashes 13 -Wshadow warnings.

2 years agoavoid adding non-existent TCL generic path to include directories
Matthew Fernandez [Tue, 16 Aug 2022 03:42:13 +0000 (20:42 -0700)]
avoid adding non-existent TCL generic path to include directories

It looks like a typo in 30f5e6535f21ca671d76159b49cc87add1f0b53e that this was
not adjusted. This change squashes 25 -Wmissing-include-dir warnings.

2 years agotcldot: inline and simplify 'MATCHES_OPTION'
Matthew Fernandez [Tue, 16 Aug 2022 03:35:13 +0000 (20:35 -0700)]
tcldot: inline and simplify 'MATCHES_OPTION'

I guess in the past this was an optimization. In a modern environment this does
little other than obscure the intent of this code.

2 years agoMerge branch 'smattr/6C564655-0DD5-4AEB-8E1D-CBDF3920EFBA' into 'main'
Matthew Fernandez [Fri, 19 Aug 2022 01:39:13 +0000 (01:39 +0000)]
Merge branch 'smattr/6C564655-0DD5-4AEB-8E1D-CBDF3920EFBA' into 'main'

core plugin: some cleanup

See merge request graphviz/graphviz!2789

2 years agocore plugin: replace 'assert(0)' with 'UNREACHABLE()'
Matthew Fernandez [Sat, 13 Aug 2022 15:44:44 +0000 (08:44 -0700)]
core plugin: replace 'assert(0)' with 'UNREACHABLE()'

The latter is more robust and clearer in intent.

2 years agocore plugin: use const arrays for some strings
Matthew Fernandez [Sat, 13 Aug 2022 15:34:45 +0000 (08:34 -0700)]
core plugin: use const arrays for some strings

This makes very little difference to the compiler, as it can see all uses of
these strings. But this makes it clearer to readers that these variables are not
modified. Using an array instead of a pointer slightly increases flexibility,
allowing a useful application of `sizeof` to these variables should we ever want
to do that.

2 years agoMerge branch 'smattr/f6178594-61df-49d2-be88-70eea3c8caed' into 'main'
Matthew Fernandez [Thu, 18 Aug 2022 15:44:00 +0000 (15:44 +0000)]
Merge branch 'smattr/f6178594-61df-49d2-be88-70eea3c8caed' into 'main'

some DEVELOPERS.md tuning and a #2258 test case

See merge request graphviz/graphviz!2793

2 years agoadd a test case for #2258
Matthew Fernandez [Mon, 15 Aug 2022 03:21:13 +0000 (20:21 -0700)]
add a test case for #2258

2 years agoDEVELOPERS.md: add instructions of how to run a single test
Matthew Fernandez [Mon, 15 Aug 2022 03:06:30 +0000 (20:06 -0700)]
DEVELOPERS.md: add instructions of how to run a single test

2 years agoDEVELOPERS.md: remove reference to 'rtest'
Matthew Fernandez [Mon, 15 Aug 2022 03:03:56 +0000 (20:03 -0700)]
DEVELOPERS.md: remove reference to 'rtest'

This directory was removed in 0e19cdb9bff60fdeb1942f5dca677db9d8a24062.

2 years agoDEVELOPERS.md: move how to make a release to the bottom
Matthew Fernandez [Mon, 15 Aug 2022 03:01:14 +0000 (20:01 -0700)]
DEVELOPERS.md: move how to make a release to the bottom

This guide was sort of back-to-front, in that it prioritized readers who were
maintainers looking at cutting an upcoming release. In reality, this document is
read far more often by drive-by contributors seeking how to build and test their
changes.

2 years agoDEVELOPERS.md: drop TODO about updating example commits
Matthew Fernandez [Mon, 15 Aug 2022 02:59:29 +0000 (19:59 -0700)]
DEVELOPERS.md: drop TODO about updating example commits

Despite coming up on 5.0.1, we have not updated the example commits since
2.44.1. This seems like strong evidence that the existing examples are
sufficient.

2 years agoMerge branch 'smattr/a49270af-5a27-474a-be22-ef9418667c79' into 'main'
Matthew Fernandez [Thu, 18 Aug 2022 04:35:49 +0000 (04:35 +0000)]
Merge branch 'smattr/a49270af-5a27-474a-be22-ef9418667c79' into 'main'

cgraph: rewrite scanner to use an agxbuf

See merge request graphviz/graphviz!2788

2 years agocgraph: rewrite scanner to use an agxbuf
Matthew Fernandez [Sat, 13 Aug 2022 01:28:09 +0000 (18:28 -0700)]
cgraph: rewrite scanner to use an agxbuf

In a sort of Chesterton’s fence¹ sense, I do not understand the existing code.
While I understand the first order motivation (dynamic string buffering inline),
I do not follow the implementation. It manages to hit the trifecta:

  1. NULL pointer dereference. Failures of allocation functions were not
     checked.

  2. Memory leaks. Calls to `agstrdup` and `agstrdup_html` allocate an owned
     string internally, yet this code was acting as if they stole the `Sbuf`
     backing memory.

  3. Not-obviously-correct and repeated computation of the end of the buffer to
     append to. `addstr` seemed overly complex and inefficient.

Static initialization of an agxbuf was a bit complicated until
04a248348798a4a32fc9ac7e5d860a84ab5ee49f, though it was still possible.
Following that commit, it becomes a no-brainer.

The code after this change still leaks memory. Perhaps in future we should reset
(`agxbfree(&Sbuf); memset(&Sbuf, 0, sizeof(Sbuf));`) the buffer after `agstrdup`
or `agstrdup_html`, though there would be a performance cost to this.

¹ https://en.wikipedia.org/wiki/G._K._Chesterton#Chesterton's_fence

2 years agocgraph delete_items: rephrase a non-exhaustive switch into if statements
Matthew Fernandez [Sat, 13 Aug 2022 00:50:11 +0000 (17:50 -0700)]
cgraph delete_items: rephrase a non-exhaustive switch into if statements

This is both more concise and squashes a -Wswitch-default warning.

2 years agocgraph: make 'agflatten_edges' static
Matthew Fernandez [Sat, 13 Aug 2022 00:41:17 +0000 (17:41 -0700)]
cgraph: make 'agflatten_edges' static

This function is not used outside of its containing file. Squashes a
-Wmissing-prototypes warning.

2 years agoMerge branch 'extend-svg-analyzer-with-basic-svg-re-creation' into 'main'
Magnus Jacobsson [Tue, 16 Aug 2022 11:16:17 +0000 (11:16 +0000)]
Merge branch 'extend-svg-analyzer-with-basic-svg-re-creation' into 'main'

Extend the SVG analyzer with basic SVG re-creation

See merge request graphviz/graphviz!2780

2 years agotests: svgAnalyzer: add throwing of exceptions for unimplemented attributes
Magnus Jacobsson [Sat, 30 Jul 2022 15:31:03 +0000 (17:31 +0200)]
tests: svgAnalyzer: add throwing of exceptions for unimplemented attributes

2 years agotests: SvgAnalyzer: add handling of the 'd' attribute
Magnus Jacobsson [Thu, 28 Jul 2022 10:58:49 +0000 (12:58 +0200)]
tests: SvgAnalyzer: add handling of the 'd' attribute

2 years agotests: SvgAnalyzer: add handling of the 'font-size' attribute
Magnus Jacobsson [Thu, 28 Jul 2022 10:13:08 +0000 (12:13 +0200)]
tests: SvgAnalyzer: add handling of the 'font-size' attribute

2 years agotests: SvgAnalyzer: add handling of the 'font-family' attribute
Magnus Jacobsson [Thu, 28 Jul 2022 10:00:50 +0000 (12:00 +0200)]
tests: SvgAnalyzer: add handling of the 'font-family' attribute

2 years agotests: SvgAnalyzer: add handling of the 'x' and 'y' attributes
Magnus Jacobsson [Thu, 28 Jul 2022 08:43:07 +0000 (10:43 +0200)]
tests: SvgAnalyzer: add handling of the 'x' and 'y' attributes

2 years agotests: SvgAnalyzer: add handling of the 'text-anchor' attribute
Magnus Jacobsson [Thu, 28 Jul 2022 08:27:29 +0000 (10:27 +0200)]
tests: SvgAnalyzer: add handling of the 'text-anchor' attribute

2 years agotests: SvgAnalyzer: add handling of the 'rx' and 'ry' attributes
Magnus Jacobsson [Wed, 27 Jul 2022 20:07:08 +0000 (22:07 +0200)]
tests: SvgAnalyzer: add handling of the 'rx' and 'ry' attributes

2 years agotests: SvgAnalyzer: add handling of the 'cx' and 'cy' attributes
Magnus Jacobsson [Wed, 27 Jul 2022 19:42:19 +0000 (21:42 +0200)]
tests: SvgAnalyzer: add handling of the 'cx' and 'cy' attributes

2 years agotests: SvgAnalyzer: add handling of the 'points' attribute
Magnus Jacobsson [Wed, 27 Jul 2022 14:17:28 +0000 (16:17 +0200)]
tests: SvgAnalyzer: add handling of the 'points' attribute

2 years agogvrender_core_svg: remove unnecessary space in the 'points' attribute for polyline
Magnus Jacobsson [Mon, 1 Aug 2022 11:27:38 +0000 (13:27 +0200)]
gvrender_core_svg: remove unnecessary space in the 'points' attribute for polyline

2 years agotests: SvgAnalyzer: add handling of the 'stroke' attribute
Magnus Jacobsson [Wed, 27 Jul 2022 13:40:08 +0000 (15:40 +0200)]
tests: SvgAnalyzer: add handling of the 'stroke' attribute

2 years agotests: SvgAnalyzer: add handling of the 'fill' attribute
Magnus Jacobsson [Wed, 27 Jul 2022 12:28:44 +0000 (14:28 +0200)]
tests: SvgAnalyzer: add handling of the 'fill' attribute

2 years agotests: SvgAnalyzer: add handling of the 'transform' attribute
Magnus Jacobsson [Wed, 27 Jul 2022 10:40:42 +0000 (12:40 +0200)]
tests: SvgAnalyzer: add handling of the 'transform' attribute

2 years agotests: SvgAnalyzer: add handling of the 'id' attribute
Magnus Jacobsson [Wed, 27 Jul 2022 09:05:08 +0000 (11:05 +0200)]
tests: SvgAnalyzer: add handling of the 'id' attribute