Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package sile for openSUSE:Factory checked in at 2023-10-12 23:40:55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/sile (Old) and /work/SRC/openSUSE:Factory/.sile.new.1807 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "sile" Thu Oct 12 23:40:55 2023 rev:10 rq:1117057 version:0.14.12 Changes: -------- --- /work/SRC/openSUSE:Factory/sile/sile.changes 2023-08-23 14:59:45.786220646 +0200 +++ /work/SRC/openSUSE:Factory/.sile.new.1807/sile.changes 2023-10-12 23:42:13.805160239 +0200 @@ -1,0 +2,14 @@ +Wed Oct 11 18:00:46 UTC 2023 - Gordon Leung <[email protected]> + +- Update to 0.14.12 + * Features + - i18n: Add Portuguese localizations for bibtex package + - utilities: Add utility function for console messages without trace info + * Bug Fixes + - build: Make sure vendored luarocks isn't a phony target that runs repeatedly + - core: Allocate exactly what we use, not a guess with an extra just in case + - core: Correct usage of HarfBuzz when passing a filtered list of shapers + - core: Fixup class loader so cache is all Lua module specs + - packages: Don't warn on TOC content change if not actually used + +------------------------------------------------------------------- Old: ---- sile-0.14.11.tar.xz New: ---- sile-0.14.12.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ sile.spec ++++++ --- /var/tmp/diff_new_pack.uyTN1h/_old 2023-10-12 23:42:14.337179497 +0200 +++ /var/tmp/diff_new_pack.uyTN1h/_new 2023-10-12 23:42:14.337179497 +0200 @@ -18,7 +18,7 @@ %bcond_without tests Name: sile -Version: 0.14.11 +Version: 0.14.12 Release: 0 Summary: Simonâs Improved Layout Engine Group: Productivity/Publishing ++++++ _service ++++++ --- /var/tmp/diff_new_pack.uyTN1h/_old 2023-10-12 23:42:14.381181089 +0200 +++ /var/tmp/diff_new_pack.uyTN1h/_new 2023-10-12 23:42:14.385181234 +0200 @@ -2,7 +2,7 @@ <service mode="manual" name="download_url"> <param name="protocol">https</param> <param name="host">github.com</param> - <param name="path">/sile-typesetter/sile/releases/download/v0.14.11/sile-0.14.11.tar.xz</param> + <param name="path">/sile-typesetter/sile/releases/download/v0.14.12/sile-0.14.12.tar.xz</param> </service> </services> ++++++ sile-0.14.11.tar.xz -> sile-0.14.12.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/.tarball-version new/sile-0.14.12/.tarball-version --- old/sile-0.14.11/.tarball-version 2023-08-23 05:00:28.716576472 +0200 +++ new/sile-0.14.12/.tarball-version 2023-10-11 18:31:26.600356617 +0200 @@ -1 +1 @@ -0.14.11 \ No newline at end of file +0.14.12 \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/CHANGELOG.md new/sile-0.14.12/CHANGELOG.md --- old/sile-0.14.11/CHANGELOG.md 2023-08-23 04:56:35.672209836 +0200 +++ new/sile-0.14.12/CHANGELOG.md 2023-10-11 18:27:29.356043345 +0200 @@ -2,6 +2,23 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [0.14.12](https://github.com/sile-typesetter/sile/compare/v0.14.11...v0.14.12) (2023-10-11) + + +### Features + +* **i18n:** Add Portuguese localizations for bibtex package ([#1859](https://github.com/sile-typesetter/sile/issues/1859)) ([f716c35](https://github.com/sile-typesetter/sile/commit/f716c35109d36c7cb2118ab9c7c65227d9941e01)) +* **utilities:** Add utility function for console messages without trace info ([18526ce](https://github.com/sile-typesetter/sile/commit/18526ce75eeb8deb12e9b232e727993409ed8e06)) + + +### Bug Fixes + +* **build:** Make sure vendored luarocks isn't a phony target that runs repeatedly ([713434d](https://github.com/sile-typesetter/sile/commit/713434dadbc271299c8548dd2f2d4af57c1eec62)) +* **core:** Allocate exactly what we use, not a guess with an extra just in case ([640ded0](https://github.com/sile-typesetter/sile/commit/640ded0a90e427124f555a2a48d263cde5300d7d)) +* **core:** Correct usage of HarfBuzz when passing a filtered list of shapers ([f488643](https://github.com/sile-typesetter/sile/commit/f4886437d0ebf229db1c2779a8a324bf441efc1a)) +* **core:** Fixup class loader so cache is all Lua module specs ([#1863](https://github.com/sile-typesetter/sile/issues/1863)) ([7efff5b](https://github.com/sile-typesetter/sile/commit/7efff5b7e94f0c4897910c064ef842e6be2e4ab1)) +* **packages:** Don't warn on TOC content change if not actually used ([87c443d](https://github.com/sile-typesetter/sile/commit/87c443d1571f571b595c3e32febdcb03129f5b9a)) + ### [0.14.11](https://github.com/sile-typesetter/sile/compare/v0.14.10...v0.14.11) (2023-08-23) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/Makefile-luarocks new/sile-0.14.12/Makefile-luarocks --- old/sile-0.14.11/Makefile-luarocks 2023-08-23 04:56:35.672209836 +0200 +++ new/sile-0.14.12/Makefile-luarocks 2023-10-11 18:27:29.356043345 +0200 @@ -4,16 +4,18 @@ LUAMODLOCK := sile-dev-1.rockslock LOCALLUAROCKS := $(LUAROCKS) --tree lua_modules --lua-version $(LUA_VERSION) -TMPFILE != mktemp genrockslock := $(LOCALLUAROCKS) $(LUAROCKSARGS) list --porcelain | $(AWK) '{print $$1 " " $$2}' rocksmatch := ( T=$$(mktemp); trap 'rm -f "$$T"' EXIT HUP TERM; $(genrockslock) > "$$T"; $(CMP) -s $(LUAMODLOCK) "$$T" ) -installrocks: $(LUAMODLOCK) $(shell $(rocksmatch) || echo lua_modules) +LUAROCKSMANIFEST := lua_modules/lib/luarocks/rocks-$(LUA_VERSION)/manifest -lua_modules: $(LUAMODSPEC) $(shell $(rocksmatch) || echo force) +installrocks: $(LUAMODLOCK) $(shell $(rocksmatch) || echo $(LUAROCKSMANIFEST)) + +$(LUAROCKSMANIFEST): $(LUAMODSPEC) $(shell $(rocksmatch) || echo force) $(LOCALLUAROCKS) $(LUAROCKSARGS) install --only-deps $< + touch $@ -$(LUAMODLOCK): lua_modules $(LUAMODSPEC) +$(LUAMODLOCK): $(LUAROCKSMANIFEST) $(LUAMODSPEC) $(genrockslock) > $@ else LUAMODLOCK := diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/Makefile.am new/sile-0.14.12/Makefile.am --- old/sile-0.14.11/Makefile.am 2023-08-23 04:56:35.672209836 +0200 +++ new/sile-0.14.12/Makefile.am 2023-10-11 18:27:29.356043345 +0200 @@ -228,14 +228,14 @@ busted: $(SILE) $(addprefix .fonts/,$(TESTFONTFILES)) $(BUSTEDSPECS) set -f; IFS=';' -if SYSTEM_LUAROCKS - packagecpath=(./{,core/}?.$(SHARED_LIB_EXT)) packagepath=(./{,lua-libraries/}?{,/init}.lua) -else - packagecpath=(./{,core/,lua_modules/lib/lua/$(LUA_VERSION)/}?.$(SHARED_LIB_EXT)) - packagepath=(./{,lua_modules/share/lua/$(LUA_VERSION)/,lua-libraries/}?{,/init}.lua) + packagecpath=(./{,core/,{libtexpdf,justenough}/.libs/}?.$(SHARED_LIB_EXT)) +if !SYSTEM_LUAROCKS + packagepath+=(./lua_modules/share/lua/$(LUA_VERSION)/?{,/init}.lua) + packagecpath+=(./lua_modules/lib/lua/$(LUA_VERSION)/?.$(SHARED_LIB_EXT)) endif - $(LOCALTESTFONTS) $(BUSTED) --cpath="$${packagecpath[*]};;" --lpath="$${packagepath[*]};;" $(BUSTEDFLAGS) . +# Note: use of --lua causes this to be passed back through a shell loosing one layer of quoting. Drop single quotes if removing. + $(LOCALFONTS) $(BUSTED) --lua=$(LUA) --lpath="'$${packagepath[*]};;'" --cpath="'$${packagecpath[*]};;'" $(BUSTEDFLAGS) . coverage: export SILE_COVERAGE=1 coverage: BUSTEDFLAGS = -c diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/Makefile.in new/sile-0.14.12/Makefile.in --- old/sile-0.14.11/Makefile.in 2023-08-23 05:00:28.736577456 +0200 +++ new/sile-0.14.12/Makefile.in 2023-10-11 18:31:26.624358762 +0200 @@ -455,6 +455,7 @@ @SYSTEM_LUAROCKS_FALSE@LOCALLUAROCKS := $(LUAROCKS) --tree lua_modules --lua-version $(LUA_VERSION) @SYSTEM_LUAROCKS_FALSE@genrockslock := $(LOCALLUAROCKS) $(LUAROCKSARGS) list --porcelain | $(AWK) '{print $$1 " " $$2}' @SYSTEM_LUAROCKS_FALSE@rocksmatch := ( T=$$(mktemp); trap 'rm -f "$$T"' EXIT HUP TERM; $(genrockslock) > "$$T"; $(CMP) -s $(LUAMODLOCK) "$$T" ) +@SYSTEM_LUAROCKS_FALSE@LUAROCKSMANIFEST := lua_modules/lib/luarocks/rocks-$(LUA_VERSION)/manifest # List of font files we _actually need_ @FONT_DOWNLOAD_TOOLS_TRUE@DEFSFONTFILES = GentiumPlus-R.ttf GentiumPlus-I.ttf @@ -1247,14 +1248,14 @@ .SECONDEXPANSION: .DELETE_ON_ERROR: .PHONY: installrocks -@SYSTEM_LUAROCKS_FALSE@TMPFILE != mktemp -@SYSTEM_LUAROCKS_FALSE@installrocks: $(LUAMODLOCK) $(shell $(rocksmatch) || echo lua_modules) +@SYSTEM_LUAROCKS_FALSE@installrocks: $(LUAMODLOCK) $(shell $(rocksmatch) || echo $(LUAROCKSMANIFEST)) -@SYSTEM_LUAROCKS_FALSE@lua_modules: $(LUAMODSPEC) $(shell $(rocksmatch) || echo force) +@SYSTEM_LUAROCKS_FALSE@$(LUAROCKSMANIFEST): $(LUAMODSPEC) $(shell $(rocksmatch) || echo force) @SYSTEM_LUAROCKS_FALSE@ $(LOCALLUAROCKS) $(LUAROCKSARGS) install --only-deps $< +@SYSTEM_LUAROCKS_FALSE@ touch $@ -@SYSTEM_LUAROCKS_FALSE@$(LUAMODLOCK): lua_modules $(LUAMODSPEC) +@SYSTEM_LUAROCKS_FALSE@$(LUAMODLOCK): $(LUAROCKSMANIFEST) $(LUAMODSPEC) @SYSTEM_LUAROCKS_FALSE@ $(genrockslock) > $@ @[email protected]: fonttooling @@ -1510,11 +1511,12 @@ @DEVELOPER_TRUE@busted: $(SILE) $(addprefix .fonts/,$(TESTFONTFILES)) $(BUSTEDSPECS) @DEVELOPER_TRUE@ set -f; IFS=';' -@DEVELOPER_TRUE@@SYSTEM_LUAROCKS_TRUE@ packagecpath=(./{,core/}?.$(SHARED_LIB_EXT)) -@DEVELOPER_TRUE@@SYSTEM_LUAROCKS_TRUE@ packagepath=(./{,lua-libraries/}?{,/init}.lua) -@DEVELOPER_TRUE@@SYSTEM_LUAROCKS_FALSE@ packagecpath=(./{,core/,lua_modules/lib/lua/$(LUA_VERSION)/}?.$(SHARED_LIB_EXT)) -@DEVELOPER_TRUE@@SYSTEM_LUAROCKS_FALSE@ packagepath=(./{,lua_modules/share/lua/$(LUA_VERSION)/,lua-libraries/}?{,/init}.lua) -@DEVELOPER_TRUE@ $(LOCALTESTFONTS) $(BUSTED) --cpath="$${packagecpath[*]};;" --lpath="$${packagepath[*]};;" $(BUSTEDFLAGS) . +@DEVELOPER_TRUE@ packagepath=(./{,lua-libraries/}?{,/init}.lua) +@DEVELOPER_TRUE@ packagecpath=(./{,core/,{libtexpdf,justenough}/.libs/}?.$(SHARED_LIB_EXT)) +@DEVELOPER_TRUE@@SYSTEM_LUAROCKS_FALSE@ packagepath+=(./lua_modules/share/lua/$(LUA_VERSION)/?{,/init}.lua) +@DEVELOPER_TRUE@@SYSTEM_LUAROCKS_FALSE@ packagecpath+=(./lua_modules/lib/lua/$(LUA_VERSION)/?.$(SHARED_LIB_EXT)) +# Note: use of --lua causes this to be passed back through a shell loosing one layer of quoting. Drop single quotes if removing. +@DEVELOPER_TRUE@ $(LOCALFONTS) $(BUSTED) --lua=$(LUA) --lpath="'$${packagepath[*]};;'" --cpath="'$${packagecpath[*]};;'" $(BUSTEDFLAGS) . @DEVELOPER_TRUE@coverage: export SILE_COVERAGE=1 @DEVELOPER_TRUE@coverage: BUSTEDFLAGS = -c diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/README.md new/sile-0.14.12/README.md --- old/sile-0.14.11/README.md 2023-08-23 04:56:35.672209836 +0200 +++ new/sile-0.14.12/README.md 2023-10-11 18:27:29.356043345 +0200 @@ -65,9 +65,8 @@ $ pacman -S sile ``` -The official package uses Lua 5.4. -Alternatively, a package that uses LuaJIT may be built manually from the [Arch User Repository][aur] using [sile-luajit][aur-sile-luajit]. -A VCS package is also available as [sile-git][aur-sile-git] to build from the latest Git commit. +The official package uses LuaJIT. +If you install LuaRocks for use with SILE via `pacman`, use the `lua51-*` variants to match LuaJIT. #### Fedora @@ -197,7 +196,7 @@ export PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig" Optionally you may install the Lua libraries listed in the [rockspec][] to your system (using either your system's package manager or [luarocks][] (`luarocks install --only-deps sile-dev-1.rockspec`). -By default all the required Lua libraries will be downloaded and bundled alongside the SILE the instalation. +By default all the required Lua libraries will be downloaded and bundled alongside the SILE the installation. If you downloaded a source tarball these dependencies are included, if you are using a git clone of the source repository the build system will require `luarocks` to fetch them during build. Note that OpenSSL development headers will be required for one of the Lua modules to compile¹. If your system has all the required packages already you may add `--with-system-luarocks` to the `./configure` command to avoid bundling them. @@ -330,8 +329,6 @@ Please report bugs and send patches and pull requests at the [github repository][github]. For questions and discussion, please join the [mailing list][list-en]. -æ¥æ¬èªå©ç¨è ã¯[ã¡ã¼ãªã³ã°ãªã¹ã][list-ja]ã«åå ãã¦ãã ããã - ## License Terms SILE is distributed under the [MIT licence][license]. @@ -353,15 +350,12 @@ [libtexpdf]: https://github.com/sile-typesetter/libtexpdf [arch-sile]: https://archlinux.org/packages/community/x86_64/sile/ [aur]: https://wiki.archlinux.org/index.php/Arch_User_Repository - [aur-sile-luajit]: https://aur.archlinux.org/packages/sile-luajit/ - [aur-sile-git]: https://aur.archlinux.org/packages/sile-git/ [typesetting]: https://en.wikipedia.org/wiki/Typesetting [tex]: https://en.wikipedia.org/wiki/TeX [indesign]: https://en.wikipedia.org/wiki/Adobe_InDesign [brew]: http://brew.sh [brewfonts]: https://github.com/Homebrew/homebrew-cask-fonts [list-en]: https://groups.google.com/d/forum/sile-users - [list-ja]: https://groups.google.com/d/forum/sile-users-ja [nix]: https://nixos.org/nix [nix-flakes]: https://nixos.wiki/wiki/Flakes#Installing_flakes [ports]: http://ports.su/print/sile diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/build-aux/ax_lua.m4 new/sile-0.14.12/build-aux/ax_lua.m4 --- old/sile-0.14.11/build-aux/ax_lua.m4 2023-08-23 04:56:35.676210015 +0200 +++ new/sile-0.14.12/build-aux/ax_lua.m4 2023-10-11 18:27:29.356043345 +0200 @@ -9,8 +9,8 @@ dnl Find a Lua interpreter. AM_COND_IF([LUAJIT], - [_ax_lua_interpreter_list="luajit luajit-2.1.0-beta3 luajit-2.0.5 luajit-2.0.4 luajit-2.0.3"], - [_ax_lua_interpreter_list="lua lua5.4 lua54 lua5.3 lua53 lua5.2 lua52 lua5.1 lua51 lua5.0 lua50"]) + [_ax_lua_interpreter_list="luajit luajit-2.1.0-beta3 luajit-2.0.5 luajit-2.0.4 luajit-2.0.3"], + [_ax_lua_interpreter_list="lua lua5.4 lua54 lua5.3 lua53 lua5.2 lua52 lua5.1 lua51 lua5.0 lua50"]) m4_if([$1], [], [ dnl No version check is needed. Find any Lua interpreter. @@ -71,21 +71,21 @@ m4_default([$4], [AC_MSG_ERROR([cannot find suitable Lua interpreter])]) ], [ dnl Query Lua for its version number. - AC_CACHE_CHECK([for $ax_display_LUA version], [ax_cv_lua_version], - [ ax_cv_lua_version=`$LUA -e 'print(_VERSION:match "(%d+%.%d+)")'` ]) - AS_IF([test "x$ax_cv_lua_version" = 'x'], - [AC_MSG_ERROR([invalid Lua version number])]) - AC_SUBST([LUA_VERSION], [$ax_cv_lua_version]) - AC_SUBST([LUA_SHORT_VERSION], [`echo "$LUA_VERSION" | $SED 's|\.||'`]) - - AM_COND_IF([LUAJIT], [ - AC_CACHE_CHECK([for $ax_display_LUA jit version], [ax_cv_luajit_version], - [ ax_cv_luajit_version=`$LUA -e 'print(jit and jit.version:match "(%d+%..+)")'` ]) - AS_IF([test "x$ax_cv_luajit_version" = 'x'], - [AC_MSG_ERROR([invalid Lua version number])]) - AC_SUBST([LUAJIT_VERSION], [$ax_cv_luajit_version]) - AC_SUBST([LUAJIT_SHORT_VERSION], [`echo "$LUAJIT_VERSION" | $SED 's|\.|§|;s|\..*||;s|§|.|'`]) - ]) + AC_CACHE_CHECK([for $ax_display_LUA version], [ax_cv_lua_version], + [ ax_cv_lua_version=`$LUA -e 'print(_VERSION:match "(%d+%.%d+)")'` ]) + AS_IF([test "x$ax_cv_lua_version" = 'x'], + [AC_MSG_ERROR([invalid Lua version number])]) + AC_SUBST([LUA_VERSION], [$ax_cv_lua_version]) + AC_SUBST([LUA_SHORT_VERSION], [`echo "$LUA_VERSION" | $SED 's|\.||'`]) + + AM_COND_IF([LUAJIT], [ + AC_CACHE_CHECK([for $ax_display_LUA jit version], [ax_cv_luajit_version], + [ ax_cv_luajit_version=`$LUA -e 'print(jit and jit.version:match "(%d+%..+)")'` ]) + AS_IF([test "x$ax_cv_luajit_version" = 'x'], + [AC_MSG_ERROR([invalid Lua version number])]) + AC_SUBST([LUAJIT_VERSION], [$ax_cv_luajit_version]) + AC_SUBST([LUAJIT_SHORT_VERSION], [`echo "$LUAJIT_VERSION" | $SED 's|\.|§|;s|\..*||;s|§|.|'`]) + ]) dnl The following check is not supported: dnl At times (like when building shared libraries) you may want to know @@ -196,12 +196,12 @@ AC_DEFUN([_AX_LUAJIT_CHK_VER], [ AS_IF([$1 2>/dev/null -e ' - function norm (v) - i,j=v:match "(%d+)%.(%d+)" if i then return 100 * i + j end - end - v, toobig=norm (jit.version), norm "$3" or math.huge - os.exit ((v >= norm ("$2") and v < toobig) and 0 or 1)'], - [$4], [$5]) + function norm (v) + i,j=v:match "(%d+)%.(%d+)" if i then return 100 * i + j end + end + v, toobig=norm (jit.version), norm "$3" or math.huge + os.exit ((v >= norm ("$2") and v < toobig) and 0 or 1)'], + [$4], [$5]) ]) @@ -246,8 +246,8 @@ dnl Some default directories to search. AM_COND_IF([LUAJIT], - [_ax_lua_include_list="/usr/include/luajit-$LUAJIT_VERSION /usr/include/luajit-$LUAJIT_SHORT_VERSION /usr/local/include/luajit-$LUAJIT_VERSION /usr/local/include/luajit-$LUAJIT_SHORT_VERSION"], - [_ax_lua_include_list="/usr/include/lua$LUA_VERSION /usr/include/lua/$LUA_VERSION /usr/include/lua$LUA_SHORT_VERSION /usr/local/include/lua$LUA_VERSION /usr/local/include/lua-$LUA_VERSION /usr/local/include/lua/$LUA_VERSION /usr/local/include/lua$LUA_SHORT_VERSION"]) + [_ax_lua_include_list="/usr/include/luajit-$LUAJIT_VERSION /usr/include/luajit-$LUAJIT_SHORT_VERSION /usr/local/include/luajit-$LUAJIT_VERSION /usr/local/include/luajit-$LUAJIT_SHORT_VERSION"], + [_ax_lua_include_list="/usr/include/lua$LUA_VERSION /usr/include/lua/$LUA_VERSION /usr/include/lua$LUA_SHORT_VERSION /usr/local/include/lua$LUA_VERSION /usr/local/include/lua-$LUA_VERSION /usr/local/include/lua/$LUA_VERSION /usr/local/include/lua$LUA_SHORT_VERSION"]) dnl Try to find the headers. _ax_lua_saved_cppflags=$CPPFLAGS @@ -258,12 +258,12 @@ dnl Try some other directories if LUA_INCLUDE was not set. AS_IF([test "x$LUA_INCLUDE" = 'x' && - test "x$ac_cv_header_lua_h" != "xyes" || - test "x$with_luajit" = "xyes" && - test "x$ac_cv_header_luajit_h" != 'xyes'], - [ dnl Try some common include paths. - for _ax_include_path in $_ax_lua_include_list; do - test ! -d "$_ax_include_path" && continue + test "x$ac_cv_header_lua_h" != "xyes" || + test "x$with_luajit" = "xyes" && + test "x$ac_cv_header_luajit_h" != 'xyes'], + [ dnl Try some common include paths. + for _ax_include_path in $_ax_lua_include_list; do + test ! -d "$_ax_include_path" && continue AC_MSG_CHECKING([for Lua headers in]) AC_MSG_RESULT([$_ax_include_path]) @@ -277,7 +277,7 @@ _ax_lua_saved_cppflags=$CPPFLAGS CPPFLAGS="$CPPFLAGS -I$_ax_include_path" AC_CHECK_HEADERS([lua.h lualib.h lauxlib.h luaconf.h]) - AM_COND_IF([LUAJIT], [AC_CHECK_HEADERS([luajit.h])]) + AM_COND_IF([LUAJIT], [AC_CHECK_HEADERS([luajit.h])]) CPPFLAGS=$_ax_lua_saved_cppflags AS_IF([test "x$ac_cv_header_lua_h" = 'xyes'], @@ -397,18 +397,18 @@ dnl Try to find the Lua libs. _ax_lua_saved_libs=$LIBS LIBS="$LIBS $LUA_LIB" - AM_COND_IF([LUAJIT], - [AC_SEARCH_LIBS([lua_load], - [luajit$LUA_VERSION luajit$LUA_SHORT_VERSION luajit-$LUA_VERSION luajit-$LUA_SHORT_VERSION luajit], - [_ax_found_lua_libs='yes'], - [_ax_found_lua_libs='no'], - [$_ax_lua_extra_libs])], - [AC_SEARCH_LIBS([lua_load], - [lua$LUA_VERSION lua$LUA_SHORT_VERSION lua-$LUA_VERSION lua-$LUA_SHORT_VERSION lua], - [_ax_found_lua_libs='yes'], - [_ax_found_lua_libs='no'], - [$_ax_lua_extra_libs])]) - LIBS=$_ax_lua_saved_libs + AM_COND_IF([LUAJIT], + [AC_SEARCH_LIBS([lua_load], + [luajit$LUA_VERSION luajit$LUA_SHORT_VERSION luajit-$LUA_VERSION luajit-$LUA_SHORT_VERSION luajit], + [_ax_found_lua_libs='yes'], + [_ax_found_lua_libs='no'], + [$_ax_lua_extra_libs])], + [AC_SEARCH_LIBS([lua_load], + [lua$LUA_VERSION lua$LUA_SHORT_VERSION lua-$LUA_VERSION lua-$LUA_SHORT_VERSION lua], + [_ax_found_lua_libs='yes'], + [_ax_found_lua_libs='no'], + [$_ax_lua_extra_libs])]) + LIBS=$_ax_lua_saved_libs AS_IF([test "x$ac_cv_search_lua_load" != 'xno' && test "x$ac_cv_search_lua_load" != 'xnone required'], diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/classes/base.lua new/sile-0.14.12/classes/base.lua --- old/sile-0.14.11/classes/base.lua 2023-08-23 04:56:35.676210015 +0200 +++ new/sile-0.14.12/classes/base.lua 2023-10-11 18:27:29.356043345 +0200 @@ -575,8 +575,8 @@ end SILE.typesetter:runHooks("pageend") -- normally run by the typesetter self:endPage() - if SILE.typesetter then - assert(SILE.typesetter:isQueueEmpty(), "queues not empty") + if SILE.typesetter and not SILE.typesetter:isQueueEmpty() then + SU.error("Queues are not empty as expected after ending last page", true) end SILE.outputter:finish() self:runHooks("finish") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/classes/docbook.lua new/sile-0.14.12/classes/docbook.lua --- old/sile-0.14.11/classes/docbook.lua 2023-08-23 04:56:35.676210015 +0200 +++ new/sile-0.14.12/classes/docbook.lua 2023-10-11 18:27:29.356043345 +0200 @@ -21,7 +21,7 @@ self:loadPackage("footnotes") -- SILE sensibly does not define a pixels unit because it has no meaning in its frame of reference. However the -- Docbook standard requires them and even defaults to them for bare numbers, even while warning against their use. - -- Here we define a px arbitrarily to be the equivilent point unit if output was 300 DPI. + -- Here we define a px arbitrarily to be the equivalent point unit if output was 300 DPI. SILE.units.px = { definition = "0.24pt" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/classes/plain.lua new/sile-0.14.12/classes/plain.lua --- old/sile-0.14.11/classes/plain.lua 2023-08-23 04:56:35.676210015 +0200 +++ new/sile-0.14.12/classes/plain.lua 2023-10-11 18:27:29.356043345 +0200 @@ -76,7 +76,7 @@ self:registerCommand("noindent", function (_, content) if #SILE.typesetter.state.nodes ~= 0 then - SU.warn("\\noindent called after nodes already recieved in a paragraph, the setting will have no effect because the parindent (if any) has already been output") + SU.warn("\\noindent called after nodes already received in a paragraph, the setting will have no effect because the parindent (if any) has already been output") end SILE.settings:set("current.parindent", SILE.nodefactory.glue()) SILE.process(content) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/classes/tplain.lua new/sile-0.14.12/classes/tplain.lua --- old/sile-0.14.11/classes/tplain.lua 2023-08-23 04:56:35.676210015 +0200 +++ new/sile-0.14.12/classes/tplain.lua 2023-10-11 18:27:29.356043345 +0200 @@ -14,7 +14,7 @@ } -- The classes tplain and tbook inherit from plain and book respectively but also --- have this bit in common; this makes it accessable +-- have this bit in common; this makes it accessible function class:_t_common () self:loadPackage("font-fallback") self:loadPackage("hanmenkyoshi") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/configure new/sile-0.14.12/configure --- old/sile-0.14.11/configure 2023-08-23 04:57:22.334481118 +0200 +++ new/sile-0.14.12/configure 2023-10-11 18:28:06.437714849 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for sile 0.14.11. +# Generated by GNU Autoconf 2.71 for sile 0.14.12. # # Report bugs to <[email protected]>. # @@ -621,8 +621,8 @@ # Identity of this package. PACKAGE_NAME='sile' PACKAGE_TARNAME='sile' -PACKAGE_VERSION='0.14.11' -PACKAGE_STRING='sile 0.14.11' +PACKAGE_VERSION='0.14.12' +PACKAGE_STRING='sile 0.14.12' PACKAGE_BUGREPORT='[email protected]' PACKAGE_URL='' @@ -1461,7 +1461,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures sile 0.14.11 to adapt to many kinds of systems. +\`configure' configures sile 0.14.12 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1532,7 +1532,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of sile 0.14.11:";; + short | recursive ) echo "Configuration of sile 0.14.12:";; esac cat <<\_ACEOF @@ -1683,7 +1683,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -sile configure 0.14.11 +sile configure 0.14.12 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2030,7 +2030,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by sile $as_me 0.14.11, which was +It was created by sile $as_me 0.14.12, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3301,7 +3301,7 @@ # Define the identity of the package. PACKAGE='sile' - VERSION='0.14.11' + VERSION='0.14.12' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -14763,11 +14763,6 @@ fi - case $host_os in - msys) - LUA_VERSION=5.3 # By fiat. This is obviously not good. - ;; - *) @@ -14908,7 +14903,7 @@ as_fn_error $? "cannot find suitable Lua interpreter" "$LINENO" 5 else $as_nop - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ax_display_LUA version" >&5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ax_display_LUA version" >&5 printf %s "checking for $ax_display_LUA version... " >&6; } if test ${ax_cv_lua_version+y} then : @@ -14918,18 +14913,18 @@ fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_lua_version" >&5 printf "%s\n" "$ax_cv_lua_version" >&6; } - if test "x$ax_cv_lua_version" = 'x' + if test "x$ax_cv_lua_version" = 'x' then : as_fn_error $? "invalid Lua version number" "$LINENO" 5 fi - LUA_VERSION=$ax_cv_lua_version + LUA_VERSION=$ax_cv_lua_version - LUA_SHORT_VERSION=`echo "$LUA_VERSION" | $SED 's|\.||'` + LUA_SHORT_VERSION=`echo "$LUA_VERSION" | $SED 's|\.||'` - if test -z "$LUAJIT_TRUE"; then : + if test -z "$LUAJIT_TRUE"; then : - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ax_display_LUA jit version" >&5 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ax_display_LUA jit version" >&5 printf %s "checking for $ax_display_LUA jit version... " >&6; } if test ${ax_cv_luajit_version+y} then : @@ -14939,13 +14934,13 @@ fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_luajit_version" >&5 printf "%s\n" "$ax_cv_luajit_version" >&6; } - if test "x$ax_cv_luajit_version" = 'x' + if test "x$ax_cv_luajit_version" = 'x' then : as_fn_error $? "invalid Lua version number" "$LINENO" 5 fi - LUAJIT_VERSION=$ax_cv_luajit_version + LUAJIT_VERSION=$ax_cv_luajit_version - LUAJIT_SHORT_VERSION=`echo "$LUAJIT_VERSION" | $SED 's|\.|§|;s|\..*||;s|§|.|'` + LUAJIT_SHORT_VERSION=`echo "$LUAJIT_VERSION" | $SED 's|\.|§|;s|\..*||;s|§|.|'` fi @@ -15058,9 +15053,6 @@ fi - ;; - esac - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if LUA_VERSION is defined" >&5 printf %s "checking if LUA_VERSION is defined... " >&6; } @@ -15122,12 +15114,12 @@ CPPFLAGS=$_ax_lua_saved_cppflags if test "x$LUA_INCLUDE" = 'x' && - test "x$ac_cv_header_lua_h" != "xyes" || - test "x$with_luajit" = "xyes" && - test "x$ac_cv_header_luajit_h" != 'xyes' + test "x$ac_cv_header_lua_h" != "xyes" || + test "x$with_luajit" = "xyes" && + test "x$ac_cv_header_luajit_h" != 'xyes' then : - for _ax_include_path in $_ax_lua_include_list; do - test ! -d "$_ax_include_path" && continue + for _ax_include_path in $_ax_lua_include_list; do + test ! -d "$_ax_include_path" && continue { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Lua headers in" >&5 printf %s "checking for Lua headers in... " >&6; } @@ -15167,7 +15159,7 @@ fi - if test -z "$LUAJIT_TRUE"; then : + if test -z "$LUAJIT_TRUE"; then : ac_fn_c_check_header_compile "$LINENO" "luajit.h" "ac_cv_header_luajit_h" "$ac_includes_default" if test "x$ac_cv_header_luajit_h" = xyes then : @@ -15501,7 +15493,7 @@ _ax_lua_saved_libs=$LIBS LIBS="$LIBS $LUA_LIB" - if test -z "$LUAJIT_TRUE"; then : + if test -z "$LUAJIT_TRUE"; then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing lua_load" >&5 printf %s "checking for library containing lua_load... " >&6; } if test ${ac_cv_search_lua_load+y} @@ -15626,7 +15618,7 @@ fi fi - LIBS=$_ax_lua_saved_libs + LIBS=$_ax_lua_saved_libs if test "x$ac_cv_search_lua_load" != 'xno' && test "x$ac_cv_search_lua_load" != 'xnone required' @@ -17302,7 +17294,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by sile $as_me 0.14.11, which was +This file was extended by sile $as_me 0.14.12, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17361,7 +17353,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -sile config.status 0.14.11 +sile config.status 0.14.12 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/configure.ac new/sile-0.14.12/configure.ac --- old/sile-0.14.11/configure.ac 2023-08-23 04:56:35.676210015 +0200 +++ new/sile-0.14.12/configure.ac 2023-10-11 18:27:29.360043939 +0200 @@ -150,15 +150,7 @@ fi ]) - case $host_os in - msys) - LUA_VERSION=5.3 # By fiat. This is obviously not good. - ;; - *) - AX_PROG_LUA([5.1]) - ;; - esac - + AX_PROG_LUA([5.1]) AX_LUA_HEADERS AX_LUA_LIBS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/core/break.lua new/sile-0.14.12/core/break.lua --- old/sile-0.14.11/core/break.lua 2023-08-23 04:56:35.680210194 +0200 +++ new/sile-0.14.12/core/break.lua 2023-10-11 18:27:29.360043939 +0200 @@ -91,7 +91,7 @@ -- up to the that total. Returning values that don't add up may produce -- unexpected results. -- --- TeX wizards shall also note that this is slighty different from +-- TeX wizards shall also note that this is slightly different from -- Knuth's definition "nline l1 i1 l2 i2 ... lN iN". function lineBreak:parShape(_) return 0, self.hsize, 0 @@ -176,7 +176,7 @@ end -- 861 if self.r.lineNumber > self.old_l then - if debugging then SU.debug("break", "Mimimum demerits = " .. self.minimumDemerits) end + if debugging then SU.debug("break", "Minimum demerits = " .. self.minimumDemerits) end if self.minimumDemerits < awful_bad and (self.old_l ~= self.easy_line or self.r == self.activeListHead) then self:createNewActiveNodes(breakType) end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/core/nodefactory.lua new/sile-0.14.12/core/nodefactory.lua --- old/sile-0.14.11/core/nodefactory.lua 2023-08-23 04:56:35.680210194 +0200 +++ new/sile-0.14.12/core/nodefactory.lua 2023-10-11 18:27:29.364044533 +0200 @@ -255,7 +255,7 @@ getmetatable(nodefactory.unshaped).__index = function (_, _) -- if k == "width" then SU.error("Can't get width of unshaped node", true) end -- TODO: No idea why porting to proper Penlight classes this ^^^^^^ started - -- killing everything. Perhaps becaus this function started working and would + -- killing everything. Perhaps because this function started working and would -- actually need to return rawget(self, k) or something? end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/core/sile.lua new/sile-0.14.12/core/sile.lua --- old/sile-0.14.11/core/sile.lua 2023-08-23 04:56:35.680210194 +0200 +++ new/sile-0.14.12/core/sile.lua 2023-10-11 18:27:29.364044533 +0200 @@ -59,8 +59,8 @@ SILE.rawHandlers = {} -- User input values, currently from CLI options, potentially all the inuts --- needed for a user to use a SILE-as-a-library verion to produce documents --- programatically. +-- needed for a user to use a SILE-as-a-library version to produce documents +-- programmatically. SILE.input = { filenames = {}, evaluates = {}, @@ -97,7 +97,7 @@ -- NOTE: -- See remainaing internal libraries loaded at the end of this file because --- they run core SILE functions on load istead of waiting to be called (or +-- they run core SILE functions on load instead of waiting to be called (or -- depend on others that do). local function runEvals (evals, arg) @@ -200,7 +200,9 @@ dependency = dependency:gsub(".lua$", "") local status, lib if pathprefix then - status, lib = pcall(require, pl.path.join(pathprefix, dependency)) + -- Note this is not a *path*, it is a module identifier: + -- https://github.com/sile-typesetter/sile/issues/1861 + status, lib = pcall(require, pl.stringx.join('.', { pathprefix, dependency })) end if not status then local prefixederror = lib @@ -328,10 +330,7 @@ if SILE.masterDir and SILE.masterDir:len() >= 1 then _G.extendSilePath(SILE.masterDir) end - filename = SILE.resolveFile(filename) - if not filename then - SU.error("Could not find file") - end + filename = SILE.resolveFile(filename) or SU.error("Could not find file") local mode = lfs.attributes(filename).mode if mode ~= "file" and mode ~= "named pipe" then SU.error(filename.." isn't a file or named pipe, it's a ".. mode .."!") @@ -391,8 +390,8 @@ local resolved, err = package.searchpath(filename, path, "/") if resolved then if SILE.makeDeps then SILE.makeDeps:add(resolved) end - else - SU.warn(("Unable to find file '%s': %s"):format(filename, err)) + elseif SU.debugging("paths") then + SU.debug("paths", ("Unable to find file '%s': %s"):format(filename, err)) end return resolved end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/core/utilities-numbers.lua new/sile-0.14.12/core/utilities-numbers.lua --- old/sile-0.14.11/core/utilities-numbers.lua 2023-08-23 04:56:35.680210194 +0200 +++ new/sile-0.14.12/core/utilities-numbers.lua 2023-10-11 18:27:29.364044533 +0200 @@ -60,7 +60,7 @@ -- ICU locale: see https://unicode-org.github.io/icu/userguide/locale/ -- Ex. "en", "en-US", "sr-Latn"... local iculocale = lang or "" - -- ICU keywork for a numbering system specifier: @numbers=xxxx + -- ICU keyword for a numbering system specifier: @numbers=xxxx -- The specifiers are defined here: -- https://github.com/unicode-org/cldr/blob/main/common/bcp47/number.xml if options.system then diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/core/utilities.lua new/sile-0.14.12/core/utilities.lua --- old/sile-0.14.11/core/utilities.lua 2023-08-23 04:56:35.680210194 +0200 +++ new/sile-0.14.12/core/utilities.lua 2023-10-11 18:27:29.364044533 +0200 @@ -32,9 +32,9 @@ local _skip_traceback_levels = 2 -utilities.error = function(message, bug) +utilities.error = function (message, isbug) _skip_traceback_levels = 3 - utilities.warn(message, bug) + utilities.warn(message, isbug) _skip_traceback_levels = 2 io.stderr:flush() SILE.outputter:finish() -- Only really useful from the REPL but no harm in trying @@ -42,10 +42,10 @@ error(message, 2) end -utilities.warn = function(message, bug) +utilities.warn = function (message, isbug) if SILE.quiet then return end io.stderr:write("\n! " .. message) - if SILE.traceback or bug then + if SILE.traceback or isbug then io.stderr:write(" at:\n" .. SILE.traceStack:locationTrace()) if _skip_traceback_levels == 2 then io.stderr:write(debug.traceback("", _skip_traceback_levels) or "\t! debug.traceback() did not identify code location") @@ -56,6 +56,11 @@ io.stderr:write("\n") end +utilities.msg = function (message) + if SILE.quiet then return end + io.stderr:write("\n! " .. message .. "\n") +end + utilities.debugging = function (category) return SILE.debugFlags.all and category ~= "profile" or SILE.debugFlags[category] end @@ -96,7 +101,7 @@ -- runtime but not useful if we encounter deprecated code in core code. Users -- will never encounter this failure, but as a developer itâs hard to test a -- deprecation when core code refactoring is an all-or-nothing proposition. - -- Hence we fake it âtill we make it, all deprecations internally are warings. + -- Hence we fake it âtill we make it, all deprecations internally are warnings. local brackets = old:sub(1,1) == '\\' and "" or "()" local _new = new and "Please use " .. (new .. brackets) .. " instead." or "Plase don't use it." local msg = (old .. brackets) .. " was deprecated in SILE v" .. tostring(warnat) .. ". " .. _new .. (extra and "\n" .. extra .. "\n\n" or "") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/documentation/c02-gettingstarted.sil new/sile-0.14.12/documentation/c02-gettingstarted.sil --- old/sile-0.14.11/documentation/c02-gettingstarted.sil 2023-08-23 04:56:35.680210194 +0200 +++ new/sile-0.14.12/documentation/c02-gettingstarted.sil 2023-10-11 18:27:29.368045127 +0200 @@ -256,7 +256,7 @@ Now the \code{sile} command will be available from any directory. \begin{autodoc:note} -If you wish you, can skip the install step and use the compiled SILE executable diretly from the source directory. +If you wish you, can skip the install step and use the compiled SILE executable directly from the source directory. As configured above, this will only work from a shell with the CWD set to the SILE source. To make it usable from anywhere, you can configure it with the source directory baked in as the installation location. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/documentation/c03-input.sil new/sile-0.14.12/documentation/c03-input.sil --- old/sile-0.14.11/documentation/c03-input.sil 2023-08-23 04:56:35.680210194 +0200 +++ new/sile-0.14.12/documentation/c03-input.sil 2023-10-11 18:27:29.368045127 +0200 @@ -8,7 +8,7 @@ Hence this chanpter has been renamed. The original chapter title was "SILEâs Input Language", as if there was only one. -The truth is there \em{is} an input syntax we call "SIL", but even that is perhaps best thought of as a structured data systax rather than a unique language. +The truth is there \em{is} an input syntax we call "SIL", but even that is perhaps best thought of as a structured data syntax rather than a unique language. The input strings \code{\\em\{foo\}} in SIL input syntax is 100\% equivalent to \code{<em>foo</em>} in XML input syntax. The SIL input syntax is provided as an easier to type alternative than XML which can be a bit verbose and tedious to work with by hand. On the other hand if you're handling data written by some other program, XML might be a much better solution. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/documentation/c05-packages.sil new/sile-0.14.12/documentation/c05-packages.sil --- old/sile-0.14.11/documentation/c05-packages.sil 2023-08-23 04:56:35.680210194 +0200 +++ new/sile-0.14.12/documentation/c05-packages.sil 2023-10-11 18:27:29.368045127 +0200 @@ -98,7 +98,7 @@ \section{Text & Characters} -This section covers a range of diffent topics from initial capitals to text transforms, through URL formatting. +This section covers a range of different topics from initial capitals to text transforms, through URL formatting. \subsection{dropcaps} \status:high diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/documentation/c06-macroscommands.sil new/sile-0.14.12/documentation/c06-macroscommands.sil --- old/sile-0.14.11/documentation/c06-macroscommands.sil 2023-08-23 04:56:35.680210194 +0200 +++ new/sile-0.14.12/documentation/c06-macroscommands.sil 2023-10-11 18:27:29.368045127 +0200 @@ -17,7 +17,7 @@ \define[command=SILE]{\font[family=Gentium Plus]{% Book Basic has no +smcp, but readers don't need to know, since we're only using Book Basic as a holdover from old SILE which did. S\lower[height=0.5ex]{I}L\kern[width=-.2em]\raise[height=0.6ex]{\font[features=+smcp]{e}}}} For instance, letâs suppose that we want to design a nice little -âbumpy roadâ logo for SILE. (Afficionados of T\kern[width=-.1667em]\lower[height=0.5ex]{E}\kern[width=-.125em]X and friends will be familiar with the concept of +âbumpy roadâ logo for SILE. (Aficionados of T\kern[width=-.1667em]\lower[height=0.5ex]{E}\kern[width=-.125em]X and friends will be familiar with the concept of bumpy road logos.) Our logo will look like this: \SILE. Itâs not a great logo, but weâll use it as \SILEâs logo for the purposes of this section. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/documentation/c08-language.sil new/sile-0.14.12/documentation/c08-language.sil --- old/sile-0.14.11/documentation/c08-language.sil 2023-08-23 04:56:35.684210374 +0200 +++ new/sile-0.14.12/documentation/c08-language.sil 2023-10-11 18:27:29.368045127 +0200 @@ -25,7 +25,7 @@ \item{frame advance and writing direction} \item{spacing} \item{choice of glyphs within a font} -\item{localization of programatically inserted strings} +\item{localization of programmatically inserted strings} \end{itemize} For example, Sindhi and Urdu users will expect the Arabic letter \em{heh} (\font[family=LateefGR]{Ù}) to combine with other letters in different ways to standard Arabic shaping. @@ -95,7 +95,7 @@ \section{Localization} -A small handful of strings may be programatically added to documents depending on language, context, and options. +A small handful of strings may be programmatically added to documents depending on language, context, and options. For example by default in English the \autodoc:class{book} class will prepend âChapter â before chapter numbers output by the \autodoc:command{\chapter} command. These localized strings are managed internally using the Fluent localization system.% \footnote{See Project Fluent (\url{https://projectfluent.org}) for details on the data format and uses.} @@ -180,7 +180,7 @@ Breaking rules \em{(kinzoku shori)} and intercharacter spacing is fully supported on selecting the Japanese language. The easiest way to set up the other elements of Japanese typesetting such as the \em{hanmen} grid and optional vertical typesetting support is by using the \autodoc:class{jplain} or \autodoc:class{jbook} classes. For other languages with similar layout requirements, more generic \autodoc:class{tplain} and \autodoc:class{tbook} classes are available that setup the layout elements without also setting the default language and font to Japanese specific values. -These are also good condidates to use as base classes and extend for more language-specific classes. +These are also good candidates to use as base classes and extend for more language-specific classes. \package-documentation{hanmenkyoshi} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/documentation/c10-classdesign.sil new/sile-0.14.12/documentation/c10-classdesign.sil --- old/sile-0.14.11/documentation/c10-classdesign.sil 2023-08-23 04:56:35.684210374 +0200 +++ new/sile-0.14.12/documentation/c10-classdesign.sil 2023-10-11 18:27:29.368045127 +0200 @@ -169,7 +169,7 @@ \subsection{Defining raw handlers} -âRaw handlersâ allow packages to register new handlers (or callbacks) for use with the \autodoc:environment{raw} environment, which content is read as-is by SILE, without being interpretated. +âRaw handlersâ allow packages to register new handlers (or callbacks) for use with the \autodoc:environment{raw} environment, which content is read as-is by SILE, without being interpreted. This is intended for advanced use cases where you may want to provide a way for users to embed arbitrary content (likely in another syntax), and you will provide the complete parsing and handling for it.\footnote{% This may be used to implement a âcleverâ verbatim environment. It is also used, for instance, by the \strong{markdown.sile} 3rd-party collection to embed Markdown or Djot content directly in a (SIL or XML) document.} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/documentation/c11-inputoutput.sil new/sile-0.14.12/documentation/c11-inputoutput.sil --- old/sile-0.14.11/documentation/c11-inputoutput.sil 2023-08-23 04:56:35.684210374 +0200 +++ new/sile-0.14.12/documentation/c11-inputoutput.sil 2023-10-11 18:27:29.368045127 +0200 @@ -75,7 +75,7 @@ \subsection{Content appropriation} What we first need is to tell SILE how to choose our inputter when it is given a file in our input format. -The \code{appropriate()} method of our inputter is reponsible for providing the corresponding logic. +The \code{appropriate()} method of our inputter is responsible for providing the corresponding logic. It is a static method (so it does not have a \code{self} argument), and it takes up to three arguments: \begin{itemize} \item{the round, an integer between 1 and 3.} @@ -87,10 +87,10 @@ Earlier, we said that inputters were checked in their priority order. This was not fully complete. Letâs add another piece to our puzzle: Inputters are actually checked orderly indeed, but three times. -This allows for quick compatiblitity checks to supercede resource-intensive ones. +This allows for quick compatiblitity checks to supersede resource-intensive ones. \begin{itemize} \item{Round 1 expects the file name to be checked: for instance, we could base our decision on recognized file extensions.} -\item{Round 2 expects some portion of the content string to be checked: for instance, we could base our decision on sniffing for some sequence of characters expected to occurr early in the document (or any other content inspection strategy).} +\item{Round 2 expects some portion of the content string to be checked: for instance, we could base our decision on sniffing for some sequence of characters expected to occur early in the document (or any other content inspection strategy).} \item{Round 3 expects the entire content to be successfully parsed.} \end{itemize} @@ -178,7 +178,7 @@ Outputters usually live somewhere in the \code{outputters/} subdirectory of either where your first input file is located, your current working directory, or your SILE path. -All ouput handlers inherit from a \autodoc:package{base} outputter. +All output handlers inherit from a \autodoc:package{base} outputter. It is an abstract class, providing just one concrete method, and defining a bunch of methods that any actual outputter has to override for the specifics of its target format. We first need to declare the name of our new outputter, as well as the default file extension for the output file, which will be appended to the base name of the main input file if the user does not provide an explicit output file name on their command line. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/documentation/c12-xmlproc.sil new/sile-0.14.12/documentation/c12-xmlproc.sil --- old/sile-0.14.11/documentation/c12-xmlproc.sil 2023-08-23 04:56:35.684210374 +0200 +++ new/sile-0.14.12/documentation/c12-xmlproc.sil 2023-10-11 18:27:29.368045127 +0200 @@ -10,7 +10,7 @@ When you use the \code{-c docbook} command line option to SILE, SILE will use the \autodoc:class{docbook} class in spite of any document declaration. In addition, options such as paper size could be set; for example, \code{-O papersize=legal}. -The class initalization for DocBoox isnât too fancy; it just loads up a couple packages that will get used later. +The class initialization for DocBoox isnât too fancy; it just loads up a couple packages that will get used later. \begin{autodoc:note} Much of the example code in this chapter is in SIL format using macros. Binary files old/sile-0.14.11/documentation/fig-input-to-output.pdf and new/sile-0.14.12/documentation/fig-input-to-output.pdf differ Binary files old/sile-0.14.11/documentation/fig-input-to-output.pdf.gs and new/sile-0.14.12/documentation/fig-input-to-output.pdf.gs differ Binary files old/sile-0.14.11/documentation/sile.pdf and new/sile-0.14.12/documentation/sile.pdf differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/i18n/pt.ftl new/sile-0.14.12/i18n/pt.ftl --- old/sile-0.14.11/i18n/pt.ftl 2023-08-23 04:56:35.688210553 +0200 +++ new/sile-0.14.12/i18n/pt.ftl 2023-10-11 18:27:29.376046315 +0200 @@ -1,3 +1,11 @@ +bibliography-and = e + +bibliography-edited-by = Editado por { $name } + +bibliography-et-al = <language main="la">et al</language>. + +bibliography-translated-by = Traduzido por { $name } + book-chapter-title = CapÃtulo { $number } tableofcontents-title = Conteúdo diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/inputters/base.lua new/sile-0.14.12/inputters/base.lua --- old/sile-0.14.11/inputters/base.lua 2023-08-23 04:56:35.688210553 +0200 +++ new/sile-0.14.12/inputters/base.lua 2023-10-11 18:27:29.376046315 +0200 @@ -23,7 +23,7 @@ class = constructor._name end class = SILE.input.class or class or options.class or "plain" - options.class = nil -- don't pass already consumed class option to contstructor + options.class = nil -- don't pass already consumed class option to constructor constructor = self._docclass or constructor or SILE.require(class, "classes", true) if constructor.id then SU.deprecated("std.object", "pl.class", "0.13.0", "0.14.0", string.format(_deprecated, constructor.id)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/outputters/debug.lua new/sile-0.14.12/outputters/debug.lua --- old/sile-0.14.11/outputters/debug.lua 2023-08-23 04:56:35.720211987 +0200 +++ new/sile-0.14.12/outputters/debug.lua 2023-10-11 18:27:29.412051660 +0200 @@ -15,7 +15,7 @@ -- just enough to fix the bias so our test suite works across interpreters. -- Note that even a true rounding function here will fail because the bias is -- inherent to the floating point type. Also note we are erroring in favor of - -- the *less* common option beacuse the LuaJIT VMS are hopelessly broken + -- the *less* common option because the LuaJIT VMS are hopelessly broken -- whereas normal LUA VMs can be cooerced. if input > 0 then input = input + .00000000000001 end if input < 0 then input = input - .00000000000001 end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/outputters/libtexpdf.lua new/sile-0.14.12/outputters/libtexpdf.lua --- old/sile-0.14.11/outputters/libtexpdf.lua 2023-08-23 04:56:35.720211987 +0200 +++ new/sile-0.14.12/outputters/libtexpdf.lua 2023-10-11 18:27:29.412051660 +0200 @@ -42,7 +42,7 @@ pdf.beginpage() end --- pdf stucture package needs a tie in here +-- pdf structure package needs a tie in here function outputter._endHook (_) end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/package.json new/sile-0.14.12/package.json --- old/sile-0.14.11/package.json 2023-08-23 04:56:35.720211987 +0200 +++ new/sile-0.14.12/package.json 2023-10-11 18:27:29.412051660 +0200 @@ -1,6 +1,6 @@ { "name": "sile", - "version": "0.14.11", + "version": "0.14.12", "description": "The SILE Typesetter", "main": "sile", "scripts": { @@ -23,7 +23,7 @@ "@commitlint/config-conventional": "^17.6", "@commitlint/prompt": "^17.6", "commitizen": "^4.3", - "conventional-changelog-cli": "^3.0", + "conventional-changelog-cli": "^4.0", "husky": "^8.0", "standard-version": "^9.5", "yaml": "^2.3" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/packages/autodoc/init.lua new/sile-0.14.12/packages/autodoc/init.lua --- old/sile-0.14.11/packages/autodoc/init.lua 2023-08-23 04:56:35.720211987 +0200 +++ new/sile-0.14.12/packages/autodoc/init.lua 2023-10-11 18:27:29.412051660 +0200 @@ -356,7 +356,7 @@ SILE.call("novbreak") SILE.call("fullrule", { thickness = "0.5pt" }) SILE.call("novbreak") - end, "Ouputs a line used for surrounding code blocks (somewhat internal)") + end, "Outputs a line used for surrounding code blocks (somewhat internal)") self:registerCommand("autodoc:example", function(_, content) -- Loosely derived from the \examplefont command from the original SILE manual... diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/packages/bibtex/init.lua new/sile-0.14.12/packages/bibtex/init.lua --- old/sile-0.14.11/packages/bibtex/init.lua 2023-08-23 04:56:35.720211987 +0200 +++ new/sile-0.14.12/packages/bibtex/init.lua 2023-10-11 18:27:29.412051660 +0200 @@ -39,12 +39,12 @@ ---@diagnostic enable: undefined-global, unused-local, lowercase-global local parseBibtex = function (fn) - fn = SILE.resolveFile(fn) - local fh,e = io.open(fn) - if e then SU.error("Error reading bibliography file "..e) end + fn = SILE.resolveFile(fn) or SU.error("Unable to resolve Bibtex file "..fn) + local fh, e = io.open(fn) + if e then SU.error("Error reading bibliography file: "..e) end local doc = fh:read("*all") local t = epnf.parsestring(bibtexparser, doc) - if not(t) or not(t[1]) or t.id ~= "document" then + if not t or not t[1] or t.id ~= "document" then SU.error("Error parsing bibtex") end local entries = {} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/packages/footnotes/init.lua new/sile-0.14.12/packages/footnotes/init.lua --- old/sile-0.14.11/packages/footnotes/init.lua 2023-08-23 04:56:35.720211987 +0200 +++ new/sile-0.14.12/packages/footnotes/init.lua 2023-10-11 18:27:29.412051660 +0200 @@ -73,7 +73,7 @@ -- Apply the font before boxing, so relative baselineskip applies #1027 local material SILE.call("footnote:font", {}, function () - material = SILE.call("vbox", {}, function () + material = SILE.call("vbox", {}, function () SILE.call("footnote:atstart", options) SILE.call("footnote:counter", options) SILE.process(content) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/packages/leaders/init.lua new/sile-0.14.12/packages/leaders/init.lua --- old/sile-0.14.11/packages/leaders/init.lua 2023-08-23 04:56:35.724212166 +0200 +++ new/sile-0.14.12/packages/leaders/init.lua 2023-10-11 18:27:29.416052254 +0200 @@ -75,7 +75,7 @@ end end -- Return to our start (saved) position and move to the full leaders width. - -- (So we are sure to safely get the correct width, whathever we did above + -- (So we are sure to safely get the correct width, whatever we did above -- with the remainder space and the leader repetitions). typesetter.frame.state.cursorX = ox typesetter.frame.state.cursorY = oy diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/packages/lists/init.lua new/sile-0.14.12/packages/lists/init.lua --- old/sile-0.14.11/packages/lists/init.lua 2023-08-23 04:56:35.724212166 +0200 +++ new/sile-0.14.12/packages/lists/init.lua 2023-10-11 18:27:29.416052254 +0200 @@ -102,7 +102,7 @@ local stepback if enumStyle.display then - -- The positionning is quite tentative... LaTeX would right justify the + -- The positioning is quite tentative... LaTeX would right justify the -- number (at least for roman numerals), i.e. -- i. Text -- ii. Text diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/packages/math/base-elements.lua new/sile-0.14.12/packages/math/base-elements.lua --- old/sile-0.14.11/packages/math/base-elements.lua 2023-08-23 04:56:35.724212166 +0200 +++ new/sile-0.14.12/packages/math/base-elements.lua 2023-10-11 18:27:29.416052254 +0200 @@ -225,7 +225,7 @@ -- Typesetting of mbox evolves four steps: -- 1. Determine the mode for each mbox according to their parent. -- 2. Shape the mbox hierarchy from leaf to top. Get the shape and relative position. --- 3. Convert mbox into _nnode's to put in SILE's typesetting framwork +-- 3. Convert mbox into _nnode's to put in SILE's typesetting framework elements.mbox = pl.class(nodefactory.hbox) elements.mbox._type = "Mbox" @@ -254,15 +254,15 @@ end function elements.mbox.styleChildren (_) - SU.error("styleChildren is a virtual function that need to be overriden by its child classes") + SU.error("styleChildren is a virtual function that need to be overridden by its child classes") end function elements.mbox.shape (_, _, _) - SU.error("shape is a virtual function that need to be overriden by its child classes") + SU.error("shape is a virtual function that need to be overridden by its child classes") end function elements.mbox.output (_, _, _, _) - SU.error("output is a virtual function that need to be overriden by its child classes") + SU.error("output is a virtual function that need to be overridden by its child classes") end function elements.mbox:getMathMetrics () @@ -860,7 +860,7 @@ .vertGlyphConstructions[glyphs[1].gid] if constructions then local displayVariants = constructions.mathGlyphVariantRecord - -- We select the biggest variant. TODO: we shoud probably select the + -- We select the biggest variant. TODO: we should probably select the -- first variant that is higher than displayOperatorMinHeight. local biggest local m = 0 @@ -945,7 +945,7 @@ local closest local closestI local m = requiredAdvance - (self.depth+self.height):tonumber() * upem/sz - SU.debug("math", "strech: m =", m) + SU.debug("math", "stretch: m =", m) for i,v in ipairs(variants) do local diff = math.abs(v.advanceMeasurement - requiredAdvance) SU.debug("math", "stretch: diff =", diff) @@ -1105,7 +1105,7 @@ function elements.mtr.output (_) end elements.table = pl.class(elements.mbox) -elements.table._type = "table" -- TODO why case diference? +elements.table._type = "table" -- TODO why case difference? function elements.table:_init (children, options) elements.mbox._init(self) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/packages/ruby/init.lua new/sile-0.14.12/packages/ruby/init.lua --- old/sile-0.14.11/packages/ruby/init.lua 2023-08-23 04:56:35.728212345 +0200 +++ new/sile-0.14.12/packages/ruby/init.lua 2023-10-11 18:27:29.420052848 +0200 @@ -29,7 +29,7 @@ function package:_init () base._init(self) - -- Japaneese language support defines units which are useful here + -- Japanese language support defines units which are useful here self:loadPackage("font-fallback") SILE.call("font:add-fallback", { family = "Noto Sans CJK JP" }) SILE.languageSupport.loadLanguage("ja") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/packages/simpletable/init.lua new/sile-0.14.12/packages/simpletable/init.lua --- old/sile-0.14.11/packages/simpletable/init.lua 2023-08-23 04:56:35.728212345 +0200 +++ new/sile-0.14.12/packages/simpletable/init.lua 2023-10-11 18:27:29.420052848 +0200 @@ -24,7 +24,7 @@ trTag = SU.required(options, "trTag", "setting up table class") tdTag = SU.required(options, "tdTag", "setting up table class") - -- This is a post init calback instead of the usual early command registration + -- This is a post init callback instead of the usual early command registration -- method using our package loader because we don't know what commands to register -- until we've been instantiated. self.class:registerPostinit(function (_) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/packages/tableofcontents/init.lua new/sile-0.14.12/packages/tableofcontents/init.lua --- old/sile-0.14.11/packages/tableofcontents/init.lua 2023-08-23 04:56:35.728212345 +0200 +++ new/sile-0.14.12/packages/tableofcontents/init.lua 2023-10-11 18:27:29.420052848 +0200 @@ -7,6 +7,8 @@ SILE.scratch._tableofcontents = {} end +local toc_used = false + function package:moveTocNodes () local node = SILE.scratch.info.thispage.toc if node then @@ -24,8 +26,8 @@ tocfile:write("return " .. tocdata) tocfile:close() - if not pl.tablex.deepcompare(SILE.scratch.tableofcontents, SILE.scratch._tableofcontents) then - io.stderr:write("\n! Warning: table of contents has changed, please rerun SILE to update it.") + if toc_used and not pl.tablex.deepcompare(SILE.scratch.tableofcontents, SILE.scratch._tableofcontents) then + SU.msg("Notice: the table of contents has changed, please rerun SILE to update it.") end end @@ -115,6 +117,7 @@ self:registerCommand("tableofcontents", function (options, _) local depth = SU.cast("integer", options.depth or 3) local linking = SU.boolean(options.linking, true) + toc_used = true local toc = self:readToc() if toc == false then SILE.call("tableofcontents:notocmessage") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/sile.1 new/sile-0.14.12/sile.1 --- old/sile-0.14.11/sile.1 2023-08-23 04:57:28.122768329 +0200 +++ new/sile-0.14.12/sile.1 2023-10-11 18:28:21.399908336 +0200 @@ -1,4 +1,4 @@ -.TH sile 1 "23 March 2023" "version v0.14.11" +.TH sile 1 "23 March 2023" "version v0.14.12" .SH NAME sile \- Simon's Improved Layout Engine .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/src/justenoughharfbuzz.c new/sile-0.14.12/src/justenoughharfbuzz.c --- old/sile-0.14.11/src/justenoughharfbuzz.c 2023-08-23 04:56:35.732212524 +0200 +++ new/sile-0.14.12/src/justenoughharfbuzz.c 2023-10-11 18:27:29.420052848 +0200 @@ -145,9 +145,9 @@ double point_size = luaL_checknumber(L, 6); const char * featurestring = luaL_checkstring(L, 7); char * shaper_list_string = luaL_checkstring(L, 8); - char ** shaper_list = NULL; + const char * const* shaper_list = NULL; if (strlen(shaper_list_string) > 0) { - shaper_list = scan_shaper_list(shaper_list_string); + shaper_list = (const char * const*)scan_shaper_list(shaper_list_string); } hb_direction_t direction; @@ -185,12 +185,12 @@ } glyph_info = hb_buffer_get_glyph_infos(buf, &glyph_count); glyph_pos = hb_buffer_get_glyph_positions(buf, &glyph_count); - lua_checkstack(L, glyph_count*10); for (j = 0; j < glyph_count; ++j) { char namebuf[255]; hb_glyph_extents_t extents = {0,0,0,0}; hb_font_get_glyph_extents(hbFont, glyph_info[j].codepoint, &extents); + lua_checkstack(L, 3); lua_newtable(L); lua_pushstring(L, "name"); hb_font_get_glyph_name( hbFont, glyph_info[j].codepoint, namebuf, 255 ); @@ -206,21 +206,25 @@ baseline, and we should use that and take out this condition. */ if (direction != HB_DIRECTION_TTB) { if (glyph_pos[j].x_offset) { + lua_checkstack(L, 2); lua_pushstring(L, "x_offset"); lua_pushnumber(L, glyph_pos[j].x_offset * point_size / upem); lua_settable(L, -3); } if (glyph_pos[j].y_offset) { + lua_checkstack(L, 2); lua_pushstring(L, "y_offset"); lua_pushnumber(L, glyph_pos[j].y_offset * point_size / upem); lua_settable(L, -3); } } + lua_checkstack(L, 2); lua_pushstring(L, "gid"); lua_pushinteger(L, glyph_info[j].codepoint); lua_settable(L, -3); + lua_checkstack(L, 2); lua_pushstring(L, "index"); lua_pushinteger(L, glyph_info[j].cluster); lua_settable(L, -3); @@ -240,17 +244,21 @@ width = glyphAdvance; glyphAdvance = height; } + lua_checkstack(L, 2); lua_pushstring(L, "glyphAdvance"); lua_pushnumber(L, glyphAdvance); lua_settable(L, -3); + lua_checkstack(L, 2); lua_pushstring(L, "width"); lua_pushnumber(L, width); lua_settable(L, -3); + lua_checkstack(L, 2); lua_pushstring(L, "height"); lua_pushnumber(L, height); lua_settable(L, -3); + lua_checkstack(L, 2); lua_pushstring(L, "depth"); lua_pushnumber(L, -tHeight - height); lua_settable(L, -3); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/src/justenoughicu.c new/sile-0.14.12/src/justenoughicu.c --- old/sile-0.14.11/src/justenoughicu.c 2023-08-23 04:56:35.732212524 +0200 +++ new/sile-0.14.12/src/justenoughicu.c 2023-10-11 18:27:29.420052848 +0200 @@ -311,7 +311,7 @@ int numericOrdering = UCOL_ON; // N.B. default is UCOL_OFF int backwards = UCOL_OFF; // So-called 'french collation', default is UCOL_OFF // NOT IMPLEMENTED: maxVariable punct / maxVariable space - // This affects 'alternate handling' with espect to spaces and/or punctuations + // This affects 'alternate handling' with expect to spaces and/or punctuations // I never used it and I'm lazy - assume default is ok... int caseFirst = UCOL_OFF; // n.B. default is UCOL_OFF int caseLevel = UCOL_OFF; // n.B. default is UCOL_OFF diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/tests/vertical.sil new/sile-0.14.12/tests/vertical.sil --- old/sile-0.14.11/tests/vertical.sil 2023-08-23 04:56:35.756213600 +0200 +++ new/sile-0.14.12/tests/vertical.sil 2023-10-11 18:27:29.448057005 +0200 @@ -1,7 +1,7 @@ \begin[class=jplain,layout=tate]{document} \nofolios % Note: differences between Noto font versions make adding more characters to -% this test brittle. For examle æ¥æ¬ã¯æããruns into trouble when the height +% this test brittle. For example æ¥æ¬ã¯æããruns into trouble when the height % of æ is different. If the tate layout mechanism is working, itâs going % to work at two characters, if a longer string fails, itâs likely some other % mechanism or value that actually changed. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sile-0.14.11/typesetters/base.lua new/sile-0.14.12/typesetters/base.lua --- old/sile-0.14.11/typesetters/base.lua 2023-08-23 04:56:35.756213600 +0200 +++ new/sile-0.14.12/typesetters/base.lua 2023-10-11 18:27:29.448057005 +0200 @@ -754,7 +754,7 @@ end if linestart < #nodes then -- Abnormal, but warn so that one has a chance to check which bits - -- are misssing at output. + -- are missing at output. SU.warn("Internal typesetter error " .. (#nodes - linestart) .. " skipped nodes") end return lines @@ -779,7 +779,7 @@ -- zero boxes, so as to reach actual content... if slice[n].value ~= "margin" then -- ... but any other glue than a margin, at the end of a line, is actually - -- extraneous. It will however also be accounted for below, so substract + -- extraneous. It will however also be accounted for below, so subtract -- them to cancel their width. Typically, if a line break occurred at -- a space, the latter is then at the end of the line now, and must be -- ignored.
