diff options
-rw-r--r-- | !TTF2f/!Help | 193 | ||||
-rw-r--r-- | !TTF2f/History | 59 | ||||
-rw-r--r-- | !TTF2f/Licences/FTL | 169 | ||||
-rw-r--r-- | !TTF2f/Licences/GPL | 248 | ||||
-rw-r--r-- | !TTF2f/Licences/UnixLib | 760 | ||||
-rw-r--r-- | !TTF2f/Res,fae | bin | 1648 -> 0 bytes | |||
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | Makefile | 72 | ||||
-rw-r--r-- | riscos/Boot (renamed from !TTF2f/!Boot,feb) | 2 | ||||
-rw-r--r-- | riscos/Help | 358 | ||||
-rw-r--r-- | riscos/Res | 201 | ||||
-rw-r--r-- | src/Makefile | 2 | ||||
-rw-r--r-- | src/cli.c | 21 | ||||
-rw-r--r-- | src/encoding.c | 32 | ||||
-rw-r--r-- | src/glyphs.c | 13 | ||||
-rw-r--r-- | src/glyphs.h | 2 |
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 Binary files differdeleted file mode 100644 index 62f649f..0000000 --- a/!TTF2f/Res,fae +++ /dev/null diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a33d46b --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +build-* +ttf2f.zip @@ -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 @@ -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 |