diff options
-rw-r--r-- | GNUmakefile | 15 | ||||
-rw-r--r-- | Makefile.version | 2 | ||||
-rw-r--r-- | doc/HISTORY | 8 | ||||
-rw-r--r-- | lib/libppmd.c | 8 |
4 files changed, 31 insertions, 2 deletions
diff --git a/GNUmakefile b/GNUmakefile index 14c01017..5aa25ca9 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -59,7 +59,8 @@ VPATH=.:$(SRCDIR) include $(BUILDDIR)/Makefile.config -PRODUCT_SUBDIRS = lib converter analyzer editor generator other +PROG_SUBDIRS = converter analyzer editor generator other +PRODUCT_SUBDIRS = lib $(PROG_SUBDIRS) SUPPORT_SUBDIRS = urt buildtools SUBDIRS = $(PRODUCT_SUBDIRS) $(SUPPORT_SUBDIRS) @@ -87,6 +88,18 @@ all: nonmerge .PHONY: nonmerge nonmerge: $(PRODUCT_SUBDIRS:%=%/all) +# Parallel make (make --jobs) is not smart enough to coordinate builds +# between submakes, so a naive parallel make would cause certain +# targets to get built multiple times simultaneously. That is usually +# unacceptable. So we introduce extra dependencies here just to make +# sure such targets are already up to date before the submake starts, +# for the benefit of parallel make. Note that we ensure that parallel +# make works for 'make all' in the top directory, but it may still fail +# for the aforementioned reason for other invocations. + +$(SUBDIRS:%=%/all): pm_config.h inttypes_netpbm.h version.h +$(PROG_SUBDIRS:%=%/all): lib/all $(SUPPORT_SUBDIRS:%=%/all) + OMIT_CONFIG_RULE = 1 OMIT_VERSION_H_RULE = 1 OMIT_INTTYPES_RULE = 1 diff --git a/Makefile.version b/Makefile.version index c9a70b30..e57f2743 100644 --- a/Makefile.version +++ b/Makefile.version @@ -1,3 +1,3 @@ NETPBM_MAJOR_RELEASE = 10 NETPBM_MINOR_RELEASE = 35 -NETPBM_POINT_RELEASE = 51 +NETPBM_POINT_RELEASE = 52 diff --git a/doc/HISTORY b/doc/HISTORY index 9d669dc1..4b07991f 100644 --- a/doc/HISTORY +++ b/doc/HISTORY @@ -4,6 +4,14 @@ Netpbm. CHANGE HISTORY -------------- +08.09.27 BJH Release 10.35.52 + + libppmd/ppmdraw: fix crash when line is completely out of + frame. + + Build: add dependencies so parallel make of top level + "all" works. + 08.09.12 BJH Release 10.35.51 pamgradient: fix bug: always produces color, not grayscale. diff --git a/lib/libppmd.c b/lib/libppmd.c index f2852338..6970b9f7 100644 --- a/lib/libppmd.c +++ b/lib/libppmd.c @@ -220,6 +220,14 @@ clipEnd0(int const x0, } } + /* Clipping vertically may have moved the endpoint out of frame + horizontally. If so, we know the other endpoint is also out of + frame horizontally and the line misses the frame entirely. + */ + if (cx0 < 0 || cx0 >= cols) { + assert(x1 < 0 || x1 >= cols); + noLine = TRUE; + } *cx0P = cx0; *cy0P = cy0; *noLineP = noLine; |