]> granicus.if.org Git - graphviz/log
graphviz
3 years agoautotools: add WITH_MINGW to AM_CONDITIONAL
Magnus Jacobsson [Thu, 30 Sep 2021 18:24:05 +0000 (20:24 +0200)]
autotools: add WITH_MINGW to AM_CONDITIONAL

This will allow an upcoming commit in this series to introduce
MinGW-specific functionality in the autotools build system.

3 years agopathplan: autotools: add define of PATHPLAN_EXPORTS
Magnus Jacobsson [Tue, 28 Sep 2021 18:33:21 +0000 (20:33 +0200)]
pathplan: autotools: add define of PATHPLAN_EXPORTS

Fixes errors like this using autotools with MinGW:

C:/tools/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/cvt.o: in function `Pobsopen':
C:\Users\magja\graphviz\lib\pathplan/cvt.c:80: undefined reference to `__imp_visibility'

Towards https://gitlab.com/graphviz/graphviz/-/issues/2058

3 years agocommon: autotools: define also GVC_EXPORTS
Magnus Jacobsson [Mon, 27 Sep 2021 21:05:27 +0000 (23:05 +0200)]
common: autotools: define also GVC_EXPORTS

Fixes errors like this using autotools with MinGW:

C:/tools/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ../../lib/common/.libs/libcommon_C.a(arrows.o): in function `arrow_type_curve':
C:\Users\magja\graphviz\lib\common/arrows.c:696: undefined reference to `__imp_Bezier'

Towards https://gitlab.com/graphviz/graphviz/-/issues/2058

3 years agolabel: autotools: define GVC_EXPORTS
Magnus Jacobsson [Sat, 31 Jul 2021 10:39:00 +0000 (12:39 +0200)]
label: autotools: define GVC_EXPORTS

Fixes this error using autotools with MinGW:

C:/tools/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ../../lib/label/.libs/liblabel_C.a(xlabels.o): in function `xlnew':
C:\Users\magja\graphviz\lib\label/xlabels.c:41: undefined reference to `__imp_zmalloc'

Towards https://gitlab.com/graphviz/graphviz/-/issues/2058

3 years agopack: autotools: define GVC_EXPORTS
Magnus Jacobsson [Thu, 22 Jul 2021 13:58:41 +0000 (15:58 +0200)]
pack: autotools: define GVC_EXPORTS

Fixes errors like this using autotools with MinGW:

C:/tools/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ../../lib/pack/.libs/libpack_C.a(pack.o): in function `fillLine':
C:\Users\magja\graphviz\lib\pack/pack.c:127: undefined reference to `__imp_addPS'

Towards https://gitlab.com/graphviz/graphviz/-/issues/2058

3 years agogvc: autotools: define GVC_EXPORTS
Magnus Jacobsson [Thu, 22 Jul 2021 14:01:13 +0000 (16:01 +0200)]
gvc: autotools: define GVC_EXPORTS

Fixes errors like this using autotools with MinGW:

C:\Users\magja\graphviz\lib\gvc/gvevent.c:201: undefined reference to `__imp_overlap_edge'

Towards https://gitlab.com/graphviz/graphviz/-/issues/2058

3 years agogvc: autotools: remove now obsolete linking to xdot
Magnus Jacobsson [Mon, 27 Sep 2021 20:29:01 +0000 (22:29 +0200)]
gvc: autotools: remove now obsolete linking to xdot

The core plugin that previously relied on this explicitly links to
xdot itself since commit 6d646c82d94efdfb9933328f08301f6e1600943e.

The gvc source files do not refer to xdot explicitly and any implicit
references are now resolved by the transitive dependency through
common.

Fixes these errors using autotools with MinGW:

C:/tools/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ../../lib/xdot/.libs/libxdot.dll.a(d000007.o):(.text+0x0): multiple definition of `parseXDotF'; ../../lib/xdot/.libs/libxdot_C.a(xdot.o):C:\Users\magja\graphviz\lib\xdot/xdot.c:475: first defined here
C:/tools/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ../../lib/xdot/.libs/libxdot.dll.a(d000002.o):(.text+0x0): multiple definition of `freeXDot'; ../../lib/xdot/.libs/libxdot_C.a(xdot.o):C:\Users\magja\graphviz\lib\xdot/xdot.c:927: first defined here

3 years agocommon: autotools: add linking to xdot
Magnus Jacobsson [Tue, 28 Sep 2021 19:09:47 +0000 (21:09 +0200)]
common: autotools: add linking to xdot

E.g. lib/common/emit.c. uses parseXDotF from lib/xdot/xdot.c.

This removes the need to link to xdot for downstream libraries that do
not explicitly use xdot.

Fixes these errors using autotools with MinGW:

C:/tools/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ../../lib/common/.libs/libcommon_C.a(input.o): in function `graph_cleanup':
C:\Users\magja\graphviz\lib\common/input.c:881: undefined reference to `__imp_freeXDot'
C:/tools/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ../../lib/common/.libs/libcommon_C.a(emit.o): in function `init_xdot':
C:\Users\magja\graphviz\lib\common/emit.c:58: undefined reference to `__imp_parseXDotF'

3 years agolib: autotools: build xdot before common
Magnus Jacobsson [Wed, 29 Sep 2021 19:06:59 +0000 (21:06 +0200)]
lib: autotools: build xdot before common

E.g. lib/common/emit.c. uses parseXDotF from lib/xdot/xdot.c.

This is the first step in fixing these errors using autotools with
MinGW:

C:/tools/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ../../lib/common/.libs/libcommon_C.a(input.o): in function `graph_cleanup':
C:\Users\magja\graphviz\lib\common/input.c:881: undefined reference to `__imp_freeXDot'
C:/tools/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: ../../lib/common/.libs/libcommon_C.a(emit.o): in function `init_xdot':
C:\Users\magja\graphviz\lib\common/emit.c:58: undefined reference to `__imp_parseXDotF'

The next commit in this series will add linking to xdot.

3 years agopathplan: autotools: use pathplan.def
Magnus Jacobsson [Thu, 22 Jul 2021 13:59:29 +0000 (15:59 +0200)]
pathplan: autotools: use pathplan.def

Fixes these errors when using autotools with MinGW:

C:/tools/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/cvt.o: in function `Pobsopen':
C:\Users\magja\graphviz\lib\pathplan/cvt.c:80: undefined reference to `__imp_visibility'
C:/tools/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/cvt.o: in function `Pobspath':
C:\Users\magja\graphviz\lib\pathplan/cvt.c:108: undefined reference to `__imp_ptVis'
C:/tools/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\magja\graphviz\lib\pathplan/cvt.c:115: undefined reference to `__imp_makePath'
C:/tools/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/inpoly.o: in function `in_poly':
C:\Users\magja\graphviz\lib\pathplan/inpoly.c:32: undefined reference to `__imp_wind'
C:/tools/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: .libs/shortestpth.o: in function `makePath':
C:\Users\magja\graphviz\lib\pathplan/shortestpth.c:98: undefined reference to `__imp_directVis'

3 years agocgraph: autotools: add definition of export symbols
Magnus Jacobsson [Thu, 22 Jul 2021 13:57:44 +0000 (15:57 +0200)]
cgraph: autotools: add definition of export symbols

Fixes errors like this with MinGW:

lib\cgraph/apply.c:48: undefined reference to `__imp_agfstsubg'

Towards https://gitlab.com/graphviz/graphviz/-/issues/2058

3 years agocdt: autotools: define EXPORT_CDT
Magnus Jacobsson [Thu, 22 Jul 2021 13:16:32 +0000 (15:16 +0200)]
cdt: autotools: define EXPORT_CDT

Fixes errors like this when using autotools with MinGW:

lib\cdt/dtclose.c:23: undefined reference to `__imp_dtview'

Also fixes warnings like:

dtview.c:91:7: warning: 'dtview' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]
       91 | Dt_t* dtview(Dt_t* dt, Dt_t* view)
          |       ^~~~~~

Towards https://gitlab.com/graphviz/graphviz/-/issues/2058

3 years agoMerge branch 'smattr/6bb70c50-e9ea-453e-83e1-3cd6f7667bc3' into 'main'
Matthew Fernandez [Mon, 6 Dec 2021 01:36:08 +0000 (01:36 +0000)]
Merge branch 'smattr/6bb70c50-e9ea-453e-83e1-3cd6f7667bc3' into 'main'

lib/common warning squashing

See merge request graphviz/graphviz!2285

3 years agofree_fspan: squash -Wunused-parameter warnings
Matthew Fernandez [Tue, 16 Nov 2021 02:12:06 +0000 (18:12 -0800)]
free_fspan: squash -Wunused-parameter warnings

3 years agofree_fitem: squash -Wunused-parameter warnings
Matthew Fernandez [Tue, 16 Nov 2021 02:11:42 +0000 (18:11 -0800)]
free_fitem: squash -Wunused-parameter warnings

3 years agofree_citem: squash -Wunused-parameter warnings
Matthew Fernandez [Tue, 16 Nov 2021 02:11:28 +0000 (18:11 -0800)]
free_citem: squash -Wunused-parameter warnings

3 years agofree_item: squash -Wunused-parameter warnings
Matthew Fernandez [Tue, 16 Nov 2021 02:11:14 +0000 (18:11 -0800)]
free_item: squash -Wunused-parameter warnings

3 years agofree_ritem: squash -Wunused-parameter warnings
Matthew Fernandez [Tue, 16 Nov 2021 02:11:03 +0000 (18:11 -0800)]
free_ritem: squash -Wunused-parameter warnings

3 years agomkFont: make it more obvious to the compiler the extent of 'flags'
Matthew Fernandez [Tue, 16 Nov 2021 02:10:33 +0000 (18:10 -0800)]
mkFont: make it more obvious to the compiler the extent of 'flags'

All calls to this function use literals that fit in an unsigned char. Squashes
a -Wconversion warning. This also introduces a new header constant,
`GV_TEXTFONT_FLAGS_WIDTH`.

3 years agostylefn: cast a bitwise not, squashing a -Wconversion warning
Matthew Fernandez [Tue, 16 Nov 2021 01:56:15 +0000 (17:56 -0800)]
stylefn: cast a bitwise not, squashing a -Wconversion warning

3 years agohtmllex.c: consistently use int types for 'warn' and 'error'
Matthew Fernandez [Tue, 16 Nov 2021 01:55:51 +0000 (17:55 -0800)]
htmllex.c: consistently use int types for 'warn' and 'error'

Squashes a -Wconversion warning.

3 years agolexstate_t: standardize on more modern '//' comments
Matthew Fernandez [Sun, 21 Nov 2021 19:44:38 +0000 (11:44 -0800)]
lexstate_t: standardize on more modern '//' comments

3 years agocellborderfn: fix a mismatched cast
Matthew Fernandez [Tue, 16 Nov 2021 01:48:15 +0000 (17:48 -0800)]
cellborderfn: fix a mismatched cast

Squashes a -Wsign-conversion warning.

3 years agolib/common/utils.h: clang-format
Matthew Fernandez [Tue, 16 Nov 2021 01:41:13 +0000 (17:41 -0800)]
lib/common/utils.h: clang-format

3 years agoMerge branch 'smattr/26e14db7-4192-414c-9232-3bd8a4982b1a' into 'main'
Matthew Fernandez [Sun, 5 Dec 2021 05:53:19 +0000 (05:53 +0000)]
Merge branch 'smattr/26e14db7-4192-414c-9232-3bd8a4982b1a' into 'main'

more boolean modernization and a type confusion fix

See merge request graphviz/graphviz!2312

3 years agogvjobs_output_langname: return a C99 bool instead of boolean
Matthew Fernandez [Sun, 28 Nov 2021 02:57:12 +0000 (18:57 -0800)]
gvjobs_output_langname: return a C99 bool instead of boolean

3 years agofix misuse of 'gvjobs_output_langname'
Matthew Fernandez [Sun, 28 Nov 2021 02:39:31 +0000 (18:39 -0800)]
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`.

3 years agotclpkg/tcldot/tcldot-graphcmd.c: [nfc] remove commented out code
Matthew Fernandez [Sun, 28 Nov 2021 02:35:29 +0000 (18:35 -0800)]
tclpkg/tcldot/tcldot-graphcmd.c: [nfc] remove commented out code

3 years agogvplugin_install: use a C99 bool return instead of boolean
Matthew Fernandez [Sun, 28 Nov 2021 02:26:39 +0000 (18:26 -0800)]
gvplugin_install: use a C99 bool return instead of boolean

3 years agoGVC_s.graph_sets_*: use C99 bools instead of boolean
Matthew Fernandez [Sun, 28 Nov 2021 02:18:59 +0000 (18:18 -0800)]
GVC_s.graph_sets_*: use C99 bools instead of boolean

3 years agoremove unused 'GVC_s.graph_sets_rotation'
Matthew Fernandez [Sun, 28 Nov 2021 02:11:56 +0000 (18:11 -0800)]
remove unused 'GVC_s.graph_sets_rotation'

3 years agoGVC_s.config_found: use a C99 bool instead of boolean
Matthew Fernandez [Sun, 28 Nov 2021 02:09:24 +0000 (18:09 -0800)]
GVC_s.config_found: use a C99 bool instead of boolean

3 years agoMerge branch 'smattr/6f4441fa-d5fc-4b46-abe0-963f12023272' into 'main'
Matthew Fernandez [Sun, 5 Dec 2021 03:51:26 +0000 (03:51 +0000)]
Merge branch 'smattr/6f4441fa-d5fc-4b46-abe0-963f12023272' into 'main'

gvgen warning squashing

See merge request graphviz/graphviz!2315

3 years agogvgen: remove unnecessary bracketing
Matthew Fernandez [Sun, 28 Nov 2021 21:59:18 +0000 (13:59 -0800)]
gvgen: remove unnecessary bracketing

3 years agogvgen init: squash -Wimplicit-fallthrough warning
Matthew Fernandez [Sun, 28 Nov 2021 21:55:49 +0000 (13:55 -0800)]
gvgen init: squash -Wimplicit-fallthrough warning

3 years agogvgen init: squash -Wswitch-default warning
Matthew Fernandez [Sun, 28 Nov 2021 21:54:49 +0000 (13:54 -0800)]
gvgen init: squash -Wswitch-default warning

3 years agogvgen readPos: squash -Wconversion warning
Matthew Fernandez [Sun, 28 Nov 2021 21:52:59 +0000 (13:52 -0800)]
gvgen readPos: squash -Wconversion warning

3 years agogvgen errexit: squash -Wconversion warnings
Matthew Fernandez [Sun, 28 Nov 2021 21:45:27 +0000 (13:45 -0800)]
gvgen errexit: squash -Wconversion warnings

This function is called with int values, but the values are the result of
`getopt`. `getopt` only ever returns -1 (which is handled separately) or a valid
`char` value, so the cast here is always safe and never truncating.

3 years agoMerge branch 'smattr/de1695d5-8ea1-48b3-a301-2f4f0ccc2c6b' into 'main'
Matthew Fernandez [Sun, 5 Dec 2021 02:39:09 +0000 (02:39 +0000)]
Merge branch 'smattr/de1695d5-8ea1-48b3-a301-2f4f0ccc2c6b' into 'main'

more warning squashing and dead code removal

See merge request graphviz/graphviz!2318

3 years agoming: remove disabled code
Matthew Fernandez [Fri, 3 Dec 2021 02:53:00 +0000 (18:53 -0800)]
ming: remove disabled code

3 years agoexpr: remove disabled code
Matthew Fernandez [Fri, 3 Dec 2021 02:52:01 +0000 (18:52 -0800)]
expr: remove disabled code

3 years agotopfish: remove disabled code
Matthew Fernandez [Fri, 3 Dec 2021 02:51:34 +0000 (18:51 -0800)]
topfish: remove disabled code

3 years agoglcomp: remove glcomppanel disabled code
Matthew Fernandez [Fri, 3 Dec 2021 02:50:45 +0000 (18:50 -0800)]
glcomp: remove glcomppanel disabled code

3 years agoglcomp: remove disabled glcompimage code
Matthew Fernandez [Fri, 3 Dec 2021 02:48:22 +0000 (18:48 -0800)]
glcomp: remove disabled glcompimage code

3 years agoglcomp: remove disabled PNG code
Matthew Fernandez [Fri, 3 Dec 2021 02:46:32 +0000 (18:46 -0800)]
glcomp: remove disabled PNG code

3 years agoglcomp: remove disabled prototypes
Matthew Fernandez [Fri, 3 Dec 2021 02:45:18 +0000 (18:45 -0800)]
glcomp: remove disabled prototypes

None of these functions were implemented either.

3 years agogvrender_begin_graph: remove disabled code
Matthew Fernandez [Fri, 3 Dec 2021 02:44:01 +0000 (18:44 -0800)]
gvrender_begin_graph: remove disabled code

3 years agogvpack: remove disabled 'redoBB'
Matthew Fernandez [Fri, 3 Dec 2021 02:42:35 +0000 (18:42 -0800)]
gvpack: remove disabled 'redoBB'

3 years agopoly_path: squash -Wunused-parameter warnings
Matthew Fernandez [Fri, 3 Dec 2021 02:41:44 +0000 (18:41 -0800)]
poly_path: squash -Wunused-parameter warnings

3 years agoremove unimplemented 'html_path'
Matthew Fernandez [Fri, 3 Dec 2021 02:39:16 +0000 (18:39 -0800)]
remove unimplemented 'html_path'

3 years agogvFreeLayout: squash -Wunused-parameter warning
Matthew Fernandez [Fri, 3 Dec 2021 02:32:04 +0000 (18:32 -0800)]
gvFreeLayout: squash -Wunused-parameter warning

This parameter cannot be removed without breaking API. Doing this does not seem
worth it just to squash a warning. Additionally this function may use the `gvc`
parameter in future.

3 years agocmpKey: squash -Wunused-parameter warnings
Matthew Fernandez [Fri, 3 Dec 2021 02:22:02 +0000 (18:22 -0800)]
cmpKey: squash -Wunused-parameter warnings

These parameters cannot be removed because this function is used as a callback
in scenarios that expect its current calling convention.

3 years agoNullFunction: squash -Wunused-parameter warning
Matthew Fernandez [Fri, 3 Dec 2021 02:12:03 +0000 (18:12 -0800)]
NullFunction: squash -Wunused-parameter warning

This parameter cannot be removed because this function is used as a callback in
instances that expect its current calling convention.

3 years agocompoundEdges: squash -Wunused-parameter warnings
Matthew Fernandez [Fri, 3 Dec 2021 02:05:07 +0000 (18:05 -0800)]
compoundEdges: squash -Wunused-parameter warnings

This parameter cannot be removed because this function is used as a callback in
some instances that expect its existing calling convention.

3 years agoxinit_params: squash -Wunused-parameter warnings
Matthew Fernandez [Fri, 3 Dec 2021 02:00:22 +0000 (18:00 -0800)]
xinit_params: squash -Wunused-parameter warnings

This parameter cannot be removed because it _is_ used when `DEBUG` is defined.

3 years agopr2graphs: mark static and guard with 'DEBUG'
Matthew Fernandez [Fri, 3 Dec 2021 01:59:32 +0000 (17:59 -0800)]
pr2graphs: mark static and guard with 'DEBUG'

This function is not used outside of its containing file. It needs to be guarded
with `DEBUG` in order not to generate new -Wunused-function warnings.

3 years agoMerge branch 'smattr/ffae0c5f-9668-4af7-be3c-5a5860888641' into 'main'
Matthew Fernandez [Sun, 5 Dec 2021 01:09:00 +0000 (01:09 +0000)]
Merge branch 'smattr/ffae0c5f-9668-4af7-be3c-5a5860888641' into 'main'

smyrna warning squashing

See merge request graphviz/graphviz!2316

3 years agosmyrna switch2D3D: squash -Wunused-parameter warning
Matthew Fernandez [Sun, 28 Nov 2021 22:41:26 +0000 (14:41 -0800)]
smyrna switch2D3D: squash -Wunused-parameter warning

This parameter cannot be removed because `switch2D3D` is used as a callback in
an API that expects this calling convention.

3 years agosmyrna menu_click_add_camera: remove unused 'p' parameter
Matthew Fernandez [Sun, 28 Nov 2021 22:34:12 +0000 (14:34 -0800)]
smyrna menu_click_add_camera: remove unused 'p' parameter

3 years agosmyrna create_color_theme: squash a -Wsign-compare warning
Matthew Fernandez [Sun, 28 Nov 2021 22:28:22 +0000 (14:28 -0800)]
smyrna create_color_theme: squash a -Wsign-compare warning

3 years agosmyrna activate: remove unused 'doClear' parameter
Matthew Fernandez [Sun, 28 Nov 2021 22:27:15 +0000 (14:27 -0800)]
smyrna activate: remove unused 'doClear' parameter

3 years agosmyrna refreshViewport: remove unused 'doClear' parameter
Matthew Fernandez [Sun, 28 Nov 2021 22:26:25 +0000 (14:26 -0800)]
smyrna refreshViewport: remove unused 'doClear' parameter

3 years agosmyrna gl_main_expose: squash -Wunused-parameter warning
Matthew Fernandez [Sun, 28 Nov 2021 22:25:21 +0000 (14:25 -0800)]
smyrna gl_main_expose: squash -Wunused-parameter warning

This parameter cannot be removed because `gl_main_expose` is used as a callback
in a function call that expects this calling convention.

3 years agosmyrna close_graph: remove unused 'graphid' parameter
Matthew Fernandez [Sun, 28 Nov 2021 22:24:37 +0000 (14:24 -0800)]
smyrna close_graph: remove unused 'graphid' parameter

3 years agosmyrna: use a bool for 'editable' to squash some -Wconversion warnings
Matthew Fernandez [Sun, 28 Nov 2021 22:22:30 +0000 (14:22 -0800)]
smyrna: use a bool for 'editable' to squash some -Wconversion warnings

3 years agosmyrna: remove 'freeSmGraph' no-op
Matthew Fernandez [Sun, 28 Nov 2021 22:15:11 +0000 (14:15 -0800)]
smyrna: remove 'freeSmGraph' no-op

3 years agosmyrna get_active_frame: squash -Wstrict-prototypes warning
Matthew Fernandez [Sun, 28 Nov 2021 22:13:13 +0000 (14:13 -0800)]
smyrna get_active_frame: squash -Wstrict-prototypes warning

3 years agosmyrna Init: squash a -Wstrict-prototypes warning
Matthew Fernandez [Sun, 28 Nov 2021 22:11:21 +0000 (14:11 -0800)]
smyrna Init: squash a -Wstrict-prototypes warning

3 years agoMerge branch 'smattr/BEB24E57-745A-4ABD-AD32-15986AFBE7A5' into 'main'
Matthew Fernandez [Sun, 5 Dec 2021 00:06:35 +0000 (00:06 +0000)]
Merge branch 'smattr/BEB24E57-745A-4ABD-AD32-15986AFBE7A5' into 'main'

[nfc] cast inputs to ctype.h 'is*' functions

See merge request graphviz/graphviz!2319

3 years agofail Cygwin CMake CI on compiler warnings
Matthew Fernandez [Fri, 3 Dec 2021 01:31:35 +0000 (17:31 -0800)]
fail Cygwin CMake CI on compiler warnings

As of the previous commit, this build is warning-free.

3 years ago[nfc] cast inputs to ctype.h 'is*' functions
Matthew Fernandez [Fri, 3 Dec 2021 01:28:53 +0000 (17:28 -0800)]
[nfc] cast inputs to ctype.h 'is*' functions

The ctype.h `is*` functions are typically implemented as macros using a lookup
table. This is fine, but on Cygwin the compiler is somewhat picky about this:

  lib/ast/fmtesc.c:116:59: warning: array subscript has type char
    [-Wchar-subscripts]
    116 |                           (c == '#' && (b == f || isspace(*(b - 1)))
        |                                                           ^~~~~~~~

This change squashes these warnings.

3 years agoMerge branch 'smattr/852C7D79-71DB-4538-83A3-550FDB732529' into 'main'
Matthew Fernandez [Sat, 4 Dec 2021 21:33:16 +0000 (21:33 +0000)]
Merge branch 'smattr/852C7D79-71DB-4538-83A3-550FDB732529' into 'main'

Start 2.50 development series

See merge request graphviz/graphviz!2320

3 years agoStart 2.50 development series
Matthew Fernandez [Sat, 4 Dec 2021 19:35:06 +0000 (11:35 -0800)]
Start 2.50 development series

3 years agoMerge branch 'smattr/83CFF424-1C87-4175-B95E-F999D8F935E9' into 'main' 2.50.0
Matthew Fernandez [Sat, 4 Dec 2021 20:07:22 +0000 (20:07 +0000)]
Merge branch 'smattr/83CFF424-1C87-4175-B95E-F999D8F935E9' into 'main'

Stable Release 2.50.0

See merge request graphviz/graphviz!2310

3 years agoStable Release 2.50.0
Matthew Fernandez [Sat, 27 Nov 2021 21:05:54 +0000 (13:05 -0800)]
Stable Release 2.50.0

I expect this release to be more turbulent than others in recent times, simply
because of the greater-than-average number of changes since the last release,
both in aggregate as well as specifically to the release process itself.

3 years agoMerge branch 'smattr/2836D239-2D25-473C-82FF-F7DE1604C1C1' into 'main'
Matthew Fernandez [Sat, 4 Dec 2021 16:40:11 +0000 (16:40 +0000)]
Merge branch 'smattr/2836D239-2D25-473C-82FF-F7DE1604C1C1' into 'main'

use 'sed' instead of 'rm;git-checkout' to fix CRLF line endings in Cygwin CI

See merge request graphviz/graphviz!2317

3 years agouse 'sed' instead of 'rm;git-checkout' to fix CRLF line endings in Cygwin CI
Matthew Fernandez [Tue, 23 Nov 2021 03:20:19 +0000 (19:20 -0800)]
use 'sed' instead of 'rm;git-checkout' to fix CRLF line endings in Cygwin CI

Only selective artifacts in the repository are sensitive to line endings. E.g.
C/C++ and Python code is happily parsed by the compiler/interpreter regardless
of which line ending style it uses.

This should hopefully accelerate the Cygwin CI tasks slightly. The assumption is
that running `sed` on a few files should be faster than deleting all files and
recreating them.

3 years agoMerge branch 'smattr/43bafefc-38dd-4b6b-9336-4fe8e8909ae7' into 'main'
Matthew Fernandez [Sat, 4 Dec 2021 07:11:37 +0000 (07:11 +0000)]
Merge branch 'smattr/43bafefc-38dd-4b6b-9336-4fe8e8909ae7' into 'main'

de-dupe fig_string, mp_string, pic_string

Closes #2051

See merge request graphviz/graphviz!2311

3 years agompcolor: [nfc] simpler definition
Matthew Fernandez [Sat, 27 Nov 2021 22:25:40 +0000 (14:25 -0800)]
mpcolor: [nfc] simpler definition

Makes it more obvious to the compiler it can unroll the use of this in a loop.

3 years agopic plugin: replace 'pic_string' with 'gvputs_nonascii'
Matthew Fernandez [Sat, 27 Nov 2021 22:21:04 +0000 (14:21 -0800)]
pic plugin: replace 'pic_string' with 'gvputs_nonascii'

This finishes the process of de-duping `fig_string`, `mp_string`, and
`pic_string`. This change makes this plugin more thread safe (no static buffer
is no longer used), and improves its efficiency (bytes are now written directly
into the output instead of a temporary buffer, requiring dynamic allocation and
two copies).

Closes #2051.

3 years agomp plugin: replace 'mp_string' with 'gvputs_nonascii'
Matthew Fernandez [Sat, 27 Nov 2021 22:15:19 +0000 (14:15 -0800)]
mp plugin: replace 'mp_string' with 'gvputs_nonascii'

This partially de-dupes some code (`pic_string` is a duplicate of `mp_string`),
makes this plugin more thread safe (no static buffer is no longer used), and
improves its efficiency (bytes are now written directly into the output instead
of a temporary buffer, requiring dynamic allocation and two copies).

Related to #2051.

3 years agofig plugin: replace 'fig_string' with 'gvputs_nonascii'
Matthew Fernandez [Sat, 27 Nov 2021 22:03:47 +0000 (14:03 -0800)]
fig plugin: replace 'fig_string' with 'gvputs_nonascii'

This partially de-dupes some code (`mp_string` and `pic_string` are duplicates
of `fig_string`), makes this plugin more thread safe (no static buffer is no
longer used), and improves its efficiency (bytes are now written directly into
the output instead of a temporary buffer, requiring dynamic allocation and two
copies).

Related to #2051.

3 years agolib/gvc/gvc.def: [nfc] strip trailing whitespace
Matthew Fernandez [Sat, 27 Nov 2021 21:56:15 +0000 (13:56 -0800)]
lib/gvc/gvc.def: [nfc] strip trailing whitespace

3 years agoimplement next 'gvputs_nonascii' function
Matthew Fernandez [Sat, 27 Nov 2021 21:54:28 +0000 (13:54 -0800)]
implement next 'gvputs_nonascii' function

This is based on `fig_string`, `mp_string`, and `pic_string`, but outputting
data directly into the output file rather than a temporary buffer.

Related to #2051.

3 years agoMerge branch 'smattr/E7C21AC3-3A42-4520-8BEC-C9657B7DC8F9' into 'main'
Matthew Fernandez [Sat, 4 Dec 2021 03:59:38 +0000 (03:59 +0000)]
Merge branch 'smattr/E7C21AC3-3A42-4520-8BEC-C9657B7DC8F9' into 'main'

GDI+ plugin: some clean up and modernization

See merge request graphviz/graphviz!2307

3 years agoGDI+ plugin: rewrite 'FileStream' reference counting to be thread safe
Matthew Fernandez [Sat, 27 Nov 2021 03:43:33 +0000 (19:43 -0800)]
GDI+ plugin: rewrite 'FileStream' reference counting to be thread safe

Based on Microsoft sample code,¹ it seems like the expectation is that consumers
of the `IStream` API may expect to concurrently manipulate reference counts.
This change guards against this by making the referencing counting code use
lock-free atomics, based on the same Microsoft sample.

Note that this is essentially proactively addressing a latent issue as it is, in
general, unsafe to use Graphviz libraries or plugins in a multithreaded
environment right now.

¹ https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ms752876(v=vs.85)

3 years agoGDI+ plugin: [nfc] avoid directly modifying 'FileStream' refcount
Matthew Fernandez [Sat, 27 Nov 2021 03:37:59 +0000 (19:37 -0800)]
GDI+ plugin: [nfc] avoid directly modifying 'FileStream' refcount

This change redirects all reference count modifications through `AddRef` instead
direction increments. Based on Microsoft sample implementation.¹

¹ https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ms752876(v=vs.85)

3 years agoGDI+ plugin: [nfc] remove assumptions on lifetime of 'FileStream' filename
Matthew Fernandez [Sat, 27 Nov 2021 02:35:40 +0000 (18:35 -0800)]
GDI+ plugin: [nfc] remove assumptions on lifetime of 'FileStream' filename

Avoiding an assumption on the lifetime of `us->name` provides one less thing to
think about when iterating on this code.

3 years agoGDI+ plugin: [nfc] use a const pointer for filename
Matthew Fernandez [Sat, 27 Nov 2021 02:30:50 +0000 (18:30 -0800)]
GDI+ plugin: [nfc] use a const pointer for filename

The `FileStream` class does not need to modify this internally, so this avoids
the need for sketchy type casts.

3 years agoGDI+ plugin: use 'override' instead of 'virtual' on 'FileStream' methods
Matthew Fernandez [Sat, 27 Nov 2021 01:31:23 +0000 (17:31 -0800)]
GDI+ plugin: use 'override' instead of 'virtual' on 'FileStream' methods

This C++11 mechanism is an improvement as it causes compilation to error out if
any of these methods were not already declared virtual in a parent class. That
is, it provides a sanity check that these overrides are really doing what they
intend.

3 years agoGDI+ plugin: [nfc] remove legacy use of a C-style cast
Matthew Fernandez [Sat, 27 Nov 2021 01:27:11 +0000 (17:27 -0800)]
GDI+ plugin: [nfc] remove legacy use of a C-style cast

3 years agoGDI+ plugin: [nfc] strip trailing whitespace
Matthew Fernandez [Sat, 27 Nov 2021 01:20:53 +0000 (17:20 -0800)]
GDI+ plugin: [nfc] strip trailing whitespace

3 years agoMerge branch 'smattr/18D413B7-67B7-4F3B-A544-823A3810D062' into 'main'
Matthew Fernandez [Sat, 4 Dec 2021 02:01:05 +0000 (02:01 +0000)]
Merge branch 'smattr/18D413B7-67B7-4F3B-A544-823A3810D062' into 'main'

fix missing author+date line in Debian changelog

See merge request graphviz/graphviz!2309

3 years agofix missing author+date line in Debian changelog
Matthew Fernandez [Sat, 27 Nov 2021 18:54:08 +0000 (10:54 -0800)]
fix missing author+date line in Debian changelog

Commit 42d7c87c291781ccaff47126a5ad3a2469e310cc omitted this required
information, resulting in warnings like the following in the build log:

  dpkg-gencontrol: warning:     debian/changelog(l7): found start of entry where
    expected more change data or trailer

3 years agoMerge branch 'smattr/2504A45F-EA4A-41EA-BF7F-E758CD4AE122' into 'main'
Matthew Fernandez [Fri, 3 Dec 2021 16:43:27 +0000 (16:43 +0000)]
Merge branch 'smattr/2504A45F-EA4A-41EA-BF7F-E758CD4AE122' into 'main'

lib/neatogen clean up

See merge request graphviz/graphviz!2308

3 years agosolve: [nfc] squash a -Wmissing-prototypes warning
Matthew Fernandez [Sat, 27 Nov 2021 18:47:47 +0000 (10:47 -0800)]
solve: [nfc] squash a -Wmissing-prototypes warning

3 years agolu_decompose: [nfc] squash -Wmissing-prototypes warning
Matthew Fernandez [Sat, 27 Nov 2021 18:40:14 +0000 (10:40 -0800)]
lu_decompose: [nfc] squash -Wmissing-prototypes warning

3 years agolu_solve: [nfc] squash -Wmissing-prototypes warning
Matthew Fernandez [Sat, 27 Nov 2021 18:36:26 +0000 (10:36 -0800)]
lu_solve: [nfc] squash -Wmissing-prototypes warning

3 years agomatinv: [nfc] squash -Wmissing-prototypes warning
Matthew Fernandez [Sat, 27 Nov 2021 18:36:07 +0000 (10:36 -0800)]
matinv: [nfc] squash -Wmissing-prototypes warning

3 years agofind_intersection: [nfc] squash -Wunused-parameter warnings
Matthew Fernandez [Sat, 27 Nov 2021 18:30:46 +0000 (10:30 -0800)]
find_intersection: [nfc] squash -Wunused-parameter warnings