Showing with 43,558 additions and 35,558 deletions.
  1. +3 −3 .github/workflows/coverity.yml
  2. +11 −11 .github/workflows/main.yml
  3. +2 −1 .github/workflows/scripts/ffappimagebuild.sh
  4. +6 −2 CMakeLists.txt
  5. +1 −1 Unicode/ArabicForms.c
  6. +5 −5 Unicode/makeutype.py
  7. +242 −225 Unicode/unialt.c
  8. +33,431 −32,970 Unicode/uninames_data.h
  9. +1,269 −1,182 Unicode/utype.c
  10. +8 −0 cmake/FontForgeConfigure.cmake
  11. +0 −2 contrib/cidmap/Adobe-Identity-0.cidmap
  12. +0 −1 contrib/cidmap/CMakeLists.txt
  13. +24 −0 contrib/fonttools/CMakeLists.txt
  14. +2 −2 contrib/fonttools/pfadecrypt.c
  15. +1 −0 desktop/org.fontforge.FontForge.appdata.xml.in
  16. +1 −1 doc/sphinx/conf.py
  17. +25 −1 doc/sphinx/faq.rst
  18. +1 −1 doc/sphinx/index.rst
  19. +33 −4 doc/sphinx/scripting/python/fontforge.rst
  20. +1 −1 doc/sphinx/scripting/scripting.rst
  21. +6 −2 doc/sphinx/tutorial/editexample4.rst
  22. +3 −0 fontforge/cvimages.c
  23. +2 −2 fontforge/encoding.c
  24. +25 −9 fontforge/featurefile.c
  25. +1 −1 fontforge/featurefile.h
  26. +7 −6 fontforge/fontviewbase.c
  27. +1 −1 fontforge/fvmetrics.c
  28. +12 −5 fontforge/lookups.c
  29. +1 −1 fontforge/noprefs.c
  30. +21 −5 fontforge/parsepdf.c
  31. +38 −14 fontforge/parsettf.c
  32. +2 −1 fontforge/psread.c
  33. +31 −9 fontforge/python.c
  34. +5 −4 fontforge/scripting.c
  35. +8 −8 fontforge/scstyles.c
  36. +1 −0 fontforge/sd.h
  37. +20 −13 fontforge/sfd.c
  38. +3 −0 fontforge/sfd.h
  39. +23 −16 fontforge/splinefit.c
  40. +1 −8 fontforge/splinefont.c
  41. +1 −3 fontforge/splinefont.h
  42. +4 −1 fontforge/splineoverlap.c
  43. +2 −2 fontforge/splinesaveafm.c
  44. +1 −1 fontforge/splinesaveafm.h
  45. +3 −1 fontforge/splineutil.c
  46. +7 −7 fontforge/splineutil2.c
  47. +1 −1 fontforge/start.c
  48. +43 −7 fontforge/svg.c
  49. +1 −0 fontforge/svg.h
  50. +24 −18 fontforge/tottfgpos.c
  51. +2 −1 fontforge/ufo.c
  52. +1 −1 fontforge/uiinterface.h
  53. +1 −2 fontforge/unicoderange.c
  54. +1 −0 fontforge/views.h
  55. +6 −20 fontforge/woff.c
  56. +2 −5 fontforge/woff.h
  57. +15 −21 fontforge/woff2.cc
  58. +11 −0 fontforgeexe/CMakeLists.txt
  59. +6 −2 fontforgeexe/bitmapview.c
  60. +30 −15 fontforgeexe/charview.c
  61. +5 −23 fontforgeexe/combinations.c
  62. +35 −21 fontforgeexe/cvimportdlg.c
  63. +2 −6 fontforgeexe/cvpalettes.c
  64. +39 −11 fontforgeexe/cvpointer.c
  65. +1 −2 fontforgeexe/cvruler.c
  66. +1 −1 fontforgeexe/encodingui.c
  67. +2 −2 fontforgeexe/fontforge.1
  68. +37 −0 fontforgeexe/fontforge.exe.manifest.in
  69. +38 −0 fontforgeexe/fontforge.rc.in
  70. +1 −0 fontforgeexe/fontinfo.c
  71. +210 −32 fontforgeexe/fontview.c
  72. +4 −0 fontforgeexe/groupsdlg.c
  73. +11 −1 fontforgeexe/lookupui.c
  74. +4 −2 fontforgeexe/prefs.c
  75. +0 −1 fontforgeexe/problems.c
  76. +1 −1 fontforgeexe/savefontdlg.c
  77. +1 −1 fontforgeexe/startnoui.c
  78. +6 −5 fontforgeexe/startui.c
  79. +5 −3 gdraw/gbuttons.c
  80. +19 −3 gdraw/gfilechooser.c
  81. +4 −1 gdraw/ggdkcdraw.c
  82. +3 −8 gdraw/gmatrixedit.c
  83. +1 −28 gdraw/gmenu.c
  84. +3 −3 gdraw/gprogress.c
  85. +1 −1 gdraw/gtabset.c
  86. +5 −5 gdraw/gtextinfo.c
  87. +1 −1 gdraw/hotkeys.c
  88. +103 −191 gutils/fsys.c
  89. +10 −0 inc/basics.h
  90. +8 −0 inc/ffglib.h
  91. +3 −1 inc/fontforge-config.h.in
  92. +7 −10 inc/gfile.h
  93. +5 −3 inc/ggadget.h
  94. +2 −2 inc/utype.h
  95. +3 −3 osx/CMakeLists.txt
  96. 0 osx/FontForge.app/Contents/Resources/English.lproj/{InfoPlist.string.in → InfoPlist.strings.in}
  97. +1 −0 po/LINGUAS
  98. +108 −2 po/ca.po
  99. +59 −5 po/de.po
  100. +2 −2 po/el.po
  101. +2 −2 po/en_GB.po
  102. +56 −34 po/es.po
  103. +19 −16 po/fr.po
  104. +50 −16 po/hr.po
  105. +2 −2 po/it.po
  106. +5 −5 po/ja.po
  107. +6,011 −0 po/ka_GE.po
  108. +2 −2 po/ko.po
  109. +203 −2 po/ml.po
  110. +16 −16 po/pl.po
  111. +195 −14 po/pt.po
  112. +2 −2 po/ru.po
  113. +2 −2 po/tr_TR.po
  114. +16 −16 po/uk.po
  115. +2 −2 po/vi.po
  116. +593 −264 po/zh_CN.po
  117. +160 −156 po/zh_TW.po
  118. +1 −0 tests/CMakeLists.txt
  119. +11 −0 tests/fonts/test1017.fea
  120. +20 −0 tests/test1017.py
6 changes: 3 additions & 3 deletions .github/workflows/coverity.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ on:
branches: [ coverity ]
workflow_dispatch:
env:
PYTHON: python3.9
PYTHON: python3.10
jobs:
build:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
path: repo
- name: Download Coverity Build Tool
Expand All @@ -22,7 +22,7 @@ jobs:
TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
- name: Restore cached custom dependencies
id: cache-dependencies
uses: actions/cache@v2
uses: actions/cache@v3
with:
path: deps/install
key: ${{ runner.os }}-deps-${{ hashFiles('repo/.github/workflows/scripts/setup_linux_deps.sh') }}
Expand Down
22 changes: 11 additions & 11 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
linux:
runs-on: ${{ matrix.os }}
env:
PYTHON: python3.9
PYTHON: python3.10
strategy:
matrix:
os: ["ubuntu-latest"]
Expand All @@ -19,12 +19,12 @@ jobs:
- os: ubuntu-18.04
target: Release
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
path: repo
- name: Restore cached custom dependencies
id: cache-dependencies
uses: actions/cache@v2
uses: actions/cache@v3
with:
path: deps/install
key: ${{ matrix.os }}-deps-${{ hashFiles('repo/.github/workflows/scripts/setup_linux_deps.sh') }}
Expand Down Expand Up @@ -62,23 +62,23 @@ jobs:
CROWDIN_API_KEY: ${{ secrets.CROWDIN_API_KEY }}
run: java -jar $DEPSPREFIX/crowdin-cli.jar -c .crowdin.yml upload
- name: Dist archive artifact
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
if: matrix.target == 'NoUI'
with:
name: dist-archive
path: repo/build/fontforge-*.tar.xz
- name: AppImage artifact
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
if: matrix.target == 'Release'
with:
name: appimage
path: repo/build/FontForge-*-x86_64.AppImage
mac:
runs-on: macos-latest
runs-on: macos-10.15
env:
PYTHON: python3
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
path: repo
- name: Install dependencies
Expand Down Expand Up @@ -108,7 +108,7 @@ jobs:
working-directory: repo/build
run: ninja macbundle
- name: App Bundle artifact
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: appbundle
path: repo/build/osx/FontForge-*.dmg
Expand All @@ -120,11 +120,11 @@ jobs:
matrix:
arch: ["MINGW32", "MINGW64"]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
path: repo
- name: Checkout FontForgeBuilds
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
repository: fontforge/fontforgebuilds
path: fontforgebuilds
Expand All @@ -149,7 +149,7 @@ jobs:
working-directory: fontforgebuilds/fontforge-setup
run: iscc -Qp fontforgesetup.iss -DMSYSTEM=${{ matrix.arch }}
- name: Build artifacts
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.arch }}
path: |
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/scripts/ffappimagebuild.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ fi
echo "Starting appimage build, folder is $APPDIR with version $VERSION"

# TODO: AppStream metainfo
PYVER=$(ldd $APPDIR/usr/bin/fontforge | grep -Eom1 'python[0-9.]{3}' | head -1 | cut -c 7-)
PYVER=$(ldd $APPDIR/usr/bin/fontforge | grep -Eom1 'python[0-9\.]+[0-9]+' | head -1 | cut -c 7-)
echo "FontForge built against Python $PYVER"

( cd $APPDIR ; dpkg -x /var/cache/apt/archives/libpython${PYVER}-minimal*.deb . )
( cd $APPDIR ; dpkg -x /var/cache/apt/archives/libpython${PYVER}-stdlib*.deb . )
Expand Down
8 changes: 6 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
cmake_minimum_required(VERSION 3.5)

# Update the version for each new release
project(fontforge VERSION 20220308 LANGUAGES C CXX)
project(fontforge VERSION 20230101 LANGUAGES C CXX)

# No in source builds
if("${PROJECT_SOURCE_DIR}" STREQUAL "${PROJECT_BINARY_DIR}")
Expand Down Expand Up @@ -108,7 +108,11 @@ set_font_family(mono "${FONT_FAMILIES_MONO}")
find_package(Freetype 2.3.7 REQUIRED)
find_package(Gettext REQUIRED)
find_package_with_target(Intl REQUIRED)
find_package(GLIB 2.6 REQUIRED COMPONENTS gio gobject)
if(UNIX AND NOT APPLE)
find_package(GLIB 2.6 REQUIRED COMPONENTS gio gobject)
else()
find_package(GLIB 2.58 REQUIRED COMPONENTS gio gobject)
endif()
find_package(Iconv REQUIRED)
find_package(LibXml2 REQUIRED)
find_package(MathLib REQUIRED)
Expand Down
2 changes: 1 addition & 1 deletion Unicode/ArabicForms.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* This is a GENERATED file - from makeutype.py with Unicode 14.0.0 */
/* This is a GENERATED file - from makeutype.py with Unicode 15.0.0 */

/* Copyright (C) 2000-2012 by George Williams */
/* Contributions: Khaled Hosny, Joe Da Silva */
Expand Down
10 changes: 5 additions & 5 deletions Unicode/makeutype.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
BASE = os.path.dirname(os.path.abspath(__file__))
SCRIPT = os.path.basename(__file__)

UNIDATA_VERSION = "14.0.0"
UNIDATA_VERSION = "15.0.0"
UNICODE_DATA = "UnicodeData%s.txt"
DERIVED_CORE_PROPERTIES = "DerivedCoreProperties%s.txt"
PROP_LIST = "PropList%s.txt"
Expand Down Expand Up @@ -719,16 +719,16 @@ def makeuninames(unicode, trace):
# Chosen empirically, tweak as desired. Only ascii is allowed due to
# how the lexicon is encoded. Generally longer replacements go first
# so shorter replacements don't prevent them from working.
# As of Unicode 13 this is roughly 454kb excluding the size of the
# As of Unicode 15 this is roughly 468kb excluding the size of the
# offset tables
regexes = [
(100, re.compile(rb"[\x20-\x7F]{3,}[ -]")),
(100, re.compile(rb"(?:[\x21-\x7F]+[ -]+){5}")),
(150, re.compile(rb"(?:[\x21-\x7F]+[ -]+){4}")),
(200, re.compile(rb"(?:[\x21-\x7F]+[ -]+){3}")),
(900, re.compile(rb"(?:[\x21-\x7F]+[ -]+){2}")),
(250, re.compile(rb"(?:[\x21-\x7F]+[ -]+){3}")),
(750, re.compile(rb"(?:[\x21-\x7F]+[ -]+){2}")),
(3400, re.compile(rb"(?:[\x21-\x7F]+[ -]+){1}")),
(5000, re.compile(rb"\b[\x21-\x7F]{3,}\b")),
(5000, re.compile(rb"\b(?:[a-z]{3,}|[\x21-\x60\x7B-\x7F]{3,})\b")),
]
# The initial character on annotation lines are excluded from the phrasebook
# This allows us to substitute them for fancier characters
Expand Down