On Tue, Dec  3, 2024 at 03:58:20PM -0500, Bruce Momjian wrote:
> On Tue, Dec  3, 2024 at 09:05:45PM +0100, Peter Eisentraut wrote:
> > On 26.11.24 20:04, Bruce Momjian wrote:
> > >   %.pdf: %.fo $(ALL_IMAGES)
> > > - $(FOP) -fo $< -pdf $@
> > > + LANG=C $(FOP) -fo $< -pdf $@ 2>&1 | \
> > > + awk 'BEGIN { warn = 0 }  { print }/not available in font/ { warn = 1 }  
> > > \
> > > + END { if (warn != 0) print("\nFound characters that cannot be displayed 
> > > in the PDF document") }' 1>&2
> > 
> > Wouldn't that lose the exit code from the fop execution?
> 
> Yikes, I think it would.  Let me work on a fix now.

Fixed in the attached applied patch.  Glad you saw this mistake.

-- 
  Bruce Momjian  <br...@momjian.us>        https://momjian.us
  EDB                                      https://enterprisedb.com

  Do not let urgent matters crowd out time for investment in the future.


diff --git a/doc/src/sgml/Makefile b/doc/src/sgml/Makefile
index 4a08b6f433e..9d52715ff4b 100644
--- a/doc/src/sgml/Makefile
+++ b/doc/src/sgml/Makefile
@@ -156,9 +156,11 @@ XSLTPROC_FO_FLAGS += --stringparam img.src.path '$(srcdir)/'
 	$(XSLTPROC) $(XMLINCLUDE) $(XSLTPROCFLAGS) $(XSLTPROC_FO_FLAGS) --stringparam paper.type USletter -o $@ $^
 
 %.pdf: %.fo $(ALL_IMAGES)
-	LANG=C $(FOP) -fo $< -pdf $@ 2>&1 | \
-	awk 'BEGIN { warn = 0 }  { print }  /not available in font/ { warn = 1 }  \
-	END { if (warn != 0) print("\nFound characters that cannot be output in the PDF document;  see README.non-ASCII") }' 1>&2
+	@# There is no easy way to pipe output and capture its return code, so output a special string on failure.
+	{ LANG=C $(FOP) -fo $< -pdf $@ 2>&1; [ "$$?" -ne 0 ] && echo "FOP_ERROR"; } | \
+	awk 'BEGIN { warn = 0 }  ! /^FOP_ERROR$$/ { print }  /not available in font/ { warn = 1 }  \
+	END { if (warn != 0) print("\nFound characters that cannot be output in the PDF document;  see README.non-ASCII"); \
+	if ($$0 ~ /^FOP_ERROR$$/) { exit 1} }' 1>&2
 
 
 ##

Reply via email to