summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--!TTF2f/!Help193
-rw-r--r--!TTF2f/History59
-rw-r--r--!TTF2f/Licences/FTL169
-rw-r--r--!TTF2f/Licences/GPL248
-rw-r--r--!TTF2f/Licences/UnixLib760
-rw-r--r--!TTF2f/Res,faebin1648 -> 0 bytes
-rw-r--r--.gitignore2
-rw-r--r--Makefile72
-rw-r--r--riscos/Boot (renamed from !TTF2f/!Boot,feb)2
-rw-r--r--riscos/Help358
-rw-r--r--riscos/Res201
-rw-r--r--src/Makefile2
-rw-r--r--src/cli.c21
-rw-r--r--src/encoding.c32
-rw-r--r--src/glyphs.c13
-rw-r--r--src/glyphs.h2
16 files changed, 1919 insertions, 215 deletions
diff --git a/!TTF2f/!Help b/!TTF2f/!Help
deleted file mode 100644
index 974a6fc..0000000
--- a/!TTF2f/!Help
+++ /dev/null
@@ -1,193 +0,0 @@
-TTF2f
------
-
-TTF2f converts TTF and other font formats supported by FreeType2
-(http://www.freetype.org) to RISC OS format fonts suitable for use with
-the Unicode Font Manager.
-
-NOTE: Please read the section "Converting a font" as a minimum _before_
- using this software.
-
-Contents
-========
-
-1. Converting a font
-2. Progress Bar
-3. Future Enhancements
-4. Known Issues
-5. Licence
-6. Credits and Copyrights
-
-
-1. Converting a font
-====================
-
- In order to convert a font, follow the following process:
-
- 1) Run the application and open the main window.
- 2) Drag the source font file to the window - the file path will appear
- in the Converting display field.
- 3) Choose a RISC OS font name for the font and enter it into the
- Fontname writable field.
- 4) Select the location to save the output font from the drop down menu
- (this is comprised of all entries in your current Font$Path)
- 5) Click convert and wait for conversion to complete.
-
-2. Progress Bar
-===============
-
- During the conversion process, the progress bar will be filled three
- times - once per file being created. This is indicated by the colour of
- the bar:
-
- Dark Green indicates that the glyph metrics are being extracted.
- Red indicates that the IntMetrics file is being written.
- Blue indicates that the Outlines file is being written.
- Green indicates that the Encoding file is being written.
-
-
-3. Future Enhancements
-======================
-
- There are a number of possible enhancements which could be made to TTF2f.
-
- 1) Kerning data.
-
- At present, any kerning data present in the source font is ignored. It
- may be desirable to copy this data across into the RISC OS IntMetrics
- file.
-
- 2) Improve conversion speed.
-
- TTF2f is not particularly fast at conversion, although in most cases
- conversion time should be acceptable. Particularly large fonts do take
- some time to convert (for example; BitStream.Cyberbit (a font
- containing about 30,000 glyphs which cover much of the common Unicode
- character range) takes approximately 25 minutes to convert on my
- Iyonix).
-
-
-4. Known Issues
-===============
-
- At the time of writing there is one known issue.
-
- 1) Attempts to quit TTF2f whilst conversion is occuring will be ignored
- (this includes use of Alt-Break).
-
-
-5. Licence
-==========
-
- Copyright (c) 2004-11, J-M Bell <jmb@netsurf-browser.org>.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS
- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- THE POSSIBILITY OF SUCH DAMAGE.
-
-
-6. Credits & Copyrights
-=======================
-
-Section Contents
-----------------
-
- 1) TTF2PT1 licence
- 2a) FreeType declaration
- 2b) FreeType PCF driver licence
-
-1) TTF2PT1 Licence
-~~~~~~~~~~~~~~~~~~
-This product includes software developed by the TTF2PT1 Project and its
-contributors under the following licence:
-
- Copyright (c) 1997-2003 by the AUTHORS:
- Andrew Weeks <ccsaw@bath.ac.uk>
- Frank M. Siegert <fms@this.net>
- Mark Heath <mheath@netspace.net.au>
- Thomas Henlich <thenlich@rcs.urz.tu-dresden.de>
- Sergey Babkin <babkin@users.sourceforge.net>, <sab123@hotmail.com>
- Turgut Uyar <uyar@cs.itu.edu.tr>
- Rihardas Hepas <rch@WriteMe.Com>
- Szalay Tamas <tomek@elender.hu>
- Johan Vromans <jvromans@squirrel.nl>
- Petr Titera <P.Titera@sh.cvut.cz>
- Lei Wang <lwang@amath8.amt.ac.cn>
- Chen Xiangyang <chenxy@sun.ihep.ac.cn>
- Zvezdan Petkovic <z.petkovic@computer.org>
- Rigel <rigel863@yahoo.com>
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 3. All advertising materials mentioning features or use of this software
- must display the following acknowledgement:
- This product includes software developed by the TTF2PT1 Project
- and its contributors.
-
- THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
-
-2a) FreeType Declaration
-~~~~~~~~~~~~~~~~~~~~~~~~
- Portions of this software are copyright © 1996-2002 The FreeType Project
- (www.freetype.org). All rights reserved.
-
-2b) FreeType PCF driver licence
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-The PCF driver component of libfreetype is distributed under the following
-licence:
-
- Copyright (C) 2000 by Francesco Zappa Nardelli
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- "Software"), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, sublicense, and/or sell copies of the Software, and to
- permit persons to whom the Software is furnished to do so, subject to
- the following conditions:
-
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/!TTF2f/History b/!TTF2f/History
index 2fc0353..53136b7 100644
--- a/!TTF2f/History
+++ b/!TTF2f/History
@@ -1,6 +1,65 @@
TTF2f Changelog
===============
+0.07 (27-May-2022)
+~~~~~~~~~~~~~~~~~~
+Fix Encoding file entries for astral characters.
+
+ Early versions of the UCS Font Manager (3.41-3.42) supported the
+ use of /uni followed by up to 8 upper-case hex digits to specify
+ the Unicode codepoint represented by a glyph.
+
+ Font Manager 3.43 changed this behaviour to align with Adobe's
+ then-current specification of /uniXXXX for characters in the
+ Basic Multilingual Plane and /uniXXXXYYYY for all other characters
+ (where XXXX is a high UTF-16 surrogate and YYYY is a low surrogate)
+
+ Font Manager 3.53 changed again to remove support for /uniXXXXYYYY
+ and, instead, introduced support for /uXXXX to /uXXXXXXXX, where
+ leading zeroes are forbidden if more than 4 hex digits are present.
+
+ Change our behaviour to use the /uniXXXX form for characters in
+ the Basic Multilingual Plane (which is supported by all versions
+ of the UCS Font Manager) and use the /uXXXXX - /uXXXXXXXX form
+ for all other characters.
+
+ This effectively means that Font Manager 3.53 or later is required
+ when astral characters are in use.
+
+All fonts containing astral characters converted using earlier
+versions of TTF2f will need to be re-converted with this (or later)
+version to allow the Font Manager to make use of glyphs defined for
+astral characters.
+
+0.06 (04-Aug-2021)
+~~~~~~~~~~~~~~~~~~
+Fix broken glyph naming for fonts with codepoints outside the
+Basic Multilingual Plane. This issue would manifest itself if the
+bottom 16 bits of a codepoint in an astral plane happened to match
+a codepoint in the Glyph mapping. In this case the glyph would
+be erroneously identified as representing the corresponding BMP
+codepoint, resulting in a bogus Encoding file for the font and
+incorrect glyph display when using legacy alphabets.
+
+As a concrete example, a glyph representing codepoint U+20021
+(being a CJK Unified Ideograph in the Supplementary Ideographic Plane)
+would be erroneously identified as U+0021 (EXCLAMATION MARK) and
+would have an Encoding file entry of "/exclam", instead of
+"/uni20021". This would then cause this glyph to be displayed whenever
+an exclamation mark was used in a Latin1 alphabet.
+
+0.05 (04-Aug-2021)
+~~~~~~~~~~~~~~~~~~
+Rebuild against LDREX/STREX-aware UnixLib.
+
+Improve RISC OS-specific Makefile targets.
+
+Use ccres to compile resource file.
+
+Update copyright dates and third-party licensing information.
+
+Link against FreeType 2.11.0, OSLib 7.00, and Zlib 1.2.11.
+
0.04 (05-Mar-2011)
~~~~~~~~~~~~~~~~~~
Output the first 256 glyphs in Acorn Latin1 order so converted fonts
diff --git a/!TTF2f/Licences/FTL b/!TTF2f/Licences/FTL
new file mode 100644
index 0000000..c406d15
--- /dev/null
+++ b/!TTF2f/Licences/FTL
@@ -0,0 +1,169 @@
+ The FreeType Project LICENSE
+ ----------------------------
+
+ 2006-Jan-27
+
+ Copyright 1996-2002, 2006 by
+ David Turner, Robert Wilhelm, and Werner Lemberg
+
+
+
+Introduction
+============
+
+ The FreeType Project is distributed in several archive packages;
+ some of them may contain, in addition to the FreeType font engine,
+ various tools and contributions which rely on, or relate to, the
+ FreeType Project.
+
+ This license applies to all files found in such packages, and
+ which do not fall under their own explicit license. The license
+ affects thus the FreeType font engine, the test programs,
+ documentation and makefiles, at the very least.
+
+ This license was inspired by the BSD, Artistic, and IJG
+ (Independent JPEG Group) licenses, which all encourage inclusion
+ and use of free software in commercial and freeware products
+ alike. As a consequence, its main points are that:
+
+ o We don't promise that this software works. However, we will be
+ interested in any kind of bug reports. (`as is' distribution)
+
+ o You can use this software for whatever you want, in parts or
+ full form, without having to pay us. (`royalty-free' usage)
+
+ o You may not pretend that you wrote this software. If you use
+ it, or only parts of it, in a program, you must acknowledge
+ somewhere in your documentation that you have used the
+ FreeType code. (`credits')
+
+ We specifically permit and encourage the inclusion of this
+ software, with or without modifications, in commercial products.
+ We disclaim all warranties covering The FreeType Project and
+ assume no liability related to The FreeType Project.
+
+
+ Finally, many people asked us for a preferred form for a
+ credit/disclaimer to use in compliance with this license. We thus
+ encourage you to use the following text:
+
+ """
+ Portions of this software are copyright © <year> The FreeType
+ Project (www.freetype.org). All rights reserved.
+ """
+
+ Please replace <year> with the value from the FreeType version you
+ actually use.
+
+
+Legal Terms
+===========
+
+0. Definitions
+--------------
+
+ Throughout this license, the terms `package', `FreeType Project',
+ and `FreeType archive' refer to the set of files originally
+ distributed by the authors (David Turner, Robert Wilhelm, and
+ Werner Lemberg) as the `FreeType Project', be they named as alpha,
+ beta or final release.
+
+ `You' refers to the licensee, or person using the project, where
+ `using' is a generic term including compiling the project's source
+ code as well as linking it to form a `program' or `executable'.
+ This program is referred to as `a program using the FreeType
+ engine'.
+
+ This license applies to all files distributed in the original
+ FreeType Project, including all source code, binaries and
+ documentation, unless otherwise stated in the file in its
+ original, unmodified form as distributed in the original archive.
+ If you are unsure whether or not a particular file is covered by
+ this license, you must contact us to verify this.
+
+ The FreeType Project is copyright (C) 1996-2000 by David Turner,
+ Robert Wilhelm, and Werner Lemberg. All rights reserved except as
+ specified below.
+
+1. No Warranty
+--------------
+
+ THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY
+ KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS
+ BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO
+ USE, OF THE FREETYPE PROJECT.
+
+2. Redistribution
+-----------------
+
+ This license grants a worldwide, royalty-free, perpetual and
+ irrevocable right and license to use, execute, perform, compile,
+ display, copy, create derivative works of, distribute and
+ sublicense the FreeType Project (in both source and object code
+ forms) and derivative works thereof for any purpose; and to
+ authorize others to exercise some or all of the rights granted
+ herein, subject to the following conditions:
+
+ o Redistribution of source code must retain this license file
+ (`FTL.TXT') unaltered; any additions, deletions or changes to
+ the original files must be clearly indicated in accompanying
+ documentation. The copyright notices of the unaltered,
+ original files must be preserved in all copies of source
+ files.
+
+ o Redistribution in binary form must provide a disclaimer that
+ states that the software is based in part of the work of the
+ FreeType Team, in the distribution documentation. We also
+ encourage you to put an URL to the FreeType web page in your
+ documentation, though this isn't mandatory.
+
+ These conditions apply to any software derived from or based on
+ the FreeType Project, not just the unmodified files. If you use
+ our work, you must acknowledge us. However, no fee need be paid
+ to us.
+
+3. Advertising
+--------------
+
+ Neither the FreeType authors and contributors nor you shall use
+ the name of the other for commercial, advertising, or promotional
+ purposes without specific prior written permission.
+
+ We suggest, but do not require, that you use one or more of the
+ following phrases to refer to this software in your documentation
+ or advertising materials: `FreeType Project', `FreeType Engine',
+ `FreeType library', or `FreeType Distribution'.
+
+ As you have not signed this license, you are not required to
+ accept it. However, as the FreeType Project is copyrighted
+ material, only this license, or another one contracted with the
+ authors, grants you the right to use, distribute, and modify it.
+ Therefore, by using, distributing, or modifying the FreeType
+ Project, you indicate that you understand and accept all the terms
+ of this license.
+
+4. Contacts
+-----------
+
+ There are two mailing lists related to FreeType:
+
+ o freetype@nongnu.org
+
+ Discusses general use and applications of FreeType, as well as
+ future and wanted additions to the library and distribution.
+ If you are looking for support, start in this list if you
+ haven't found anything to help you in the documentation.
+
+ o freetype-devel@nongnu.org
+
+ Discusses bugs, as well as engine internals, design issues,
+ specific licenses, porting, etc.
+
+ Our home page can be found at
+
+ https://www.freetype.org
+
+
+--- end of FTL.TXT ---
diff --git a/!TTF2f/Licences/GPL b/!TTF2f/Licences/GPL
new file mode 100644
index 0000000..509824e
--- /dev/null
+++ b/!TTF2f/Licences/GPL
@@ -0,0 +1,248 @@
+ GNU GENERAL PUBLIC LICENCE
+ Version 1, February 1989
+
+ Copyright (C) 1989 Free Software Foundation, Inc.
+ 675 Mass Ave, Cambridge, MA 02139, U S A
+ Everyone is permitted to copy and distribute verbatim copies
+ of this licence document, but changing it is not allowed.
+
+ Preamble
+
+ The licence agreements of most software companies try to keep users
+at the mercy of those companies. By contrast, our General Public
+Licence is intended to guarantee your freedom to share and change free
+software---to make sure the software is free for all its users. The
+General Public Licence applies to the Free Software Foundation's
+software and to any other programme whose authors commit to using it.
+You can use it for your programmes, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Specifically, the General Public Licence is designed to make
+sure that you have the freedom to give away or sell copies of free
+software, that you receive source code or can get it if you want it,
+that you can change the software or use pieces of it in new free
+programmes; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of a such a programme, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must tell them their rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this licence which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENCE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This Licence Agreement applies to any programme or other work which
+contains a notice placed by the copyright holder saying it may be
+distributed under the terms of this General Public Licence. The
+"Programme", below, refers to any such programme or work, and a "work based
+on the Programme" means either the Programme or any work containing the
+Programme or a portion of it, either verbatim or with modifications. Each
+licensee is addressed as "you".
+
+ 1. You may copy and distribute verbatim copies of the Programme's source
+code as you receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice and
+disclaimer of warranty; keep intact all the notices that refer to this
+General Public Licence and to the absence of any warranty; and give any
+other recipients of the Programme a copy of this General Public Licence
+along with the Programme. You may charge a fee for the physical act of
+transferring a copy.
+
+ 2. You may modify your copy or copies of the Programme or any portion of
+it, and copy and distribute such modifications under the terms of Paragraph
+1 above, provided that you also do the following:
+
+ a) cause the modified files to carry prominent notices stating that
+ you changed the files and the date of any change; and
+
+ b) cause the whole of any work that you distribute or publish, that
+ in whole or in part contains the Programme or any part thereof, either
+ with or without modifications, to be licensed at no charge to all
+ third parties under the terms of this General Public Licence (except
+ that you may choose to grant warranty protection to some or all
+ third parties, at your option).
+
+ c) If the modified programme normally reads commands interactively when
+ run, you must cause it, when started running for such interactive use
+ in the simplest and most usual way, to print or display an
+ announcement including an appropriate copyright notice and a notice
+ that there is no warranty (or else, saying that you provide a
+ warranty) and that users may redistribute the programme under these
+ conditions, and telling the user how to view a copy of this General
+ Public Licence.
+
+ d) You may charge a fee for the physical act of transferring a
+ copy, and you may at your option offer warranty protection in
+ exchange for a fee.
+
+Mere aggregation of another independent work with the Programme (or its
+derivative) on a volume of a storage or distribution medium does not bring
+the other work under the scope of these terms.
+
+ 3. You may copy and distribute the Programme (or a portion or derivative of
+it, under Paragraph 2) in object code or executable form under the terms of
+Paragraphs 1 and 2 above provided that you also do one of the following:
+
+ a) accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of
+ Paragraphs 1 and 2 above; or,
+
+ b) accompany it with a written offer, valid for at least three
+ years, to give any third party free (except for a nominal charge
+ for the cost of distribution) a complete machine-readable copy of the
+ corresponding source code, to be distributed under the terms of
+ Paragraphs 1 and 2 above; or,
+
+ c) accompany it with the information you received as to where the
+ corresponding source code may be obtained. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the programme in object code or executable form alone.)
+
+Source code for a work means the preferred form of the work for making
+modifications to it. For an executable file, complete source code means
+all the source code for all modules it contains; but, as a special
+exception, it need not include source code for modules which are standard
+libraries that accompany the operating system on which the executable
+file runs, or for standard header files or definitions files that
+accompany that operating system.
+
+ 4. You may not copy, modify, sublicense, distribute or transfer the
+Programme except as expressly provided under this General Public Licence.
+Any attempt otherwise to copy, modify, sublicense, distribute or transfer
+the Programme is void, and will automatically terminate your rights to use
+the Programme under this Licence. However, parties who have received
+copies, or rights to use copies, from you under this General Public
+Licence will not have their licences terminated so long as such parties
+remain in full compliance.
+
+ 5. By copying, distributing or modifying the Programme (or any work based
+on the Programme) you indicate your acceptance of this licence to do so,
+and all its terms and conditions.
+
+ 6. Each time you redistribute the Programme (or any work based on the
+Programme), the recipient automatically receives a licence from the original
+licensor to copy, distribute or modify the Programme subject to these
+terms and conditions. You may not impose any further restrictions on the
+recipients' exercise of the rights granted herein.
+
+ 7. The Free Software Foundation may publish revised and/or new versions
+of the General Public Licence from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Programme
+specifies a version number of the licence which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Programme does not specify a version number of
+the licence, you may choose any version ever published by the Free Software
+Foundation.
+
+ 8. If you wish to incorporate parts of the Programme into other free
+programmes whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 9. BECAUSE THE PROGRAMME IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAMME, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAMME "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAMME IS WITH YOU. SHOULD THE
+PROGRAMME PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAMME AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAMME (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAMME TO OPERATE WITH ANY OTHER
+PROGRAMMES), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ Appendix: How to Apply These Terms to Your New Programmes
+
+ If you develop a new programme, and you want it to be of the greatest
+possible use to humanity, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these
+terms.
+
+ To do so, attach the following notices to the programme. It is safest to
+attach them to the start of each source file to most effectively convey
+the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the programme's name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ This programme is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public Licence as published by
+ the Free Software Foundation; either version 1, or (at your option)
+ any later version.
+
+ This programme is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public Licence for more details.
+
+ You should have received a copy of the GNU General Public Licence
+ along with this programme; if not, write to the Free Software
+ Foundation, Inc, 675 Mass Ave, Cambridge, MA 02139, USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the programme is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19xx name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the
+appropriate parts of the General Public Licence. Of course, the
+commands you use may be called something other than `show w' and `show
+c'; they could even be mouse-clicks or menu items--whatever suits your
+programme.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the programme, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ programme `Gnomovision' (a programme to direct compilers to make passes
+ at assemblers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+That's all there is to it!
diff --git a/!TTF2f/Licences/UnixLib b/!TTF2f/Licences/UnixLib
new file mode 100644
index 0000000..cb84d4a
--- /dev/null
+++ b/!TTF2f/Licences/UnixLib
@@ -0,0 +1,760 @@
+UnixLib Copyright
+-----------------
+
+UnixLib is Copyright (c) 1995-1999 Simon Callan, Nick Burrett,
+Nicholas Clark and Peter Burwood.
+
+These contributors have expressed "no interest" in any further licensing or
+copyright in regards to UnixLib.
+
+Other sections are (c) 1999-2011 Nick Burrett, John Tytgat, Peter Naulls,
+Lee Noar, Peter Teichmann, Alex Waugh, Christian Ludlam, Theo Markettos,
+Graham Shaw, James Bursa and John-Mark Bell.
+
+In January 2005, permission was obtained from all relevant contributors
+by Peter Naulls to license all past and present contributions to UnixLib
+(where possible) under the revised BSD license. The license is included
+in the next section and is applicable to all code in UnixLib that does not
+have an explicit license in its source.
+
+Prior to 4th January 2005 and after May 2001, UnixLib contained code licensed
+under the GNU General Public License, and versions of UnixLib produced
+between these dates are subject to the provisions of the GPL. We realised
+that this might cause potential problems with the wider use of UnixLib in
+RISC OS, and along with the desire to clarify the overall licensing status of
+UnixLib, GPL code was removed from UnixLib and the above permission from all
+copyright holders allowed UnixLib contributions to be relicensed as per the
+revised BSD license. The GPL is therefore not included in this notice
+as it is no longer relevant to UnixLib.
+
+
+Practical notes on using UnixLib in your own programs:
+
+This is a plain English version of guidelines for use of UnixLib in
+your programs. It does not override any of the licenses included
+below, but is intended to state instances when it may be used in
+free and non-free software. Where there is contradiction or
+ambiguity in this wording, please refer to the specifics of the licence
+in question. These recommendations are based upon our understading
+of the GPL/LGPL and BSD licenses and are subject to change should
+our understanding of the topics improve.
+
+ - Because UnixLib contains code that is subject to the Lesser GNU
+ Public License, the LGPL is the overriding consideration when
+ linking UnixLib to programs (unless the program itself is GPL).
+
+ - You are free to use sections of UnixLib in your own programs
+ subject to the conditions of that code. If the entirety of
+ that code is under a BSD license, then you can generally use
+ that code as you see fit, and there is no further obligation
+ from you as long as the copyright notice remains. If you
+ use LGPL code in your program, then your program must also be
+ distributed under the LGPL (or GPL).
+
+ - If you use UnixLib in its intended original form - that is as a
+ supporting library for ported programs to RISC OS - then your program
+ is subject to the LGPL; or the GPL if the program is covered by that.
+ Note that you must make the source and any modifications available to for
+ both if requested. This is of course equally true if you write an original
+ GPL program using UnixLib. In most cases, no additional action is
+ required of you, especially since source is usually readibly available.
+
+ - If you use UnixLib for a non-free program - whether that's commercial or
+ otherwise, then you should carefully read section 6 of the LGPL. This
+ applies, because at the present time, there is no practical method of
+ dynamic linking on RISC OS. At such time that UnixLib is available as a
+ shared library, then programs dynamically linking to it will no longer be
+ subject to the LPGL as applied to UnixLib.
+
+ - Section 6 means that in practice, you must supply, or offer to
+ supply either source or object code for your program.
+ This is mainly to allow rebuilding of the executable program
+ with later or modified versions of UnixLib. You must of course
+ supply (or better, contribute to the GCCSDK project) any
+ modifications you make to UnixLib upon request.
+
+
+Recommended reading:
+
+Frequently Asked Questions about the GNU GPL
+http://www.fsf.org/licenses/gpl-faq.html (has some sections on LGPL)
+
+About the justifications for using LGPL
+http://www.fsf.org/licenses/why-not-lgpl.html
+
+
+
+===========================================================================
+
+ Copyright (c) 1995-2009 UnixLib Developers
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ 3. The name of the author may not be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+===========================================================================
+
+Portions of UnixLib are copyright The Regents of the University of
+California.
+
+Portions of this library are copyright Sun Microsystems, Inc. The
+
+Portions of this library are derived from the GNU C Library and fall under
+the GNU Library General Public License.
+
+Portions of this library are copyright Henry Spencer.
+
+Portions of this library are copyright The Regents of the University of
+California, Sun Microsystems, Inc., Scriptics Corporation, ActiveState
+Corporation and other parties.
+
+Portions of this library are copyright PostgreSQL Global Development Group.
+
+The licenses for the above are duplicated below.
+
+
+===========================================================================
+
+ Copyright (c) The Regents of the University of California.
+ All rights reserved.
+
+ This code is derived from software contributed to Berkeley by
+ Chris Torek.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ 3. All advertising materials mentioning features or use of this software
+ must display the following acknowledgement:
+ This product includes software developed by the University of
+ California, Berkeley and its contributors.
+ 4. Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+
+===========================================================================
+
+ Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+
+ Developed at SunPro, a Sun Microsystems, Inc. business.
+ Permission to use, copy, modify, and distribute this
+ software is freely granted, provided that this notice
+ is preserved.
+
+===========================================================================
+
+ GNU LIBRARY GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1991 Free Software Foundation, Inc.
+ 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the library GPL. It is
+ numbered 2 because it goes with version 2 of the ordinary GPL.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Library General Public License, applies to some
+specially designated Free Software Foundation software, and to any
+other libraries whose authors decide to use it. You can use it for
+your libraries, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if
+you distribute copies of the library, or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link a program with the library, you must provide
+complete object files to the recipients so that they can relink them
+with the library, after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ Our method of protecting your rights has two steps: (1) copyright
+the library, and (2) offer you this license which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ Also, for each distributor's protection, we want to make certain
+that everyone understands that there is no warranty for this free
+library. If the library is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original
+version, so that any problems introduced by others will not reflect on
+the original authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that companies distributing free
+software will individually obtain patent licenses, thus in effect
+transforming the program into proprietary software. To prevent this,
+we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+ Most GNU software, including some libraries, is covered by the ordinary
+GNU General Public License, which was designed for utility programs. This
+license, the GNU Library General Public License, applies to certain
+designated libraries. This license is quite different from the ordinary
+one; be sure to read it in full, and don't assume that anything in it is
+the same as in the ordinary license.
+
+ The reason we have a separate public license for some libraries is that
+they blur the distinction we usually make between modifying or adding to a
+program and simply using it. Linking a program with a library, without
+changing the library, is in some sense simply using the library, and is
+analogous to running a utility program or application program. However, in
+a textual and legal sense, the linked executable is a combined work, a
+derivative of the original library, and the ordinary General Public License
+treats it as such.
+
+ Because of this blurred distinction, using the ordinary General
+Public License for libraries did not effectively promote software
+sharing, because most developers did not use the libraries. We
+concluded that weaker conditions might promote sharing better.
+
+ However, unrestricted linking of non-free programs would deprive the
+users of those programs of all benefit from the free status of the
+libraries themselves. This Library General Public License is intended to
+permit developers of non-free programs to use free libraries, while
+preserving your freedom as a user of such programs to change the free
+libraries that are incorporated in them. (We have not seen how to achieve
+this as regards changes in header files, but we have achieved it as regards
+changes in the actual functions of the Library.) The hope is that this
+will lead to faster development of free libraries.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, while the latter only
+works together with the library.
+
+ Note that it is possible for a library to be covered by the ordinary
+General Public License rather than by this special one.
+
+ GNU LIBRARY GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library which
+contains a notice placed by the copyright holder or other authorized
+party saying it may be distributed under the terms of this Library
+General Public License (also called "this License"). Each licensee is
+addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also compile or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ c) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ d) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the source code distributed need not include anything that is normally
+distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Library General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ Appendix: How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the library's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ MA 02111-1307, USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
+
+===========================================================================
+
+Copyright (c) 1998, 1999 Henry Spencer. All rights reserved.
+
+Development of this software was funded, in part, by Cray Research Inc.,
+UUNET Communications Services Inc., Sun Microsystems Inc., and Scriptics
+Corporation, none of whom are responsible for the results. The author
+thanks all of them.
+
+Redistribution and use in source and binary forms -- with or without
+modification -- are permitted for any purpose, provided that
+redistributions in source form retain this entire copyright notice and
+indicate the origin and nature of any modifications.
+
+I'd appreciate being given credit for this package in the documentation
+of software which uses it, but that is not a requirement.
+
+THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+HENRY SPENCER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+===========================================================================
+
+This software is copyrighted by the Regents of the University of
+California, Sun Microsystems, Inc., Scriptics Corporation, ActiveState
+Corporation and other parties. The following terms apply to all files
+associated with the software unless explicitly disclaimed in
+individual files.
+
+The authors hereby grant permission to use, copy, modify, distribute,
+and license this software and its documentation for any purpose, provided
+that existing copyright notices are retained in all copies and that this
+notice is included verbatim in any distributions. No written agreement,
+license, or royalty fee is required for any of the authorized uses.
+Modifications to this software may be copyrighted by their authors
+and need not follow the licensing terms described here, provided that
+the new terms are clearly indicated on the first page of each file where
+they apply.
+
+IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
+FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
+DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE
+IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
+NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
+MODIFICATIONS.
+
+GOVERNMENT USE: If you are acquiring this software on behalf of the
+U.S. government, the Government shall have only "Restricted Rights"
+in the software and related documentation as defined in the Federal
+Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you
+are acquiring the software on behalf of the Department of Defense, the
+software shall be classified as "Commercial Computer Software" and the
+Government shall have only "Restricted Rights" as defined in Clause
+252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the
+authors grant the U.S. Government and others acting in its behalf
+permission to use and distribute the software in accordance with the
+terms specified in this license.
+
+===========================================================================
+
+PostgreSQL Database Management System
+(formerly known as Postgres, then as Postgres95)
+
+Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
+
+Portions Copyright (c) 1994, The Regents of the University of California
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose, without fee, and without a written agreement
+is hereby granted, provided that the above copyright notice and this
+paragraph and the following two paragraphs appear in all copies.
+
+IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING
+LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS
+DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO
+PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
diff --git a/!TTF2f/Res,fae b/!TTF2f/Res,fae
deleted file mode 100644
index 62f649f..0000000
--- a/!TTF2f/Res,fae
+++ /dev/null
Binary files differ
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..a33d46b
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+build-*
+ttf2f.zip
diff --git a/Makefile b/Makefile
index dd8431e..99badc1 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,7 @@
# Component settings
COMPONENT := ttf2f
-COMPONENT_VERSION := 0.0.4
+COMPONENT_VERSION := 0.0.7
+COMPONENT_DATE := 27 May 2022
# We produce an application binary
COMPONENT_TYPE := binary
@@ -16,13 +17,14 @@ include $(NSSHARED)/makefiles/Makefile.tools
WARNFLAGS := -Wall -Wextra -Wundef -Wpointer-arith -Wcast-align \
-Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes \
-Wmissing-declarations -Wnested-externs -Werror #-pedantic
-CFLAGS := $(CFLAGS) -std=c99 -D_BSD_SOURCE -D_POSIX_C_SOURCE \
+CFLAGS := $(CFLAGS) -std=c99 \
+ -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_POSIX_C_SOURCE \
-I$(CURDIR)/include/ -I$(CURDIR)/src $(WARNFLAGS) -Dasm="__asm"
# Freetype2
ifneq ($(findstring clean,$(MAKECMDGOALS)),clean)
ifneq ($(PKGCONFIG),)
- ifeq ($(TARGET),riscos)
+ ifeq ($(findstring -riscos,$(HOST)),-riscos)
CFLAGS := $(CFLAGS) $(shell $(PKGCONFIG) freetype2 --cflags --static)
LDFLAGS := $(LDFLAGS) $(shell $(PKGCONFIG) freetype2 --libs --static)
else
@@ -37,7 +39,7 @@ endif
# OSLib (RISC OS target only)
ifneq ($(findstring clean,$(MAKECMDGOALS)),clean)
- ifeq ($(TARGET),riscos)
+ ifeq ($(findstring -riscos,$(HOST)),-riscos)
CFLAGS := $(CFLAGS) -I$(PREFIX)/include -static
LDFLAGS := $(LDFLAGS) -lOSLib32 -lOSLibSupport32 -static
endif
@@ -45,5 +47,67 @@ endif
include $(NSBUILD)/Makefile.top
+ifeq ($(findstring -riscos,$(HOST)),-riscos)
+ realoutput := $(OUTPUT)
+ e1f := ,e1f
+ ifeq ($(EXEEXT),$(e1f))
+ ff8 := ,ff8
+ realoutput := $(subst $(EXEEXT),$(ff8),$(OUTPUT))
+
+ POST_TARGETS := $(realoutput) $(POST_TARGETS)
+
+ ELF2AIF_FLAGS :=
+ ifeq ($(findstring -gnueabi,$(HOST)),-gnueabi)
+ ELF2AIF_FLAGS := -e $(ELF2AIF_FLAGS)
+ endif
+
+$(realoutput): $(OUTPUT)
+ $(Q)echo " ELF2AIF: $@"
+ $(Q)$(dir $(CC))elf2aif $(ELF2AIF_FLAGS) $(OUTPUT) $@
+ $(Q)echo " SQUEEZE: $@"
+ $(Q)$(dir $(CC))squeeze $@
+
+ endif
+
+ DISTCLEAN_ITEMS := $(DISTCLEAN_ITEMS) ttf2f.zip
+
+.PHONY: riscos-dist
+riscos-dist: $(realoutput) $(BUILDDIR)/Res,fae $(BUILDDIR)/!Boot,feb $(BUILDDIR)/!Help
+ $(Q)$(CP) $(CPFLAGS) $(realoutput) !TTF2f/!RunImage,ff8
+ $(Q)$(CP) $(CPFLAGS) $(BUILDDIR)/Res,fae !TTF2f/Res,fae
+ $(Q)$(CP) $(CPFLAGS) $(BUILDDIR)/!Help !TTF2f/!Help
+ $(Q)$(CP) $(CPFLAGS) $(BUILDDIR)/!Boot,feb !TTF2f/!Boot,feb
+ $(Q)$(dir $(CC))zip -9r, ttf2f.zip !TTF2f
+ $(Q)$(RM) $(RMFLAGS) !TTF2f/!RunImage,ff8 !TTF2f/Res,fae !TTF2f/!Help !TTF2f/!Boot,feb
+
+ __empty :=
+ __space := $(empty) $(empty)
+$(BUILDDIR)/Res,fae: riscos/Res
+ $(Q)echo " CCRES: $@"
+ $(Q)$(SED) \
+ -e 's/__COPYRIGHT_END__/$(word $(words $(COMPONENT_DATE)),$(COMPONENT_DATE))/' \
+ -e 's/__DATE__/$(subst $(__space),-,$(COMPONENT_DATE))/' \
+ -e 's/__VERSION__/$(word 1,$(subst ., ,$(COMPONENT_VERSION))).$(subst $(__space),,$(wordlist 2,$(words $(subst ., ,$(COMPONENT_VERSION))),$(subst ., ,$(COMPONENT_VERSION))))/' \
+ $^ >$(BUILDDIR)/Res.txt
+ $(Q)$(dir $(CC))ccres $(BUILDDIR)/Res.txt $@
+
+$(BUILDDIR)/!Boot,feb: riscos/Boot
+ $(Q)echo " SED: $@"
+ $(Q)$(SED) \
+ -e 's/__DATE__/$(COMPONENT_DATE)/' \
+ -e 's/__VERSION__/$(word 1,$(subst ., ,$(COMPONENT_VERSION))).$(subst $(__space),,$(wordlist 2,$(words $(subst ., ,$(COMPONENT_VERSION))),$(subst ., ,$(COMPONENT_VERSION))))/' \
+ $^ >$@
+
+$(BUILDDIR)/!Help: riscos/Help
+ $(Q)echo " SED: $@"
+ $(Q)$(SED) \
+ -e 's/__COPYRIGHT_END__/$(word $(words $(COMPONENT_DATE)),$(COMPONENT_DATE))/' \
+ $^ >$@
+
+endif
+
+# Redefine the default target so our new POST_TARGETS take effect
+all: $(PRE_TARGETS) $(OUTPUT) $(POST_TARGETS)
+
# Extra installation rules
diff --git a/!TTF2f/!Boot,feb b/riscos/Boot
index 7d939d1..1316b48 100644
--- a/!TTF2f/!Boot,feb
+++ b/riscos/Boot
@@ -2,7 +2,7 @@ Set TTF2f$Dir <Obey$Dir>
| Application system variables
Set TTF2f$Help <TTF2f$Dir>.!Help
-Set TTF2f$Version "0.01 (07 Sep 2004)"
+Set TTF2f$Version "__VERSION__ (__DATE__)"
Set TTF2f$Title "TTF2f"
Set TTF2f$Publisher "J-M Bell"
Set TTF2f$Description "Font conversion utility"
diff --git a/riscos/Help b/riscos/Help
new file mode 100644
index 0000000..b08ea3a
--- /dev/null
+++ b/riscos/Help
@@ -0,0 +1,358 @@
+TTF2f
+-----
+
+TTF2f converts TTF and other font formats supported by FreeType2
+(http://www.freetype.org) to RISC OS format fonts suitable for use with
+the Unicode Font Manager.
+
+NOTE: Please read the section "Converting a font" as a minimum _before_
+ using this software.
+
+Contents
+========
+
+1. Converting a font
+2. Progress Bar
+3. Future Enhancements
+4. Known Issues
+5. Licence
+6. Credits and Copyrights
+
+
+1. Converting a font
+====================
+
+ In order to convert a font, follow the following process:
+
+ 1) Run the application and open the main window.
+ 2) Drag the source font file to the window - the file path will appear
+ in the Converting display field.
+ 3) Choose a RISC OS font name for the font and enter it into the
+ Fontname writable field.
+ 4) Select the location to save the output font from the drop down menu
+ (this is comprised of all entries in your current Font$Path)
+ 5) Click convert and wait for conversion to complete.
+
+2. Progress Bar
+===============
+
+ During the conversion process, the progress bar will be filled three
+ times - once per file being created. This is indicated by the colour of
+ the bar:
+
+ Dark Green indicates that the glyph metrics are being extracted.
+ Red indicates that the IntMetrics file is being written.
+ Blue indicates that the Outlines file is being written.
+ Green indicates that the Encoding file is being written.
+
+
+3. Future Enhancements
+======================
+
+ There are a number of possible enhancements which could be made to TTF2f.
+
+ 1) Kerning data.
+
+ At present, any kerning data present in the source font is ignored. It
+ may be desirable to copy this data across into the RISC OS IntMetrics
+ file.
+
+ 2) Improve conversion speed.
+
+ TTF2f is not particularly fast at conversion, although in most cases
+ conversion time should be acceptable. Particularly large fonts do take
+ some time to convert (for example; BitStream.Cyberbit (a font
+ containing about 30,000 glyphs which cover much of the common Unicode
+ character range) takes approximately 25 minutes to convert on my
+ Iyonix).
+
+
+4. Known Issues
+===============
+
+ At the time of writing there is one known issue.
+
+ 1) Attempts to quit TTF2f whilst conversion is occuring will be ignored
+ (this includes use of Alt-Break).
+
+
+5. Licence
+==========
+
+ Copyright (c) 2004-__COPYRIGHT_END__, J-M Bell <jmb@netsurf-browser.org>.
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS
+ BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ THE POSSIBILITY OF SUCH DAMAGE.
+
+
+6. Credits & Copyrights
+=======================
+
+Section Contents
+----------------
+
+ 1) TTF2PT1 licence
+ 2a) FreeType declaration
+ 2b) FreeType BDF driver licence
+ 2c) FreeType PCF driver licence
+ 3) OSLib licence
+ 4) UnixLib licence
+ 5) Zlib licence
+
+1) TTF2PT1 Licence
+~~~~~~~~~~~~~~~~~~
+This product includes software developed by the TTF2PT1 Project and its
+contributors under the following licence:
+
+ Copyright (c) 1997-2003 by the AUTHORS:
+ Andrew Weeks <ccsaw@bath.ac.uk>
+ Frank M. Siegert <fms@this.net>
+ Mark Heath <mheath@netspace.net.au>
+ Thomas Henlich <thenlich@rcs.urz.tu-dresden.de>
+ Sergey Babkin <babkin@users.sourceforge.net>, <sab123@hotmail.com>
+ Turgut Uyar <uyar@cs.itu.edu.tr>
+ Rihardas Hepas <rch@WriteMe.Com>
+ Szalay Tamas <tomek@elender.hu>
+ Johan Vromans <jvromans@squirrel.nl>
+ Petr Titera <P.Titera@sh.cvut.cz>
+ Lei Wang <lwang@amath8.amt.ac.cn>
+ Chen Xiangyang <chenxy@sun.ihep.ac.cn>
+ Zvezdan Petkovic <z.petkovic@computer.org>
+ Rigel <rigel863@yahoo.com>
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ 3. All advertising materials mentioning features or use of this software
+ must display the following acknowledgement:
+ This product includes software developed by the TTF2PT1 Project
+ and its contributors.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+
+2a) FreeType Declaration
+~~~~~~~~~~~~~~~~~~~~~~~~
+ Portions of this software are copyright © 1996-2021 The FreeType Project
+ (www.freetype.org). All rights reserved.
+
+ Full licence terms may be found in !TTF2f.Licences.FTL
+
+2b) FreeType BDF driver licence
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+The BDF driver component and the fthash module of libfreetype are
+distributed under the following licence:
+
+ Copyright (C) 2001-2002 by Francesco Zappa Nardelli
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ *** Portions of the driver (that is, bdflib.c and bdf.h):
+
+ Copyright 2000 Computing Research Labs, New Mexico State University
+ Copyright 2001-2002, 2011 Francesco Zappa Nardelli
+
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and associated documentation files (the "Software"),
+ to deal in the Software without restriction, including without limitation
+ the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ and/or sell copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
+ OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
+ THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+2c) FreeType PCF driver licence
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+The PCF driver component of libfreetype is distributed under the following
+licence:
+
+ Copyright (C) 2000 by Francesco Zappa Nardelli
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+3) OSLib licence
+~~~~~~~~~~~~~~~~
+ OSLib---efficient, type-safe, transparent, extensible,
+ register-safe API coverage of RISC OS
+
+ Copyright (c) 1994-2012 Jonathan Coxhead and OSLib maintainers
+
+ Licence:
+
+ OSLib is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 1, or (at your option)
+ any later version - and this with the following clarification and
+ special exception:
+
+ Linking this library statically or dynamically with other modules
+ is making a combined work based on this library. Thus, the terms
+ and conditions of the GNU General Public License cover the whole
+ combination.
+
+ As a special exception, the copyright holders of this library
+ give you permission to link this library with independent modules
+ to produce an executable, regardless of the license terms of these
+ independent modules, and to copy and distribute the resulting
+ executable under terms of your choice, provided that you also meet,
+ for each linked independent module, the terms and conditions of the
+ license of that module. An independent module is a module which is
+ not derived from or based on this library. If you modify this
+ library, you may extend this exception to your version of the library,
+ but you are not obliged to do so. If you do not wish to do so, delete
+ this exception statement from your version.
+
+ OSLib is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this programme; if not, write to the Free Software
+ Foundation, Inc, 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ Full text of the GPL may be found in !TTF2f.Licences.GPL
+
+4) UnixLib licence
+~~~~~~~~~~~~~~~~~~
+ Copyright (c) 1995-2009 UnixLib Developers
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ 3. The name of the author may not be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ ===========================================================================
+
+ Portions of UnixLib are copyright The Regents of the University of
+ California.
+
+ Portions of this library are copyright Sun Microsystems, Inc. The
+
+ Portions of this library are derived from the GNU C Library and fall under
+ the GNU Library General Public License.
+
+ Portions of this library are copyright Henry Spencer.
+
+ Portions of this library are copyright The Regents of the University of
+ California, Sun Microsystems, Inc., Scriptics Corporation, ActiveState
+ Corporation and other parties.
+
+ Portions of this library are copyright PostgreSQL Global Development Group.
+
+ The full licence text for the above may be found in !TTF2f.Licences.UnixLib
+
+5) Zlib licence
+~~~~~~~~~~~~~~~
+ Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
diff --git a/riscos/Res b/riscos/Res
new file mode 100644
index 0000000..f47c889
--- /dev/null
+++ b/riscos/Res
@@ -0,0 +1,201 @@
+RESF:1.01
+
+window_object {
+ header_flags:toolbox_OBJECT_SHARED | toolbox_OBJECT_ANCESTOR
+ version:102
+ object_name:"main"
+ window_flags:window_AUTO_OPEN | window_AUTO_CLOSE
+ help_message:""
+ help_limit:*
+ sprite_name:""
+ pointer_limit:0
+ hotspot:0,0
+ menu_name:"menu"
+ default_focus:&3
+ show_action:
+ hide_action:
+ toolbar_ibl:""
+ toolbar_itl:""
+ toolbar_ebl:""
+ toolbar_etl:""
+ window.visible:906,384,1598,684
+ window.xscroll:0
+ window.yscroll:0
+ window.next:wimp_TOP
+ window.flags:wimp_WINDOW_MOVEABLE | wimp_WINDOW_AUTO_REDRAW | wimp_WINDOW_BACK_ICON | wimp_WINDOW_CLOSE_ICON | wimp_WINDOW_TITLE_ICON | wimp_WINDOW_NEW_FORMAT
+ window.title_fg:wimp_COLOUR_BLACK
+ window.title_bg:wimp_COLOUR_LIGHT_GREY
+ window.work_fg:wimp_COLOUR_BLACK
+ window.work_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ window.scroll_outer:wimp_COLOUR_MID_LIGHT_GREY
+ window.scroll_inner:wimp_COLOUR_VERY_LIGHT_GREY
+ window.highlight_bg:wimp_COLOUR_CREAM
+ window.extra_flags:
+ window.extent:0,-300,692,0
+ window.title_flags:wimp_ICON_TEXT | wimp_ICON_HCENTRED | wimp_ICON_VCENTRED | wimp_ICON_INDIRECTED
+ window.work_flags:
+ window.sprite_area:&ffffffff
+ window.xmin:100
+ window.ymin:100
+ window.title_text:"TTF2f"
+ window.title_text_limit:*
+ window.title_valid:""
+ displayfield_object {
+ cmp:&0
+ bbox:236,-68,676,-16
+ help_message:""
+ help_limit:*
+ flags:displayfield_HCENTRED
+ text:"Filename"
+ text_limit:255
+ }
+ label_object {
+ cmp:&1
+ bbox:32,-68,236,-16
+ help_message:""
+ help_limit:*
+ flags:label_NO_BOX | label_RJUSTIFIED
+ label:"Converting"
+ }
+ label_object {
+ cmp:&2
+ bbox:16,-132,236,-80
+ help_message:""
+ help_limit:*
+ flags:label_NO_BOX | label_RJUSTIFIED
+ label:"RISC OS name"
+ }
+ writablefield_object {
+ cmp:&3
+ bbox:236,-132,676,-80
+ help_message:""
+ help_limit:*
+ flags:writablefield_HCENTRED
+ text:"Fontname"
+ text_limit:255
+ allowable:"a-zA-Z0-9."
+ allowable_limit:*
+ prev:toolbox_NULL_COMPONENT
+ next:toolbox_NULL_COMPONENT
+ }
+ actionbutton_object {
+ cmp:&6
+ bbox:472,-284,676,-216
+ help_message:""
+ help_limit:*
+ flags:actionbutton_IS_DEFAULT | actionbutton_IS_LOCAL
+ text:"Convert"
+ text_limit:*
+ click_show:""
+ action:&101
+ }
+ stringset_object {
+ cmp:&7
+ bbox:236,-196,676,-144
+ help_message:""
+ help_limit:*
+ flags:stringset_JUSTIFICATION_CENTRED
+ string_set:"Item 1,Item 2"
+ title:"Save in"
+ initial_selected_string:"Save in"
+ selected_string_limit:512
+ allowable:""
+ allowable_limit:*
+ prev:toolbox_NULL_COMPONENT
+ next:toolbox_NULL_COMPONENT
+ }
+ slider_object {
+ cmp:&8
+ bbox:196,-272,452,-232
+ help_message:""
+ help_limit:*
+ flags:slider_KNOB_COLOUR_DARK_BLUE
+ lower_bound:0
+ upper_bound:100
+ step_size:1
+ initial_value:0
+ }
+ label_object {
+ cmp:&9
+ bbox:0,-280,188,-228
+ help_message:""
+ help_limit:*
+ flags:label_NO_BOX | label_RJUSTIFIED
+ label:"Progress"
+ }
+}
+
+menu_object {
+ header_flags:toolbox_OBJECT_CREATE_ON_LOAD | toolbox_OBJECT_SHARED
+ version:102
+ object_name:"menu"
+ menu_flags:
+ title:"TTF2f"
+ title_limit:*
+ help:""
+ help_limit:*
+ show_action:
+ hide_action:
+ Entry {
+ cmp:0
+ flags:menu_ENTRY_SUB_MENU
+ cmp:&0
+ text:"About"
+ text_limit:*
+ click_object_name:""
+ sub_menu_object_name:"info"
+ sub_menu_action:&0
+ click_action:&0
+ help:""
+ help_limit:*
+ }
+ Entry {
+ cmp:1
+ flags:
+ cmp:&1
+ text:"Quit"
+ text_limit:*
+ click_object_name:""
+ sub_menu_object_name:""
+ sub_menu_action:&0
+ click_action:&82a91
+ help:""
+ help_limit:*
+ }
+}
+
+iconbar_object {
+ header_flags:toolbox_OBJECT_CREATE_ON_LOAD | toolbox_OBJECT_SHOW_ON_CREATE | toolbox_OBJECT_SHARED
+ version:100
+ object_name:"Iconbar"
+ iconbar_flags:iconbar_GENERATE_SELECT_CLICKED | iconbar_GENERATE_ADJUST_CLICKED
+ position:wimp_ICON_BAR_RIGHT
+ priority:0
+ sprite_name:"!ttf2f"
+ sprite_limit:*
+ text:""
+ text_limit:*
+ menu:"menu"
+ select_action:&0
+ adjust_action:&0
+ select_show:"main"
+ adjust_show:""
+ help_message:""
+ help_limit:*
+}
+
+proginfo_object {
+ header_flags:toolbox_OBJECT_CREATE_ON_LOAD | toolbox_OBJECT_SHARED
+ version:101
+ object_name:"info"
+ proginfo_flags:proginfo_GENERATE_WEB_PAGE_CLICKED
+ title:""
+ title_limit:*
+ purpose:"Font format convertor"
+ author:"© J-M Bell, 2004-__COPYRIGHT_END__"
+ licence_type:None
+ prog_version:"__VERSION__ (__DATE__)"
+ alternative_window_name:""
+ visit_url:""
+ visit_url_event:&0
+}
diff --git a/src/Makefile b/src/Makefile
index 251a32c..bfe8aa1 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -4,7 +4,7 @@ DIR_SOURCES := encoding.c ft.c glyphs.c intmetrics.c outlines.c utils.c
ifeq ($(FRONTEND),cli)
DIR_SOURCES := $(DIR_SOURCES) cli.c
else
- ifeq ($(TARGET),riscos)
+ ifeq ($(findstring -riscos,$(HOST)),-riscos)
DIR_SOURCES := $(DIR_SOURCES) toolbox.c
endif
endif
diff --git a/src/cli.c b/src/cli.c
index 9b31598..045ba89 100644
--- a/src/cli.c
+++ b/src/cli.c
@@ -38,8 +38,8 @@ int main(int argc, char **argv)
ttf2f_ctx ctx;
int fail;
ttf2f_result err = TTF2F_RESULT_OK;
- char *dot, *path;
- char full_path[PATH_MAX]; /* Lazy */
+ char *dot, *path, *full_path = NULL;
+ size_t full_path_len;
if (argc != 4) {
fprintf(stderr,
@@ -54,8 +54,10 @@ int main(int argc, char **argv)
ft_init();
- if ((err = glyph_load_list()) != TTF2F_RESULT_OK)
+ if ((err = glyph_load_list()) != TTF2F_RESULT_OK) {
+ fprintf(stderr, "Error: failed loading glyph list\n");
goto error_out;
+ }
ctx.face = open_font(argv[1]);
if (ctx.face == NULL) {
@@ -104,9 +106,15 @@ int main(int argc, char **argv)
glmetrics(&ctx, progress);
- mkdir(argv[2], 0755);
+ full_path_len = strlen(argv[2]) + strlen(argv[3]) + 2;
+ full_path = malloc(full_path_len);
+ if (full_path == NULL) {
+ fprintf(stderr, "ERROR: no memory for full path\n");
+ goto error_out;
+ }
+ strcpy(full_path, argv[2]);
- strncpy(full_path, argv[2], sizeof(full_path));
+ mkdir(argv[2], 0755);
path = full_path + strlen(full_path);
if (*(path - 1) != *DIR_SEP)
@@ -155,6 +163,9 @@ error_out:
}
}
+ if (full_path != NULL)
+ free(full_path);
+
if (ctx.metrics != NULL) {
free(ctx.metrics->name_copyright);
free(ctx.metrics->name_full);
diff --git a/src/encoding.c b/src/encoding.c
index ae8767d..8f9671f 100644
--- a/src/encoding.c
+++ b/src/encoding.c
@@ -78,8 +78,15 @@ void encoding_write_glyph(int index, struct glyph *glyph,
glyph->name);
}
} else if (glyph->code != (unsigned int) -1) {
- fprintf(fp, "%4.4X;uni%04X;COMMENT\n", index,
- glyph->code);
+ if (glyph->code < 0x10000) {
+ /* Use uniXXXX for BMP codepoints */
+ fprintf(fp, "%4.4X;uni%04X;COMMENT\n", index,
+ glyph->code);
+ } else {
+ /* Use uXXXXX - uXXXXXXXX otherwise */
+ fprintf(fp, "%4.4X;u%X;COMMENT\n", index,
+ glyph->code);
+ }
} else {
fprintf(fp, "# Skipping %4.4X\n", index);
}
@@ -87,11 +94,26 @@ void encoding_write_glyph(int index, struct glyph *glyph,
if (glyph->name != 0) {
fprintf(fp, "/%s\n", glyph->name);
} else if (glyph->code != (unsigned int) -1) {
- fprintf(fp, "/uni%4.4X\n", glyph->code);
+ if (glyph->code < 0x10000) {
+ /* Use /uniXXXX for BMP codepoints */
+ fprintf(fp, "/uni%4.4X\n", glyph->code);
+ } else {
+ /* Use /uXXXXX - /uXXXXXXXX otherwise.
+ * These are supported since FM 3.53.
+ * FM 3.43 - 3.52 (inclusive) understood
+ * /uniXXXXYYYY, where XXXX and YYYY were
+ * a UTF-16 surrogate pair. We have never
+ * emitted such things and support for
+ * them was removed in FM 3.53 with the
+ * introduction of support for the /u form.
+ * Thus, take the easy option and rely on
+ * noone running a UCS FM earlier than 3.53
+ * expecting astral codepoints to work.
+ */
+ fprintf(fp, "/u%X\n", glyph->code);
+ }
} else {
fprintf(fp, "/.notdef\n");
}
}
}
-
-
diff --git a/src/glyphs.c b/src/glyphs.c
index b66675b..26c7308 100644
--- a/src/glyphs.c
+++ b/src/glyphs.c
@@ -76,13 +76,16 @@ ttf2f_result glyph_load_list(void)
return TTF2F_RESULT_OK;
}
-const char *glyph_name(unsigned short code)
+const char *glyph_name(unsigned int code)
{
- struct glyph_entry *g;
+ struct glyph_entry *g = NULL;
- for (g = &glyphs[code / 256]; g; g = g->next)
- if (g->code == code)
- break;
+ /* The glyph list only covers the BMP */
+ if (code < 65536) {
+ for (g = &glyphs[code / 256]; g; g = g->next)
+ if (g->code == code)
+ break;
+ }
return g != NULL ? g->name : NULL;
}
diff --git a/src/glyphs.h b/src/glyphs.h
index 5125f9e..a3cd435 100644
--- a/src/glyphs.h
+++ b/src/glyphs.h
@@ -5,6 +5,6 @@
ttf2f_result glyph_load_list(void);
void glyph_destroy_list(void);
-const char *glyph_name(unsigned short code);
+const char *glyph_name(unsigned int code);
#endif