diff --git a/test/api/Makefile.am b/test/api/Makefile.am index 99849fc99..d1d9b222b 100644 --- a/test/api/Makefile.am +++ b/test/api/Makefile.am @@ -14,7 +14,7 @@ EXTRA_DIST += CMakeLists.txt if HAVE_GLIB AM_CPPFLAGS = -DSRCDIR="\"$(srcdir)\"" -I$(top_srcdir)/src/ -I$(top_builddir)/src/ $(GLIB_CFLAGS) -LDADD = $(top_builddir)/src/libharfbuzz.la $(GLIB_LIBS) +LDADD = $(top_builddir)/src/libharfbuzz.la $(top_builddir)/src/libharfbuzz-subset.la $(GLIB_LIBS) EXTRA_DIST += hb-test.h diff --git a/util/Makefile.am b/util/Makefile.am index 3810e15e5..d4ab9cdc5 100644 --- a/util/Makefile.am +++ b/util/Makefile.am @@ -46,8 +46,7 @@ endif # HAVE_FREETYPE hb_shape_SOURCES = $(HB_SHAPE_sources) bin_PROGRAMS += hb-shape -hb_subset_SOURCES = $(HB_SUBSET_sources) -hb_subset_SOURCES = $(HB_SUBSET_sources) +hb_subset_SOURCES = $(HB_SUBSET_CLI_sources) hb_subset_LDADD = $(LDADD) $(top_builddir)/src/libharfbuzz-subset.la bin_PROGRAMS += hb-subset diff --git a/util/Makefile.sources b/util/Makefile.sources index c4516ebcb..6c815d26b 100644 --- a/util/Makefile.sources +++ b/util/Makefile.sources @@ -29,7 +29,7 @@ HB_OT_SHAPE_CLOSURE_sources = \ main-font-text.hh \ $(NULL) -HB_SUBSET_sources = \ +HB_SUBSET_CLI_sources = \ hb-subset.cc \ options.cc \ options.hh \ diff --git a/util/hb-subset.cc b/util/hb-subset.cc index 21d0f767b..ef70a2dcb 100644 --- a/util/hb-subset.cc +++ b/util/hb-subset.cc @@ -25,7 +25,7 @@ * Google Author(s): Garret Rieger, Rod Sheeter */ -#include +#include #include "main-font-text.hh" #include "hb-subset.h" @@ -57,12 +57,13 @@ struct subset_consumer_t unsigned int data_length; const char* data = hb_blob_get_data (blob, &data_length); - int fd_out = open(output_file, O_CREAT | O_WRONLY, S_IRWXU); - if (fd_out == -1) { - fprintf(stderr, "Unable to open output file"); + FILE *fp_out = fopen(output_file, "w"); + if (fp_out == nullptr) { + fprintf(stderr, "Unable to open output file\n"); return false; } - ssize_t bytes_written = write(fd_out, data, data_length); + size_t bytes_written = fwrite(data, 1, data_length, fp_out); + if (bytes_written == -1) { fprintf(stderr, "Unable to write output file\n"); return false;