From 8e42f3d15c39e5c98149c9647c0cc1a318e9321a Mon Sep 17 00:00:00 2001 From: Paul Hardy Date: Thu, 23 Oct 2014 23:41:50 +0000 Subject: [PATCH] unifont-7.0.06.tar.gz * Makefiles: - Updated version to 7.0.06. - Added "GZFLAGS = -f -9 -n" to use with gzip in all cases. - Changed ';' to "&&" for multiple shell commands, to fail if a preceding step caused an error. - Use "install -s" instead of "install" on C binaries. * Makefile: regenerated .PHONY: target entries. * font/Makefile: - Added GRAPHICS declaration, settable to "png" or "bmp" depending on the type of Unifont font pages desired. The default is set to "png". - Added bmp: target to create bitmapped graphics (.bmp) images of Unifont. - Create font/compiled/plane00.html along with font/compiled/plane01.html in "png" and "bmp" targets. * font/plane01/plane01.hex: - Added one glyph inadvertently omitted from Old Italic: U+01031F (Paul Hardy). - Improved animals in U+01F400..U+01F43F (Nils Dagsson Moskopp). - Added more scripts: U+010350..U+01037F Old Permic (Paul Hardy) U+01F650..U+01F67F Ornamental Dingbats (Paul Hardy) U+01F780..U+01F7FF Geometric Shapes Extended (Paul Hardy) U+01F800..U+01F8FF Supplemental Arrows-C (Paul Hardy) - Emoticons (Paul Hardy) U+01F608: made horns look more like horns * src/: in all Perl scripts, added "or die" for open, close, and print system calls. Made some error messages more descriptive. * src/Makefile: Changed CFLAGS parameter "-O" to explicitly be "-O2". * src/unihexfill: added "set -e" at beginning of bash script. --- ChangeLog | 36 +++- Makefile | 27 +-- NEWS | 21 +++ font/Makefile | 136 ++++++++++++---- font/plane01/Makefile | 6 +- font/plane01/plane01.hex | 343 ++++++++++++++++++++++++++++++++++++++- font/ttfsrc/Makefile | 2 +- hangul/Makefile | 5 +- man/Makefile | 15 +- src/Makefile | 26 +-- src/bdfimplode | 6 +- src/hex2bdf | 6 +- src/hex2sfd | 18 +- src/hexbraille | 2 +- src/hexkinya | 2 +- src/hexmerge | 2 +- src/johab2ucs2 | 4 +- src/unifont-viewer | 18 +- src/unifontchojung | 2 +- src/unifontksx | 2 +- src/unihex2png | 12 +- src/unihexfill | 1 + src/unipng2hex | 10 +- 23 files changed, 584 insertions(+), 118 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8a0eb96..c04eb05 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,38 @@ -2014-10-17 Paul Hardy +2014-10-23 Paul Hardy + + * Version: 7.0.06. + * Makefiles: + - Updated version to 7.0.06. + - Added "GZFLAGS = -f -9 -n" to use with gzip in all cases. + - Changed ';' to "&&" for multiple shell commands, to fail if + a preceding step caused an error. + - Use "install -s" instead of "install" on C binaries. + * Makefile: regenerated .PHONY: target entries. + * font/Makefile: + - Added GRAPHICS declaration, settable to "png" or "bmp" depending + on the type of Unifont font pages desired. The default is set + to "png". + - Added bmp: target to create bitmapped graphics (.bmp) images of + Unifont. + - Create font/compiled/plane00.html along with + font/compiled/plane01.html in "png" and "bmp" targets. + * font/plane01/plane01.hex: + - Added one glyph inadvertently omitted from Old Italic: + U+01031F (Paul Hardy). + - Improved animals in U+01F400..U+01F43F (Nils Dagsson Moskopp). + - Added more scripts: + U+010350..U+01037F Old Permic (Paul Hardy) + U+01F650..U+01F67F Ornamental Dingbats (Paul Hardy) + U+01F780..U+01F7FF Geometric Shapes Extended (Paul Hardy) + U+01F800..U+01F8FF Supplemental Arrows-C (Paul Hardy) + - Emoticons (Paul Hardy) + U+01F608: made horns look more like horns + * src/: in all Perl scripts, added "or die" for open, close, and + print system calls. Made some error messages more descriptive. + * src/Makefile: Changed CFLAGS parameter "-O" to explicitly be "-O2". + * src/unihexfill: added "set -e" at beginning of bash script. + +2014-10-17 Paul Hardy * Version: 7.0.05. * ChangeLog: updated list of Plane 1 scripts added in 7.0.04 entry. diff --git a/Makefile b/Makefile index a8c37a1..9e6b121 100644 --- a/Makefile +++ b/Makefile @@ -8,10 +8,11 @@ # SHELL = /bin/sh INSTALL = install +GZFLAGS = -f -9 -n PACKAGE = "unifont" UNICODE_VERSION = 7.0 -PKG_REV = 05 +PKG_REV = 06 VERSION = $(UNICODE_VERSION).$(PKG_REV) # @@ -52,11 +53,11 @@ all: bindir libdir docdir buildfont # Build a distribution tarball. # dist: distclean - (cd .. ; tar cf $(PACKAGE)-$(VERSION).tar $(PACKAGE)-$(VERSION) && \ - gzip -f -9 $(PACKAGE)-$(VERSION).tar) + (cd .. && tar cf $(PACKAGE)-$(VERSION).tar $(PACKAGE)-$(VERSION) && \ + gzip $(GZFLAGS) $(PACKAGE)-$(VERSION).tar) bindir: - set -e ; $(MAKE) -C src + set -e && $(MAKE) -C src # # Conditionally build the font, depending on the value of BUILDFONT. @@ -65,7 +66,7 @@ bindir: buildfont: if [ x$(BUILDFONT) != x ] ; \ then \ - set -e ; $(MAKE) -C font ; \ + set -e && $(MAKE) -C font ; \ fi # @@ -73,18 +74,18 @@ buildfont: # font/precompiled by default. # fontdir: - set -e ; $(MAKE) -C font + set -e && $(MAKE) -C font libdir: lib/wchardata.c docdir: - set -e ; $(MAKE) -C doc + set -e && $(MAKE) -C doc mandir: - set -e ; $(MAKE) -C man + set -e && $(MAKE) -C man precompiled: - set -e ; $(MAKE) precompiled -C font + set -e && $(MAKE) precompiled -C font # # Create lib/wchardata.c. If you want to also build the object file @@ -104,16 +105,16 @@ install: bindir libdir docdir $(INSTALL) -m0755 -d $(PKGDEST) $(INSTALL) -m0644 -p $(TEXTFILES) doc/unifont.txt doc/unifont.info $(PKGDEST) for i in $(TEXTFILES) unifont.txt unifont.info ; do \ - gzip -f -9 $(PKGDEST)/$$i ; \ + gzip $(GZFLAGS) $(PKGDEST)/$$i ; \ done $(INSTALL) -m0644 -p lib/wchardata.c $(PKGDEST) $(INSTALL) -m0644 -p font/plane00/bmp-combining.txt $(PKGDEST) # If "make" wasn't run before, font/compiled won't exist. if [ ! -d font/compiled ] ; then \ - $(INSTALL) -m0644 -p font/precompiled/unifont-$(VERSION).hex $(PKGDEST)/unifont.hex ; \ + $(INSTALL) -m0644 -p font/precompiled/unifont-$(VERSION).hex $(PKGDEST)/unifont.hex && \ $(INSTALL) -m0644 -p font/precompiled/unifont-$(VERSION).bmp $(PKGDEST)/unifont.bmp ; \ else \ - $(INSTALL) -m0644 -p font/compiled/unifont-$(VERSION).hex $(PKGDEST)/unifont.hex ; \ + $(INSTALL) -m0644 -p font/compiled/unifont-$(VERSION).hex $(PKGDEST)/unifont.hex && \ $(INSTALL) -m0644 -p font/compiled/unifont-$(VERSION).bmp $(PKGDEST)/unifont.bmp ; \ fi @@ -137,4 +138,4 @@ distclean: \rm -rf *~ \rm -rf .DS* ._.DS* -.PHONY: all bindir docdir mandir fontdir precompiled install clean distclean +.PHONY: all dist bindir buildfont fontdir libdir docdir mandir precompiled install clean distclean diff --git a/NEWS b/NEWS index 01588e5..47b358d 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,24 @@ +2014-10-23: Release 7.0.06 + + A few new scripts were added: + U+010350..U+01037F Old Permic + U+01F650..U+01F67F Ornamental Dingbats + U+01F780..U+01F7FF Geometrical Shapes Extended + U+01F800..U+01F8FF Supplemental Arrows-C + + Various changes were made to Makefiles, Perl scripts, and one bash + shell script to conform to Debian Policy Manual version 3.9.6. + + Several changes were made to Makefiles: + * Use "set -e" at the start of multi-command shell invocations, + to trap errors. + * Use "&&" rather than ";" in multi-command shell invocations, + to fail on errors. + * install now uses "-s" flag for C program binaries. + + Other minor changes were made to scripts; see ChangeLog + for details. + 2014-10-17: Release 7.0.05 Modified ASCII letter 'l' so it would have the same height as diff --git a/font/Makefile b/font/Makefile index 5bb7c48..00efbd0 100644 --- a/font/Makefile +++ b/font/Makefile @@ -13,12 +13,13 @@ # SHELL = /bin/sh INSTALL = install +GZFLAGS = -f -9 -n FONTFORGE = fontforge # # assembly date of this version # UNICODE_VERSION = 7.0 -PKG_REV = 05 +PKG_REV = 06 VERSION = $(UNICODE_VERSION).$(PKG_REV) COPYRIGHT = "Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, \ @@ -46,9 +47,14 @@ TTFDEST = $(FONTDEST)/truetype/unifont # COMPILED_DIR = compiled # -# destination directory for .png representation of font +# destination directory for .bmp or .png representation of font # +BMPDIR = $(COMPILED_DIR)/bmp PNGDIR = $(COMPILED_DIR)/png + +# Choose one graphics format or neither. +GRAPHICS=png +# GRAPHICS=bmp # # Directory with original unifont-$(VERSION).hex files # @@ -118,7 +124,7 @@ all: compiled compiled: $(UNIFILES) $(COMBINING) $(UPPER_FILES) $(UPPER_COMBINING) $(MAKE) compiled-files -compiled-files: pcf psf png ttf csurttf upperttf uppercsurttf bigpic coverage +compiled-files: pcf psf $(GRAPHICS) ttf csurttf upperttf uppercsurttf bigpic coverage install -p index.html $(COMPILED_DIR)/index.html # @@ -129,7 +135,7 @@ hex: distclean mkdir -p $(COMPILED_DIR) ; \ fi sort $(UNIFILES) > $(COMPILED_DIR)/unifont-$(VERSION).hex - (cd $(HEXDIR) ; sort *.hex) | \ + (cd $(HEXDIR) && sort *.hex) | \ egrep -v "^FFF[EF]" | \ $(BINDIR)/unigencircles $(COMBINING) plane00/nonprinting.hex \ > $(COMPILED_DIR)/unifont_sample-$(VERSION).hex @@ -165,7 +171,7 @@ bdf: hex $(BINDIR)/hex2bdf --version "$(VERSION)" --copyright $(COPYRIGHT) \ $(COMPILED_DIR)/unifont-$(VERSION).hex \ >$(COMPILED_DIR)/unifont-$(VERSION).bdf - gzip -f -9 <$(COMPILED_DIR)/unifont-$(VERSION).bdf \ + gzip $(GZFLAGS) <$(COMPILED_DIR)/unifont-$(VERSION).bdf \ >$(COMPILED_DIR)/unifont-$(VERSION).bdf.gz # Now make a version with combining circles. The font name # will be "unifont_sample" instead of "unifont" to distinguish @@ -174,35 +180,35 @@ bdf: hex --version "$(VERSION)" --copyright $(COPYRIGHT) \ $(COMPILED_DIR)/unifont_sample-$(VERSION).hex \ > $(COMPILED_DIR)/unifont_sample-$(VERSION).bdf - gzip -f -9 <$(COMPILED_DIR)/unifont_sample-$(VERSION).bdf \ + gzip $(GZFLAGS) <$(COMPILED_DIR)/unifont_sample-$(VERSION).bdf \ >$(COMPILED_DIR)/unifont_sample-$(VERSION).bdf.gz # Font with ConScript Unicode Registry (CSUR) glyphs added $(BINDIR)/hex2bdf --font "Unifont CSUR" \ --version "$(VERSION)" --copyright $(COPYRIGHT) \ $(COMPILED_DIR)/unifont_csur-$(VERSION).hex \ > $(COMPILED_DIR)/unifont_csur-$(VERSION).bdf - gzip -f -9 <$(COMPILED_DIR)/unifont_csur-$(VERSION).bdf \ + gzip $(GZFLAGS) <$(COMPILED_DIR)/unifont_csur-$(VERSION).bdf \ >$(COMPILED_DIR)/unifont_csur-$(VERSION).bdf.gz # Font with glyphs above Plane 0 $(BINDIR)/hex2bdf --font "Unifont Upper" \ --version "$(VERSION)" --copyright $(COPYRIGHT) \ $(COMPILED_DIR)/unifont_upper-$(VERSION).hex \ > $(COMPILED_DIR)/unifont_upper-$(VERSION).bdf - gzip -f -9 <$(COMPILED_DIR)/unifont_upper-$(VERSION).bdf \ + gzip $(GZFLAGS) <$(COMPILED_DIR)/unifont_upper-$(VERSION).bdf \ >$(COMPILED_DIR)/unifont_upper-$(VERSION).bdf.gz # Font with glyphs above Plane 0 with CSUR glyphs above Plane 0 $(BINDIR)/hex2bdf --font "Unifont Upper CSUR" \ --version "$(VERSION)" --copyright $(COPYRIGHT) \ $(COMPILED_DIR)/unifont_upper_csur-$(VERSION).hex \ > $(COMPILED_DIR)/unifont_upper_csur-$(VERSION).bdf - gzip -f -9 <$(COMPILED_DIR)/unifont_upper_csur-$(VERSION).bdf \ + gzip $(GZFLAGS) <$(COMPILED_DIR)/unifont_upper_csur-$(VERSION).bdf \ >$(COMPILED_DIR)/unifont_upper_csur-$(VERSION).bdf.gz # Font with glyphs above Plane 0 with combining circles added $(BINDIR)/hex2bdf --font "Unifont Upper Sample" \ --version "$(VERSION)" --copyright $(COPYRIGHT) \ $(COMPILED_DIR)/unifont_upper_sample-$(VERSION).hex \ > $(COMPILED_DIR)/unifont_upper_sample-$(VERSION).bdf - gzip -f -9 <$(COMPILED_DIR)/unifont_upper_sample-$(VERSION).bdf \ + gzip $(GZFLAGS) <$(COMPILED_DIR)/unifont_upper_sample-$(VERSION).bdf \ >$(COMPILED_DIR)/unifont_upper_sample-$(VERSION).bdf.gz # @@ -211,22 +217,22 @@ bdf: hex pcf: bdf bdftopcf <$(COMPILED_DIR)/unifont-$(VERSION).bdf \ >$(COMPILED_DIR)/unifont-$(VERSION).pcf - gzip -f -9 $(COMPILED_DIR)/unifont-$(VERSION).pcf + gzip $(GZFLAGS) $(COMPILED_DIR)/unifont-$(VERSION).pcf bdftopcf <$(COMPILED_DIR)/unifont_sample-$(VERSION).bdf \ >$(COMPILED_DIR)/unifont_sample-$(VERSION).pcf - gzip -f -9 $(COMPILED_DIR)/unifont_sample-$(VERSION).pcf + gzip $(GZFLAGS) $(COMPILED_DIR)/unifont_sample-$(VERSION).pcf bdftopcf <$(COMPILED_DIR)/unifont_csur-$(VERSION).bdf \ >$(COMPILED_DIR)/unifont_csur-$(VERSION).pcf - gzip -f -9 $(COMPILED_DIR)/unifont_csur-$(VERSION).pcf + gzip $(GZFLAGS) $(COMPILED_DIR)/unifont_csur-$(VERSION).pcf bdftopcf <$(COMPILED_DIR)/unifont_upper-$(VERSION).bdf \ >$(COMPILED_DIR)/unifont_upper-$(VERSION).pcf - gzip -f -9 $(COMPILED_DIR)/unifont_upper-$(VERSION).pcf + gzip $(GZFLAGS) $(COMPILED_DIR)/unifont_upper-$(VERSION).pcf bdftopcf <$(COMPILED_DIR)/unifont_upper_sample-$(VERSION).bdf \ >$(COMPILED_DIR)/unifont_upper_sample-$(VERSION).pcf - gzip -f -9 $(COMPILED_DIR)/unifont_upper_sample-$(VERSION).pcf + gzip $(GZFLAGS) $(COMPILED_DIR)/unifont_upper_sample-$(VERSION).pcf bdftopcf <$(COMPILED_DIR)/unifont_upper_csur-$(VERSION).bdf \ >$(COMPILED_DIR)/unifont_upper_csur-$(VERSION).pcf - gzip -f -9 $(COMPILED_DIR)/unifont_upper_csur-$(VERSION).pcf + gzip $(GZFLAGS) $(COMPILED_DIR)/unifont_upper_csur-$(VERSION).pcf # # Make the PSF (console) font for APL (A Programming Language). @@ -238,7 +244,7 @@ psf: bdf psf/unifont-apl.txt \ 512 \ $(COMPILED_DIR)/Unifont-APL8x16-$(VERSION).psf - gzip -f -9 $(COMPILED_DIR)/Unifont-APL8x16-$(VERSION).psf + gzip $(GZFLAGS) $(COMPILED_DIR)/Unifont-APL8x16-$(VERSION).psf # # Print coverage of scripts in Basic Multilingual Plane in .txt file. @@ -263,6 +269,9 @@ coverage: pagecount: $(COMPILED_DIR)/unifont-$(VERSION).hex $(BINDIR)/unipagecount $(BINDIR)/unipagecount -l < $(COMPILED_DIR)/unifont-$(VERSION).hex \ > $(COMPILED_DIR)/pagecount.html + if [ x$(GRAPHICS) = xbmp ] ; then \ + sed -i 's/png/bmp/g' $(COMPILED_DIR)/plane00.html ; \ + fi # # Create the .png (Portable Network Graphics) versions of the glyphs. @@ -285,7 +294,7 @@ png: hex $(BINDIR)/unihex2png mkdir -p $(PNGDIR)/plane01 ; \ fi # Generate files in plane01/all directory to create PNG files. - (cd plane01 ; make) + (cd plane01 && make) for i in 0 1 2 3 4 5 6 7 8 9 A B C D E F; do \ for j in 0 1 2 3 4 5 6 7 8 9 A B C D E F; do \ $(BINDIR)/unihex2png -p 01$$i$$j \ @@ -319,11 +328,81 @@ png: hex $(BINDIR)/unihex2png -o $(PNGDIR)/csur/uni0F$$i$$j.png ; \ done ; \ done - # Create HTML table showing color-coded percent coverage in Plane 01. + # Create HTML table showing color-coded percent coverage in Plane 0. + $(BINDIR)/unipagecount -h < $(COMPILED_DIR)/unifont-$(VERSION).hex \ + > $(COMPILED_DIR)/plane00.html + # Create HTML table showing color-coded percent coverage in Plane 1. ../bin/unipagecount -P1 -h < plane01/all/plane01-all.hex \ > compiled/plane01.html echo "Done creating $(PNGDIR)" + +# +# Create the .bmp (Bitmap Graphics) versions of the glyphs. +# +bmp: hex $(BINDIR)/unihex2bmp + if [ ! -d $(BMPDIR) ] ; then \ + mkdir -p $(BMPDIR) ; \ + fi + if [ ! -d $(BMPDIR)/plane00 ] ; then \ + mkdir -p $(BMPDIR)/plane00 ; \ + fi + for i in 0 1 2 3 4 5 6 7 8 9 A B C D E F; do \ + for j in 0 1 2 3 4 5 6 7 8 9 A B C D E F; do \ + $(BINDIR)/unihex2bmp -p00$$i$$j \ + < $(COMPILED_DIR)/unifont_sample-$(VERSION).hex \ + > $(BMPDIR)/plane00/uni00$$i$$j.bmp ; \ + done ; \ + done + if [ ! -d $(BMPDIR)/plane01 ] ; then \ + mkdir -p $(BMPDIR)/plane01 ; \ + fi + # Generate files in plane01/all directory to create PNG files. + (cd plane01 && make) + for i in 0 1 2 3 4 5 6 7 8 9 A B C D E F; do \ + for j in 0 1 2 3 4 5 6 7 8 9 A B C D E F; do \ + $(BINDIR)/unihex2bmp -p01$$i$$j \ + < plane01/all/plane01-all.hex \ + > $(BMPDIR)/plane01/uni01$$i$$j.bmp ; \ + done ; \ + done + if [ ! -d $(BMPDIR)/plane0E ] ; then \ + mkdir -p $(BMPDIR)/plane0E ; \ + fi + for i in 0 1 2 3 4 5 6 7 8 9 A B C D E F; do \ + for j in 0 1 2 3 4 5 6 7 8 9 A B C D E F; do \ + $(BINDIR)/unihex2bmp -p0E$$i$$j \ + < $(COMPILED_DIR)/unifont_upper_sample-$(VERSION).hex \ + > $(BMPDIR)/plane0E/uni0E$$i$$j.bmp ; \ + done ; \ + done + if [ ! -d $(BMPDIR)/csur ] ; then \ + mkdir -p $(BMPDIR)/csur ; \ + fi + for i in E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF \ + F0 F1 F2 F3 F4 F5 F6 F7 F8 ; do \ + $(BINDIR)/unihex2bmp -p00$$i \ + < $(COMPILED_DIR)/unifont_csur_sample-$(VERSION).hex \ + > $(BMPDIR)/csur/uni00$$i.bmp ; \ + done + for i in 0 1 2 3 4 5 6 7 8 9 A B C D E F; do \ + for j in 0 1 2 3 4 5 6 7 8 9 A B C D E F; do \ + $(BINDIR)/unihex2bmp -p0F$$i$$j \ + < $(COMPILED_DIR)/unifont_csur_sample-$(VERSION).hex \ + > $(BMPDIR)/csur/uni0F$$i$$j.bmp ; \ + done ; \ + done + # Create HTML table showing color-coded percent coverage in Plane 0. + $(BINDIR)/unipagecount -h < $(COMPILED_DIR)/unifont-$(VERSION).hex \ + > $(COMPILED_DIR)/plane00.html + sed -i 's/png/bmp/g' $(COMPILED_DIR)/plane00.html ; \ + # Create HTML table showing color-coded percent coverage in Plane 01. + ../bin/unipagecount -P1 -h < plane01/all/plane01-all.hex \ + > $(COMPILED_DIR)/plane01.html + sed -i 's/png/bmp/g' $(COMPILED_DIR)/plane01.html ; \ + echo "Done creating $(BMPDIR)" + + # # Build one bitmap of the entire Unifont as a 4096 x 16 grid. # Use all the .hex files in $(HEXDIR) so we add the contents of @@ -350,7 +429,7 @@ ttf: install -p \ $(HEXDIR)/bmp-combining.txt \ $(TTFSRC)/combining.txt - cd $(TTFSRC) ; \ + cd $(TTFSRC) && \ $(MAKE) FONTFILE="unifont" COMBINING="combining" \ FONTNAME="Unifont" PSNAME="Unifont" mv $(TTFSRC)/unifont.sfd $(COMPILED_DIR)/unifont-$(VERSION).sfd @@ -360,7 +439,7 @@ ttf: install -p \ $(COMPILED_DIR)/unifont_sample-$(VERSION).bdf \ $(TTFSRC)/unifont_sample.bdf - cd $(TTFSRC) ; \ + cd $(TTFSRC) && \ $(MAKE) sbit FONTFILE="unifont_sample" COMBINING="" \ FONTNAME="Unifont Sample" PSNAME="UnifontSample" mv $(TTFSRC)/unifont_sample.ttf \ @@ -375,14 +454,14 @@ csurttf: $(TTFSRC)/unifont_csur.hex sort -u plane00csur/csur-combining.txt $(HEXDIR)/bmp-combining.txt \ > $(TTFSRC)/combining_csur.txt - cd $(TTFSRC) ; \ + cd $(TTFSRC) && \ $(MAKE) outline FONTFILE="unifont_csur" COMBINING="combining_csur" \ FONTNAME="Unifont CSUR" PSNAME="UnifontCSUR" mv $(TTFSRC)/unifont_csur.sfd \ $(COMPILED_DIR)/unifont_csur-$(VERSION).sfd mv $(TTFSRC)/unifont_csur.ttf \ $(COMPILED_DIR)/unifont_csur-$(VERSION).ttf - gzip -f -9 $(COMPILED_DIR)/unifont_csur-$(VERSION).sfd + gzip $(GZFLAGS) $(COMPILED_DIR)/unifont_csur-$(VERSION).sfd # # Now build the ConScript Unicode Registry PUA font. @@ -393,19 +472,19 @@ upperttf: $(COMPILED_DIR)/unifont_upper-$(VERSION).hex \ $(TTFSRC)/unifont_upper.hex sort -u $(UPPER_COMBINING) > $(TTFSRC)/combining_upper.txt - cd $(TTFSRC) ; \ + cd $(TTFSRC) && \ $(MAKE) outline FONTFILE="unifont_upper" COMBINING="combining_upper" \ FONTNAME="Unifont Upper" PSNAME="UnifontUpper" mv $(TTFSRC)/unifont_upper.sfd \ $(COMPILED_DIR)/unifont_upper-$(VERSION).sfd mv $(TTFSRC)/unifont_upper.ttf \ $(COMPILED_DIR)/unifont_upper-$(VERSION).ttf - gzip -f -9 $(COMPILED_DIR)/unifont_upper-$(VERSION).sfd + gzip $(GZFLAGS) $(COMPILED_DIR)/unifont_upper-$(VERSION).sfd # Second, copy unifont_upper_sample.bdf, to make an SBIT font. install -p \ $(COMPILED_DIR)/unifont_upper_sample-$(VERSION).bdf \ $(TTFSRC)/unifont_upper_sample.bdf - cd $(TTFSRC) ; \ + cd $(TTFSRC) && \ $(MAKE) sbit FONTFILE="unifont_upper_sample" COMBINING="" \ FONTNAME="Unifont Upper Sample" PSNAME="UnifontUpperSample" mv $(TTFSRC)/unifont_upper_sample.ttf \ @@ -422,14 +501,14 @@ uppercsurttf: $(TTFSRC)/unifont_upper_csur.hex sort -u plane0[1-F]/*combining*.txt plane0[1-F]csur/*combining*.txt \ > $(TTFSRC)/combining_upper_csur.txt - cd $(TTFSRC) ; \ + cd $(TTFSRC) && \ $(MAKE) outline FONTFILE="unifont_upper_csur" COMBINING="combining_upper_csur" \ FONTNAME="Unifont Upper CSUR" PSNAME="UnifontUpperCSUR" mv $(TTFSRC)/unifont_upper_csur.sfd \ $(COMPILED_DIR)/unifont_upper_csur-$(VERSION).sfd mv $(TTFSRC)/unifont_upper_csur.ttf \ $(COMPILED_DIR)/unifont_upper_csur-$(VERSION).ttf - gzip -f -9 $(COMPILED_DIR)/unifont_upper_csur-$(VERSION).sfd + gzip $(GZFLAGS) $(COMPILED_DIR)/unifont_upper_csur-$(VERSION).sfd # # @@ -535,3 +614,4 @@ distclean: .PHONY: all hex bdf pcf coverage pagecount png bigpic csurttf upper ttf \ precompiled install clean distclean + diff --git a/font/plane01/Makefile b/font/plane01/Makefile index 0858df6..cc53a35 100644 --- a/font/plane01/Makefile +++ b/font/plane01/Makefile @@ -9,11 +9,13 @@ all: plane01.hex plane01-nonprinting.hex plane01-unassigned.hex if [ ! -d all ]; then \ mkdir all; \ fi - grep "^[0-9A-Fa-f]" unassigned-ranges.txt | \ + set -e && \ + grep "^[0-9A-Fa-f]" unassigned-ranges.txt | \ awk 'NF == 1 {print "../../bin/unihexgen " $$1 " " $$1;} \ NF == 2 {print "../../bin/unihexgen " $$1 " " $$2;}' | \ /bin/sh -s > plane01-unassigned.hex - grep "^[0-9A-Fa-f]" noscript-ranges.txt | \ + set -e && \ + grep "^[0-9A-Fa-f]" noscript-ranges.txt | \ awk 'NF == 1 {print "../../bin/unihexgen " $$1 " " $$1;} \ NF == 2 {print "../../bin/unihexgen " $$1 " " $$2;}' | \ /bin/sh -s > all/noscript.hex diff --git a/font/plane01/plane01.hex b/font/plane01/plane01.hex index f9b4f6b..c8f3594 100644 --- a/font/plane01/plane01.hex +++ b/font/plane01/plane01.hex @@ -539,6 +539,7 @@ 01031C:0000000020202020302C22222C300000 01031D:00000000040404043C04040404040000 01031E:00000000414949222222141408080000 +01031F:000000000808492A1C081C2A49080000 010320:00000000080808080808080808080000 010321:00000000080814142222224141410000 010322:00000000004122140814224100000000 @@ -570,6 +571,49 @@ 010348:0000000000000C12212D2D21120C0000 010349:000000000000001C2222221408360000 01034A:00000000081C2A490808080808080000 +010350:000000007E424404090A1C1830200000 +010351:0000000008080808083E494949360000 +010352:000000003F4949280808080808080000 +010353:00000000040404081028444241210000 +010354:00000000020202444448704040400000 +010355:00000000FE9292929292929291910000 +010356:00000000FE929292929292919FF00000 +010357:00000000063A2222224242425A660000 +010358:00000000001008080810101010080000 +010359:000000007E4242420404040404020000 +01035A:00000000040A08081010107E42420000 +01035B:00000000404022221214080804040000 +01035C:00000000000000008E8A525222210000 +01035D:0000000000000042A222141408080000 +01035E:0000000040404C724240404040400000 +01035F:000000004040405E6202040408080000 +010360:000000007F4141424222241414080000 +010361:00000000605040404020201214080000 +010362:000000003F41492808080808493E0000 +010363:00000000444A4A525060404040400000 +010364:000000000201010101120A0418E08000 +010365:0000000C12122C282844444482820000 +010366:00000000919192929292929292FE0000 +010367:00000000F090909010101010101E0000 +010368:00000000BEA292929292929292F10000 +010369:000000000F1112222222222222210000 +01036A:0000000092929292929292AAAA440000 +01036B:0000004E50205C82829292AAAA440000 +01036C:000000000404080810FC202040C00000 +01036D:00000000101010101010101010100000 +01036E:00000000FC44282810102828407E0000 +01036F:00000000F090909010141212121E0000 +010370:000000004040404040404042427E0000 +010371:000000003F49494808080E09090E0000 +010372:00000000221C6191910A0A0A04040000 +010373:000000009B6D49494A4848484A4C0000 +010374:000000004CB4A4A42424242425260000 +010375:000000008282546C4428282810100000 +010376:3C240E10000000000000000000000000 +010377:10384444000000000000000000000000 +010378:38282838000000000000000000000000 +010379:C2242810000000000000000000000000 +01037A:18101418000000000000000000000000 010380:00000000000000000000440066007FFE66004400000000000000000000000000 010381:00003EF81C700820082008200820082008200000440066007FFE660044000000 010382:000007C003800100010001000100010001000100010001000100010001000000 @@ -4633,8 +4677,8 @@ 01F402:00000000500050003C006F007FF83FFC0FFE0FFD0FFC0A140A140A1400000000 01F403:0000000000000000500057003FF86FFC7FFE0FFD0FFC0A140A140A1400000000 01F404:000000000000100078005E00FFF8FFFC1FFE1FFD1FFC15D41414141400000000 -01F405:00000000000000000000000000003FF06D587D5C0FFA142A2628200400000000 -01F406:00000000000000000000000000003FF06D787FDC0F7A142A2628200400000000 +01F405:00000C001E00258050784526852299426654021401200148009200620016001A +01F406:00000C001E00258050784006803099B665860200013000B00046002600120012 01F407:0000000006000E000E003C006DF07FF87FFC3FFC3FFE1F9E1F7C18F800000000 01F408:0000000044046C047C0255F27FFA3FFC0FF80FF80FE80A280A28124800000000 01F409:2B0011C007601BD8799E7DBEF7EFF3CFF99FA9958301032006300610073003E0 @@ -4643,7 +4687,7 @@ 01F40C:000000004400280028F029F83BF83BF83FF83FF03FE03FF83FFC1FFE00000000 01F40D:000000003C006E007E003E000E000E080CCC1DE619F61B361F3E0E1C00000000 01F40E:0000000004001C002E007E007FEC2FFE0FF60FF60FF20C300A28124800000000 -01F40F:000001E0021004080408021007800FC01BE01FF81FF803F00070004000000000 +01F40F:000001E003F007980708071003800FC01BE01FF81FF803F00070004000000000 01F410:000000000000030004E0050007800FC01BE01FF81FF80BF01070004000000000 01F411:0000000078007C00DC00FE00FFFE1FFF07FF07FF03FE02FA028A048804080000 01F412:00000000000C001218112C0D7FE17FFA0FFC0FF807F0055005280A5000000000 @@ -4675,7 +4719,7 @@ 01F42C:00000000000001C007801F802FC03FE07FF006F0023C001E1998665200000000 01F42D:00003018482487C2844280024444C006600CC106238810100C60038000000000 01F42E:000000000000C386E7CEFFFE7FFC1BB01FF01FF01FF00FE00FE0044003800000 -01F42F:00003018482487C2844280024444701C610C438438381BB00C60038000000000 +01F42F:00003018482487C2844280024444701C610C4BA438381BB00C60038000000000 01F430:00000C30142812481248124813C808100A501008124811880C3003C000000000 01F431:0000000010102BA82448400440044444C006600CC5462288183007C000000000 01F432:000000E00180030003C007C00DF03FF05FFCFFFCFFFE073E0E3E1E3C38380000 @@ -4686,8 +4730,8 @@ 01F437:0000783C47C44004400444442008238844444AA4482447C42388183007C00000 01F438:00000000183024483FF83FF87FFC7FFC7FFC600C38381C700440044003800000 01F439:0000000010102BA8244840044C644C64E00E410453942008D456082077DC0000 -01F43A:0000200830182BA8244820082448101011101390082008200BA0044003800000 -01F43B:00000000600C93929C72600C4444800281028382800244442388183007C00000 +01F43A:000000001008281445A24662800180018C198C198001800183C163C6199807E0 +01F43B:0000180C25D24221441148092A2A12A411C411C409C808880550022001C00000 01F43C:0000000067CCF83EE00E4EE45AB45EF44C644384292827C8183007C000000000 01F43D:000000000180066008101008200446624E724C3240022004181807E000000000 01F43E:00000000140040001C00BE003E501804007000FA00F800300000000000000000 @@ -5140,7 +5184,7 @@ 01F605:000003E00C981244200226324949400140014FF9280A241213E40C1803E00000 01F606:000003E00C181004241222224411400140014FF9280A241213E40C1803E00000 01F607:0FF8100423E22C1A1C1C23E22002463146314001280A241213E40C1803E00000 -01F608:200433CC3C3C300C242422444662466240024812242423C410080C3003C00000 +01F608:400263C66C36700E642622444662466240024812242423C410080C3003C00000 01F609:000003E00C181004201226224611400140014FF9280A241213E40C1803E00000 01F60A:000003E00C181004200226324949400140014809241223E210040C1803E00000 01F60B:000003E00C181004200226324949400140014809241223E211240CD803E00000 @@ -5189,13 +5233,13 @@ 01F636:000003E00C1810042002263246314001400140012002200210040C1803E00000 01F637:000003E00C181224241227725005480967F354152C1A27F210040C1803E00000 01F638:0000000010102BA82448400444444AA4C0066FECCAA627C8183007C000000000 -01F639:0000000010102BA82448400444445AB4C0066FECCAA627C8183007C000000000 +01F639:0000000010102BA8244840044C645014C0166FECCAA627C8183007C000000000 01F63A:0000000010102BA82448400440044444C0066FECC82627C8183007C000000000 01F63B:0000000010102BA8244840044AA44EE4C446600CC5462288183007C000000000 01F63C:0000000010102BA82448400440044444C006600CC0462188183007C000000000 01F63D:0000000010102BA8244840044AA44444C006608CC0462088183007C000000000 01F63E:0000000010102BA82448400440044444C006638CC4462108183007C000000000 -01F63F:0000000010102BA82448400440044444C826628CC5462008183007C000000000 +01F63F:0000000010102BA82448400444444024C026628CC5462008183007C000000000 01F640:0000000010102BA82448400442844444C006638CC44627C8183007C000000000 01F641:000003E00C18100420022632463140014001400121C2222210040C1803E00000 01F642:000003E00C181004200226324631400140014001222221C210040C1803E00000 @@ -5210,6 +5254,54 @@ 01F64D:0000000003C0042008101008366C500A500A499244224BD24812481200000000 01F64E:0000000003C004200A5014281668100810080990342C43C24812481200000000 01F64F:000000000000000007C00820101016D018302BA845449D728102FFFE00000000 +01F650:0000000000001800180018000870148822042104209820C011200E1800000000 +01F651:0000000000C0012402240208021001300048008401041E041D0800F000000000 +01F652:000000000780085C103C10401080090006400420082012201240018000000000 +01F653:00000000000018700488030419042084204411280E1000180018001800000000 +01F654:0000000001E03A103C0802080108009002600420041004480248018000000000 +01F655:0000000000000E18112020C02098210422041488087018001800180000000000 +01F656:0000000000000018001800180E10112820442084190403040488187000000000 +01F657:00000000030024802440104008400C80120021002080207810B80F0000000000 +01F658:00000000000000700088010001F0360848443424032400C80000000000000000 +01F659:000000000000000000C8032434244844360801F0010000880070000000000000 +01F65A:0000000000001C00220001001F0020D844244858498026000000000000000000 +01F65B:0000000000000000260049804858442420D81F00010022001C00000000000000 +01F65C:00000000001C006C0080010039F03E7C4C063646032601E600CC001000000000 +01F65D:00000000001000CC01E6032636464C063E7C39F001000080006C001C00000000 +01F65E:00000000001000CC01E6032636464C063E7C39F001000080006C001C00000000 +01F65F:00000000001C006C0080010039F03E7C4C063646032601E600CC001000000000 +01F660:00000000000038002400223012080B841C422402420241024484387800000000 +01F661:000000000000387844844102420224021C420B84120822302400380000000000 +01F662:000000000000001C00240C44104821D0423840244042408221221E1C00000000 +01F663:0000000000001E1C2122408240424024423821D010480C440024001C00000000 +01F664:00000000000078006400623032181B8C1DC634266206618E7CFC387800000000 +01F665:00000000000038787CFC618E620634261DC61B8C321862306400780000000000 +01F666:000000000000001E00260C46184C31D863B8642C604671863F3E1E1C00000000 +01F667:0000000000001E1C3F3E71866046642C63B831D8184C0C460026001E00000000 +01F668:00000000701C48244444228812900D6003800D601290228844444824701C0000 +01F669:0000FFFE8FE2A7CA9392CBA6E38EFD7EFEFEFD7EE38ECBA69392A7CA8FE2FFFE +01F66A:00000000783C4C6446C4628C32981EF002801EF03298628C46C44C64783C0000 +01F66B:0000FFFE87C2A38A91128922C106E10EFFFEE10EC10689229112A38A87C2FFFE +01F66C:000000000010000800C401441FE42838483C28381FE4014400C4000800100000 +01F66D:0000000001000280044007C0044004400C6014501C7007C0438423881D700000 +01F66E:0000000010002000460045004FF03828782438284FF045004600200010000000 +01F66F:000000001D702388438407C01C7014500C600440044007C00440028001000000 +01F670:000000000000000000000CC21332212C412042207C6040A023201C2000000000 +01F671:000000000000000001E00EF2173A233C43304E307C7040B063B03F301C000000 +01F672:000000001E0020002000200010000FFC10602060206020A011200E2000000000 +01F673:000000001E0030006000600070003FFC10602060606060E071603F601E600000 +01F674:0000000007000D800D800D8007000F1C1B8839C838F03C781FDC0F8000000000 +01F675:000000001C0022042202140218FC25104210411040A2404220A21F1C00000000 +01F676:00003366CCEEEEEE0000000000000000 +01F677:00007777773366CC0000000000000000 +01F678:000000000000000000007777773366CC +01F679:0000000003000FE01370233823380338037003E0038003000300000003000300 +01F67A:0000000002000F80124022202220022002400280030002000200000002000000 +01F67B:00000000018007F01FF8399C318C019C01B801F001E001C00180000001800180 +01F67C:0000000001F801F803F003F007E007E00FC00FC01F801F803F003F0000000000 +01F67D:000000003F003F001F801F800FC00FC007E007E003F003F001F801F800000000 +01F67E:00FF00FF00FF00FF00FF00FF00FF00FFFF00FF00FF00FF00FF00FF00FF00FF00 +01F67F:00FF00FF00FF00FF00FF00FF00FF00FFFF00FF00FF00FF00FF00FF00FF00FF00 01F680:000078004600413040C820442026113808A00C4813A411030948062402120010 01F681:00000000000000007FC004001F0C2392419241FA7FFA3F921F12090C7FE00000 01F682:0000000018003C003C3F183C19BC3FFF7FFF7FF32DAD525EBFFE124C00000000 @@ -5423,3 +5515,236 @@ 01F771:00000000000000001FF8181814281248118811881248142818181FF800000000 01F772:00000000000000003F180224042408481C7002480188418822B01D0001000000 01F773:000000000000000000303C48084810903CE0091012103C900A6012000C000000 +01F780:000000000000004000C001C003C007C00FC007C003C001C000C0004000000000 +01F781:0000000000000100038007C00FE01FF03FF80000000000000000000000000000 +01F782:00000000000008000C000E000F000F800FC00F800F000E000C00080000000000 +01F783:000000000000000000000000000000003FF81FF00FE007C00380010000000000 +01F784:000000000000183C3C18000000000000 +01F785:000003C00C3010082004200440024002400240022004200410080C3003C00000 +01F786:000003C00FF01838300C30046006600660066006200C300C1C180FF003C00000 +01F787:000003C00FF01FF83C3C381C700E700E700E700E381C3C3C1FF80FF003C00000 +01F788:000003C00FF01FF83FFC3E7C7C3E781E781E7C3E3E7C3FFC1FF80FF003C00000 +01F789:000003C00FF01FF83FFC3FFC7E7E7C3E7C3E7E7E3FFC3FFC1FF80FF003C00000 +01F78A:000003C00C30100820042004418243C243C241822004200410080C3003C00000 +01F78B:000003C00C30100823C4242449924A524A524992242423C410080C3003C00000 +01F78C:00000000000000303000000000000000 +01F78D:00000000000000383838000000000000 +01F78E:00007FFE4002400240024002400240024002400240024002400240027FFE0000 +01F78F:00007FFE7FFE60066006600660066006600660066006600660067FFE7FFE0000 +01F790:00007FFE7FFE7FFE700E700E700E700E700E700E700E700E7FFE7FFE7FFE0000 +01F791:00007FFE7FFE7FFE7FFE781E781E781E781E781E781E7FFE7FFE7FFE7FFE0000 +01F792:00007FFE7FFE7FFE7FFE7FFE7C3E7C3E7C3E7C3E7FFE7FFE7FFE7FFE7FFE0000 +01F793:00007FFE7FFE7FFE7FFE7FFE7FFE7E7E7E7E7FFE7FFE7FFE7FFE7FFE7FFE0000 +01F794:00007FFE4002400240024002400241824182400240024002400240027FFE0000 +01F795:00007FFE40024002400247E247E247E247E247E247E24002400240027FFE0000 +01F796:00007FFE400240024FF24812481249924992481248124FF2400240027FFE0000 +01F797:00000000000000103810000000000000 +01F798:00000000000010387C38100000000000 +01F799:000000000010387CFE7C381000000000 +01F79A:0000000001000280044008201110238847C42388111008200440028001000000 +01F79B:000000000100028004400920139027C84FE427C8139009200440028001000000 +01F79C:0000000001000280044008201110228844442288111008200440028001000000 +01F79D:00000000000010103810100000000000 +01F79E:00000000001010387C38101000000000 +01F79F:000000101038387CFE7C383810100000 +01F7A0:000002000200050008800A80124027204F90272012400A800880050002000200 +01F7A1:000000000100010001000100010001007FFC0100010001000100010001000000 +01F7A2:00000000030003000300030003007FF87FF80300030003000300030000000000 +01F7A3:00000000038003800380038003807FFC7FFC7FFC038003800380038003800000 +01F7A4:0000000007800780078007807FF87FF87FF87FF8078007800780078000000000 +01F7A5:0000000007C007C007C007C07FFC7FFC7FFC7FFC7FFC07C007C007C007C00000 +01F7A6:000000000FC00FC00FC07FF87FF87FF87FF87FF87FF80FC00FC00FC000000000 +01F7A7:000000000FE00FE00FE07FFC7FFC7FFC7FFC7FFC7FFC7FFC0FE00FE00FE00000 +01F7A8:0000000040042008101008200440028001000280044008201010200840040000 +01F7A9:00006006300C18180C30066003C0018003C006600C301818300C600640020000 +01F7AA:00000000600C701C38381C700EE007C0038007C00EE01C703838701C600C0000 +01F7AB:0000700E781E3C3C1E780FF007E003C007E00FF01E783C3C781E700E60060000 +01F7AC:00000000701C783C7C7C3EF81FF00FE007C00FE01FF03EF87C7C783C701C0000 +01F7AD:0000781E7C3E7E7E3FFC1FF80FF007E00FF01FF83FFC7E7E7C3E781E700E0000 +01F7AE:00000000783C7C7C7EFC7FFC3FF81FF00FE01FF03FF87FFC7EFC7C7C783C0000 +01F7AF:000000000100010001000100610C1D7003800280044004400820101020080000 +01F7B0:0000000001800180018061867DBE1FF803C003C0066006600C301818300C6006 +01F7B1:0000000003800380C386E38E7FFC7FFC1FF007C00EE00EE01C703838701CE00E +01F7B2:0000000003C0C3C7E3CFFFFF7FFE3FF81FF007E007E00FF01E783C3C781EF00F +01F7B3:0000038007C0C7C6E7CEFFFE7FFC7FFC3FF81FF01EF03C787C7CF83EF01FE00F +01F7B4:000003C0C7E3E7EFFFFFFFFFFFFF7FFC3FF80FF00FF01FF83FFC7E7EFC3FF81F +01F7B5:0000010001008102610C193007C0038007C01930610C81020100010001000000 +01F7B6:000001808181E187799E1FF807E003C007E01FF8799EE1878181018001800000 +01F7B7:000003808382E38EFBBE7FFC1FF007C01FF07BFCFBBEE38E8382038003800000 +01F7B8:000083C1E3C3FBCFFFFF7FFC1FF007E01FF87FFEFFFFFBDFE3C783C103C00000 +01F7B9:000087C2E7CEFFFEFFFEFFFE7FFC1FF07FFCFFFEFFFEFFFEE7CE87C207C00000 +01F7BA:8001E7E3FFEFFFFFFFFFFFFF7FFC1FF87FFEFFFFFFFFFFFFFFFFE7E787E10000 +01F7BB:000000004104210811100920054003807FFC0380054009201110210841040000 +01F7BC:000000006186318C19980DB007E07FFE7FFE07E00DB01998318C618641820000 +01F7BD:00000000638C739C3BB81FF00FE07FFC7FFC7FFC0FE01FF03BB8739C638C0000 +01F7BE:0000000073CE7BDE3FFC1FF87FFE7FFE7FFE7FFE1FF83FFC7BDE73CE63C60000 +01F7BF:0000E7CEF7DEFFFE7FFC3FF8FFFEFFFEFFFEFFFEFFFE3FF87FFCFFFEF7DEE7CE +01F7C0:0000000001000100010001000380038007C00EE01C7030184004000000000000 +01F7C1:00000000018001800180018003C003C007E00E70381C700E4002000000000000 +01F7C2:00000100038003800380038007C00FE01FF07FFCFC7EE00E8002000000000000 +01F7C3:000001000300058005C009E009E005C003F01EC83EE43AF4727C641C78000000 +01F7C4:00000000010001000100038003800FE07FFC0FE0038003800100010001000000 +01F7C5:00000000010001000380038007C01FF07FFC1FF007C003800380010001000000 +01F7C6:000000000100038003C007C01FF03FF87FFC3FF81FF007C007C0038001000000 +01F7C7:000000000100038002C006C018B03F887FFC23F81B3007400740038001000000 +01F7C8:00000100038005C004E004E018B83F84FFFF21FC1D180720072003A001C00080 +01F7C9:00000000000001000100038003807FFC1FF0038006C006C00C60183030180000 +01F7CA:000000000180018003C063C67FFE1FF80FF007E007E00E701C38381C700E0000 +01F7CB:0000000001000100038067CC3FF81FF00FE01FF03FF867CC0380010001000000 +01F7CC:000000000100038007C07FFC3FF81FF00FE01FF03FF87FFC07C0038001000000 +01F7CD:000000000100028006C07CFC3FD811100DE0171031D87E7C06C0028001000000 +01F7CE:00000000410421081BB01FF00FE01FF07FFC1FF00FE01FF01BB0210841040000 +01F7CF:00000000610C739C3FF81FF01FF03FF87FFC3FF81FF01FF03FF8739C610C0000 +01F7D0:00000100038007C01FF01FF03FF87FFCFFFE7FFC3FF81FF01FF007C003800100 +01F7D1:00000100028006C01EF016D03BB87D7C87C27D7C3BB816D01EF006C002800100 +01F7D2:0000000001001110092027C81FF00FE07FFC0FE01FF027C80920111001000000 +01F7D3:0000000001001BB01FF02FE81FF03FF87FFC3FF81FF02FE81FF01BB001000000 +01F7D4:0000000001001AB016D03AB817D0393847C4393817D03AB816D01AB001000000 +01F800:000000000000000000000000100030007FFE3000100000000000000000000000 +01F801:00000100038007C0010001000100010001000100010001000100010000000000 +01F802:0000000000000000000000000008000C7FFE000C000800000000000000000000 +01F803:0000010001000100010001000100010001000100010007C00380010000000000 +01F804:00000000000004000C001C003C007FFE7FFE3C001C000C000400000000000000 +01F805:0000018003C007E00FF01FF80180018001800180018001800180018000000000 +01F806:000000000000002000300038003C7FFE7FFE003C003800300020000000000000 +01F807:0000018001800180018001800180018001801FF80FF007E003C0018000000000 +01F808:0000000000000100030007000F001FFC3FFC1FFC0F0007000300010000000000 +01F809:000000000100038007C00FE01FF03FF803800380038003800380038000000000 +01F80A:000000000000008000C000E000F03FF83FFC3FF800F000E000C0008000000000 +01F80B:000000000380038003800380038003803FF81FF00FE007C00380010000000000 +01F810:000000000000000000000800180038007FFE3800180008000000000000000000 +01F811:00000100038007C00FE001000100010001000100010001000100010000000000 +01F812:0000000000000000000000100018001C7FFE001C001800100000000000000000 +01F813:00000100010001000100010001000100010001000FE007C00380010000000000 +01F814:00000000000000000000100030007FFE7FFE3000100000000000000000000000 +01F815:0000018003C007E0018001800180018001800180018001800180018000000000 +01F816:000000000000000000000008000C7FFE7FFE000C000800000000000000000000 +01F817:0000018001800180018001800180018001800180018007E003C0018000000000 +01F818:0000000000000000020006000E001FFC3FFC1FFC0E0006000200000000000000 +01F819:000000000100038007C00FE01FF0038003800380038003800380038000000000 +01F81A:00000000000000000040006000703FF83FFC3FF8007000600040000000000000 +01F81B:0000000003800380038003800380038003801FF00FE007C00380010000000000 +01F81C:00000000000000800180038007800FF81FF80FF8078003800180008000000000 +01F81D:000000000100038007C00FE01FF03FF803800380038003800000000000000000 +01F81E:0000000000000100018001C001E01FF01FF81FF001E001C00180010000000000 +01F81F:000000000000000003800380038003803FF81FF00FE007C00380010000000000 +01F820:000000000000000004000C001C003C007FFE3C001C000C000400000000000000 +01F821:00000100038007C00FE01FF00100010001000100010001000100010000000000 +01F822:0000000000000000002000300038003C7FFE003C003800300020000000000000 +01F823:0000010001000100010001000100010001001FF00FE007C00380010000000000 +01F824:00000000000000000800180038007FFE7FFE3800180008000000000000000000 +01F825:0000018003C007E00FF001800180018001800180018001800180018000000000 +01F826:000000000000000000100018001C7FFE7FFE001C001800100000000000000000 +01F827:00000180018001800180018001800180018001800FF007E003C0018000000000 +01F828:0000000000000000000004000C001FFC3FFC1FFC0C0004000000000000000000 +01F829:000000000100038007C00FE00380038003800380038003800380038000000000 +01F82A:00000000000000000000002000303FF83FFC3FF8003000200000000000000000 +01F82B:00000000038003800380038003800380038003800FE007C00380010000000000 +01F82C:0000000000000000000004000FFC1FFC3FFC1FFC0FFC04000000000000000000 +01F82D:000000000100038007C00FE007C007C007C007C007C007C007C007C000000000 +01F82E:0000000000000000000000203FF03FF83FFC3FF83FF000200000000000000000 +01F82F:0000000007C007C007C007C007C007C007C007C00FE007C00380010000000000 +01F830:000000000000020006000E001FFE3FFE7FFE7FFE3FFE1FFE0E00060002000000 +01F831:0000018003C007E00FF01FF83FFC07E007E007E007E007E007E007E000000000 +01F832:0000000000000040006000707FF87FFC7FFE7FFE7FFC7FF80070006000400000 +01F833:000007E007E007E007E007E007E007E03FFC1FF80FF007E003C0018000000000 +01F834:000000000000000000000FFE1FFE3FFE7FFE3FFE1FFE0FFE0000000000000000 +01F835:00000100038007C00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE000000000 +01F836:000000000000000000007FF07FF87FFC7FFE7FFC7FF87FF00000000000000000 +01F837:00000FE00FE00FE00FE00FE00FE00FE00FE00FE00FE007C00380010000000000 +01F838:000000000008183E7E3E180800000000 +01F839:0000000000081C3E7F1C1C0000000000 +01F83A:000000000010187C7E7C181000000000 +01F83B:0000000000001C1C7F3E1C0800000000 +01F83C:000000000008183C7C3C180800000000 +01F83D:0000000000081C3E7F1C000000000000 +01F83E:000000000010183C3E3C181000000000 +01F83F:000000000000001C7F3E1C0800000000 +01F840:000000000080018003E007E00FE01FE03FE01FE00FE007E003E0018000800000 +01F841:0000000000000100038007C00FE01FF03FF80FE00FE000000000000000000000 +01F842:000000000100018007C007E007F007F807FC07F807F007E007C0018001000000 +01F843:000000000000000000000FE00FE03FF81FF00FE007C003800100000000000000 +01F844:000000000000020006000FFE1FFE3FFE7FFE3FFE1FFE0FFE0600020000000000 +01F845:00000100038007C00FE01FF03FF80FE00FE00FE00FE00FE00FE00FE000000000 +01F846:000000000000004000607FF07FF87FFC7FFE7FFC7FF87FF00060004000000000 +01F847:00000FE00FE00FE00FE00FE00FE00FE03FF81FF00FE007C00380010000000000 +01F850:000000000000000000000800100020007FFE2000100008000000000000000000 +01F851:0000010003800540092001000100010001000100010001000100010000000000 +01F852:000000000000000000000010000800047FFE0004000800100000000000000000 +01F853:0000010001000100010001000100010001000100092005400380010000000000 +01F854:000000003E003000280024002200010000800040002000100008000400000000 +01F855:00000000007C000C001400240044008001000200040008001000200000000000 +01F856:000000002000100008000400020001000080004400240014000C007C00000000 +01F857:00000000000400080010002000400080010022002400280030003E0000000000 +01F858:000000000000000000000810100820047FFE2004100808100000000000000000 +01F859:0000010003800540092001000100010001000100092005400380010000000000 +01F860:000000000000020004000800100020007FFE2000100008000400020000000000 +01F861:0000010003800540092011102108010001000100010001000100010000000000 +01F862:000000000000004000200010000800047FFE0004000800100020004000000000 +01F863:0000010001000100010001000100010021081110092005400380010000000000 +01F864:000000003FC03000280024002200210020802040002000100008000400000000 +01F865:0000000003FC000C001400240044008401040204040008001000200000000000 +01F866:000000002000100008000400020401040084004400240014000C03FC00000000 +01F867:00000000000400080010002020402080210022002400280030003FC000000000 +01F868:000000000000038007000E001C003FFE7FFE3FFE1C000E000700038000000000 +01F869:00000100038007C00FE01FF03BB8339823880380038003800380038000000000 +01F86A:00000000000001C000E0007000387FFC7FFE7FFC0038007000E001C000000000 +01F86B:000003800380038003800380238833983BB81FF00FE007C00380010000000000 +01F86C:000000003FC03FE03C003E003700338031C030E010700038001C000800000000 +01F86D:0000000003FC07FC003C007C00EC01CC038C070C0E081C003800100000000000 +01F86E:00000000100038001C000E08070C038C01CC00EC007C003C07FC03FC00000000 +01F86F:000000000008001C0038107030E031C0338037003E003C003FE03FC000000000 +01F870:00000000038007000E001C003FFE7FFE7FFE3FFE1C000E000700038000000000 +01F871:0000018003C007E00FF01FF83BDC33CC23C403C003C003C003C003C000000000 +01F872:0000000001C000E0007000387FFC7FFE7FFE7FFC0038007000E001C000000000 +01F873:000003C003C003C003C003C023C433CC3BDC1FF80FF007E003C0018000000000 +01F874:00003F807FC07FE07E007F00778073C071E030F01078003C001E000C00080000 +01F875:000001FC03FE07FE007E00FE01EE03CE078E0F0C1E083C007800300010000000 +01F876:00001000300078003C001E080F0C078E03CE01EE00FE007E07FE03FE01FC0000 +01F877:00000008000C001E003C107830F071E073C077807F007E007FE07FC03F800000 +01F878:0000000001E003C007800F001FFE3FFE7FFE3FFE1FFE0F00078003C001E00000 +01F879:00000100038007C00FE01FF03FF87FFC77DC67CC47C407C007C007C000000000 +01F87A:00000000078003C001E000F07FF87FFC7FFE7FFC7FF800F001E003C007800000 +01F87B:000007C007C007C047C467CC77DC7FFC3FF81FF00FE007C00380010000000000 +01F87C:00003F807FC07FE07E007F007F8077C073E031F010F8007C003E001C00080000 +01F87D:000001FC03FE07FE007E00FE01FE03EE07CE0F8C1F083E007C00380010000000 +01F87E:0000100038007C003E001F080F8C07CE03EE01FE00FE007E07FE03FE01FC0000 +01F87F:00000008001C003E007C10F831F073E077C07F807F007E007FE07FC03F800000 +01F880:000000F001E003C007800FFE1FFE3FFE7FFE3FFE1FFE0FFE078003C001E000F0 +01F881:00000100038007C00FE01FF03FF87FFCFFFEEFEECFE68FE20FE00FE000000000 +01F882:00000F00078003C001E07FF07FF87FFC7FFE7FFC7FF87FF001E003C007800F00 +01F883:00000FE00FE08FE2CFE6EFEEFFFE7FFC3FF81FF00FE007C00380010000000000 +01F884:00007FC07FE07FF07FF87FC07FE07FF07FF87FFC3BFE19FC08F8007000200000 +01F885:000003FE07FE0FFE1FFE03FE07FE0FFE1FFE3FFE7FDC3F981F100E0004000000 +01F886:000004000E001F103F987FDC3FFE1FFE0FFE07FE03FE1FFE0FFE07FE03FE0000 +01F887:00000020007008F819FC3BFE7FFC7FF87FF07FE07FC07FF87FF07FE07FC00000 +01F890:00000000000002060E06020000000000 +01F891:000000000000000000000010387C0000 +01F892:00000000000040607060400000000000 +01F893:0000007C381000000000000000000000 +01F894:000000000000000800180038006800C8018000C8006800380018000800000000 +01F895:000000000000000000000000000000000100038006C00C6018303EF800000000 +01F896:000000000000100018001C00160013000180130016001C001800100000000000 +01F897:000000003EF818300C6006C00380010000000000000000000000000000000000 +01F898:000000000000020006000E001FFE3FFC7FF83FFC1FFE0E000600020000000000 +01F899:00000100038007C00FE01FF03FF807C007C007C007C007C006C0044000000000 +01F89A:0000000000000040006000707FF83FFC1FFE3FFC7FF800700060004000000000 +01F89B:0000044006C007C007C007C007C007C03FF81FF00FE007C00380010000000000 +01F89C:00000000000000FFFFFF000000000000 +01F89D:000000000000007E7E7E000000000000 +01F89E:000000000000003C3C3C000000000000 +01F89F:00000000000000181818000000000000 +01F8A0:000000000000020006000BFE10022002700238021FFE0FFE0600020000000000 +01F8A1:000000000000004000607FD040084004400E401C7FF87FF00060004000000000 +01F8A2:000000000000020006000FFE1FFE38027002200210020BFE0600020000000000 +01F8A3:000000000000004000607FF07FF8401C400E400440087FD00060004000000000 +01F8A4:000000000000020006000FFE1C023802700238021C020FFE0600020000000000 +01F8A5:000000000000004000607FF04038401C400E401C40387FF00060004000000000 +01F8A6:000000000000020006000FFE1BFE3006600630061BFE0FFE0600020000000000 +01F8A7:000000000000004000607FF07FD8600C6006600C7FD87FF00060004000000000 +01F8A8:000000000000000004000A0011F02008700439FC1FFE0E000600020000000000 +01F8A9:0000000000000000002000500F881004200E3F9C7FF800700060004000000000 +01F8AA:0000000000000000020006000E001FFE39FC7004200811F00A00040000000000 +01F8AB:00000000000000000040006000707FF83F9C200E10040F880050002000000000 +01F8AC:0000000000FF8181818181FF00000000 +01F8AD:00000000007E42424242427E00000000 diff --git a/font/ttfsrc/Makefile b/font/ttfsrc/Makefile index 2c98713..260e5ba 100644 --- a/font/ttfsrc/Makefile +++ b/font/ttfsrc/Makefile @@ -29,7 +29,7 @@ Licensed under the GNU General Public License; either version 2, or \ (at your option) a later version, with the GNU Font Embedding Exception." UNICODE_VERSION = 7.0 -PKG_REV = 05 +PKG_REV = 06 VERSION = $(UNICODE_VERSION).$(PKG_REV) # diff --git a/hangul/Makefile b/hangul/Makefile index c5021d9..f9d78d5 100644 --- a/hangul/Makefile +++ b/hangul/Makefile @@ -2,12 +2,13 @@ SHELL = /bin/sh BINDIR = ../bin +GZFLAGS = -f -9 -n # # assembly date of this version # UNICODE_VERSION = 7.0 -PKG_REV = 05 +PKG_REV = 06 VERSION = $(UNICODE_VERSION).$(PKG_REV) COPYRIGHT = "Copyright (C) 2013 Paul Hardy. \ @@ -32,7 +33,7 @@ hangul-hex: < hangul-base.hex | \ sed -e "s/[Ii][Ss][Oo]10646/Johab/g" >hangul-base.bdf bdftopcf < hangul-base.bdf > hangul-base.pcf - gzip -f -9 hangul-base.pcf + gzip $(GZFLAGS) hangul-base.pcf $(BINDIR)/johab2ucs2 < hangul-base.bdf > hangul-syllables.hex # Convert the .hex file containing all Unicode Hangul Syllables diff --git a/man/Makefile b/man/Makefile index ab6ac3c..a61cda1 100644 --- a/man/Makefile +++ b/man/Makefile @@ -1,12 +1,13 @@ SHELL = /bin/sh +GZFLAGS = -f -9 -n MAN1PAGES = bdfimplode.1 hex2bdf.1 hex2sfd.1 \ hexbraille.1 hexdraw.1 hexmerge.1 hexkinya.1 johab2ucs2.1 \ unibdf2hex.1 unibmp2hex.1 unicoverage.1 unidup.1 \ - unifontpic.1 unifontchojung.1 unifontksx.1 unifont-viewer.1 \ - unigencircles.1 unigenwidth.1 unihex2bmp.1 unihex2png.1 unihexgen.1 \ - unihexfill.1 unipagecount.1 unipng2hex.1 + unifontpic.1 unifontchojung.1 unifontksx.1 unigencircles.1 \ + unigenwidth.1 unihex2bmp.1 unihex2png.1 unihexgen.1 \ + unihexfill.1 unipagecount.1 unipng2hex.1 unifont-viewer.1 MAN5PAGES = unifont.5 @@ -35,8 +36,8 @@ install: if [ $(COMPRESS) = 0 ] ; then \ install -m0644 $(MAN1PAGES) $(INSTALLDIR)/man1 ; \ else \ - gzip -f -9 < $$i >$$i.gz ; \ - chmod 644 $$i.gz ; \ + gzip $(GZFLAGS) < $$i >$$i.gz && \ + chmod 644 $$i.gz && \ mv $$i.gz $(INSTALLDIR)/man1 ; \ fi \ done @@ -44,8 +45,8 @@ install: if [ $(COMPRESS) = 0 ] ; then \ install -m0644 $(MAN5PAGES) $(INSTALLDIR)/man5 ; \ else \ - gzip -f -9 < $$i >$$i.gz ; \ - chmod 644 $$i.gz ; \ + gzip $(GZFLAGS) < $$i >$$i.gz && \ + chmod 644 $$i.gz && \ mv $$i.gz $(INSTALLDIR)/man5 ; \ fi \ done diff --git a/src/Makefile b/src/Makefile index 370b21a..f3c1510 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,7 +1,7 @@ SHELL = /bin/sh -CFLAGS = -g -O -Wall +CFLAGS = -g -O2 -Wall LOCALBINDIR = ../bin @@ -26,8 +26,8 @@ CPROGS = unibmp2hex unicoverage unidup unibdf2hex unifontpic \ # only used for generation of Hangul syllables. # PPROGS = bdfimplode hex2bdf hex2sfd hexbraille hexdraw hexkinya hexmerge \ - johab2ucs2 unifont-viewer unifontchojung unifontksx unihex2png \ - unihexfill unipng2hex + johab2ucs2 unifontchojung unifontksx unihex2png unihexfill \ + unipng2hex unifont-viewer PROGS = $(CPROGS) $(PPROGS) @@ -38,27 +38,27 @@ all: $(CPROGS) bin bin: bin-stamp -bin-stamp: $(CPROGS) $(PPROGS) +bin-stamp: $(CPROGS) $(PPROGS) $(PNGPROGS) install -m0755 -d $(LOCALBINDIR) - install -m0755 $? $(LOCALBINDIR) +# install -m0755 $? $(LOCALBINDIR) + install -s -m0755 $(CPROGS) $(LOCALBINDIR) + install -m0755 $(PPROGS) $(LOCALBINDIR) \rm -f $(CPROGS) touch $@ -# install -s -m0755 $(CPROGS) $(LOCALBINDIR) -# install -m0755 $(PPROGS) $(LOCALBINDIR) install: if [ x$(PREFIX) = x ] ; \ then \ - echo "Fatal error: PREFIX directory is not defined." ; \ - echo "Run 'make install' from top-level directory" ; \ + echo "Fatal error: PREFIX directory is not defined." && \ + echo "Run 'make install' from top-level directory" && \ exit 1 ; \ fi install -m0755 -d $(INSTALLDIR) - set -e ; \ - cd $(LOCALBINDIR) ; \ + set -e && \ + cd $(LOCALBINDIR) && \ install -s -m0755 $(CPROGS) $(INSTALLDIR) - set -e ; \ - cd ../bin ; \ + set -e && \ + cd ../bin && \ install -m0755 $(PPROGS) $(INSTALLDIR) # diff --git a/src/bdfimplode b/src/bdfimplode index 4c92661..8584ff6 100755 --- a/src/bdfimplode +++ b/src/bdfimplode @@ -18,7 +18,7 @@ # along with this program. If not, see . # -if (/^ENCODING\s+(\d+)/) { printf ("%04X:", $1); } +if (/^ENCODING\s+(\d+)/) { printf ("%04X:", $1) or die ("Cannot print to stdout.\n"); } elsif (/^BITMAP/) { $BITMAP=1; } -elsif (/^ENDCHAR/) { $BITMAP=0; print "\n"; } -elsif ($BITMAP) { y/a-f/A-F/; s/\n$//; print; } +elsif (/^ENDCHAR/) { $BITMAP=0; print "\n" or die ("Cannot print to stdout.\n"); } +elsif ($BITMAP) { y/a-f/A-F/; s/\n$//; print or die ("Cannot print to stdout.\n"); } diff --git a/src/hex2bdf b/src/hex2bdf index 18d1d16..768d782 100755 --- a/src/hex2bdf +++ b/src/hex2bdf @@ -79,7 +79,7 @@ FONT_ASCENT 14 FONT_DESCENT 2 DEFAULT_CHAR 65533 ENDPROPERTIES -CHARS $nchars\n"; +CHARS $nchars\n" or die ("Cannot print to stdout.\n"); # TODO: $swidth needs to be modified to accomodate different widths better # for glyphs with height different than 16 pixels. @@ -101,7 +101,7 @@ SWIDTH $swidth 0 DWIDTH $dwidth 0 BBX $dwidth $vpixels 0 -2 BITMAP $glyph -ENDCHAR\n"; +ENDCHAR\n" or die ("Cannot print to stdout.\n"); } -print "ENDFONT\n"; +print "ENDFONT\n" or die ("Cannot print to stdout.\n"); diff --git a/src/hex2sfd b/src/hex2sfd index 4e1a45e..e794a0c 100755 --- a/src/hex2sfd +++ b/src/hex2sfd @@ -49,10 +49,10 @@ for ($i = 0; $i < 0x110000; $i++) { push (@combining, 0); } if ($#ARGV < 0) { - open (A, "<", "combining.txt"); + open (A, "<", "combining.txt") or die ("Cannot open combining.txt.\n"); } else { - open (A, "<", $ARGV[0]); + open (A, "<", $ARGV[0]) or die ("Cannot open specified combining file for input.\n"); } $maxcombining = 0; while () { @@ -63,7 +63,7 @@ while () { $maxcombining = $codepoint; } } -close (A); +close (A) or die ("Cannot properly close combining input file.\n"); $nglyphs = 0; # number of glyphs in font (none defined yet) @codepoints = (); # code points of hex bitmaps @@ -116,7 +116,7 @@ $descent = 2 * $pixel; $ascent = 16 * $pixel - $descent; $bitmask = 25; # round in x (doesn't really work), corner point selected -print << "END"; +print << "END" or die ("Cannot print to stdout.\n"); SplineFontDB: 1.0 FontName: unifont FullName: GNU Unifont @@ -184,7 +184,7 @@ for ($count = 0; $count < $nglyphs; $count++) { # $count++; # } -print << "END"; +print << "END" or die ("Cannot print to stdout.\n"); EndChars EndSplineFont END @@ -217,7 +217,7 @@ sub outline { $cn = -1; } # Changed "Flags: H" to "Flags: HW" to fix spaces - Paul Hardy, 2008 - print << "END"; + print << "END" or die ("Cannot print to stdout.\n"); StartChar: $charname Encoding: $cn $cn $count Width: $ptwidth @@ -245,7 +245,7 @@ END } else { if($prev) { $x2=$x * $pixel + $pixel; - print << "END"; + print << "END" or die ("Cannot print to stdout.\n"); $x1 $y1 m $bitmask $x1 $y2 l $bitmask $x2 $y2 l $bitmask @@ -259,7 +259,7 @@ END } if($prev) { $x2=0; - print << "END"; + print << "END" or die ("Cannot print to stdout.\n"); $x1 $y1 m $bitmask $x1 $y2 l $bitmask $x2 $y2 l $bitmask @@ -268,7 +268,7 @@ $x1 $y1 m $bitmask END } } - print << "END"; + print << "END" or die ("Cannot print to stdout.\n"); EndSplineSet EndChar END diff --git a/src/hexbraille b/src/hexbraille index 18dc616..c2f8e8b 100755 --- a/src/hexbraille +++ b/src/hexbraille @@ -44,5 +44,5 @@ for ($c = 0; $c < 256; ++ $c) $c & 64 ? 3 : 2, $c & 128 ? 6 : 2, $c & 64 ? 3 : 0, $c & 128 ? 6 : 0 - ); + ) or die ("Cannot print to stdout.\n"); } diff --git a/src/hexkinya b/src/hexkinya index 7c959bd..dab7fec 100755 --- a/src/hexkinya +++ b/src/hexkinya @@ -64,7 +64,7 @@ for ($i = 0; $i < 21 ; $i++) { for ($m = 0; $m < 8 ; $m++) { for ($f = 0; $f < 22 ; $f++) { $c = ($i * 176) + ($m * 22) + $f + 0xF0000; - printf ("%06X:%s%s%s\n", $c, substr ($init[$i], 0, 10), substr ($medi[$m], 10, 10), substr ($fina[$f], 20, 12)); + printf ("%06X:%s%s%s\n", $c, substr ($init[$i], 0, 10), substr ($medi[$m], 10, 10), substr ($fina[$f], 20, 12)) or die ("Cannot print to stdout.\n"); } } } diff --git a/src/hexmerge b/src/hexmerge index f38cd60..1ada352 100755 --- a/src/hexmerge +++ b/src/hexmerge @@ -25,7 +25,7 @@ while (<>) for (sort keys %G) { - print "$_:$G{$_}\n"; + print "$_:$G{$_}\n" or die ("Cannot print to stdout.\n"); } # hexmerge taipei16.hex cns-2-16.hex jisksp16.hex jiskan16.hex diff --git a/src/johab2ucs2 b/src/johab2ucs2 index 664a7f0..456e36e 100755 --- a/src/johab2ucs2 +++ b/src/johab2ucs2 @@ -277,7 +277,7 @@ for ( $j=0 ; $j < 11172 ; $j++ ) { $medial = int($j / 28 ) % 21+1 ; $final = $j % 28; - printf ("%04X:%64s\n", $j+0xAC00, &compose_hangul($init,$medial,$final)); + printf ("%04X:%64s\n", $j+0xAC00, &compose_hangul($init,$medial,$final)) or die ("Cannot print to stdout.\n"); } @@ -292,7 +292,7 @@ sub compose_hangul for ( $i = 0; $i < 32; $i++) { $bit[$i]=sprintf("%02X", - hex($l_bit[$i]) | hex($m_bit[$i]) | hex($f_bit[$i]) ); + hex($l_bit[$i]) | hex($m_bit[$i]) | hex($f_bit[$i]) ) or die ("Cannot print to stdout.\n"); } return pack("a2" x 32, @bit ); diff --git a/src/unifont-viewer b/src/unifont-viewer index 7556f4b..bc82d2e 100755 --- a/src/unifont-viewer +++ b/src/unifont-viewer @@ -12,7 +12,7 @@ sub LoadHexFile { my ($input) = @_; my %hexlist = (); - open (HEXFILE, "$input") or die ("Cannot open file\n"); + open (HEXFILE, "$input") or die ("Cannot open hex file for input\n"); while () { chomp; @@ -35,7 +35,7 @@ sub Hex2PNG { my %hexlist = %$hexlist_ref; if ($pagenum > 0x10FF) { - die ("Invalid page\n"); + die ("Invalid page.\n"); } my $charxoffset = 4; @@ -66,7 +66,7 @@ sub Hex2PNG { $ymax = 3; $charmaxwidth = 8; } else { - die ("Invalid height\n"); + die ("Invalid height.\n"); } # Create box and set as tile pattern @@ -217,12 +217,12 @@ sub load_gd { my ($self, $gd) = @_; my $png = $gd->png; - open my $fh, '<', \$png; + open my $fh, '<', \$png or die ("Cannot create PNG file for viewing.\n"); my $handler = Wx::PNGHandler->new (); my $image = Wx::Image->new (); my $bitmap; $handler->LoadFile ($image, $fh); - close $fh; + close $fh or die ("Cannot properly close output file.\n"); $bitmap = Wx::Bitmap->new ($image); if ($bitmap->Ok ()) { @@ -341,7 +341,7 @@ sub OpenFile { $self->{filename} = $dlg->GetPath (); $self->SetTitle ("Unifont Viewer - " . $dlg->GetFilename ()); - open HEXFILE, "<$self->{filename}" || die "Cannot open $self->{filename}\n"; + open HEXFILE, "<$self->{filename}" || die "Cannot open $self->{filename}.\n"; while () { chomp; @@ -395,10 +395,10 @@ sub SaveFile { $self->{imagepanel}->load_gd ($im); - open (PICTURE, ">$filename") or die ("Cannot save image\n"); + open (PICTURE, ">$filename") or die ("Cannot save image.\n"); binmode PICTURE; - print PICTURE $im->png; - close PICTURE; + print PICTURE $im->png or die; + close PICTURE or die ("Cannot properly close output file.\n"); } } } diff --git a/src/unifontchojung b/src/unifontchojung index a94e4dd..06cafbe 100755 --- a/src/unifontchojung +++ b/src/unifontchojung @@ -82,7 +82,7 @@ $nextchojung = shift(@chojung); # get first code point to find while (<>) { if (substr($nextchojung, 0, 5) eq substr($_, 0, 5)) { - print; # this is one of the syllables we're seeking; print it + print or die ("Cannot print to stdout.\n"); # this is one of the syllables we're seeking; print it # Now get next Hangul Syllable to find; if no more, exit. if ($#chojung < 0) { exit; diff --git a/src/unifontksx b/src/unifontksx index 40de726..e31bfe5 100755 --- a/src/unifontksx +++ b/src/unifontksx @@ -386,7 +386,7 @@ $nextksx = shift(@ksx); # get first code point to find while (<>) { if (substr($nextksx, 0, 5) eq substr($_, 0, 5)) { - print; # this is one of the syllables we're seeking; print it + print or die ("Cannot print to stdout.\n"); # this is one of the syllables we're seeking; print it # Now get next Hangul Syllable to find; if no more, exit. if ($#ksx < 0) { exit; diff --git a/src/unihex2png b/src/unihex2png index 3595f80..3708a59 100755 --- a/src/unihex2png +++ b/src/unihex2png @@ -38,7 +38,7 @@ $result = GetOptions ( ); if ($opt_help) { - print << "END"; + print << "END" or die ("Cannot print to stdout.\n"); Turn a GNU Unifont hex glyph page of 256 code points into a PNG file @@ -160,7 +160,7 @@ for ($count = 0; $count <= 15; $count++) { } if ($input) { - open (HEXFILE, "$input") or die ('Cannot open file\n'); + open (HEXFILE, "$input") or die ('Cannot open hex file for input.\n'); } else { *HEXFILE = *STDIN; } @@ -197,11 +197,11 @@ while () { } # Only close input file handler if it isn't STDIN. if ($input) { - close HEXFILE; + close HEXFILE or die ("Cannot properly close input file.\n"); } # Save image -open (PICTURE, ">$output") or die ("Cannot save image\n"); +open (PICTURE, ">$output") or die ("Cannot save image.\n"); binmode PICTURE; -print PICTURE $im->png; -close PICTURE; +print PICTURE $im->png or die ("Cannot write to picture file.\n"); +close PICTURE or die ("Cannot properly close output file.\n"); diff --git a/src/unihexfill b/src/unihexfill index 2008f32..8a270c7 100755 --- a/src/unihexfill +++ b/src/unihexfill @@ -2,6 +2,7 @@ # input is a start, stop range pair # output is a list of code points with hexadecimal filler glyphs +set -e grep "^[0-9A-Fa-f]" $1 | \ awk 'NF == 1 {print "unihexgen " $1 " " $1;} \ NF == 2 {print "unihexgen " $1 " " $2;}' | \ diff --git a/src/unipng2hex b/src/unipng2hex index 3da8f60..4519b64 100755 --- a/src/unipng2hex +++ b/src/unipng2hex @@ -37,7 +37,7 @@ $result = GetOptions ( ); if ($opt_help) { - print << "END"; + print << "END" or die ("Cannot print to stdout.\n"); Turn a .png glyph matrix into a GNU Unifont hex glyph set of 256 characters @@ -70,7 +70,7 @@ if (not $input) { #} GD::Image->trueColor (1); -$im = new GD::Image ("$input") or die ("Cannot open image\n"); +$im = new GD::Image ("$input") or die ("Cannot open image.\n"); if ($im->isTrueColor ()) { $im->trueColorToPalette (); @@ -185,7 +185,7 @@ $codepoint = ($codepoint << 4); $display_width = $codepoint > 0xFFFF ? 6 : 4; if ($output) { - open (HEXFILE, ">$output") or die ("Cannot save file\n"); + open (HEXFILE, ">$output") or die ("Cannot save hex file.\n"); } else { *HEXFILE = *STDOUT; } @@ -226,7 +226,7 @@ for ($col = 0; $col < 16; $col++) { $char = $char . sprintf ("%0*X", $charwidth * 2, $line); } - print HEXFILE "$char\n"; + print HEXFILE "$char\n" or die ("Cannot print to hex file.\n"); } $codepoint += 1; @@ -235,5 +235,5 @@ for ($col = 0; $col < 16; $col++) { # Only close HEXFILE if it isn't mapped to STDOUT. if ($output) { - close HEXFILE; + close HEXFILE or die ("Cannot properly close hex file.\n"); } -- 2.30.0